首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图解何为CNN

图解何为CNN

作者头像
杨熹
发布2018-04-02 17:06:34
1.1K0
发布2018-04-02 17:06:34
举报
文章被收录于专栏:杨熹的专栏杨熹的专栏

参考

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也有个缺点,因为它是监督式学习,所以需要大量的有标签的数据。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.10.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CNN - Convolutional Neural Networks
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档