一文读懂卷积神经网络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”微信公众号
相关文章
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
5月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
537 11
|
5月前
|
机器学习/深度学习 传感器 数据采集
基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
870 0
|
5月前
|
机器学习/深度学习 传感器 数据采集
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
399 0
|
6月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
333 0
|
7月前
|
机器学习/深度学习 人工智能 PyTorch
零基础入门CNN:聚AI卷积神经网络核心原理与工业级实战指南
卷积神经网络(CNN)通过局部感知和权值共享两大特性,成为计算机视觉的核心技术。本文详解CNN的卷积操作、架构设计、超参数调优及感受野计算,结合代码示例展示其在图像分类、目标检测等领域的应用价值。
426 7
|
8月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络和GEI步态能量提取的步态识别算法matlab仿真,对比不同角度下的步态识别性能
本项目基于CNN卷积神经网络与GEI步态能量提取技术,实现高效步态识别。算法使用不同角度(0°、45°、90°)的步态数据库进行训练与测试,评估模型在多角度下的识别性能。核心流程包括步态图像采集、GEI特征提取、数据预处理及CNN模型训练与评估。通过ReLU等激活函数引入非线性,提升模型表达能力。项目代码兼容Matlab2022a/2024b,提供完整中文注释与操作视频,助力研究与应用开发。
|
8月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的TCN-GRU时间卷积神经网络时间序列预测算法matlab仿真
本内容包含时间序列预测算法的相关资料,涵盖以下几个方面:1. 算法运行效果预览(无水印);2. 运行环境为Matlab 2022a/2024b;3. 提供部分核心程序,完整版含中文注释及操作视频;4. 理论概述:结合时间卷积神经网络(TCN)与鲸鱼优化算法(WOA),优化TCN超参数以提升非线性时间序列预测性能。通过因果卷积层与残差连接构建TCN模型,并用WOA调整卷积核大小、层数等参数,实现精准预测。适用于金融、气象等领域决策支持。
|
8月前
|
机器学习/深度学习 数据采集 并行计算
基于WOA鲸鱼优化的TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于TCN(Temporal Convolutional Network)与WOA(Whale Optimization Algorithm)的时间序列预测算法。TCN通过扩张卷积捕捉时间序列长距离依赖关系,结合批归一化和激活函数提取特征;WOA用于优化TCN网络参数,提高预测精度。算法流程包括数据归一化、种群初始化、适应度计算及参数更新等步骤。程序基于Matlab2022a/2024b开发,完整版含详细中文注释与操作视频,运行效果无水印展示。适用于函数优化、机器学习调参及工程设计等领域复杂任务。
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
353 17

热门文章

最新文章