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