CS231n CNN Summary
- CNN 结构
如图所示,CNN在输入数据以后,经过若干个卷积层(CONV)及池化层(POOL)以后,再经过若干个全连接层(FC)层以后,得到输出。可根据需求选择CNN的结构,卷积层、池化层、全连接层的顺序以及数量可根据需求进行选择。卷积层、池化层、全连接层中都需要选择**函数,图中的**函数为ReLu。
前边的卷积层一般得到低阶的特征,比如边缘特征;中间层得到更高级的特征如斑点。
- 卷积层
卷积层使用filter对卷积层的输入进行处理,ffilter对选中区域进行卷积运算,输出的大小为W2=(W1-F+2P)/S+1,H2 = (H2 - F + 2P)/S+1。其中,W2 H2为输出的宽高,W1 H1为输入的宽高,F为filter的size,S为步长,P为padding的大小。假若不使用padding,那么输出的大小是肯定小于等于输入,为了控制输出的大小,可以引入padding。padding如下图中的灰色区域。filter的channel数与输入的channel数相等。 池化层
池化层相比卷积层简单点,对原输入进行降采样。结构如下图
下图是一个max pooling的例子,输出的每一个元素为输入对应区域的最大值。全连接层
全连接层将输入层拉直为一个向量再进行全连接。全连接层之后可以采用Softmax等处理全连接层的输出得到CNN最终的输出。