一、卷积神经网络
1.基本概念
卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。
卷积神经网络仿造生物的视知觉机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程要求。
卷积神经网络的结构主要由输入层、卷积层、池化层、全连接层组成。输入层即输入的图片等数据,卷积层是用来进行卷积运算的层次,池化层通常在卷积层之后用来减少数据的复杂性和内存占用,全连接层则用于将前面的层次连接起来形成一个完整的网络。卷积神经网络在处理图像和语音识别等任务上具有很好的效果,被广泛应用于计算机视觉、自然语言处理等领域。
2.两个原则
(1)平移不变性
不管检测对象出现在图像中的哪个位置,神经网络的前面几层都应该对相同的图像区域具有相似的反应。
(2)局部性
神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远的区域的关系。
3.卷积层
卷积层将输入和卷积核进行交叉相关,加上偏移后得到输出
核矩阵和偏移是可学习的参数
核矩阵的大小是超参数
二、填充和步幅
1.填充
填充:在输入周围添加额外的行 / 列。
2.步幅
步幅是指行/列的滑动步长。
3.总结
填充和步幅可以改变输出的高度和宽度
填充在输入周围添加额外的行/列,增加输出的高度和宽度
步幅是每次滑动核窗口时的行/列的步长,可以成倍的减少输出形状
填充和步幅可用于有效地调整数据的维度
三、多个输入和输出通道
1.多个输入通道
每个通道都有一个卷积核,结果是所有通道卷积结果的和。
2.池化层
(1)最大池化层
(2)平均池化层
3.LeNet 架构-手写的数字识别
总体来看,LeNet(LeNet-5)由两个部分组成:
• 卷积编码器:由两个卷积层组成;
• 全连接层密集块:由三个全连接层组成;
• 每个卷积层使⽤5×5卷积核和一个sigmoid激活函数。
4.学习表征
浅层学习:不涉及特征学习,其特征主要靠人工经验或特征转换方法来抽取。
表示学习:如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习。
5.视觉分层理论
• 从底层到高层的不断抽象。
• 浅层卷积核提取:边缘、颜色、斑块等底层像素特征。
• 中层卷积核提取:条纹、纹路、形状等中层纹理特征。
• 高层卷积核提取:眼睛、轮胎、文字等高层语义特征。
6.AlexNet
主要修改:
丢弃法(防止过拟合)
ReLu 激活函数(训练)
最大池化法
两者对比:
(1)AlexNet比相对较小的LeNet5要深得多。AlexNet由⼋层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。
(2) AlexNet使⽤ReLU⽽不是sigmoid作为其激活函数。
总结:
• AlexNet的架构与LeNet相似,但使⽤了更多的卷积层和更多的参数来拟合大规模的ImageNet数据集。
• 今天,AlexNet已经被更有效的架构所超越,但它是从浅层⽹络到深层网络的关键一步。
• 新加入了Dropout、ReLU、最大池化层和数据增强。
四、VGG网络
1.VGG19共有16个卷积层和3个全连接层。此外,还有5个最大池化层分布在不同的卷积层之下。
2.比较
3.VGG架构
多个VGG块后加全连接层
VGG使用可重复使用的卷积块来构建深度卷积神经网络
五、发展历程
1.LeNet(1995)
2卷积层+池化层
2隐含层
AlexNet
更大更深的LeNet
ReLu激活,丢弃法,预处理
VGG
更大更深的AlexNet(重复的VGG块)
2.发展流程