一、深度学习平台
张量(Tensor)
是一个物理量,对高维(维数 ≥ 2) 的物理量进行“量纲分析” 的一种工具。简单的可以理解为:一维数组称为矢量,二维数组为二阶张量,三维数组为三阶张量
计算图
- 用“结点”(nodes)和“线”(edges)的有向图来描述数学计算的图像。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入的起点/输出的终点,或者是读取/写入持久变量的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输“size可动态调整”的多维数据数组,即“张量”(tensor)
PyTorch基本使用
- 使用 tensor 表示数据
- 使用 Dataset、DataLoader 读取样本数据和标签
- 使用变量 (Variable) 存储神经网络权值等参数
- 使用计算图 (computational graph) 来表示计算任务
- 在代码运行过程中同时执行计算图
二、全连接网络
定义
- 全连接网络由多个神经元组成,神经元之间的连接是全连接的,每个神经元都与上一层的所有神经元相连。全连接网络是一种前馈神经网络,输入只能从输入层进入,输出只能从输出层输出。其主要作用是进行分类和回归,基本结构由多个层组成,每一层都由多个神经元组成。最常见的结构是输入层、隐藏层和输出层。
常见结构输
- 入层、隐藏层和输出层。其中输入层和输出层的神经元数量由问题本身决定,隐藏层的神经元数量通常由试验确定。每个神经元都有一个激活函数,用于对输入的信号进行处理,产生输出信号
弊端
- 链接权过多,算的慢,难收敛,同时可能进入局部极小值,也容易产生过拟合问题。
解决方法
- 减少权值连接,每一个节点只连到上一层的少数神经元,即局部连接网络。消除过拟合,采用信息分层处理,每一层在上层提取特征的基础上获取进行再处理,得到更高级别的特征。
三、卷积神经网络
- 卷积神经网络的研究始于20世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络。在21世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域。
基本概念
特征提取
- 提取局部特征。
填充 - 在矩阵的边界上填充一些值,以增加矩阵的大小,通常用0或者复制边界像素来进行填充。
步长 - 步长决定了卷积核在输入数据上的滑动间隔,从而影响输出特征图的大小。
多通道卷积
池化 - 使用局部统计特征,如均值或最大值。解决特征过多问题。
卷积神经网络结构
- 由多个卷积层和下采样层构成,后面可连接全连接网络
- 卷积层:𝑘个滤波器
- 下采样层:采用mean或max
- 后面:连着全连接网络
学习算法
前向传播
第𝑙层是卷积+池化层
四、经典BP算法
结构
- 输出层:
- 隐含层:
- 更新:
卷积NN的BP算法
卷积层+卷积层
卷积层+全连接层
五、LeNet-5网络
网络结构
C1层(第一个卷积层)
- 主要功能:提取输入图像中的局部特征。它使用6个不同的5x5卷积核对输入图像进行卷积操作,每个卷积核在输入图像上滑动,通过卷积运算提取出不同的局部特征。
- 输出:6个特征图(Feature Maps),每个特征图对应一个卷积核的输出结果。
S2层(池化层、下采样层)
- 作用:降低特征图的维度,减少计算量,同时保留重要的特征信息。该层在C1卷积层之后,进一步对图像特征进行处理。
- 具体处理:S2层会对C1层中每个22区域内的像素进行求和(或者其他池化操作,如最大池化),然后加上一个偏置,再将这个结果通过激活函数(如sigmoid函数)进行映射。这个过程实现了对特征的降维,减少了模型的复杂度,同时保留了重要的特征信息。S2层中的每个像素都与C1层中对应的2*2个像素以及一个偏置相连接,因此存在大量的连接。
C3层(第二个卷积层)
- 作用:在S2池化层之后,进一步对图像特征进行抽象和提取。
- 具体处理:C3层使用16个5x5的卷积核对S2层的输出特征图进行卷积操作,生成16个新的特征图。每个卷积核在S2层的特征图上滑动,通过卷积运算提取出更高级别的局部特征。
- 输出:16个特征图,每个特征图都包含了输入图像在不同视角下的特征信息。
S4层(池化层)
- 作用:降低特征图的维度,以减少模型的参数数量和计算复杂度,同时尽可能地保留关键的特征信息。
- 具体处理:在S4层中,特征图的每个神经元与C3层的一个大小为2x2的领域相连接,通过池化操作(如最大池化或平均池化)来整合这个区域内的特征信息。这样,S4层的每个特征图的大小都会减半,但通道数(即特征图的数量)保持不变,仍为16个。
- 输出:S4层的输出将作为后续网络层的输入,继续参与模型的训练和推理过程。
C5层(第三个卷积层)
- 作用:在S4池化层之后,继续对图像特征进行提取和抽象。
- 具体处理:C5层使用120个5x5的卷积核对S4层的输出特征图进行卷积操作。由于卷积核的数量增加,C5层将产生120个特征图,每个特征图都包含了输入图像在不同视角下的高级特征信息。
- 输出:卷积操作完成后,C5层的输出将作为后续全连接层的输入。
F6层(全连接层)
- 作用:用于将前面层提取的局部特征整合为全局特征,以便进行分类任务。
- 具体处理:F6层有84个节点,对应于一个7x12的比特图。这些节点与前一层的所有节点相连,通过权重和偏置进行线性变换,并使用激活函数(如Sigmoid函数)进行非线性处理。
- 输出:
输出层
- 作用:负责最终的分类任务。
- 具体处理:(假设有10个类别)输出层通常有10个节点,每个节点对应一个类别的概率输出。softmax函数会将这10个节点的输出值映射到(0,1)区间内,并且所有节点的输出值之和为1,满足概率分布的性质。具体来说,对于输入图像,经过前面各层的处理后,会得到一个特征向量作为输出层的输入。然后,输出层会对这个特征向量进行线性变换,得到10个原始的输出值。接着,softmax函数会对这10个原始输出值进行指数运算,并进行归一化处理,最终得到10个概率值,分别表示输入图像属于各个类别的概率。
- 输出:结果
基本卷积神经网络
AlexNet
网络结构
VGG-16
网络结构