《机器学习入门机器学习入门 (39).pdf》由会员分享,可在线阅读,更多相关《机器学习入门机器学习入门 (39).pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目目 录录7反向传播过程反向传播过程8搭建神经网络搭建神经网络9神经网络的优化神经网络的优化全连接神经网络的应用全连接神经网络的应用106前向传播过程前向传播过程神经网络的优化099.1 学习率的优化学习率学习率 learning_ratelearning_rate:表示了每次参数更新的幅表示了每次参数更新的幅度大小。度大小。在训练过程中,参数的更新向着损失函数梯度下降的在训练过程中,参数的更新向着损失函数梯度下降的方向。方向。【例题】u 沿着负梯度方向进行下一步探索,前进多少合适?沿着负梯度方向进行下一步探索,前进多少合适?u 用梯度乘以学习率(有时也称为步长),以确定下一个点的位用梯度乘以
2、学习率(有时也称为步长),以确定下一个点的位置。置。例如:例如:如果梯度大小为如果梯度大小为2.5,学习速率为,学习速率为0.01,则梯度下降法算法,则梯度下降法算法会选择距离前一个点会选择距离前一个点0.025 的位置作为的位置作为下一个点。下一个点。次数次数参数参数W计算计算1次次55-0.2*(2*5+2)=2.6 2次次2.6 2.6-0.2*(2*2.6+2)=1.16 3次次1.161.16 0.2*(2*1.16+2)=0.296 4次次0.296 损失函数损失函数loss=(w+1)loss=(w+1)2 2的图像为:的图像为:由图可知,损失函数由图可知,损失函数loss的最小
3、值会在的最小值会在(-1,0)处得到,此时损失函处得到,此时损失函数的导数为数的导数为0,得到最终参数得到最终参数w=-1。学习率过大和过小学习率过小学习率过小:收敛速度慢:收敛速度慢学习率过大学习率过大:震荡不收敛:震荡不收敛学习率:有效选取【实践实践】将待优化的参数将待优化的参数W W设置为设置为5 5,损失函数设为,损失函数设为(w+1)(w+1)2 2,使用使用 梯度下降算法,将学习率设为梯度下降算法,将学习率设为0.20.2,迭代,迭代4040轮,得到结果。轮,得到结果。由结果可知,随着损失函数值的减小,由结果可知,随着损失函数值的减小,w无限趋近于无限趋近于-1,模型计算,模型计算
4、推测出最优参数推测出最优参数w=-1。After 30 steps:w is-0.999999,loss is 0.000000.After 31 steps:w is-1.000000,loss is 0.000000.After 32 steps:w is-1.000000,loss is 0.000000.After 33 steps:w is-1.000000,loss is 0.000000.After 34 steps:w is-1.000000,loss is 0.000000.After 35 steps:w is-1.000000,loss is 0.000000.After
5、 36 steps:w is-1.000000,loss is 0.000000.After 37 steps:w is-1.000000,loss is 0.000000.After 38 steps:w is-1.000000,loss is 0.000000.After 39 steps:w is-1.000000,loss is 0.000000.将学习率修改为将学习率修改为1 1:由结果可知,参数由结果可知,参数w w值在波动,不收敛。值在波动,不收敛。After 30 steps:w is-7.000000,loss is 36.000000.After 31 steps:w is
6、 5.000000,loss is 36.000000.After 32 steps:w is-7.000000,loss is 36.000000.After 33 steps:w is 5.000000,loss is 36.000000.After 34 steps:w is-7.000000,loss is 36.000000.After 35 steps:w is 5.000000,loss is 36.000000.After 36 steps:w is-7.000000,loss is 36.000000.After 37 steps:w is 5.000000,loss is
7、36.000000.After 38 steps:w is-7.000000,loss is 36.000000.After 39 steps:w is 5.000000,loss is 36.000000.将学习率修改为将学习率修改为0.00010.0001:由结果可知,损失函数由结果可知,损失函数loss值缓慢下降,值缓慢下降,w值也在小幅度变化,收敛值也在小幅度变化,收敛缓慢。缓慢。After 30 steps:w is 4.962908,loss is 35.556274.After 31 steps:w is 4.961716,loss is 35.542053.After 32 s
8、teps:w is 4.960523,loss is 35.527836.After 33 steps:w is 4.959331,loss is 35.513626.After 34 steps:w is 4.958139,loss is 35.499420.After 35 steps:w is 4.956947,loss is 35.485222.After 36 steps:w is 4.955756,loss is 35.471027.After 37 steps:w is 4.954565,loss is 35.456841.After 38 steps:w is 4.953373
9、,loss is 35.442654.After 39 steps:w is 4.952183,loss is 35.428478.指数衰减学习率指数衰减学习率 指数衰减学习率:学习率随着训练轮数变化而动态更新。指数衰减学习率:学习率随着训练轮数变化而动态更新。【例题例题】修改前面的例题,模型训练过程不设定固定的学修改前面的例题,模型训练过程不设定固定的学习率,使用指数衰减学习率进行训练。其中,学习率初值设习率,使用指数衰减学习率进行训练。其中,学习率初值设置为置为0.10.1,学习率衰减率设置为,学习率衰减率设置为0.990.99。After 30 steps:global step is
10、31.000000,w is-0.983281,learning rate is 0.073230,loss is 0.000280.After 31 steps:global step is 32.000000,w is-0.985730,learning rate is 0.072498,loss is 0.000204.After 32 steps:global step is 33.000000,w is-0.987799,learning rate is 0.071773,loss is 0.000149.After 33 steps:global step is 34.000000
11、,w is-0.989550,learning rate is 0.071055,loss is 0.000109.After 34 steps:global step is 35.000000,w is-0.991035,learning rate is 0.070345,loss is 0.000080.After 35 steps:global step is 36.000000,w is-0.992297,learning rate is 0.069641,loss is 0.000059.After 36 steps:global step is 37.000000,w is-0.9
12、93369,learning rate is 0.068945,loss is 0.000044.After 37 steps:global step is 38.000000,w is-0.994284,learning rate is 0.068255,loss is 0.000033.After 38 steps:global step is 39.000000,w is-0.995064,learning rate is 0.067573,loss is 0.000024.After 39 steps:global step is 40.000000,w is-0.995731,lea
13、rning rate is 0.066897,loss is 0.000018.由结果可以看出,随着训练轮数增加学习率在不断减小,损失函数由结果可以看出,随着训练轮数增加学习率在不断减小,损失函数也在不断减小,逐渐趋近收敛。也在不断减小,逐渐趋近收敛。9.2 滑动平均1.1.MOVING_AVERAGE_DECAYMOVING_AVERAGE_DECAY表示滑动平均衰减率,一般会表示滑动平均衰减率,一般会赋接近赋接近1 1的值;的值;2.2.global_stepglobal_step表示当前训练了多少轮。表示当前训练了多少轮。【例题】在神经网络模型中,将在神经网络模型中,将MOVING_AV
14、ERAGE_DECAYMOVING_AVERAGE_DECAY设置为设置为0.990.99,参数,参数w1w1设置为设置为0 0,w1w1的滑动平均值设置为的滑动平均值设置为0 0。【例题】1.1.开始时,轮数开始时,轮数global_stepglobal_step设置为设置为0 0,参数,参数w1w1更新为更新为1 1,则,则w1w1的滑的滑动平均值为:动平均值为:w1w1滑动平均值滑动平均值=min(0.99,1/10)=min(0.99,1/10)*0+(1 min(0.99,1/10)0+(1 min(0.99,1/10)*1=0.9 1=0.9 2.2.当轮数当轮数global_st
15、epglobal_step设置为设置为100100时,参数时,参数w1w1更新为更新为1010,global_stepglobal_step保持为保持为100100,每次执行滑动平均操作影子值更新,则滑,每次执行滑动平均操作影子值更新,则滑动平均值变为:动平均值变为:w1w1滑动平均值滑动平均值=min(0.99,101/110)=min(0.99,101/110)*0.9+(1 min(0.99,101/110)0.9+(1 min(0.99,101/110)*10=10=0.826+0.818=1.644 0.826+0.818=1.644 3.3.再次运行,参数再次运行,参数w1w1更新
16、为更新为1.6441.644,则滑动平均值变为:,则滑动平均值变为:w1w1滑动平均值滑动平均值=min(0.99,101/110)=min(0.99,101/110)*1.644+(1 min(0.99,101/110)1.644+(1 min(0.99,101/110)*10 10=2.328=2.328 4.4.再次运行,参数再次运行,参数w1w1更新为更新为2.3282.328,则滑动平均值:,则滑动平均值:w1w1滑动平均值滑动平均值=2.956=2.956 5.5.随后每执行一次,参数随后每执行一次,参数w1w1的滑动平均值都向参数的滑动平均值都向参数w1w1靠近。可靠近。可见,滑
17、动平均追随参数的变化而变化。见,滑动平均追随参数的变化而变化。滑动平均模型,就是每次用参数的滑动平均值作为参滑动平均模型,就是每次用参数的滑动平均值作为参数的新值,这样通过控制衰减率来控制参数更新前后数的新值,这样通过控制衰减率来控制参数更新前后之间的差距,从而达到减缓参数的变化值的目的,从之间的差距,从而达到减缓参数的变化值的目的,从而可以使得模型在测试数据上更健壮。而可以使得模型在测试数据上更健壮。总结9.3 过拟合过拟合:过拟合:神经网络模型在训练数据集上的准确率较高,在新的数据进行预神经网络模型在训练数据集上的准确率较高,在新的数据进行预测或分类时准确率较低,说明模型的泛化能力差。测或分类时准确率较低,说明模型的泛化能力差。正则化:正则化:在损失函数中在损失函数中w w的正则项,减小过拟合。的正则项,减小过拟合。使用正则化后,损失函数使用正则化后,损失函数lossloss变为两项之和:变为两项之和:loss=loss(yloss=loss(y与与y_)+REGULARIZERy_)+REGULARIZER*loss(w)loss(w)9.4 正则化计算方法:L1 L1正则化:正则化:=|=|L1 L1正则化:正则化:感谢聆听!感谢聆听!