专栏首页思考是一种快乐卷积神经网络的原理

卷积神经网络的原理

在普通神经网络中,每个神经元都和临近层的所有神经元相连接,这称为全连接(full-connected).

在识别MNIST手写体的程序中,普通神经网络有784(28x28)个输入神经元。通过官方的训练数据和测试数据,模型能达到大约98%的准确率。但是,这种全连接方式不适合用在真正的图像识别上。原因是它没有考虑图像的特殊结构。比如,它把相距远点像素和相距近的像素同等对待。实际上,相距近的像素,相关性更高。

中实际的图像识别中,常用的是卷积神经网络。卷积神经网络有3个重要的概念: loal receptive field, shared weights 和 pooling. 这几个概念翻译过来很别扭,就直接用英文。

1.loal receptive field

在普通神经网络中国年,输入层的每个神经元(像素)都会连接到每一个隐藏层神经元。

在卷积神经网络中,只把一个小区域到像素连接到第一个隐藏层的神经元。这个小区域被称为local receptive field.

就一MNIST的28x28图像为例,采用5x5的区域,则第一个隐藏层会有24x24个神经元。(默认stride length=1). 若图片大,可以用大一点的local receptive field会比较好。

然后我们把local receptive field 向右移动一个像素,用它连接二个隐藏神经元。

一直这样移动下去。那么28x28的输入图像,5x5的local receptive fields,就会在隐藏层生成24x24个神经元。

2.shared weights and biases (共享权重和偏移量)

上例中,隐藏层的每一个神经元都有1个偏移量和5x5个权重。

对与24x24个神经元,卷积网络使用相同的权重和偏移量。

对于第j行第k列的隐藏层神经元,它的输出值是:

这种方法可以理解为:第一个隐藏层的所有神经元检测到相通的特征(feature),不同的只是检测的位置不同。

  • 特征(feature): 可以理解为能够导致神经元被激活(activate)的输入模式。它可能是图像的边框,或者某种形状的类别,等等。

假设我们能够分辨某一批权重和偏移量的含义,比如是垂直边框,那么,我们就能把这种特征的检测方法应用中图像的任何位置。

卷积网络还有个特性是适用于图像的平移不变性,即,把一张小猫的图像平移后,仍然是小猫。

  • 一些定义:
    1. feature map: 从输入层到隐藏层的映射。
    2. shared weights: feature map的权重
    3. shared bias: feature map的偏移量
    4. shared weight + shared bias能够定义一个kernal(或filter)

完整的卷积层,包含多个feature map.

上图有3个feature map, 每个feature map有5x5个shared weights,和1个 shared bias.

实际使用中,卷积网会有很多feature map。

shared weights + biases能够大大加少参数的数量。下面比较普通神经网络和卷积网的区别。

A: 上例若用普通神经网络,第一个隐藏层选中30个神经元,则这一层需要有28x28*30 + 30 =23550个参数。

B: 若用卷积网,选20个feature map. 则需要的参数为20x(5x5+1) = 520.

3.pooling layer (池化层)

池化层的作用是简化卷积层的输出。

上图把2x2的输入区域池化成一个单元。池化有好多方法,比如max-pooling, mean-pooling等等。上图用的是max-pooling.也就是将输入区的4个值进行比较,选择最大的值。

将上面所有概念合并到一起,组成完整的卷积网络,如下图所示:

相关文章

卷积神经网络的python实现

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Elasticsearch + Kibana 起步

    浏览器访问http://localhost:5601 , 可以看的界面,说明配置正确。

    Stanley Sun
  • 5人法则:小样本也有力量

    假如,你想知道你们公司每个员工的通勤时间是多少。而公司员工有上千人,一个一个问太费时。你并不需要得到精确的结果,有没有好的办法呢?

    Stanley Sun
  • Elasticsearch下安装IK中文分词器

    环境:elasticsearch版本是5.5.2,其所在目录为/usr/local/elasticsearch-5.5.2

    Stanley Sun
  • 深度学习(6)——卷积神经网络cnn层级结构CNN特点卷积神经网络-参数初始化卷积神经网络过拟合解决办法

    DC童生
  • GoogLeNetv3 论文研读笔记

    卷积网络是目前最新的计算机视觉解决方案的核心,对于大多数任务而言,虽然增加的模型大小和计算成本都趋向于转化为直接的质量收益(只要提供足够的标注数据去训练),但计...

    范中豪
  • 基于多图卷积神经网络的多模式交通预测应用对比

    随着图网络GCN的大火,各式各样的基于图网络的交通预测论文也层出不穷,多图卷积神经网络便是其中一个小方向。本文对比了公众号前面解读的两篇文章(基于多图卷积的共享...

    深度学习与交通大数据
  • CS231n 课后作业第二讲 : Assignment 2(含代码实现)| 分享总结

    CS231n 是斯坦福大学开设的计算机视觉与深度学习的入门课程,授课内容在国内外颇受好评。其配套的课后作业质量也颇高,因此雷锋网 AI 研习社在近期的线上公开...

    AI研习社
  • 学界 | 向频域方向演进的卷积网络:OctConv用更低计算力做到更高准确率

    AI 科技评论按:近几天,一篇改进卷积网络的论文引发了不小的关注和讨论。简单来说,这篇论文对传统的卷积操作做了简单的通用改进,就同时获得了更低的计算能力消耗和更...

    AI研习社
  • 那些年,map的坑

    写需求的时候发现一个点,我想创建一个根据传入的length来生成length个0的数组。 于是,我写下了下面的代码

    IMWeb前端团队
  • SpringBoot开发系列(7)-开发WebSocket的一点经验

    在某些项目场景中,WebSocket是个利器,但毕竟常规应用场景不多。趁现在还记得些,把一些开发过程中总结的一些经验记下来,以免过个一年半载再次需要用到时忘却了...

    北梦木系生南国

扫码关注云+社区

领取腾讯云代金券