关于神经网络梯度推导
基于图片预测1,0,每张图片为4行3列12个像素,图片数量>=47张图片
整个神经网络包括一个输入层,一个隐藏层和一个输出层
整个神经网络可以表示为以下结构:

神经网络各符号可以表示为以下:

隐藏层和输出层各层变量及参数的关系表达式为:

如果全部展开,最后的输出可以变得巨复杂无比

神经网络的代价函数,也叫损失函数、目的函数、误差函数,用于评估数据模型得出的理论值与实际值误差达到最小



|
层 |
含义 |
个数 |
备注 |
|
隐藏层 |
权重 |
12*3 |
隐藏层神经单元个数为3,输入层12个神经单元都有箭头指向隐藏层的各个神经单元 |
|
偏置 |
3 |
隐藏层神经单元个数为3 |
|
|
输出层 |
权重 |
3*2 |
输出层神经单元个数为2,隐藏层3个神经单元都有箭头指向输出层的各个神经单元 |
|
偏置 |
2 |
输出层神经单元个数为2 |
参数总数=(12*3+3)+(3*2+2)=47
按照方程求解要求,至少需要47条学习图像

以下按照传统的方法进行求导,可以看到陷入导数地狱。

假设

可以推导出对误差对权重和偏置的求导

现在的问题是如何求
输出层的
求解

隐藏层的
求解

①准备好学习数据。
②进行权重和偏置的初始设置。
输入各个神经单元的权重和偏置的初始值。
初始值通常使用随机数。
此外,设置适当的小的正数作为学习率η
③计算出神经单元的输出值以及平方误差C
计算出加权输入z
计算出激活函数的值a(4-1节式(2))
计算出平方误差C(4-1节式(3))。
④根据误差反向传播法,计算出各层的神经单元误差δ。
利用4-3节的式(3)计算出输出层的神经单元误差δ。
利用4-3节的式(16)计算出隐藏层的神经单元误差δ
⑤根据神经单元误差计算平方误差C的偏导数。
利用④中计算出的神经单元误差δ以及4-2节的式(11)
计算平方误差C关于权重和偏置的偏导数。
⑥计算出代价函数C和它的梯度?Cr
将③~⑤的结果对全部数据相加,求出代价函数C和它的梯度?Cr
⑦根据⑥中计算出的梯度更新权重和偏置的值。
利用梯度下降法更新权重和偏置(4-1节式(9))
8反复进行③~⑦的操作。
反复进行③~⑦的计算,直到判定代价函数C的值充分小为止。

更多推荐
所有评论(0)