[深度学习]大白话之卷积神经网络_henku449141932的博客-程序员宅基地

技术标签: tensorflow  python  卷积神经网络  

目录

1、卷积神经网络的结构

2、相关参数的表示法

2.1、输入层参数

2.2、padding

2.3、过滤器参数

2.4、步长

2.5、全连接神经数

3、卷积层

3.1 卷积实例1

3.2 卷积实例2

3.3 卷积实例3

3.4卷积实例4

4、池化层

5、全连接层


卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在图像处理方面有出色的表现,其目的就是抽取特征,目前已经被大范围使用到图像处理、自然语言处理等领域中。相比于其他神经网络结构,卷积神经网络需要的参数相对较少,训练较为容易,使的其能够广泛应用。

1、卷积神经网络的结构

我们来看下深度学习的模型结构

卷积神经网络的就是在隐藏层中的体现:

实际应用中,卷积层也叫过滤器、卷积核,我习惯叫过滤器。3个层次中可以增加或减少各个层次的数量以形成复杂的模型。

2、相关参数的表示法

2.1、输入层参数

n(H)Xn(W)Xn(c),表示输入参数。通常也表示为nXnXn,指输入高为n,宽为n,通道数为n的数据;如下面的RGB图像(208X208X208),高、宽和通道均为208。

 

2.2、padding

padding就是在n(H)Xn(W)Xn(c)的输入数据中填充一些数据,增大n(H)和n(W),使卷积后的n(H)和n(W)与卷积前的n(H)和n(W)保持不变,我习惯用p表示,后续会详细介绍。

2.3、过滤器参数

f(H)Xf(W)f(c), 和输入数据类似。表示用于和输入数据做卷积的过滤器大小,f(c)表示采用了多少个过滤器。

2.4、步长

步长表示卷积的时候过滤器以多长的距离进行移动,我习惯用s表示。

2.5、全连接神经数

FC(n),表示全连接层的神经元数量。

3、卷积层

卷积就是指在原始的输入上进行特征的提取。假如有一个5X5X3的RGB图片,用2X2的过滤器对R进行卷积。

3.1 卷积实例1

相关参数:

  1. 输入:5X5X3
  2. 1个过滤器:2X2
  3. 步长:s=1
  4. padding:p=0

经过卷积计算后结果为:4X4                  

那么输出的结果是怎么计算出来的呢?

比如输出中左上角的21,等于过滤器和输入中的左上角2X2的切片根据下面的计算结果得到:21=1*1+8*2+2*2+0*1

在输入数据中过滤器向右按步长s=1移动:17=8*1+4*2+0*2+1*1

在输入数据中过滤器向下按步长s=1移动:13=2*1+0*2+1*2+9*1

输出的结果就是过滤器在输入数据中按步长移动计算得到的结果。

3.2 卷积实例2

如果我把步长参数改为2,即相关参数:

  1. 输入:5X5X3
  2. 1个过滤器:2X2
  3. 步长:s=2
  4. padding:p=0

经过卷积计算后结果为:2X2

那么输出的结果是又怎么计算出来的呢?

比如输出中左上角的21,等于过滤器和输入中的左上角2X2的切片根据下面的计算结果得到:21=1*1+8*2+2*2+0*1

在输入数据中过滤器向右按步长s=2移动:13=4*1+2*2+1*2+3*1

 

在输入数据中过滤器向下按步长s=2移动:28=1*1+9*2+2*2+5*1

输出的结果就是过滤器在输入数据中按步长移动计算得到的结果。

3.3 卷积实例3

那么,padding是什么呢,假如我修改p=1,填充0,则:

可以看出,padding是在输入数据的长和宽填充p个长度的自定义值,填充值通常为一些对原来特性影响不大的值(比如0或1),填充后得到新的输出值,然后再卷积计算得到输出。

Padding的作用之一是在过滤器固定的情况下,为了得到一个和输入形状相同或相似的输出。

另外一个作用就是增加输入形状中边缘特征的被卷积次数,使边缘特征在卷积过程中不被弱化和丢失。

3.4卷积实例4

以上对R通道用2X2过滤器进行了卷积,即f=2X2X1;

对R通道进行卷积:

接下来怎么增加通道数呢?

我们假设对G、B通道(假设数据和R通道一样)分别用R通道的方式进行卷积

对G通道进行卷积:

对B通道进行卷积:

把对3个通道的卷积值进行合并,结果输出:4X4X3,这时我们称用的过滤器为f=4X4X3。事实上,对于多通道的输入数据,可以通过应用多个过滤器等到多个通道的输出。

