第二次帖子
卷积神经网络基础
学习内容
1. 为什么要“深度学习”
深度学习可以用更多的数据或是更好的算法来提高学习算法的结果。深度学习在大数据集上的表现比其他机器学习(ML)方法都要好。深度学习探索了神经网络的概率空间,与其他工具相比,深度学习算法更适合无监督和半监督学习,更适合强特征提取,也更适合于图像识别领域、文本识别领域、语音识别领域等。深度学习可消除一部分与机器学习相关的数据预处理过程,可以提取和处理非结构化数据,如文本和图像,还可以自动提取特征,消除一些对专家的依赖。
1.1 全连接网络问题
全连接网络:链接权过多,算的慢,难收敛,同时可能进入局部极小值,也容易产生过拟合问题。
e.g. 输入为1000×1000图像,隐含层有1M个节点,则输入->隐含层间有1×1012数量级参数
如何解决
解决算的慢问题:减少权值连接,每一个节点只连到上一层的少数神经元,即局部连接网络。
解决难收敛、算的慢问题:权值过多极易产生过拟合。如何消除?回想人类解决思路:信息分层处理,每一层在上层提取特征的基础上获取进行再处理,得到更高级别的特征。
1.2 深度学习平台简介
1.3 Pytorch简介
PyTorch是一个Python的深度学习库。它最初由Facebook人工智能研究小组开发,而优步的Pyro软件则用于概率编程。除了Facebook之外,Twitter、GMU和Salesforce等机构都采用了PyTorch。
Pytorch与TensorFlow2对比
1.4 PyTorch基本使用——基本概念
张量(Tensor)
是一个物理量,对高维 (维数 ≥ 2) 的物理量进行“量纲分析” 的一种工具。简单的可以理解为:一维数组称为矢量,二维数组为二阶张量,三维数组为三阶张量。
计算图
用“结点”(nodes)和“线”(edges)的有向图来描述数学计算的图像。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入的起点/输出的终点,或者是读取/写入持久变量的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。
➢ 使用 tensor 表示数据
➢ 使用 Dataset、DataLoader 读取样本数据和标签
➢ 使用变量 (Variable) 存储神经网络权值等参数
➢ 使用计算图 (computational graph) 来表示计算任务
➢ 在代码运行过程中同时执行计算图
简单示例
构建简单的计算图,每个节点将零个或多个tensor作为输入,产生一个
tensor作为输出。PyTorch中,所见即为所得,tensor的使用和numpy中的多
维数组类似:
2. 卷积神经网络基础
2.1 进化史
2.2 基本概念
2.2.1 特征提取
填充
也就是在矩阵的边界上填充一些值,以增加矩阵的大小,通常用0或者复制边界像素来进行填充。
步长
如图步长为2
多通道卷积
2.2.2 池化(Pooling)
思想:使用局部统计特征,如均值或最大值。解决特征过多问题
2.2.3 卷积神经网络结构
构成:由多个卷积层和下采样层构成,后面可连接全连接网络。
卷积层:𝑘个滤波器。
下采样层:采用mean或max。
后面:连着全连接网络。
2.3 误差反向传播
该部分可参考卷积神经网络的误差反向传播算法实现
3. LeNet-5网络
3.1 网络介绍
网络提出
网络结构
3.2 网络结构详解
该部分内容可以参考
深度学习 — 卷积神经网络CNN(LeNet-5网络详解)
LeNet-5网络解读及代码实现
4. 基本卷积神经网络
4.1 AlexNet
网络提出
网络结构
网络结构详解
可以参考CNN经典网络模型(二):AlexNet简介及代码实现(PyTorch超详细注释版)
4.2 VGG-16
网络提出
网络结构
网络结构详解
可以参考深度学习之学习(1-1) VGG16网络结构详解
4.3 残差网络
为什么需要残差网络?
残差网络的优势
梯度消失问题
残差块与构建残差网络
可以参考【动手学深度学习PyTorch版】22 残差网络 ResNet
5. 常用数据集
可以参考神经网络目前常用的公开数据集