目录
四、Global Average Pooling (全局平均池化)
专知课程
一、绪论
1.卷积神经网络的应用
分类、检索、检测、分割
2.传统神经网络VS卷积神经网络
深度学习三部曲:
1.搭建神经网络结构:对提供的图片进行特征提取;
2.找到一个合适的损失函数:交叉熵损失,均方误差等;
3.找到一个合适的优化函数,更新参数:反向传播(BP),随机梯度下降(SGD)等;
传统神经网络可以用到计算机视觉上,但是为什么还需要卷积神经网络呢,是因为全连接网络处理图像还存在许多问题。
全连接网络处理图像的问题:
参数太多:权重矩阵的参数太多,容易出现过拟合,泛化性能差;
卷积神经网络的解决方式:
局部关联(利用卷积核/滤波器),参数共享(减少参数数量);
二、基本组成结构
1.卷积
卷积:卷积是对两个实变函数的一种数学操作。
在图像处理中,图像是以二维矩阵的形式输入到神经网络的,因此我们需要二维卷积。
一些基本概念:
输出的特征图大小计算:
(N+padding*2-F)/stride+1
输出的特征图的depth/channel大小与卷积核数目一致 。
每个卷积核的channel和输入的channel相同。
2.池化
池化(Pooling)类似于缩放:
保留了主要特征的同时减少了参数和计算量,防止过拟合,提高模型泛化能力。
它一般处于卷积层与卷积层之间,全连接层与全连接层之间。
Pooling的类型:
Max Pooling:最大值池化,取感受野区域内数值最大值;
Average pooling:平均池化,取感受野区域内数值最小值;
池化与卷积类似有filter和步长stride,无参数。
在分类任务中更倾向于使用最大值池化。
3.全连接
卷积神经网络小结:
一个典型的卷积网络是由卷积层、池化层、全连接层交叉堆叠而成;
卷积是对两个实变函数的一种数学操作;
局部关联,参数共享;
未加padding时输出特征图大小:(N-F)/stride+1;
有padding时输出的特征图大小:(N+padding*2-F)/stride+1;
Pooling的类型:Maxing pooling:最大值池化,Average pooling:平均池化;
全连接:通常全连接层在卷积神经网络尾部。
三、卷积神经网络典型结构
1.AlexNet
CONV:卷积层;POOL:池化层;FC:全连接层。
AlexNet成功原因:
1.大数据训练:保证了可以训练出深度较深的网络;
2.非线性激活函数(对卷积后的每个结果代入函数进行操作):ReLu
3.DropOut(随机失活):训练时随机关闭部分神经元,测试时整合所有神经元。可以有效防止过拟合。
4.Data augmentation(数据增强):平移,翻转,对称,改变RGB通道强度。
5.双GPU实现。
AlexNet分层解析:
池化的参数量为0
参数数量分析:
参数数量主要来源于全连接层。
2.ZFNet
网络结构与AlexNet相同
将卷积层1中感受野大小由11×11改为7×7,步长4改为2
卷积层3,4,5中滤波器个数改为512,512,1024
3.VGG
在VGG16中对网络深度进行了加深,作者先训练了前边的十一层,将网络参数固定住,然后再训练后边的层。
4.GoogleNet
inceptio模块的初衷是多卷积核增加特征多样性。
在原始的inception模块中,卷积核是在深度上叠加使用的,这就导致了参数数量过大,计算复杂度过高。
解决思路:在inceptionV2中插入1*1卷积核进行降维。
inception V3:
Stem部分(stem network):卷积-池化-卷积-卷积-池化;
多个Inception结构堆叠;
输出:没有额外的全连接层(除了最后的类别输出层);
辅助分类器:解决由于模型深度过深导致的梯度消失问题。
5.ResNet
残差网络学习可以有效解决梯度消失的问题:
四、代码实践
ResNet
CNN等价于函数拟合(复合函数),当CNN足够深时,它可以拟