Lecture 6 convolutional neural network(卷积神经网络)
Image identification
输入比如100*100的图像,三层,每层上数字代表深度,按100*100*3输入,如果输出维度是1000,那么如果全部考虑需要3*10^7,如何简化?
- convolution:原理:只根据图片的一小部分就能识别,比如鸟嘴,那么:选一个小区域(receptive field)只关注一个小范围有什么,receptive field可以有大有小,可以重叠,但是通常typical setting:{all channel、kernel size较小,=3、一个field对应一组神经元,移动距离stride,}
问题:比如鸟嘴在不同位置,那么每一个field都有对应甄别鸟嘴的神经元,那么可以共享→2
2. parameter sharing:神经元里weight都是一样的,但是输入不同
常见的共享方法:
总结:receptive field + parameter sharing=CNN
fully connected 可能会有overfitting问题,弹性高, Receptive field会使弹性变小,加入parameter sharing会更小,bias变大,但是CNN对于特定的问题(图像识别)很好
第二个方式解释 CNN
从filter的角度,假设filter里面参数已知(实际上需要梯度下降找到)把filter分别对应到图像里,一步一步移动
Multiple convolution layers
第一次过滤后得到新的“image”,如果64个filter就有64层,可以进行多次convolution
Net work 够深,就可以甄别足够大的范围(上图)
3. Pooling-把图片变小,去边(里面没有参数,没有要learn的东西)
Filter里面得到的数组2*2一组,选取最大的做代表(max pooling)
应用:下围棋AlphaGo