cs231n笔记:卷积神经网络(cnn)和池化(pooling)

卷积神经网络(convolutional nural network ):更能保留输入的空间结构

CNN的一些历史:
感知机(perceptron)
多层感知机(multilayer perceptron networks)
反向传播
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第1张图片
AlexNet:与LetNet-5看上去差别不大,只是扩展得更大、更深。重点是能充分利用大量数据,也充分发挥了GPU并行计算能力的优势
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第2张图片
全连接层与卷积层的对比:
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第3张图片
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第4张图片
卷积层的权重是一些小的卷积核(此例中为553 filter),然后将卷积核在整个图像上滑动,计算出每个空间定位时的点积结果
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第5张图片
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第6张图片
每个filter 会产生一个激活映射(activation map)
如果有6组553的filters,将会得到6组2828(即表达为2828*6:ConvNet)
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第7张图片
前几层的卷积核代表了一些低阶的图像特征(eg:edges(边缘));
中间层的卷积核代表更加复杂的图像特征(corners(边角)和blobs(斑点));
高层代表比斑点类更加复杂的内容;
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第8张图片
这些网格中的每个部分都是神经元;网格中的每个元素都在展示输入会长什么样,最大化神经元的激活函数。

自己对卷积的理解:filter相当于模板,多组filters就有多个模板,filters在图像上作卷积即filters与图像中每一块小区域作点积,得到的activation map会在原始图像中突出filters的特征。
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第9张图片
填充
如果没有填充,则activation maps 尺寸缩减迅速,这样会损失一些信息,只能使用很少的值来表示你的原始图像。尤其每次图像变得更小,关于图像的边界信息也会丢掉更多。
当作填充(padding)时:想要输出与输入大小相同;在边角区域也能用卷积核
卷积核大小通常为:33,55,77
为了保持图像的空间尺寸,则填充(F-1)/2,其中卷积核的尺寸为F
F*C
F = 3,zero pad with 1
F = 5,zero pad with 2
F = 7,zero pad with 3

若input:32323,10 55filters with stride 1,pad 2
由于pad 为2,则inputh会变为36
363,则output:323210
参数的数量:每个卷积核的参数5
5*3+1=76
10个卷积核,则为760
(小心:每组卷积核都有一个bias)
在Conv Layer,需要4个超参数
1.Number of filters K
2.their spatial extent F(filters’ length )
3.the stride S
4. the amount of zero padding P

1*1卷积:改变深度,而且可加激活函数
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第10张图片
较大的步长和降采样效果相同,得到更小的输出

the nenuro view of CONV layer:
神经元具有局部连接性,不专注所输入图片的全部,只关注图像空间的局部连接。这个神经元在图像的各个区域所被激发的程度。卷积核有相同的权重,相同的参数。
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第11张图片
55 filter -> 55的感受野(receptive field)

全连接层:关注神经元与全体输入量都发生联系

Pooling Layer
仅仅在平面上做池化,深度上不做池化处理
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第12张图片
activation maps表示某个神经元的激发程度,或者某组卷积核的激发程度,选取最大值是更客观的(取最显著的像素)
设定步长,使其不会产生重叠
希望作降采样处理,仅仅用一个数值表示整个区域,不做0填充。

最后一层为全连接层,把所有内容汇聚在一起,像根据这些信息得到一些结论。

最后,看如下图:
cs231n笔记:卷积神经网络(cnn)和池化(pooling)_第13张图片
对上附图的理解:
在最左边的CONV中,构建的filters是为在图像中寻找边缘或者非常简单的结构,输出的第一小列图,一般是某些特定的激活表征(比如:边缘在图像不同位置的体现),越往后,得到更复杂更高层的表示。再下个CONV,输入是上一层的输出(比如:边缘的表示图),而输出是在边缘图上进一步计算来得到的更复杂的内容(检测更复杂的事物,如边角区域)。当到达最后一个池化层时,每个值都代表了一组复合模板的激活情况。
此时全连接层把所有信息聚合在一起,得到一组分类值。

对最后池化层的理解:每个池化层输出的值,是数据经过整个网络处理后累积的结果,每个值代表了更高层的概念。

你可能感兴趣的:(CS231n笔记)