Datawhale X李宏毅苹果书 AI夏令营Task3

批量归一化

作用:防止各参数对损失的斜率过大——优化

斜率过大原因:

训练数据的输入特征中不同维度的值差距很大

解决:

特征归一化

方法:

Z值归一化,即标准化。

  1. 把不同笔数据即不同特征向量,同一个维度里面的数值,把它取出来,对于每个维度 i,计算其平均值 m i m_i mi和标准差 σ i \sigma_i σi
  2. x ∼ i r ← x i r − m i σ i \overset{\sim}{x}^r_i \leftarrow \dfrac{x^r_i - m_i}{\sigma_i} xirσixirmi
  3. 效果:所有特征不同维度上面的数值就会平均是0,方差为1,这一维度的数值的会分布在0周围,从而在使用梯度下降时损失收敛更快
  4. 每经过一层神经网络都要做归一化避免数值分布的差异较大,在激活函数之前或之后都可以

当训练数据过多时,只考虑对一批数量较多、分布均匀的数据做归一化,并且进行如下操作:

z ^ i = γ ⊙ z ∼ i + β \hat z^i = \gamma \odot \overset{\sim}{z}^i + \beta z^i=γzi+β

⊙ \odot 代表逐元素的相乘

γ \gamma γ 开始设置成值为1的向量, β \beta β是值全部为0的向量,随着训练的进行找到较好的误差表面时,再把 γ , β \gamma,\beta γβ慢慢地加进去,调整 z ∼ \overset{\sim}{z} z的分布,避免归一化后 z ∼ \overset{\sim}{z} z平均值为0导致网络隐藏层的输出平均值是0的限制

实际测试场景:无法用一个批量计算 μ , σ \mu,\sigma μσ

解决办法:把训练时每一个批量计算出来的 μ , σ \mu,\sigma μσ拿出来算移动平均

μ ˉ ← p μ ˉ + ( 1 − p ) μ t \bar \mu \leftarrow p\bar \mu + (1 - p)\mu^t μˉpμˉ+(1p)μt

批量归一化实验结果

卷积神经网络

典型的网络架构,常用与图像分类等任务

机器可以将图像描述为三维的张量——宽,高,通道数目

模型的参数越多,弹性越大,同时越容易过拟合。为了避免过拟合,不需要全连接

