第5章 - 卷积神经网络 - 视频
本文最后更新于:3 个月前
[√] 5.1 - 卷积
[√] 目录
[√] 卷积
[√] 用卷积替代全连接
[√] 卷积算子
[√] 二维卷积算子
[√] 二维卷积算子的参数量
alec:
L层得到30×30个神经元,
使用全连接的话则需要30×30×32×32≈900000=90万个参数
使用卷积的话,则需要的参数量为9个(不同的神经元参数共享、单个神经元局部连接,通过这两个来节省参数)
[√] 二维卷积算子的计算量
[√] 感受野
[√] 步长
[√] 零填充
[√] 卷积的变种
[√] 常用的等宽卷积
alec:
等宽卷积:P = (U - 1)/ 2
常用等宽卷积的有:resnet、vgg
等宽卷积举例:卷积核大小3×3,填充P = (3-1)/ 2 = 1
[√] 带步长和零填充的二维卷积算子
[√] 使用卷积完成图像边缘检测任务
alec:
拉布拉斯算子是一个二维微分算子,能够对边缘进行提取
[√] 拉普拉斯算子
[√] 5.2 - 卷积神经网络的基础算子
[√] 卷积神经网络的基础算子
[√] 卷积神经网络
[√] 卷积层算子
[√] 一张输出特征图的计算
alec:
输出通道数,等于卷积核的个数,也等于输出特征图的深度
输入特征图的深度一般定义为D,输出特征图的深度一般定义为P
[√] 卷积层算子
[√] 多张输出特征图的计算
alec:
上面这个一层的卷子算子,out_channels为3,表示本层防止了3组卷积核,in_channels为2,表示上一层数据有2层,因此本层的每组卷积核要设置2层,每个卷积核的长宽为kernel_size的平方
[√] 多通道卷积层算子的参数量
alec:
参数量:P×D×U×V + P
[√] 多通道卷积层算子计算量
alec:
一组卷积核对应一个偏置参数
[√] 汇聚层算子
[√] 汇聚层算子
alec:
汇聚层的参数量都是0,没有需要学习的参数。
汇聚层的计算量,最大汇聚为0,平均汇聚为M‘×N’×P,即一个输出像素对应1计算量,因为输出有P层特征图,每个特征图为M’×N‘,因此平均汇聚的计算量为如上
汇聚层帮助减少计算量,但是不会帮助减少参数量
[√] 5.3 - 基于LeNet实现手写数字识别
[√] 机器学习时间5要素
[√] 数据
[√] 数据集介绍
[√] 数据集分布
[√] 数据形状
[√] 数据可视化
[√] 数据预处理
resize + normalize
[√] 数据集封装
alec:
数据集类继承Dataset类,类中有__getitem__方法和--len--方法,其中getitem方法,根据索引获取数据,然后对数据预处理,然后返回处理后的数据和标签
[√] 模型构建
[√] LeNet-5
alec:
随着网络的加深,虽然特征图长度越来越小,甚至变成1×1的,但是因为高层的一个像素(神经元)对应的输入图像的感受野非常大,所以 即使一个像素,也包含了大的特征。同时随着深度加深,通常特征通道数即特征图像个数会增加。最后通过全连接层将这些多个高级特征全连接用于分类等任务。
一开始,输入图像的三个通道,只是单纯的三个通道,但是在卷积网络中,每一层的多个通道都是对应的多种特征图。、
全连接层对比卷积层的不足在于,全连接无法提取图像的局部不变性特征
卷积之后,先激活,然后再汇聚
卷积层进入全连接之前,需要做一个reshape操作,因为卷积得到的是[B,C,H,W]形状的特征图,全连接需要输入一维列向量,因此需要将[B,C,H,W]转为[B,C×H×W]。
[√] LeNet-5的参数量
[√] LeNet-5的计算量
alec:
flops方法可以计算模型的计算量,就不用自己手动算了
[√] 模型运算速度对比
[√] 模型训练
[√] 模型训练
[√] 模型训练与评价
[√] 训练过程可视化 && 模型评价
[√] 5.4 - 基于残差网络实现手写数字识别
[√] 残差网络
alec:
残差网络中,将目标函数分为了两部分:恒等函数 + 残差函数
残差的思想在Gradient Boosting也有
[√] 残差单元
alec:
较深的网络中,残差单元的结构变成了中间细、两头粗的沙漏结构
[√] 1×1卷积
[√] ResNet18
alec:
第一种残差单元:通道数不变
第二种残差单元:通道数翻倍(在直连边通过1×1卷积调整通道数)
即特征图的数量不变或者翻倍
残差单元的结构:
卷积+BN+ReLU
卷积+BN
(残差边 + 直连边)->ReLU
直连边 和 残差变 相加之后,再通过非线性激活函数
BN,BatchNorm2D:
- 根据当前批次数据按通道计算的均值和方差进行归一化
[√] ResNet18各模块
[√] ResNet18的参数量和计算量
[√] 模型训练
[√] 没有残差连接的ResNet18
alec:
self.short表示的是直连边
paddle.sumary()方法用来计算参数量
[√] 模型评价
[√] 5.5 - ResNet18完成图像分类任务
[√] 数据处理
[√] 数据集介绍
[√] 数据读取
[√] 数据可视化
[√] 构建Dataset类
[√] 模型构建与训练
[√] 模型构建
[√] 模型训练
[√] 训练结果
[√] 结果可视化 && 评价 && 预测
alec:
weight_decay用来L2正则化