CNN的model比一般的DNN更简单
图像的下采样Subsampling 与 上采样 Upsampling
1.Convolution
那么CNN是怎么运作的呢?
能够处理不同位置的同一个pattern,移动步长stride是可以自己设的
向量内积(点乘)和外积(叉乘)概念及几何意义
如果我们处理的不是黑白的图片,而是彩色的呢?
(1)全连接 vs. 卷积网络
1.局部连接
2.权值共享
但是,这怎么train?(不重要)
其实现在这都是用torch做的,几乎没有机会给你自己写(跟原来用Backpropagation用一模一样的做法,只是有一些weight永远是0,你不去train它,怎么让weight的值永远都是一样呢?以上同一个颜色所指的weight用BP分别算出一个gradient,再把本来要share的weight的gradient平均,然后再update它们的值)
2.Max pooling
就是做subsampling
3.flatten
就拉直展开成vector
4.CNN in Keras
Deep Learning是一个黑盒子,你learn完之后完全不知道为什么是这样,但还是有方法能够分析的。
what does CNN learn? 以数字辨识为例
第一层卷积每个filter在对输入的图像进行过滤,试图捕捉到什么东西。
第一层还是比较简单的,它的filter就是一个3*3的pixels,看9个pixels就可以知道它在捕捉什么。
比较难想象的是,第二层的filter在做什么?
第二层有50个3 * 3的filters,但是这些filter的Input并不是pixels,而是做完convoluntion,max pooling的结果。就算把这个3 * 3的weight都拿出来,你也不知道它在做什么。另外这个3 * 3的filter考虑的范围并不是3 * 3个pixels,而是比9个pixels更大的范围。它的3 * 3的Input是做完convolution,max pooling之后的结果,所以它实际在img上看到的范围是比3 * 3更大的。
那么怎么来分析一个filter做的事情是什么呢?
这个方法的神奇之处就在于,我们之前训练CNN模型是为了找合适的参数而做梯度下降,而现在是反过来,参数固定,我们找合适的图片做梯度上升来让这个filter的激活程度最大。
就是找到每个filter能够探测出的样本特征
第k个filter的激活程度:现在Input的东西跟cativation有多相近,有多match
a k a^k ak的值越大,说明filter扫过的位置和filter越接近,说明这个filter对这种特征越敏感
总结:filter就是用来detect某一种pattern,比如竖直的直线,斜条纹之类的…
CNN网络实际上是通过不断的层数深入在提取图像更深层次的特征,是一种自动提取图像特征的网络。
有一种精神就是通过对output的一些处理(加contrain等等),让machine所识别出的东西更贴近于我们的认知。
这种精神演化出deep dream和deep style
deep dream训练如果输入图像有类型动物的特征,那么filter会放大这样的特征,到最后输出的时候图像上真的强化成了动物。
deep style是deep learn的进阶版本
deep style训练将输入图像的context内容和filter训练好的风格结合,filter会将图像强化成他之前训练的风格,比如相近颜色,曲线程度等(呐喊风格),最后输出的也就是这样风格的原图像。
CNN的应用领域
1.Playing Go
如果想让machine来下围棋,一般typical的neural network也能做到,但是CNN的performance会更好。
什么时候我们可以用CNN?
要有img该有的那些特性,开头部分根据三个观察,设计出CNN这种架构,对处理img的问题特别有效。
为什么这种架构可以用在围棋上面呢?
围棋有一些特性和影像处理是很相似的:
2.Speech & Text
做文本处理时,filter只在时间序列上移动,而不在embedding dimension上移动(如果知道word2vec
,就知道不合理(make sense)),简单理解:因为我们要比较的是不同词语义之间的联系,而不是同一个词里面语义有什么不同,所以应该向着sentence方向移动
因为在word embedding里面每个dimension(行)的含义是独立的,所以当我们使用CNN的时候,假设第二个dimension和第一个dimension之间有某种特别的关系,第四个dimension和第五个dimension之间有某种特别的关系,如果这种关系是重复,也就是说同样一个pattern出现在纵列的不同位置,它们代表的是同样的意思
通俗易懂的人工智能教程