神经网络相关(3)-反向传播

发布时间 2023-08-07 22:50:01作者: 波霸奶绿去冰三分糖
反向传播
训练数据与测试数据
损失函数
常用:平方和误差、交叉熵误差
平方和误差
适用于计算连续数值的情况
def square_sum(y,t):
return 1.0/2.0*np.sum(np.square(y-t))
交叉熵误差
学习速度很快,偏差容易被迅速消除
def (y,t):
return -np.sum(t*np.log(y+1e-7))
避免y=0时发散为无穷小无法计算,加上一个很小的值1e-7
梯度下降法
原理:通过对参数xk调整使计算结果向y的最小值方向下降
梯度就是y对xk的偏导数
反向传播中(使用损失函数计算的误差值作为起点来反向追溯),使用梯度下降法决定修正量的大小,对神经网络的w、b进行调整,使误差变小 --误差E对权重Wij的偏导
η--学习系数,决定学习速度的常数
·输出层的梯度推导
 

 

·输出层的输入梯度
即E对yj求偏导,由连续性--> 该值=Σ(Sr*Wjr) (r是计数)
此乃对误差的传播!
·计算公式总结
 
最优化算法
权重更新公式不好打、、
特点
good
bad
随机梯度下降法(SGD)
每次更新随机选取样本
不容易陷入局部最优解;简单
无法灵活调整更新量
Momentum
在SGD加了惯性项α△w、α△b
可以有效防止更新量的急剧变化
调整困难
AdaGrad
 
对更新量自动调整;学习率会下降
更新量持续减少
RMSProp
克服AdaGrad中由于更新量变小导致的学习进度停滞
 
Adam
很好、很复杂
 
 
 
 
 
批次尺寸
· 完成一次对所有训练数据的学习被称为一轮epoch
· 训练样本集中学习的集合是批次batch
一轮epoch中数据集可分割为多个batch
· 批次尺寸指一个批次中所包含的样本的数量
根据批次尺寸将学习类型分为:
1、批次学习(all)
2、在线学习(1)
3、小批次学习()
·批次尺寸一般设为10~100