下面,我们总结下输入参数(n(H)Xn(W)Xn(c))、padding(p)参数、过滤器参数(f(H)Xf(W)f(c))、步长参数(s)、输出参数(o(H)Xo(W)Xo(c))之间的关系,通过下面的公式可以计算等到输出参数:

                                                                                     

4、池化层

池化(pooling)的作用是强化重要的特性,同时弱化不重要的特性,常用的最大值池化(max-pooling)和平均值池化(avg-pooling),这里以最常用的最大值池(max-pooling)讲解:

相关参数:

  1. 输入:5X5X3
  2. 2X2max-pooling
  3. 步长:s=1
  4. padding:p=0

经过卷积计算后结果为:4X4

池化的过程和卷积的过程相似,先定义一个池化的参数(比如2X2)和池化的方式(比如max-pooling),然后按照卷积的的方式按步长大小进行移动即可,如输出中左上角的8=max(1,8,20)

向下移动1,9=max(2,0,1,9)

 

5、全连接层

如卷积实例3结果输出4X4X3=48个参数,我们的目的是最后输出3个类型(比如猫、狗、人),因此我们添加一个FC(3)的(即3个神经元)全连接层。全连接可以看做上一层输出的所有特征都要和全连接层的所有神经元进行连接,计算的参数为(n(H)Xn(W)Xn(C)XFC(n)),因此全连接层的计算非常复杂。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/henku449141932/article/details/107454180

智能推荐

[深度学习]大白话之卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在图像处理方面有出色的表现,其目的就是抽取特征,目前已经被大范围使用到图像处理、自然语言处理等领域中。相比于

大白话讲解卷积神经网络工作原理

本文介绍了计算机视觉常用工具:卷积神经网络。用大白话讲解了其应用领域、卷积、池化(下采样)、全连接、梯度下降、反向传播算法。并用三维可视化工具展示了手写字体识别的卷积神经网络案例,最后介绍了几个经典的...

大白话入门深度学习---探索深度学习的发展路线:人脑神经网络-人工神经网络-深度神经网络

人的大脑中存在着无数神经元,各个神经元相互连结,构成一个较大的神经网络,用来处理人脑从外界接收的信息。但是,人类的大脑并不是从一开始就能处理一些复杂的问题的。婴儿刚出生时,大脑的神经元已产生,并且迁移...

大白话神经网络和BP算法--从此爱上神经网络

1.1神经网络来源1.2了解感知器认知过程1.3感知器代码实现逻辑或和与1.4感知器网络和S型神经元及激活函数1.5神经网络之结构详解1.6.1神经网络BP算法前置知识1.6.2神经网络BP算法W7过程演练1.6.3神经网络BP算法W1过程...

【学习笔记】深度学习之CNN卷积神经网络

什么是CNN(卷积神经网络)? 定义 卷积神经网络(Convolutional Neural Network, CNN)是一种前馈...与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法

Deep-Learning之卷积神经网络(小白入门)

  卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一 。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络...

大白话循环神经网络RNN-从此爱上RNN

本系列讲解循环神经网络RNN和LSTM的所有知识点,学完本系列课程将对RNN和LSTM的理论知识有清晰的认识,同时能够将理论结合实践应用到工作中。

图卷积神经网络GCN大白话解读!

何时能懂你的心——图卷积神经网络(GCN)https://zhuanlan.zhihu.com/p/71200936蝈蝈把知道的讲清楚。公众号SimpleAI,欢迎来逛逛。已关注天雨粟、马东什么等 1,370 人赞同了该文章作者:郭必扬2019.6.25 GCN问世...

深度学习系列5:卷积神经网络(CNN),图像识别的利器

今天我们就来聊聊图像识别的技术–卷积神经网络(CNN) 一、图像识别 图像识别是指让计算机通过学习识别出图像的内容或者内容所属种类,比如识别图像中有没有汽车,识别图像中的人是谁等等。 1.1 图像的计算机表示 ...

大白话介绍卷积神经网络并手把手教会识别图片

卷积神经网络,简称 CNN,是深度学习代表算法之一,主要运用于图像处理和图像识别等领域。CNN 在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学...

1.B站子豪兄·大白话讲解卷积神经网络工作原理

卷积神经网络用在计算机视觉领域,是人工智能的一个分支。计算机视觉就是告诉计算机如何理解图像,包括人脸识别,自动驾驶等。不仅可以用于处理图像还可以处理音频,文本,只要数据能变成图像格式,他都能处理。 卷....

大白话解释TCP三次握手

大白话解释TCP三次握手 原文地址:http://www.cnblogs.com/yuilin/archive/2012/11/05/2755298.html 一、TCP三次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 1、第一次握手:建立...

深度学习——卷积神经网络(目标分类)03