将不同的分类结果表示成不同的独热向量,其长度决定了模型可以识别出多少不同种类的东西

  1. 观察1:检测模式不需要整张图像
    判断某个模式是否出现时,神经元可以通过局部的像素来判断。这类神经元不需要把整张图像当作输入,只需要把图像的一小部分当作输入,就足以让它们检测某些特别关键的模式是否出现

  2. 简化1:感受野
    给每个神经元设定一个区域,每个神经元都只关心自己的感受野(receptive field)里面发生的事情

    如图,蓝色神经元会把该感受野里面的3x3x3的数值“拉直”变成一个长度时3x3x3=27维的向量,再把这27维的向量作为神经元的输入。这个神经元会给 27 维的向量的每个维度一个权重,所以这个神经元有 3 × 3 × 3 = 27 个权重,再加上偏置(bias)得到输出。这个输出再送给下一层的神经元当作输入。

    感受野彼此之间是可以重叠的,鉴于没办法检测所有的模式,所以同个范围可以有多个不同的神经元, 即多个神经元可以去守备同一个感受野。

  3. 感受野的设计

    • 感受野的范围有大有小,三个通道可以按需考虑
    • 感受野不一定要相连
    • 常见的感受野设定方式就是核大小为 3 × 3,一般同一个感受野会有一组神经元去守备这个范围,比 如 64 个或者是 128 个神经元去守备一个感受野的范围。
  4. 不同感受野之间的关系
    感受野一定的量移动,跟另一个感受野之间有重叠。移动的量称为步幅。因为希望感受野跟感受野之间 是有重叠的,所以步幅往往不会设太大,一般设为 1 或 2

    如果有一个模式正好出现在两个感受野的交界上面,就没有任何神经元去检测它,这个模式可能会丢失,所以希望感受野彼此之间有高度的重叠

    考虑可能在图像边界出现的模式或感受野移动超出了图像的范围,进行填充操作。把感受野超出图像的范围之外的值取零,或者补整张图像里面所有值的平均值或者把边界的这些数字拿出来补没有值的地方。

  5. 观察2:同样的模式可能会出现在图像的不同区域

    同样的模式或许会出现在不同的位置,但因为感受野是盖满整个图像的,所以它一定会落在某一个感受野里面

  6. 简化2:共享参数
    让不同感受野的神经元共享参数,即参数共享,两个神经元的权重完全是一样的

    参数相同的神经元的神经元的输出不一定是一样的,因为不同感受野的输入不一样
    在图像识别中,,使用滤波器(filter)来简化

  7. 简化1和2的总结

    • 全连接网络是弹性最大的。全连接网络可以决定它看整张图像还是只看一个范围,如果它只想看一个范围,可以把很多权重设成 0
    • 全连接层可以自己决定看整张图像还是一个小范围
    • 全连接层加上感受野的概念以后只能看一个小范围,网络的弹性是变小的
    • 参数共享又进一步限制了网络的弹性
    • 感受野加上参数共享就是卷积层,使用卷积层的网络就叫卷积神经网络——偏差比较大。
      模型偏差大不一定是坏事,因为当模型偏差大,模型的灵活性较低时,比较不容易过拟合。
      卷积层是专门为图像设计的,感受野、参数共享都是为图像设计的。虽然卷积神经网络模型偏差很大,但用在图像上不是问题。如果把它用在图像之外的任务,就要仔细想想这些任务有没有图像用的特性。
  8. 滤波器扫描
    假设滤波器里面的数值已经找出来了,对其感受野里面的输入进行计算,再按步幅移动,扫描整张图像,得到一组数值,称为特征映射。多个滤波器进行扫描,得到多个特征映射,可以看成将其是另外一张图像,但通道数目为滤波器的数目

    卷积层可以叠很多层,但每层输入的高度必须设为前一层滤波器的数目
    因为每个特征映射都考虑了超出其滤波器大小的范围,因此当网络叠得够深时,可以检测到比较大的模式

    把滤波器扫过图像就相当于不同的感受野神经元可以共用参数,这组共用的参数就叫做一个滤波器。

  9. 观察3:下采样不影响模式检测
    把图像偶数的列都拿掉,奇数的行都拿掉,图像变成为原来的 1/4,但是不会影响里面是什么东西。

  10. 简化3:汇聚
    每个滤波器都产生一组数字,要做汇聚的时候,把这些数字分组,可以 2 × 2 个一组,3 × 3、4 × 4 也可以,可以人为决定
    最大汇聚:每一组里面选一个代表,选的代表就是最大的一个
    平均汇聚:取每一组的平均值
    做完卷积以后,往往后面还会搭配汇聚,汇聚就是把图像变小。做完卷积以后会得到一张图像,这张图像里面有很多的通道。做完汇聚以后,这张图像的通道不变。

    汇聚对于模型的性能(performance)可能会带来一点伤害
    汇聚最主要的作用是减少运算量,通过下采样把图像变小,从而减少运算量
    如果做完几次卷积和汇聚以后,把汇聚的输出做扁平化(flatten),再把这个向量丢进全连接层里面,最终还要过个 softmax 来得到图像识别的结果。这就是一个经典的图像识别的网络,里面有卷积、汇聚和扁平化,最后再通过几个全连接层或 softmax 来得到图像识别的结果。

  11. 卷积神经网络的应用:下围棋
    下围棋就是一个有 19 × 19 个类别的分类问题,可以把一个棋盘表示成一个 19 × 19 维的向量,网络会输出 19 × 19个类别中的最好类别,据此选择下一步落子的位置。这个问题可以用一个全连接网络来解决,但用卷积神经网络的效果更好。
    但汇聚对于下围棋这种精细的任务并不实用,下围棋时随便拿掉一个列拿掉一个行,整个棋局就不一样。
    AlphaGo 把一个棋盘看作 19 × 19 × 48 大小的图像。接下来它有做零填充。它的滤波器的大小是 5 × 5,然后有 k = 192 个滤波器,k 的值是试出来的,它也试了128、256,发现 192 的效果最好。这是第 1 层,步幅 =1,使用了 ReLU。在第 2 层到第 12 层都有做零填充。核大小都是 3 × 3,一样是 k 个滤波器,也就是每一层都是 192 个滤波器,步幅一样设 1,这样叠了很多层以后,因为是一个分类的问题,最后加上了一个 softmax,没有用汇聚,所以这是一个很好的设计类神经网络的例子。

  12. 缺点:不能够处理图像放大缩小或者是旋转的问题
    假设图像里面的物体都是比较小的,当卷积神经网络在某种大小的图像上面学会做图像识别,但物体放大,它的性能就会降低不少,卷积神经网络并没有想像的那么强。因此在做图像识别的时候往往都要做数据增强。所谓数据增强就是把训练数据每张图像里面截一小块出来放大,让卷积神经网络看过不同大小的模式;把图像旋转,让它看过某一个物体旋转以后长什么样子,卷积神经网络才会做到好的结果。卷积神经网络不能够处理缩放(scaling)跟旋转(rotation)的问题,但 SpecialTransformer Layer 网络架构可以处理这个问题。

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值