反向传播
训练数据与测试数据
损失函数
常用:平方和误差、交叉熵误差
平方和误差
适用于计算连续数值的情况
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?