卷积神经网络

卷积神经网络是通过将卷积层与池化层进行堆叠得到的。

AlexNet例子学习卷积神经网络的结构

AlexNet由5个卷积层、2个池化层、3个全连接层组成。
卷积神经网络_第1张图片

输入层:224x224x3大小的图像

第一层:卷积层,卷积核大小为11x11x3(多通道卷积核),卷积核个数为96,那么输出为96个特征图。同时滑动步长stride=4padding=2,那么输出的特征图大小为:
 

特征图为:55x55x96。卷积之后使用ReLu激活函数(非线性变换,负值为0,真心发问,这种激活函数的非线性变换可以用其他的吗,没有特定用什么激活函数吗?假设用了其他的激活函数,是不是映射会好呢?很难解释)。

第二层:池化层,使用的是最大池化,其中池化窗口大小为3x3,步长为2,得到的输出为27x27x96

第三层:卷积层,卷积核大小为5x5x96,卷积核个数为256,那么输出为256个特征图。滑动步长stride=1padding=2,输出的特征图大小为27x27x256,之后再使用ReLU激活函数非线性变换。

第四层:最大池化层,窗口大小为3x3,步长为2,输出为13x13x256.

第五层到第七层,都是卷积层,
卷积核大小为3x3x2563x3x3843x3x384
卷积核个数分别为384384256,滑动步长stride=1,填充padding=1,因此,第七层输出为13x13x256.卷积之后用ReLU激活函数非线性变换。

第八层:池化层,窗口大小为3x3,步长为2,输出为6x6x256.

最后三层:全连接层,将卷积的输出6x6x256展平,得到全连接层的输入维度为9216,三层全连接的神经元个数为4096、4096、1000.因此最终得到维度为1000的输出用于图像分类。

AlexNet提出了两个非常重要的改进:
1.用ReLU来解决梯度消失问题;
2.使用Dropout机制来防止过拟合。(Dropout是在训练时随机地将特征图的部分位置为0,相当于丢失了部分信息,以防止过拟合,使模型更加鲁棒。)

卷积神经网络的特点

卷积神经网络具有以下3个特点:局部连接、权值共享、层次化表达。

局部连接:因为卷积的操作是对于卷积大小区域的,与输出是局部连接的关系,这种局部连接性在多层感知机中是没有的,如果我们将图像放入多层感知机中,例如224x224x3的图像,那么输入就是150528个神经元。如果第一个隐藏层神经元个数为32,那么就需要480万参数,这样会带了两个明显的问题,1.计算量过大;2.会有过拟合的风险。

感受野:两层3X3的卷积,感受野是5x5。

卷积神经网络_第2张图片

权值共享:不同区域使用相同的卷积核,这一方面减少了参数量,另一方面带来平移不变性,就是不管图像怎么平移,得到输出都是相同的。池化也具有平移不变性。

层次化表达:低层次的特征(颜色、边缘、角)更加通用,高层次的特征(抽象)与具体的任务关联性更强。

 卷积神经网络_第3张图片

 

你可能感兴趣的:(图神经网络,深度学习,神经网络)