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

简介:

首先文章的提纲为:

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

4a97f455f389a1d59a2c308d46381d1d41e51008

Zero-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 原文发布时间为:2017-12-29本文来自云栖社区合作伙伴“ 数据派THU”,了解相关信息可以关注“ 数据派THU”微信公众号
相关文章
|
11天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
143 55
|
21天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
112 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
24天前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
67 3
图卷积网络入门:数学基础与架构设计
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
24天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
10天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
47 17
|
20天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
21天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
43 10
|
23天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
47 10