《深度学习入门》学习记录 Part3

本文是《深度学习入门》的学习记录,主要复习了神经网络的学习过程,包括梯度法、数值微分计算梯度、计算图的反向传播。还介绍了与学习相关的技巧,如参数更新、权重初始化、批量归一化和过拟合的抑制方法。重点讨论了卷积神经网络及其组件的作用。
摘要由CSDN通过智能技术生成

这周主要是复习了《深度学习入门》的第四、五章节,并快速浏览了剩下的第六、七、八章节。

复习「神经网络的学习」

把神经网络的学习的过程又熟悉了一遍,并且把相关的方法大致写了出来。

神经网络的学习过程

通过「梯度法」,不断的沿着「损失函数」关于「权重参数」的「梯度」方向前进,找到「损失函数」的最小值,从而得到最优的「权重参数」。
神经网络的学习

利用数值微分计算梯度的方法进行神经网络的学习

  1. 选取部分训练数据进行推理——Mini-batch
  2. 利用「数值微分」方法计算「梯度」
    1. predict:利用「激活函数」由输入x计算神经网络的输出y
    2. loss:利用「损失函数」由神经网络的输出y和监督数据t计算「损失函数」
    3. numerical_gradient:利用数值微分由「损失函数」和「权重参数」计算「损失函数」关于「权重参数」的「梯度」
  3. 通过「梯度下降法」更新「权重参数」
    1. 利用「梯度下降法」由「学习率」和「梯度」来更新「权重参数」
  4. 通过测试数据进行精度评价

数值微分梯度法的实现

计算图的反向传播:

计算图的优点:可以通过「正向传播」和「反向传播」高效的计算各个变量的「导数」值。
计算图的练习

Sigmoid激活函数的反向传播

集约化的计算图可以省略反向传播中的计算过程,因此有更高的计算效率。Sigmoid层的反向传播,只根据正向传播的输出y就能计算出来。
Sigmoid激活函数层的反向传播

仿射变换Affine层的反向传播

Affine层的反向传播

Softmax-with-Loss层的反向传播

Softmax层只用在神经网络的学习阶段,一般作为神经网络的最后一层。得益于特意设计的损失函数(交叉熵误差),使得Softmax层的反向传播的结果为(y-t),可以来判断神经网络的输出(即Softmax的输出y)是否接近监督标签(t),从而得到最优的「权重参数」。
Softmax-with-Loss层的反向传播

第六章:与学习相关的技巧

  1. 参数的更新
  2. 权重的初始值
  3. Batch Normalization
  4. 过拟合
  5. 超参数的验证

参数的更新

  1. SGD(随机梯度下降法):使用参数的梯度(导数),沿梯度方向更新参数,并重复这个步骤,从而逐渐靠近最优参数。
    1. 优点:简单,容易实现
    2. 缺点:非常低效,因为梯度的方向并没有指向最小值的方向
  2. Momentum(动量):在SGD的基础上,增加一个变量v,使得在梯度方向上有更快的变化。
  3. AdaGrad(Adaptive Gradient):通过学习率衰减的方法,为参数的每个元素适当的调整学习率,与此同时进行学习。
  4. Adam:融合了Momentum和AdaGrad方法。

权重的初始值

神经网络的学习中,权重的初始值非常重要,经常关系到神经网络的学习能否成功。
为了提高「泛化能力」,常会用到「权值衰减」的技巧,即以减小权重参数的值为目的进行学习,能抑制过渡拟合。

最佳实践:

  • 激活函数为ReLU:权重初始值使用「He初始值」
  • 激活函数为Sigmoid等S型曲线函数:权重初始值使用「Xavier初始值」

Batch Normalization

Batch Norm的思路是调整各层的激活值分布使其拥有适当的广度,方式是向神经网络中插入对数据分布进行正规化的Batch Normalization层。
它是以进行学习时的mini-batch为单位,按mini-batch进行正规化,即进行使数据分布的均值为0,方差为1的正规化。
有以下优点:

  1. 可以使学习快速进行(增大学习率)
  2. 不那么依赖初始值
  3. 抑制过拟合

过拟合

过拟合是指只能拟合训练数据,但不能很好的拟合不包含在训练数据中的其他数据的状态,一般是由于模型拥有大量参数、表现力强和训练数据少导致的。
抑制过拟合的方法:

  1. 权值衰减:通过在学习过程中对大的权重进行惩罚,一般是为损失函数加上权重的「平方范数」(L2范数)。该方法对复杂的网络模型不适用。
  2. Dropout方法:在学习的过程中随机删除神经元的方法。

超参数的验证

待补充

卷积神经网络(Convolutional Neural Network, CNN)

在神经网络中新增了「卷积层」(Convolution)和「池化层」(Pooling):

  1. 卷积层:在卷积层进行的处理就是「卷积运算」,相当于图像处理中的「滤波器运算」。
    • 填充(padding):向输入数据的周围填入固定的数据,使得卷积运算可以在保持空间大小不变的情况下将数据传给下一层。
    • 步幅(stride):应用滤波器的位置间隔
  2. 池化层:缩小高、长方向上的空间的运算,一般是指Max池化。其特征是:
    • 没有要学习的参数
    • 通道数不会发生变化
    • 对微小的位置变化具有鲁棒性

接下来的学习内容

  1. 重点学习「卷积神经网络」
  2. 继续调试学习神经网络的学习中的TwoLayerNet的代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值