CNN
什么是CNN–李宏毅
CNN(Convalutional Neural Network)卷积神经网络。就是神经网络,模型比DNN简单一点。对之前的完整的神经网络进行了处理。
常用到图像处理
Why CNN for Image?
- 一些参数可能很小,不需要把整个图片都放进神经网络
- 同样的pattern可能出现在图的不同位置。并不需要两个东西,公用一组参数就行了。
- 把图片变小,不影响识别,减少了参数。subsample
The whole CNN
CNN-Convolution
一个Filter1放在图片上做内积,一直平移上上下下左左右右。直到把整张图跑完。最后得到新矩阵。Filter2、Filter3、、、最后所有的放在一起叫做Feature Map。
如果是彩色图片,比如RGB有三个通道,把三个通道都处理了就行了。
李宏毅的PPT截图:
convolution VS Fully Connected
卷积和全连接的神经网络到底有什么关系,各有什么特点
卷积:其实就是一个Fully Connected拿掉一些位
Max Polling
Flatten
就是把数据拉直变成一个向量,放到Fully Connected Feed forward network里面。可以看一下李宏毅的PPT,我不想粘贴图片了。
上课例子:CNN in Keras
#输入Filter是25个3*3的,输入的图片是单色1*28*28
mode12.add(Convolution2D(25,3,3),input_shape=(1,28,28))
#得到25*26*26
# Max Pooling 是2*2的size
mode12.add(MaxPooling2D((2,2)))
#得到25*23*13
mode12.add(Convolution2D(50,3,3))
# 得到50*11*11 注意卷积之后因为卷积核Filter是3*3的所有,尺寸减2
mode12.add(MaxPooling2D((2,2)))
#得到50*5*5
#Flatten 把他拉直 变成50*5*5=1250的一个向量
mode12.add(Flatten())
#放到Feed forward network里面.........
#..........省略
But what dose CNN learn ?
CNN、神经网络到底原理是什么,凭什么相信它的结果?或许正是因为这样才叫人工智能,要是都一清二楚,就看起来不那么智能了。
没听懂,但是得到一个结论,Deep Neural Network are easily foolished
Deep Dream 的精神
把参数调大,夸大化它看到的东西。
Deep Dream
Deep Style
把照片变成一种艺术风格的图片
A Neural Algorithm of Artistic Style
More Application :Playing Go
Why CNN for playing GO?
CNN应该用到什么场合
- Some patterns are much smaller than the whole image.
- The same patterns appear in different regions.
- Subsampling the pixels will not change the object.但是Go使用的CNN,为什么,因为它把MaxPooling这个架构去掉了。要灵活使用,不要死脑筋。
More Application :Speech
把Frequency-time的数据轴当成图片来处理。本质还用CNN思想,Filter运动方向不同。
运动方向的原因:
More Application :Text
把数据改成满足CNN的情况。Filter运动方向不同
运动方向的原因:
TO learn more
visualization:…不想写 了
机器画图:PixelRNN VAE GAN