比尔云BierYun--阿里云最新优惠活动
阿里云优惠码丨阿里云代金券

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

一文读懂卷积神经网络CNN(学习笔记)http://www.bieryun.com/1067.html

首先文章的提纲为:

CNN栗子镇楼
What is CNN

什么是卷积

什么是池化

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

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

 

  1. Modern CNN since Yann LeCun
0b0e1deb4b4028c34dc542a5dc115cd1471214e2

2.

170a34a35df84d21cbbe4e09679bf192f1c6b71f

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

 

2、What is CNN?

神经网络?卷积?

2.1 什么是卷积?

卷积的定义

  • 其连续的定义为:

219bcb394827c7bcdca1a2feb9309845ac72ad4c

  • 特点:
6a93df5c62f3127ef512cdf6dfbbe3ed76d979c1

2.2 离散卷积的栗子:


丢骰子时加起来要等于4的概率是多少?
d85500a0e7b3ab12b9c9d7070d8a10dab3b7b127

  • 二维离散的卷积

459edf71ea8b8980ca7d3f05783f7a924755981b

  • 计算的动图如下

24b43a92e2b3cd8bf530de4f71c4b83c4564cdfd

2.3 用到二维图像上:

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

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

986380df09d4fbc32791c8077bfcb15aaef23bd5

2.4、用到神经网络中

a488dccda3c0f464377afa7abcd56333b84c6c92

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

2.5、卷积的细节

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

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

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

143e7fceeeb9738e40a808124f66974a1a2e4ce3

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

Stride

The step size you take the filter to sweep the image

4a97f455f389a1d59a2c308d46381d1d41e51008Zero-padding
A way not to ignore pattern on border
New image is smaller than the original image

7049c83b73d2712c8f2d70ccf2fbdac1a2aea2e4
  • Channel
fd76e46bcde76a05b07092eade983b4433b2781f

2.6 池化(pooling)

8597da5784d47a489d06f8c79f767baf525853c6

  • Max pooling 例子:

738803ca97398be6ad126e95bceda5fc85f6a80b

  • 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 的结果是不变的
dd012bd705f90cb398ec99ee5b38a488dd6ea05e

2.7 flatten

7bc8b1ee5e654c693d7db490747ccd1f7f49152b

2. 8 Convolution v.s. Fuly Connected

9d62282257d7b86f20ec6d1ab7b16299714ebea3
7ebf2f902da3ef6ec5c366d233edcc40db3622ef

32140222a722c718e955dcadba86cd406180b160

2.9 The whole CNN

ef0391d96e45effa4ed87f6665bfc38a50c912e7

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

3. Why CNN

Some patterns are much smaller whole image.

84739d2b24fafd45ca76b26ab1811b53a35bce6a

The same patterns appear in different regions
9a7f0ab32cd10ae7d9e5705d47a85a56b942b0b0
Subsampling the pixels will not change the object

72196c3c7235a9c4a59ce51996a19c25f6f2006a

4. 对CNN的其他一些理解

4.1 关于接受域(receptive field)

  • 称在底层中影响上层输出单元s的单元合集为s的接受域(receptive field)。

0774e88dc5d0eb4495a4c250254000b75b9809e8

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

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

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

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

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

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

根据实际需求选取先验

5. CNN in Pytorch

  • pytorch的相关接口
968cb9053b6a0902ea0487b22a8c8114ca6c549f

LeNet in PyTorch
f8b74146adf654efbc6c491873a30f80ff308c80

未经允许不得转载:比尔云 » 一文读懂卷积神经网络CNN(学习笔记)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

强烈推荐

高性能SSD云服务器ECS抗攻击,高可用云数据库RDS