Datawhale X 李宏毅苹果书 AI夏令营 第五期 深度学习(进阶班)Task03 笔记分享

文章目录

Task3-1:《深度学习详解》- 3.7 批量归一化(8页+31分钟)

Part01:视频笔记

Batch Normalization(批量归一化):

当error surface比较崎岖时,可以绕过去,也可以考虑把山铲平
即使误差表面像碗状,是一个convex function,想尽可能减小损失值也很困难

w 1 w_1 w1增加一点变化 Δ w 1 \Delta w_1 Δw1,损失值也会有相应的变化:
什么时候 Δ L \Delta L ΔL变化会很大:
  • 当x(输入)比较小的时候;反之,如果x比较大,那么L的变化就比较小;
    此时,在不同方向上斜率/坡度差异很大
    ——让不同的dimension上的斜率都很小
Feature Normalization(特征归一化):

x ~ i r ← x i r − m i σ i \tilde{x}_i^r \leftarrow \frac{x_i^r-m_i}{\sigma_i} x~irσixirmi
归一化计算完成后,这个维度上的数值均值为0方差是1——形成一个比较好的误差表面;
可以给 w i w^i wi Z i Z^i Zi也使用归一化;
归一化在激活函数前后操作差距不大

计算 Z i Z^i Zi的归一化:

μ = 1 3 ∑ i = 1 3 z i \mu =\frac13 \sum_{i=1}^3z^i μ=31i=13zi
σ = 1 3 ∑ i = 1 3 ( z i − μ ) 2 \sigma = \sqrt{\frac13 \sum_{i=1}^3 (z^i - \mu)^2} σ=31i=13(ziμ)2
z ~ i = z i − μ σ \tilde{z}^i = \frac{z^i-\mu}{\sigma} z~i=σziμ
μ \mu μ σ \sigma σ是由 z i z^i zi计算出来的,当 z 1 z^1 z1发生变化,后续的 z ~ i \tilde{z}^i z~i以及在之后的数据都会受到影响发生变化;

新的问题:数据集很大,GPU放不下那么多数据去计算 μ \mu μ σ \sigma σ

适用于batch size比较大的时候(如果batch size较小,无法计算出准确的 μ \mu μ σ \sigma σ
z ~ i \tilde{z}^i z~i的基础上进行新运算: z ^ i = γ ⊙ z ~ i + β \hat{z}^i=\gamma \odot \tilde{z}^i + \beta z^i=γz~i+β
其中 ⊙ \odot 代表逐元素相乘,而 γ \gamma γ β \beta β可以被视作网络参数,可以被学习出来
初始化设 γ \gamma γ是一个值全为1的向量,而 β \beta β是一个初始值全为0的向量

测试时的批量归一化:如果测试时没有批量(batch),又该如何计算;

PyTorch处理方法:由训练时的每个批量的 μ \mu μ σ \sigma σ来计算moving average(移动平均): μ ˉ ← p μ ˉ + ( 1 − p ) μ t \bar{\mu} \leftarrow p\bar{\mu}+(1-p)\mu^t μˉpμˉ+(1p)μt
p是一个超参数(需要提前设定)

Internal Convariate Shift(内部协变量偏移):

在这里插入图片描述

批量归一化使得 a a a a ′ a' a有近似特征,但一些实验数据并不支持;
但批量归一化可以改善error surface的崎岖形状

Task3-2:《深度学习详解》- 4.1&2&3&4 卷积神经网络-上(8页+26分钟)

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

常用于Image Classification(图像识别)
流程:将一张图片输入进模型中,得到输出 y y y,将起于 y ^ \hat{y} y^比较,不断优化模型

  • y ^ \hat{y} y^的dimensions代表着这个模型最多可以识别多少种物品
如何将一张图片输入进模型中:

将图片视作一个3-D tensor(三维张量):通道数(channel)
展开张量后每个数值代表着一个像素中某个通道的强度(intensity)

如果使用全连接层(Fully Connected Network),由于输入很多,那么类似于weight的参数也很多;

参数多会导致调用数据困难;
同时,较多的参数也会使得模型更具有弹性,容易导致训练过拟合

识别一些关键图案(critical patterns):

不需要Nerual去识别完整的图片——不需要输入整张图片,只需要将图片的部分输入;

简化1:receptive field(每个神经元只需要关注小范围里的数据
receptive field(感受野):

不同神经元的感受野可以重叠,甚至可以相同;
可以只包含个别通道;
不一定是正方形,可以使长方形;

最经典的感受野:包含所有的通道——可以用长宽来描述感受野——kernel size

Stride:(步幅)移动感受野的距离(不要太大),最好两两之间存在重叠
Padding:(填充)有各种不同的填充方法;
——最终结果整张图片都被感受野覆盖

相似或者相同的图案出现在不同的区域:

要为每个感受野设置识别某一类别“A”的神经元(detector)吗?

简化2:让不同感受野共享参数(parameter sharing)——两个神经元的权重一样

但是同一感受野的不同神经元是不能共享参数的(否则输入、参数相同,模型输出也相同)
不同的感受野中相对应的神经元会进行参数的共享——这样的参数叫做滤波器(filter)

Task3-3:《深度学习详解》- 4.5&6&7&8 卷积神经网络-下(8页+30分钟)

Part01:视频笔记

卷积层的优势:

全连接层(弹性最大);
感受野(弹性降低);
参数共享(弹性进一步降低);
卷积层=全连接层+感受野+参数共享

卷积神经网络有着很大的模型偏差(Model Bias)——专精于图像任务
而全连接层样样能行,样样不精;

特征映射(Feature Map):当一张图像通过卷积层中的滤波器时,就会产生一个特征映射。卷积层中多少个滤波器就生多少组数字。

filter的高度是对应输入图像的channel数;
不用扩大kernel size是否需要大一点来识别较大的物品:
可以通过叠加卷积神经网络的层数俩使其检测到较大的模式;

卷积层不同的描述方式:
Neuron VersionFilter Version
每个神经元只需要考虑一个感受野有一组过滤器用于识别小型模式
不同感受野的对应神经元会共享参数每个过滤器会和整张输入图片卷积操作
下采样(downsampling/subsampling):去除图像的偶数列和奇数行,使得新图像变为原来的1/4。
简化3:Pooling(汇聚)——Max Pooling(最大汇聚)

汇聚操作面向滤波器产生的一组数字,自由地将数字分为若干组,最大汇聚就是从每一组中选出最大的那个数字。
除了最大汇聚外,还有平均汇聚(mean pooling)
(卷积+汇聚) × n \times n ×n+扁平化(flatten)+全连接层+softmax—>图像识别的模型

CNN不擅长面对放缩和旋转(需要数据增强操作)
  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值