台大李宏毅--CNN

版权声明:博客转载,请标注 来自 丁磊_ml博客 网址为 blog.csdn.net/MosBest https://blog.csdn.net/MosBest/article/details/79778908

CNN与普通深度学习(全网络连接 )的很大区别就是:CNN是关注图片的一小部分,一小部分的。而普通深度学习是把图像的每一个像素全部拉长,都作为输入。

一:CNN整体流程

这里写图片描述

1. CNN – Convolution

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

CNN 的Convolution与 普通DNN (Fully Connected )的异同

这里写图片描述
这里写图片描述
**由上面的三个图可以看见,CNN的卷积过程,其实就是 普通DNN 训练模型的过程。
不同点是:
1. 若把CNN的卷积理解DNN,那么训练时,相当于每次仅仅选出 n n = n 2 个输入元素,而普通DNN一般是 m m = m 2 个输入元素(即所有输入元素都用)。
(这里n是Filter矩阵的维度,m是输入的image矩阵的维度)
2. 若把CNN的卷积理解DNN,那么DNN有很多的权重值都要保持一致(即是共享的)。如上面最后一张图。颜色相同的线,就表明那里的元素要保持一致。**

2. CNN – – Max Pooling

这里写图片描述
这里写图片描述

3. CNN – – Flatten

这里写图片描述

二:CNN代码实现

这里写图片描述

三:为什么CNN比普通DNN(Fully Connected)要好

1. 参数少

这里写图片描述
根据是上面已经讲解的内容,CNN其实可以理解为是:简化版本的DNN(Fully Connected)
但是CNN的不同点就在于,
1. CNN的参数少
如上图,下一层一个神经元其实只取上一层的 n 2 个神经元(n是Filter的行数),而DNN要使用上一层所有的神经元。(还有其他地方都显示的CNN参数少)
2. . 下一层每一个神经元之间其实共用的权重(上面已讲)

2. 同一内容,只用一个神经元处理即可。哪怕在图片中,该内容在其他地方。The same patterns appear in different regions.

这里写图片描述

3. Subsampling the pixels will not change the object

这里写图片描述

4. Some patterns are much smaller than the whole image

这里写图片描述

考虑每个神经元主要对图像哪方面进行分类?(Which image make the a specific neuron active?)

  1. 对于第一层神经元,可以直接观察它对每一个图像的选择,就可以确定出该神经元偏好于哪方面的图像。
    这里写图片描述
  2. 对于高层的神经元
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/MosBest/article/details/79778908
今日推荐