绪论
卷积神经网络应用
分类、检索、检测、分割
人脸识别、表情识别、图像生成、图像风格转化、自动驾驶
传统vs卷积
深度学习三部曲:
-
搭建神经网络结构
-
找到一个合适的损失函数
常用分类损失:交叉熵损失、hinge loss
常用回归损失:均方误差、平均绝对值误差
-
找到一个合适的优化函数,更新参数
(传统)全连接网络处理图像问题:参数太多导致过拟合
卷积神经网络:局部关联、参数共享???
相同:都是层级结构
基本组成结构
一个典型的卷积网络是由卷积层、池化层、全连接层交叉堆叠而成
卷积(Convolutional Layer)
一维卷积;
卷积是对两个实变函数的一种数学操作。
二维卷积;
输入、卷积核(滤波器)、权重、感受野(特征图上的一个点对应输入图上的区域)、特征图、深度(chanel)、输出、padding
输出特征图大小:(N-F)/stride+1
加padding: (N+padding*2-F)/stride+1
卷积的可视化理解:不同的卷积核关注不同
池化(Pooling Layer)
缩放。保留主要特征的同时减少参数和计算量,防止过拟合,提高模型泛化能力
一般处于卷积层和 卷积层、全连接层和全连接层之间
最大值池化、平均值池化
全连接(Fully Connected Layer)
一般放在卷积神经网络尾部。
Question
不太理解深度(channel)、卷积核、特征图之间的关系
一个卷积核对应一个特征图?
channel的个数是什么?
卷积神经网络典型结构
AlexNet
使深度学习重回历史舞台;
大数据训练、非线性激活函数(RELU)、防止过拟合措施、双GPU实现
ReLU函数max(0,x)
解决了梯度消失问题(在正区间);
计算速度特别快,只需判断输入是否大于0;
!收敛速度远快于sigmoid
DropOut:训练过程中随机关闭部分神经元;
数据增强:平移、翻转、对称
AlexNet分层解析
第一次卷积:卷积--ReLU--池化
第二次卷积:卷积--ReLU--池化
第三次卷积:卷积--ReLU
第四次卷积:卷积--ReLU
第五次卷积:卷积--ReLU--池化
第六层:全连接--ReLU--池化
第七层:全连接--ReLU--池化
第八层:全连接--SoftMax
ZFNet
相对AlexNet改动不大,有所提升
VGG
深度加深,一个更深的网络
贡献:迁移学习
以上方法问题:参数太多
GoogleNet
网络总体结构:
深度很深(22层)但是参数量大概是AlexNet的1/12,全连接层少,inception
Inception:多个卷积核增加特征多样性;不断降低参数数量。(5x5——>3x3x2)
好处:降低参数量;增加了非线性激活函数,使网络产生更多独立性,表征能力更强,训练速度更快
Stem部分:卷积、池化、卷积、卷积、池化
多个Inception层堆叠
输出:除了最后的类别输出层,没有额外的全连接层
辅助分类器:解决了由于模型深度过深导致的梯度消失的问题。
ResNet
残差学习网络(deep residual learning network)
深度:152层
除了输出层之外没有其他全连接层
残差思想:去掉相同的主题部分,从而突出微小的变化
避免了复合求导时0的存在,解决了梯度消失问题
非常灵活:学习选择适合自己的模式,可以被用来训练非常深的网络
总结(Summary)
卷积神经网络在分类、检索、检测和分割方面具有广泛的应用,例如人脸识别、图像生成等。传统的神经网络采用全连接处理图像问题,参数太多导致过拟合;卷积神经网络进行“局部关联、参数共享”一定程度上减少了参数数量,解决过拟合问题。深度学习经历“搭建神经网络结构”、“找到一个合适的损失函数”、“找到一个合适的优化函数”三部曲。而一个典型的卷积神经网络结构是由卷积层、池化层、全连接层交叉堆叠而成的。典型的神经网络结构有AlexNet,ZFNet,VGG,GoohleNet,ResNet等。AlexNet解决了梯度消失问题,使深度学习重回历史舞台;ZFNet相对AlexNet改动不大,有所提升;VGG是一个深度很深的网络,在迁移学习方面有很大的贡献。以上三种模型的效果不错,但存在参数太多的问题。GoohleNet通过减少全连接层,堆叠多个Inception层大大减少了参数数量,网络的训练速度更快,表征能力更强。ResNet在GoohleNet的基础上利用残差思想,避免了链式求导时0的存在,解决了梯度消失问题,而且非常灵活,甚至可以自己学习选择适合自己的模式,可以被用来训练非常深的网络。
Question
不太理解深度(channel)、卷积核、特征图之间的关系
一个卷积核对应一个特征图?
channel的个数是什么?
卷积神经网络:局部关联、参数共享(如何理解参数共享?)