使更模糊(高斯卷积核),使更清楚(unsharp卷积核),动作模糊(motion filter) 旋转平移 R, T 2. 模型设计 基于现有模型局部更改(借鉴已有模型) 类型: 分类:表情分类,人群分类 分类+回归:表情+程度,种类+

手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis

小疯手把手带你整合SpringMVC+Spring+MyBatis三大框架,俗称SSM,用它完全代替传统的SSH框架,把它们最优雅的一面发挥出来。整合配置结束后,会有一个应用实例“图书管理系统”带给大家,希望能快速上手这个框架!

视频教程-大白话神经网络和BP算法--从此爱上神经网络-深度学习

大白话神经网络和BP算法--从此爱上神经网络 李虎,联想集团PCSD业务UD...

深度学习系列6:卷积神经网络的反向传播

卷积神经网络一般会借助 TensorFlow 或者 PaddlePaddle 来开发,仅需要开发正向传播,反向传播会自动生成,所以一般不要求掌握。但是技多不压身,今天我们还是来聊一下卷积神经网络的反向传播。 一、卷积神经网络 如...

卷积神经网络CNN---权值共享

虽然现在大多数的说法是2012年的AlexNet网络是深度学习的开端,但是CNN的开端最早其实可以追溯到LeNet5模型,它的几个特性在2010年初的卷积神经网络研究中被广泛的使用——其中一个就是权值共享。 2、什么是权值...

面试 SQL整理 常见的SQL面试题:经典50题

目录 ​ SQL基础知识整理: 常见的SQL面试题:经典50题 三、50道面试题 ...【面试题类型总结】这类题目属于行列如何互换,解题思路如下: ...select 查询结果 如:[学号,平均成绩:组函数avg(成绩)]from 从哪张表中查找...

CNN卷积神经网络(一)大白话基础

CNNs/ConvNets和普通神经网络一样,都是由很多有可学习的权重和偏置(learnable weights and biases)的神经元组成。每个神经元都接收一组来自前一层神经元的输入信号,做一个点乘(dot product,连接到该神经元的前...

如何写一个游戏AI(二)卷积神经网络是什么,怎么使用?

开始接触卷积神经网络已经有快三个星期了。觉得还是有一些概念,要刚开始知道会比较容易理解这个东西。 1.什么是卷积神经网络 其实这个东西应该是这样读的,卷积 神经网络。卷积是用来提取特征的,神经网络是...

机器学习大白话杂谈(1)——常见的卷积神经网络架构简介

这篇文章需要一点点机器学习的基础,尽量讲成大白话。  卷积神经网络在当年也算是异军突起,一出现便将各个天梯榜屠的面目全非,今天我们就来聊一下有哪些常见的卷积神经网络结构。至于什么是卷积神经网络,你可以...

线程池

一、为什么会有线程池 1、创建和销毁线程是非常耗时和耗资源的 2、如果系统中并发了很多线程,会对系统的性能造成很大的影响。 线程池就是解决线程声明周期和资源不足的问题。 线程池是通过多个任务重复使用线程...

数据库之主码和外码

目录 1.域 2.笛卡儿积 3.关系 主码 ...想要明白主码和外码的概念前,需要先对域和笛卡儿积概念有一个彻底的理解。请阅读的童靴务必耐心~O(∩_∩)O ...(域就是集合,不过集合里的元素是相同的数据类型) ...

视频教程-大白话注意力机制-Attention-深度学习

大白话注意力机制-Attention 李虎,联想集团PCSD业务UDS平台推...

你不得不了解的深度学习知识(一)

(1)大白话解释深度学习 假设深度学习要处理的信息是“水流”,而处理数据的深度学习网络是一个由管道和阀门组成的巨大水管网络。网络的入口是若干管道开口,网络的出口也是若干管道开口。这个水管网络有许多层,每一...

卷积神经网络(简单实现案例)

案例: 代码: import numpy as np import tensorflow as tf ...随机产生一个输入数据 ...# 输入数据:(1,32,32,1):(输入一张图,高度32,宽度32,通道数为1) input_data = np.random.randn(32,32)...# 卷积核,(5,...

视频教程-大白话循环神经网络RNN-从此爱上RNN-深度学习

大白话循环神经网络RNN-从此爱上RNN 李虎,联想集团PCSD业务UDS平...

大白话tensorflow--从此爱上tensorflow

1.2tensorflow基本概念1.3tensorflow常量示意和神经网络开发流程1.4tensorflow会话流程1.5tensorflow会话session的config设置1.6tensorflow中Variable变量和Placeholder示意1.7tensorflow中变量命名作用域1.8...

随便推点

推荐文章

热门文章

相关标签