梯度下降法原理
梯度下降法的示意图如下
前提:假设
x⃗ 1×m
和
y⃗ 1×n
的向量有一个函数关系
y⃗ =f(x⃗ |θ)
,其中
θ
是一个
l
维的参数向量,为例拟合初函数
现有,
k
组观测值,得到训练集矩阵
J=12∑i=1k[f(Xi|θ)−Yi]2
上式可以将 X 和
上式形成了一个误差曲面,即
为了求得 θ 的值使得误差最小,如上图所示,可以向梯度的反方向搜索,有
Δθθnew===α∂error∂θα∑i=1k[f(Xi|θ)−Yi]∂f(Xi|θ)∂θθold−Δθ
当然,当 f 是线性函数的时候,参数是个开口向上的二次曲面,
∂f∂θj=xj
Δθj==α∂error∂θjα∑i=1k[∑ii=0mθiixii−Yi]xj
其中 x0=1 为偏置
神经网络的误差反向传播
上面两图是简单的神经元和神经网络模型
模型假设:
现在假设神经元有三层
从上到下的坐标为
k、j、i
,每一层的输入都是下一层的输出,函数
f
为神经元的激活函数,每个神经元连接下一层第
对于第k层,即输出层有:
其中向量 t⃗ =(t1,t2,…,tc) 为教师信号.n为不同的样本
对于第j层,即输出后面的隐层有:
netnjynj==∑i=0a−1wjiynif(netnj)
对于第 k 层和第
∂J∂wkjδk======∂J∂ynk∂ynk∂netnk∂netnk∂wkj∑n=0N−1(ynk−tnk)f′(netnk)ynjδkynj∑n=0N−1(ynk−tnk)f′(netnk)∂J∂ynk∂ynk∂netnk∂J∂netnk
其中 δk 为误差项
对于第 j 层和第i层之间的权值,使用梯度下降法,有:
由全微分公式
假设
∂J∂wnk=δkynj
即
∂J∂netnk=δk
则
∂J∂netnj=∑k=0c−1∂J∂netnk∂netnk∂netnj=∑k=0c−1∂J∂netnk∂netnk∂ynj∂ynj∂netnj=∑k=0c−1δkwkjf′(netj)
误差反向传播模型如下图所示: