Convolutional Neural Network(CNN)

简化整体网络结构,选择较少的参数(相较于全连接前馈网络)。

bilibili P14

影像处理为例

Q1:为什么可以将全连接网络里面的一些参数去掉,简化网络?

A:1、每一个neural都类似于一个分类器,用以判断某些特征,特定特征的判断需要的是相对应的输入,部分的输入内容就可以决定相关特征而不需要利用所有输入进行判断。
2、相同的特征判断可能存在于输入的不同位置(比如两张图片中同是鸟嘴但位置不同),但此时使用相同的的neural就好,而不需要两个neural,可以让两个neural相互share参数,共用同一组参数工作。
3、subsampling(比如缩小)对图像的判断可能没有影响,可以通过二次抽样来减少参数的使用。

CNN全过程

07

Convolution

Q1:Convolution做了什么?

A:(以影像处理为例),convolution做了第1、2部分。通过卷积的方式,将不同位置的相同的特征,借助filter过滤器,提取出不同的特征图谱。

01

eg:过滤器在右上角,是33的矩阵。过滤器每次取图片的一部分(大小相同的一部分)做内积,得到一个结果,然后移动固定的步数(这里是1),继续做内积,最后得到了新的4\4的矩阵。多个filter做相同的事情,得到很多矩阵,合在一起成为了特征图谱。

02

Q2:convolution和全连接网络的关系,以及why?

A:convolution的实质,就是全连接网络某一层中,去掉一些weight的结果。输出的特征矩阵的每一个值,相当于网络中某一个神经元的输出值。全连接网络中每一个神经元得到的输入是全部的输入,convolution中输入只是与过滤器做内积的那部分选中的输入。而过滤器矩阵的值其实就是weight值,是机器可以自己学习出来的内容。

03

  • 部分的输入带来了较少的参数值,需要自主学习的参数的数量减少了。
  • 16个神经元,只是每个神经元的输入对应input的不同的部分,使用的过滤器相同–>每次计算所利用的权值相同–>shared weights–>又可以减少参数的数量。

Max Pooling

convolution的输出矩阵,将矩阵按照一定规则划分,并按照一定规则在每个划分区域进行计算或者选择,使每个区域保留一个数值,生成新的矩阵。

04

05

阶段总结

06

经过一次convolution+max pooling,原本是6*6的图片特征变成了2*2的特征图谱。新的特征图谱可以作为input参与下一次的convolution+max pooling,这一套可以重复很多次,每一次都会缩小矩阵大小。

其他

08

剩下的两步:flatten相当于是把立体的特征图谱矩阵拉成多维向量,作为全新的input输入到全连接网络,全连接网络进行计算,output,结束。

深入探究

(以图像识别为例)

filter

每一个filter的作用是什么?

方法:在model已经训练好,参数全部固定的情况下,不断调整输入的x的值(输入的图片),要调整到被观测的filter的活跃度最高,其中活跃度的定义为通过该过滤器输出的矩阵的每一个值的总和。

结果发现每一个filter的作用是检测某种类型的线条走向,例如纵线条、横线条、不同方向的斜线条等。

neural

最后的全连接神经网络中每一个neural的作用是什么?

方法:(类似),调整输入x,最大化当前neural的输出值。

结果:侦测的是比较完整的一个图像,与filter不同的是,filter的输入只是图像中很小的一部分内容,侦测的也只是那一部分的特征,而全连接神经网络每一个neural都是输入所有的input,所以反应的是要侦测的整个图像的特征。

output layer

最后的输出层的作用是什么?

方法:方法同理

结果猜想应该是数字的样子。但是最后的结果并不是这样,每一种输出都是相似的混乱的图片。说明机器最终学习到的和人类还是很不一样的内容,虽然都能对图像作出判断,但是其中的原理有很大区别。

调整

方法:使得输出y值最大的同时,也要让输入的x最小(黑白图中,x越大表示笔画部分越多,空白部分越少)。

09

  • 好玩的其他研究应用:deep dream,deep style

  • CNN在下围棋上表现比普通的全连接网络表现更好。(why?)

    围棋图谱有和图像识别相类似的地方,也就是适合CNN处理的地方

    1. 图谱中也有很多特征(基本的pattern),远小于整个图谱的大小。
    2. 很多相同的特征(pattern),可以出现在不同的位置,代表同样的意义。
  • Alpha Go的CNN结构的特别之处:没有使用Max Pooling,因为Max pooling 不需要被使用在围棋处理架构中。(第三个特征不符)

  • Speech应用,将音频图片输入到CNN,同样是对图片的处理。

  • text,文字处理应用,同样类似于处理图像

感觉CNN的实质还是针对于图像处理的那三个特点,这样的表现有很好的效果。其他方面的应用也是有这方面的原理在,是三个特点的变形使用。

评论