李宏毅机器学习-10.卷积神经网络
使用CNN处理图像的原因:
- 性质一:Some patterns are much smaller than the whole image(如鸟的图像中有鸟嘴这个小pattern). A neuron does not have to see the whole image to discover the pattern. Connecting to small region with less parameters.
- 性质二:The same patterns appear in different regions.(如鸟嘴可能出现在A图的左上方,B图的中间)
- 性质三:Subsamplingthe pixels will not change the object.(如将图片缩放到原来的二分之一,仍能看出这个物体)
CNN组成举例:经过若干convolution layers和max pooling layers,最后经过fully connected feedforward network
- convolution layers中用设定的filter与image 的matrix做卷积,得到的值可以看出匹配度。如下图的例子中,值为3的说明与对角线三个1比较接近。
filter的size决定了我们关心多大的子区域;每个filter都会对于一个结果的矩阵。最终每个value都对应一个filter。 - RGB图像的每个filter都是3维的:
- convolution是fully connected的简化版。可以想象成将image矩阵拉直成一排(如
6×6→1×36
6
×
6
→
1
×
36
),有些神经元共享一些weight。
正是共享才大幅减少了参数数量。 - max pooling:将matrix里面的element分group。对每个group取max值。
- 经过convolution和max pooling之后,得到一个更小的image。
- flatten:经过若干次convolution和pooling后,得到的image规模已经很小,这时将每个channel的每个pixel排成一排,最后连到fully connected feedforward network即可。