Machine Learning第五记——HW3、HW4

HW3——Regularization

    对于正则化的使用即是为了缓解训练过程中出现的过拟合现象。本实验即为验证正则化在训练过程中的实际效果。
    下面分别为无正则项的loss计算公式和有正则项的loss计算公式:


    后面带λ的项即为正则化项。这里计算时有一点需要注意,即正则项计算时不计算权重集θ的第一个权重。我理解的原因是:使用正则化来避免过拟合是为了使训练得到的模型不对训练集中的特征值过于拟合,而权重集第一个数值是偏执值,偏执值是不需要与训练样本的特征值进行乘积计算的,而是在特征与权重计算结束后简单加和,所以对于正则项的处理不需要考虑偏执值这个计算结果不会因为特征值改变而使结果改变的参数,因此不需要进行计算。
    HW3之后的训练就是简单的Logistic Regression,最后通过观察有正则项和无正则项的训练结果作出比较。
    下面给出训练结果:
在这里插入图片描述
    结果分别从分类效果、准确率和损失三个方面进行对比,可以看出:在没有正则项时,分类效果更加拟合训练集,而准确率随着迭代次数增加,对于测试集的识别效果后面出现了降低的情况,并且损失也出现了增大的情况,出现了很明显的过拟合的现象;而有正则项的结果则对上述问题都进行了解决,观察损失和准确率图像并没有出现过拟合现象,并且通过分类效果也可以看出它不像无正则化时的曲线那样复杂。
    通过对比可以得出,正则化可以提高模型的泛化能力,大大减少过拟合的现象。

HW4——Neural Networks & Deep Learning

    本次作业主要任务是构建一个三层的神经网络实现手写数字识别,同时实现之前提到的几种优化梯度下降过程的算法:AdaGrad、RMSprop、Momentum、Nesterov Momentum和Adam。
    首先看神经网络的实现过程注意的点。
    1、之前一直进行的是二分类模型,因此使用的激活函数一直是sigmoid,而这次的手写数字识别有10类,因此为实现多分类,这里使用Softmax来处理。同时为了表示每一类并且符合计算机理解,这里分类标签用到了one-hot向量进行表示。
    2、网络为三层,前两层激活函数使用ReLU,最后一层用Softmax实现分类。
    3、需注意反向传播时矩阵的计算
    4、对于SoftmaxWithLoss函数还需进一步解读理解。
    5、使用OrderedDict()函数保证每层网络的顺序。

    接下来比较对不同的优化函数进行训练的结果。
    在一开始不使用梯度下降的优化算法时,对于测试集训练结果可以到97.8%。下面分别针对不同优化函数进行对比:
    1、AdaGrad
    因为不使用优化算法的训练过程中学习率一成不变,到最后接近minimum位置时学习率太大不利于达到最小值,这里的想法是随着迭代次数的增加降低学习率,即减小最后的下降幅度,使其更易接近minimum位置。最后结果为98.17%,确实有所进步。
    2、RMSprop
    因为学习过程中一开始时的下降方向并不一定正确,而AdaGrad考虑了所有的历史梯度,有可能因为一开始错误的参数影响之后的训练,所以这里进行了改进,只选取最近的一段历史梯度,而不是所有的历史梯度。
    3、Momentum
    为防止梯度下降过程中在导数为零点直接停止,此法给训练过程加上了类似运动过程中的惯性的性质,使其即使遇到了导数为零的点,也会继续向前前进一段距离,看能否到达更低点。训练结果发现此法的准确率可以到98.28%,确实可以寻到更低点。
    4、Nesterov Momentum
    这个方法是对Momentum的改进,它会提前计算一个在速度作用后的梯度,类似在其中添加了一个校正因子。最终获得的结果与Momentum相差无几。
    5、Adam
    最后是Adam算法,这个算法综合了Momentum和RMSprop。最后结果也在98%以上。
    综上,进行梯度优化之后,可以使梯度下降时更符合模型本身,随着不断学习而不断改变,可以获得更好的训练结果。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值