其他分享
首页 > 其他分享> > 李宏毅《机器学习》学习笔记6

李宏毅《机器学习》学习笔记6

作者:互联网

为什么使用CNN?

相比全连接网络,CNN有更少的参数,且经常用于图像处理问题,这是因为图像处理任务自身的特点:

CNN架构


所以整个CNN的架构为:首先input一张image以后,这张image会通过convolution layer,接下来做max pooling这件事,然后再做convolution,再做max pooling这件事。这个process可以反复无数次,反复的次数你觉得够多之后,(但是反复多少次你是要事先决定的,它就是network的架构(就像你的neural有几层一样),你要做几层的convolution,做几层的Max Pooling,你在定neural架构的时候,你要事先决定好)。你做完决定要做的convolution和Max Pooling以后进行flatten,再把flatten的output放入一般的fully connected feedforward network,然后得到影像辨识的结果。

图像处理任务的第一个特点是,要生成一个pattern,不要看整张的image,你只需要看image的一小部分。第二是,通用的pattern会出现在一张图片的不同的区域。第三个是,我们可以做subsampling。前面的两个property可以用convolution来处理掉,最后的property可以用Max Pooling这件事来处理。

convolution

property1

property2


convolution和fully connected之间的关系


convolution就是fully connected layer把一些weight拿掉了。经过convolution的output其实就是一个hidden layer的neuron的output。

max pooling



相对于convolution来说,Max Pooling是比较简单的。我们根据filter 1得到4*4的maxtrix,根据filter2得到另一个4 *4的matrix,接下来把output ,4个一组。每一组里面可以选择它们的平均或者选最大的都可以,就是把四个value合成一个value。这个可以让你的image缩小。
做完一个convolution和一次max pooling,就将原来6 * 6的image变成了一个2 *2的image。这个2 *2的pixel的深度depend你有几个filter(你有50个filter你就有50维),得到结果就是一个new image but smaller,一个filter就代表了一个channel。

flatten


flatten就是feature map拉直,拉直之后就可以丢到fully connected feedforward netwwork,然后就结束了。

标签:convolution,fully,李宏毅,image,笔记,学习,Pooling,flatten,pattern
来源: https://www.cnblogs.com/ColtranePicnic/p/15056819.html