在上一篇博客的基础上,研究了下单隐层神经网络,下面详细的说下步骤:
上一篇博客中,不管是加没加激励函数,都是输入后直接输出.
而单隐层神经网络就是输入和输出中间有一个隐层,
即 输入层的输出是隐层的输入 ,隐层的输出和对应权重的乘积是输出层的输入 ,输出层的输出才是最终的输出.
有点拗口,下面理一下上面的话: (以下加粗变量都是向量)
如上图
输入层的输入 就是 N个样本的Hog特征维度(A) : 记做 X0
输入层的输出(隐层的输入) 就是 X0 和W0 的乘积: 记做 y0
通过隐层的激励函数 tanh(), 隐层的输出 为 tanh(y0) : 记做X1
输出层的输入 就是 隐层的输出和对应权重的乘积,即X1*W1 : 记做 y1
通过对输出层的输入进行挤压后即为输出层的输出 tanh(y1) : 记做Y
总计下就是:
y0 = X0 * W0
X1 = tanh(y0)
y1 = X1 * W1
Y = tanh(y1)
损失函数公式不变:
因为单层神经网络有两个权重W0和W1,所以这两个权重都是要更新的,
更新权重是从右往左更新,先更新W1再更新W0,下面是更新两个权重的公式:
当然,重点就是求这两个 ,
这两个求起来也不是很难,上面说了先更新W1然后W0,下面是简单的步骤:
这两个结果,因为要分别和W1,W2的矩阵维度对应,所以根据各个之间的相乘相减什么的,
得出下面两个式子: