一文读懂卷积神经网络CNN(学习笔记)

来源:机器学习算法与自然语言处理

作者:白雪峰

本文为图文结合,建议阅读10分钟。 本文为大家解读如何简单明了的解释卷积,并且分享了学习中的一些方法案例。

首先文章的提纲为:

  • CNN栗子镇楼
  • What is CNN

什么是卷积

什么是池化

  • Why CNN
  • 对CNN的其他一些理解
  • CNN实现(接口)

1、CNN栗子(A Beginning Glimpse of CNN)

  1. Modern CNN since Yann LeCun

2.

上面是最经典和开始的两篇CNN的结构图

2、What is CNN?

神经网络?卷积?

2.1 什么是卷积?

卷积的定义

  • 其连续的定义为:
  • 特点:

2.2 离散卷积的栗子:

  • 丢骰子时加起来要等于4的概率是多少?
  • 二维离散的卷积
  • 计算的动图如下

2.3 用到二维图像上:

  • 关于卷积中常用到的一些概念:神经网络的卷积是对应位相乘,现在是信号相乘。

上面移动的小矩阵有两种叫法,一种叫做滤波器filter,一种加法叫做卷积核Kernel,是相同的东西只是不同的叫法。

2.4、用到神经网络中

我们其实需要学习的就是里面的线上面对应的权值,比如上面绿色的代表3*1的卷积核大小,只是这里用神经网络的结构表示出来了。

2.5、卷积的细节

  • filter/Kernel size,number
  • 假设神经网络的输入是6*6的image,

其中每一个卷积核代表提取不同的特征,多个卷积核提取的特征然后进行组合(这样更强大),一同送入到后续的结构。

  • 下面来一个更通俗的解释:

每个人代表一个卷积核来进行提取不同的特征,一个人是弱小的,但是一组人就强大了,他们有着不同的知识(权重),这样类比来理解,就会好理解很多。

  • Stride

The step size you take the filter to sweep the image

  • Zero-padding
  • A way not to ignore pattern on border
  • New image is smaller than the original image
  • Channel

2.6 池化(pooling)

  • Max pooling 例子:
  • Pooling is unsensitive to local translation.(局部不变性)
  • "If we translation the input by a small amount ,the values of mosts of the pooled outputs do not change."
  • 图像往左或者往右移动,pooling 的结果是不变的

2.7 flatten

2. 8 Convolution v.s. Fuly Connected

2.9 The whole CNN

  • So as the whole,CNN is conposed of
  • Convolution
  • Nonlinearity:e.g.ReLU
  • Pooling
  • FC Layers

3. Why CNN

  • Some patterns are much smaller whole image.
  • The same patterns appear in different regions
  • Subsampling the pixels will not change the object

4. 对CNN的其他一些理解

4.1 关于接受域(receptive field)

  • 称在底层中影响上层输出单元s的单元合集为s的接受域(receptive field)。
  • 处于卷积网络更深的层中的单元,它们的接受域要比处在浅层的单元的接受的域更大。如果网络还包含类似步幅卷积或者池化之类的结构特征,这种效应会加强。这意味着在卷积网络中尽管直接连接都是很稀疏的,但处在更深的层中的单元可以间接地链接到全部或者大部分输入图像。(表现性能)

4.2 卷积与池化作为一种无限强的先验

首先,弱先验具有较高的熵值,因此自由性较强,强先验具有较低的熵值,这样的先验在决定参数最终取值时可以起着非常积极的作用。

把卷积网络类比成全连接网络,但对于网络的权重具有无限强的先验。

  • 所有隐藏单元的权重是共享的。
  • 除了一些连续的小单元的权重外,其他的权重都是0.
  • 池化也是一个无限强的先验:每个单元都具有对少量平移的不变性。

卷积和池化可能导致欠拟合!任何其他先验类似,卷积和池化只有当先验的夹着合理且正确时才有用。如果一项任务依赖于保存精确的空间信息,那么在所有的特征上使用池化将会增大训练误差。

根据实际需求选取先验

5. CNN in Pytorch

  • pytorch的相关接口
  • LeNet in PyTorch

参考: 如何通俗易懂得解释卷积(马同学知乎答案) 李宏毅老师slides

原文发布于微信公众号 - 数据派THU(DatapiTHU)

原文发表时间:2017-12-29

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏专知

一个实例读懂监督学习:Python监督学习实战

【导读】1月28日,Vihar Kurama和Sai Tejaswie撰写了一篇机器学习技术博文,为读者介绍了如何用python进行监督学习。作者首先解释什么是...

92170
来自专栏marsggbo

神经网络权重初始化问题

之前看Andrew大神的视频有介绍到神经网络权重需要随机初始化而不是全初始化为0的问题,其真正深层次的含义没有弄明白,所以结合一些资料(cs231n课程)希望...

67070
来自专栏用户2442861的专栏

斯坦福cs224d 语言模型,RNN,LSTM与GRU

翻译:@胡杨(superhy199148@hotmail.com) && @胥可(feitongxiaoke@gmail.com)  校对调整:寒小阳 &&...

13710
来自专栏华章科技

你是合格的机器学习数据科学家吗?来挑战这40题吧!(附解答)

目前机器学习是最抢手的技能之一。如果你是一名数据科学家,那就需要对机器学习很擅长,而不只是三脚猫的功夫。作为 DataFest 2017 的一部分,Analyt...

10520
来自专栏数据科学与人工智能

【知识】正则化与过拟合

小编邀请您,先思考: 过拟合怎么理解?如何解决? 正则化怎么理解?如何使用? 在机器学习中有时候会出现过拟合,为了解决过拟合问题,通常有两种办法,第一是减少样本...

26480
来自专栏企鹅号快讯

一文读懂卷积神经网络CNN

来源:机器学习算法与自然语言处理 作者:白雪峰 本文为图文结合,建议阅读10分钟。 本文为大家解读如何简单明了的解释卷积,并且分享了学习中的一些方法案例。 首先...

36360
来自专栏机器之心

学界 | 新型循环神经网络IndRNN:可构建更长更深的RNN(附GitHub实现)

选自arXiv 作者:Shuai Li等 机器之心编译 参与:张倩、黄小天 近日,澳大利亚伍伦贡大学联合电子科技大学提出一种新型的循环神经网络 IndRNN,不...

36850
来自专栏机器之心

你是合格的机器学习数据科学家吗?来挑战这40题吧!(附解答)

选自 Analytics Vidhya 作者:ANKIT GUPTA 机器之心编译 参与:机器之心编辑部 目前机器学习是最抢手的技能之一。如果你是一名数据科学...

39390
来自专栏PPV课数据科学社区

机器学习算法基础概念学习总结

1.基础概念 (1) 10折交叉验证:英文名是10-fold cross-validation,用来测试算法的准确性。是常用的测试方法。将数据集分成10份。轮...

39140
来自专栏机器学习和数学

[机智的机器在学习] 卷积神经网络入门教程(2)

今天继续回归卷积神经网络的入门教程,主要是介绍全连接网络的训练过程,通俗的讲就是我们入门教程(1)里面讲的是全连接网络长什么样,神经元之间的关系是什么样的,里面...

37040

扫码关注云+社区

领取腾讯云代金券