李宏毅机器学习Task06——卷积神经网络CNN
仅作为学习笔记,参考学习笔记
1.为什么要用卷积神经网络
——简化神经网络的架构
- 用power-knowledge 去把原来全连接层中一些参数拿掉就成了CNN。
为什么我们有可能把一些参数拿掉(为什么可以用比较少的参数可以来做影像处理这件事情)?
- 大部分的 模式其实要比整张的图像还要小,对一个neural来说,假设它要知道一个图像里面有没有某一个模式出现,它其实是不需要看整张图像,它只要看图像的一小部分。
- 同样的pattern在image里面,可能会出现在image不同的部分,但是代表的是同样的含义,它们有同样的形状,可以用同样的neural,同样的参数就可以把patter侦测出来。
- 我们知道一个图像可以做二次抽样,你把一个图像的奇数行,偶数列的像素点拿掉,变成原来十分之一的大小,不会影响人对这张图像的理解,这样就可以减少需要的参数。
2. CNN架构
- 这个过程可以反复无数次,反复次数事先决定,它就是network的架构。做完决定要做的卷积和最大池化以后,你要做另外一件事,这件事情叫做flatten,再把flatten的输出丢到一般全连接前馈网络中,然后得到影像辨识的结果。
3.各层的作用
- 卷积层
当我们做这件事情就意味说:这两个neuron本来就在fully connect里面这两个neural本来是有自己的weight,当我们在做convolution时,首先把每一个neural连接的wight减少,强迫这两个neural共用一个weight。这件事就叫做shared weight,当我们做这件事情的时候,我们用的这个参数就比原来的更少。 - 最大池化层
每一组里面可以选择它们的平均或者选最大的都可以,就是把四个value合成一个value。这个可以让你的image缩小。 - flatten
flatten就是feature map拉直,拉直之后就可以丢到fully connected feedforward netwwork,然后就结束了。
4.CNN学到了什么
分析全连接层
让图像更数字