文章目录
- 1. 如何学会深度学习模型设计与优化
- 1.1 深度学习之模型设计
- 1.1.1 模型深度——性能提升的关键
- 1.1.2 通道维度变换——基础设计单元
- 1.1.3 模型宽度——模型表达能力与压缩关键
- 1.1.4 残差网络——深层模型训练关键技术
- 1.1.5 分组网络——模型压缩核心技术
- 1.1.6 多尺度与非正常卷积——复杂任务模型性能提升的核心技术
- 1.1.7 动态推理与注意力机制网络——模型优化核心技术
- 1.1.8 生成对抗网络——新一代深度学习基础技术
- 2. 深度学习之模型优化
- 2.1 工业级网络的要求
- 2.2 模型精简与优化的技术要点
- 2.2.1 卷积核的使用
- 2.2.2 卷积拓扑结构设计
- 2.2.3 迁移学习
- 2.2.4 自动化搜索
- 3. 如何设计性能更强的CNN结构
- 3.1 网络深度的设计
- 3.1.1 为什么加深可以提升性能
- 3.1.2 从什么样的深度开始
- 3.1.3 网络加深容易出现的问题
- 3.2 网络宽度的设计
- 3.2.1 为什么需要足够的宽度——更多的宽度可以学习到更加丰富的特征
- 3.2.2 网络宽度的特点
- 3.2.3 宽度设计原则
- 3.3 Dropout和BN层设计
- 3.3.1 Dropout的好处
- 3.3.2 使用Dropout的问题
- 3.3.3 BN为什么好
- 3.3.4 BN使用注意事项
- 3.4 卷积核大小、步长、池化的设计
- 3.4.1 步长和池化如何影响性能
- 3.4.2 如何选择池化方案
- 3.4.3 如何设计步长
- 3.4.4 卷积核大小如何影响模型性能
- 3.4.5 如何设计卷积核大小
- 3.5 残差结构的理解和设计
- 3.5.1 残差结构为什么有效
- 3.5.2 如何设计残差网络
- 3.6 多尺度与信息融合
- 3.6.1 如何设计多尺度网络
- 3.7 其他
- 3.7.1 Attention
- 3.7.2 感受野控制
- 3.7.3 AutoML
- 3.8 GAN网络
- 4.如何获得更加高效的CNN模型结构
- 4.1 什么是更加高效的CNN网络
- 4.2 通道补偿与通道重用
- 4.3 分组卷积
- 4.4 剪枝
- 4.5 量化
- 4.6 知识蒸馏
- 4.7 动态推理
注:
记录
视频课程中的一些知识。
1. 如何学会深度学习模型设计与优化
1.1 深度学习之模型设计
1.1.1 模型深度——性能提升的关键
1.1.2 通道维度变换——基础设计单元
1.1.3 模型宽度——模型表达能力与压缩关键
增加模型宽度:
(1)增加通道数
(2)增加分支,如:由一路变成多路
1.1.4 残差网络——深层模型训练关键技术
1.1.5 分组网络——模型压缩核心技术
1.1.6 多尺度与非正常卷积——复杂任务模型性能提升的核心技术
1.1.7 动态推理与注意力机制网络——模型优化核心技术
1.1.8 生成对抗网络——新一代深度学习基础技术
2. 深度学习之模型优化
2.1 工业级网络的要求
2.2 模型精简与优化的技术要点
2.2.1 卷积核的使用
(1)全连接与全局池化
(2)小卷积替换大卷积
(3)维度变换
2.2.2 卷积拓扑结构设计
2.2.3 迁移学习
2.2.4 自动化搜索
3. 如何设计性能更强的CNN结构
3.1 网络深度的设计
3.1.1 为什么加深可以提升性能
3.1.2 从什么样的深度开始
(1)超过30层的网络很少见
(2)通常选择深度可以从5~8层开始
3.1.3 网络加深容易出现的问题
3.2 网络宽度的设计
3.2.1 为什么需要足够的宽度——更多的宽度可以学习到更加丰富的特征
图中左边部分表示AlexNet第一个卷积层96个通道的可视化,可见:
有的通道的是提取的图片的形状特征,有的则是颜色信息。
所以如果没有足够的通道,则提取不了那么多特征。
3.2.2 网络宽度的特点
(1)模型宽度的增加,其计算量也会指数增加。
(2)提高网络宽度可以提高模型性能,但在达到一定临界点后会饱和。
3.2.3 宽度设计原则
3.3 Dropout和BN层设计
3.3.1 Dropout的好处
(1)增加泛化能力
(2)缓解ReLU的dead issue
(3)减少了神经元之间的complex co-adaption
图中a表示有dropout,其神经元表现更加丰富,图b表示没有dropout,其神经元表示则非常少。
3.3.2 使用Dropout的问题
dropout相当于增加了噪声,造成了梯度损失,所以需要使用更大的学习率和动量项,训练更久才能收敛。
3.3.3 BN为什么好
3.3.4 BN使用注意事项
3.4 卷积核大小、步长、池化的设计
3.4.1 步长和池化如何影响性能
(1)一般第一个卷积层不超过2
3.4.2 如何选择池化方案
3.4.3 如何设计步长
3.4.4 卷积核大小如何影响模型性能
3.4.5 如何设计卷积核大小
3.5 残差结构的理解和设计
3.5.1 残差结构为什么有效
3.5.2 如何设计残差网络
3.6 多尺度与信息融合
3.6.1 如何设计多尺度网络
3.7 其他
3.7.1 Attention
3.7.2 感受野控制
3.7.3 AutoML
3.8 GAN网络
4.如何获得更加高效的CNN模型结构
4.1 什么是更加高效的CNN网络
4.2 通道补偿与通道重用
4.3 分组卷积
分组卷积可以大幅降低计算量。
分组卷积的类型有:
(1)
(2)
(3)
(4)
(5)
4.4 剪枝
4.5 量化
4.6 知识蒸馏
4.7 动态推理