alexnet 的参数和结构
卷积层 5
全连接层3
参数 60M
神经元 650k
分类数 1000 类
Alex net介绍
卷积层
cnn中卷积层的作用:特征的抽象和提取。 越宽越深卷积层的表达能力更好
cnn中卷积层的操作和图像处理中卷积是一样的,一个卷积核对图像做自上而下,自左而有的加权和操作(?)
传统的图像处理中 卷积核函数是指定的比如 :高斯,soble (提取出来图像的水平边缘和垂直边缘特征).
cnn中 卷积核的尺寸指定,参数需要学习。比如一个卷积核的尺寸为3 × 3 × 3 ,分别是宽,高和厚度,那么这一个卷积核中的参数有27个。
在这里需要说明一点:
卷积核的厚度=被卷积的图像的通道数
卷积核的个数=卷积操作后输出的通道数
一个卷积层有几个卷积核?(可以指定)
- example
- 输入图像尺寸 5x5x3 (宽,高,,通道) ,卷积核尺寸 3x3x3(宽高 厚),步长1,边界填充:0
- 卷积核数量 1
- 卷积后的图像尺寸 3x3x1
- 5 − 3 + 2 × 0 1 + 1 = 3 , 分 母 1 为 步 长 \frac {5-3+2 \times 0}{1}+1=3 , 分母1为步长 15−3+2×0+1=3,分母1为步长
AlexNet的卷积层
输入层 227x227x3
C1 96X11X11X3 (卷积核个数 宽高 厚)
C2 256X5X5X48 (卷积核个数 宽高 厚)
C3 384X3X3X256 (卷积核个数 宽高 厚)
C4 384X3X3X192(卷积核个数 宽高 厚)
C5 96X3X3X192 (卷积核个数 宽高 厚)
用11 × 11 × 3 的卷积核卷积227 × 227 × 3 的图像,卷积后的尺寸是55 × 55 × 1 。这是因为:
(
227
−
11
+
2
×
0
)
4
+
1
=
55
\frac{\left ( 227-11+2\times0 \right )}{4}+1=55
4(227−11+2×0)+1=55
softmax
softmax 不属于 cnn中单独层,一般要用CNN做分类,softmax层所有输出相加为1
卷积核的个数为96,
由于分显卡操作,上一层的输出通道数(也就是卷积核的个数)总会是下一层卷积层卷积核厚度的2倍。但是C3是特殊的
了通道的合并,也就是一种串接操作,所以一个卷积核卷积的不再是单张显卡上的图像,而是两张显卡的图像串在一起之后的图像,串在一起之后的通道数就是256,所以卷积核的厚度为256
池化层与激活层
池化层
池化(Pooling)用于卷积操作之后,作用在于特征融合和降维,只是池化层的所有参数都是超参数,都是不用学习得到的。
最大池化(Max Pooling) 核长2X2 步长为2 最大池化的过程是将2 × 2 2\times22×2尺寸内的所有像素值取最大值,作为输出通道的像素值。
平均池化(Average Pooling),也就是将取最大改为取平均。
一个224x224x64的图像,经过最大池化后尺寸变为112x112x64,改变图像的宽高,不改变通道数。
激活层
池化操作用于卷积层内,而激活操作则在卷积层和全连接层都会用到,
深层网络中一般使用ReLU多段线性函数作为激活函数
在全连接层中的激活过程就很好理解了,因为全连接层内所有的神经元的输出都是一个数,只要这个数x>0,则x=x;x<0,则x=0。
在卷积层中的激活针对的是每一个像素值,比如某卷积层输出中某个通道中i行j列像素值为x,只要这个数x>0,则x=x;x<0,则x=0。
全连接层
CNN中的全连接层与浅层神经网络中的作用是一样的,负责逻辑推断,所有的参数都需要学习得到。有一点区别在于第一层的全连接层用于链接卷积层的输出,它还有一个作用是去除空间信息(通道数),是一种将三维矩阵变成向量的过程
输入图像是WxHxC .,卷积核的尺寸为W × H × C , 输出K
参数量非常可怕,后来的网络将全连接取消了?