一、为什么要使用CNN?
- 全连接前馈网络做影像处理时需要太多参数
- 用power knowledge 把其中一些参数拿掉就变成了CNN
以鸟为例子
- Small region:假设有一个neural的工作是要侦测有没有鸟嘴的存在,那只需要给neural看一小方框的区域(鸟嘴),判断它是不是一个鸟嘴,不需要去看整张图。所以,每个neural连接到每一个小块的区域就好了,不需要连接到整张完整的图。
- Same Patterns:对于不同位置的鸟嘴,不需要专门训练不同的detector,可以用同一组参数,从而减少需要的参数的量。
3. Subsampling:把一个image的奇数行,偶数列的pixel拿掉,变成原来十分之一的大小,它其实不会影响人对这张image的理解
二、CNN的架构
- 基于上述三个观察设计出CNN的架构如下,前两个用convolution处理,最后一个可以用Max Pooling处理
三、Convolution
- Small region:
- Same Patterns:
从左上角开始,一次移动一步,从66的matrix得到44的matrix - convolution和fully connected之间的关系:首先是拿掉了weight(shared weight)
四、Max pooling
- 根据filter1得到一个4*4矩阵后,把四个value合成一个value,减小image
五、Flatten
- 就是把feature map 拉直,然后丢到全连接前馈网络里。
六、Deep Dream和Deep style
- Deep Dream就是让CNN夸大化它所看到的东西
- Deep style:input一张image,让machine修改这张图,让它有另外一张图的风格
七、CNN应用
- 围棋:找一个function,input棋盘,output是下一步要下在棋盘上的哪里。
- 语音和文本:把声音、文字变成图像来处理
|