图解何为CNN
来源:互联网 发布:软件使用许可费 编辑:程序博客网 时间:2024/06/05 02:39
参考
CNN - Convolutional Neural Networks
是近些年在机器视觉领域很火的模型,最先由 Yan Lecun 提出。
如果想学细节可以看 Andrej Karpathy 的 cs231n 。
How does it work?
给一张图片,每个圆负责处理图片的一部分。
这些圆就组成了一个 filter。
filter 可以识别图片中是否存在指定的 pattern,以及在哪个区域存在。
下图中有4个filter,每个filter的平行的点会负责图片上相同的区域。
神经元利用 convolution 的技术查找pattern,简单地理解就是用 filter 的形式去查找图片是否具有某种 pattern。
weights 和 bias 对模型的效果起着重要的作用。
把白圆圈换成神经元,就是CNN的样子。
Convolution层的神经元之间没有联系,它们各自都只连接inputs。
同一层的神经元用相同的 weights 和 bias,这样同一层的神经元就可以抓取同样的pattern,只不过是在图片上的不同的区域。
接下来是 ReLU(Rectified Linear Unit) 层和 Pooling 层,它们用来构建由 convolution 层找到的 pattern。
CNN 也用 Back propagation 训练,所以也有 vanishing gradient 的可能。而 ReLU 作为激活函数的话,gradients会大体保持常值的样子,这样就不会在关键的那几层有很明显的下降。
Pooling 层是用来降维的。
经过 convolution 和 ReLU 的作用后,会有越来越复杂的形式,所以Pooling 层负责提取出最重要的 pattern,进而提高时间空间的效率。
这三层可以提取出有用的 pattern,但它们并不知道这些 pattern 是什么。
所以接着是 Fully Connected 层,它可以对数据进行分类。
一个典型的 Deep CNN 由若干组 Convolution-ReLU-Pooling 层组成。
但CNN也有个缺点,因为它是监督式学习,所以需要大量的有标签的数据。
推荐阅读
历史技术博文链接汇总
也许可以找到你想要的
- 图解何为CNN
- 图解何为CNN
- Faster R-CNN 图解
- 卷积神经网络CNN图解
- 人生何为苦何为乐何为幸福
- 何为天,何为地,何为道
- 何为输入,何为输出?
- 何为声明 何为定义
- 何为debug 何为 release
- 何为堆?何为栈?
- 何为博客?
- 笑话--何为男人?
- 何为Robocode
- 何为DMZ区
- 何为“线速”?
- 何为日货
- 何为LE
- 何为GSM、CDMA
- Bagging,Random Forests以及Boosting
- IT开发笔记
- 神经网络的前世
- sdut3257(质因数分解平方和)
- 函数调用规则
- 图解何为CNN
- e的前2000位
- UVALive
- XML的一点复习和理解
- 用 Tensorflow 建立 CNN
- Autoware-wayPoint_follower解析
- 图解RNN
- mingw编译Qtcreator
- java分批处理list