今天给大家讲一下卷积神经网络,主要包括四个部分:卷积神经网络的历史、全连接层、卷积层和池化层。

CNN的英文全称是Convolutional Neural Network,雏形是LeCun在1998年发明的LeNet网络结构。

LeNet网络架构

那么到底什么是神经网络呢?应该说只要带有卷积层的就可以被叫做卷积神经网络。

神经网络的发展历史

1986年:Rumelhart和Hinton等人提出了反向传播(Back Propagation)算法。

1998年:LeCun基于BP神经网络训练了LeNet网络,标志着CNN的真正面世。

2006年:Hinton在他们的Science Paper中首次提出了Deep Learning的概念。

2012年:其实在2006年Hinton提出深度神经网络之后,受到了很多的质疑,但是在2012年Hinton的学生Alex Krizhevsky在寝室用GPU死磕了一个Deep Learning模型,一举拿下了计算机视觉TOP领域ILSVRC 2012的冠军,在百万量级的ImageNet数据集合上,效果大幅度的超过了传统的方法,准确率从70%提升到80%。

全连接层

其实全连接层就是模仿大脑的神经元结构,我们可以看到:

输出值 = 输入值x经过加权w之后累加的结果再经过激励函数。形式化为:

那么我们将神经元按列进行排列,列与列之间进行全连接,就得到了一个BP神经网络。

BP神经网络算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向进行,而调整权值和阈值则从输出到输入的方向进行。

下面我们来看一个实例来了解一下BP神经网络。

实例:利用BP神经网络进行数字识别

我们拿到一张图片,例如上边第一张图所示拿到的是0,这张图是由若干像素组成,每个像素有RGB三个通道,然后经过灰度化后变成第二张图片,然后将灰度化后的图片进行二值化得到第三张图片。

之后我们对图片进行概率处理,例如第一个框中白色块/全部块 = 0.2,经过相应的策略处理之后第一个数值为0.2。以此类推,可以得到上图右边的矩阵。

然后我们对这个矩阵进行维度变换和处理,将其变为1*n的行向量,这样处理之后的形式可以使得神经网络更好的输入处理。

我们知道神经网络如何输入了,那么最后应该输出什么才可以更好的辨别数字呢?One-Hot编码!

也就是说,每个数字都对应一个编码,如果输入1000000000,则判定为数字0,以此类推。

既然有了输入,也有了输出,我们就可以通过神经网络对其进行训练了。

首先将输入层的神经元数设置为25个节点,将输出层设置为10个节点,将上边1*n的向量输入到BP神经网络中,然后经过隐藏层最后到输出层onehot编码,输出层通过softmax激活函数可以得到每个数字出现的概率,即可识别数字。

卷积层

到底什么是卷积层?之前的文章中讲过了,有兴趣的可以直接查看。

漫画:卷积神经网络中的卷积核到底是什么?

漫画:卷积神经网络为什么适合处理图片数据?

干货 | 如何入手卷积神经网络

在卷积层的讲解中,阿广想问大家一个问题,卷积核如果越界了应该如何处理?例如下面这样:

假设用这么一个矩阵,我们使用3*3的滑动窗口,步长为2,则出现下面这种情况应该如何处理?

我们可以对其进行使用Padding对其进行补0处理,如下所示:

在卷积操作过程中,矩阵经过卷积操作之后大小由下面几个因数决定:

  • 输入图像大小W*W

  • Filter大小F*F

  • 步长S

  • padding的像素数P

经过卷积后的矩阵尺寸大小是有一个规律的,那么给大家一个通用的公式:

N=(W-F+2P)/S+1

池化层

为什么要存在池化层?因为当前的输入数据太大,有很多冗余信息,那么我们就要想办法对图像矩阵进行下采样,对特征图进行稀疏处理,减少数据运算量。下面通过MaxPooling下采样来给大家看一下到底什么是池化层。

上图中红色部分的值为1 1 5 6,我们使用的是MaxPooling,所以取最大值,则右图中红色部分为max(1,1,5,6)=6,以此类推,即可得到下采样结果。

类似于最大下采样,同样也有平均下采样层,如下图所示:

为了大家更好的理解和使用池化层,阿广总结了池化层的三个特点:

  • 没有训练参数

  • 只会改变特征矩阵的w和h,不改变channel

  • 一般pool size和卷积核的stride相同

今天阿广讲的是卷积神经网络的整体架构基础,包括神经网络的发展历史、全连接层、卷积层和池化层,大家有什么见解或者想法都可以在下面留言哦~

加个“星标”,欢迎留言!

阿广 · 一个会讲段子的科学探索者

原创不易,请多在看转发支持。包邮送五本优质技术书籍,上周中奖名单如下:如果你也想中奖,请多留言多阅读,下周就是你!

PS:特别感谢北京大学出版社赞助,下面部分图书参与了京东五折活动,如没有中奖,欢迎用券购买。中奖者请添加微信领取书籍:872561826。

一文带你了解卷积神经网络基础,建议收藏相关推荐

  1. 独家 | 一文带你上手卷积神经网络实战(附数据集学习资料)

    原文标题:Understanding deep Convolutional Neural Networks with a practical use-case in Tensorflow and Ke ...

  2. CNN卷积神经网络基础

    转自:http://www.sohu.com/a/138403426_470008 卷积神经网络基础 神经网络 先借用 CNTK 的一个例子,来看看如何使用神经网络来进行分类.如果想根据一个人的年龄和 ...

  3. 【AI Studio】飞桨图像分类零基础训练营 - 03 - 卷积神经网络基础

    前言:第三天,老师结合ppt文图详细讲解了线性和卷积网络的构建,由简单到复杂的讲解卷积网络的发展.最后结合几个项目加深理解.愈发感觉老师讲的好了.第二天的课听完后还感觉自己什么都懂了,结果轮到自己动手 ...

  4. 【三】零基础入门深度学习:卷积神经网络基础之初识卷积

    (给机器学习算法与Python学习加星标,提升AI技能) 作者 | 孙高峰 百度深度学习技术平台部资深研发工程师 内容来源 | 百度飞桨深度学习集训营 本文转自飞桨PaddlePaddle 导读 百度 ...

  5. ​深度学习笔记 第四门课 卷积神经网络 第一周 卷积神经网络基础

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  6. 温州大学《深度学习》课程课件(七、卷积神经网络基础)

    这学期我上的另一门课是本科生的<深度学习>,主要用的是吴恩达老师的<深度学习>视频课的内容. 使用教材:吴恩达<深度学习>课程笔记 课外参考书:<深度学习&g ...

  7. 计算机视觉:卷积神经网络基础

    计算机视觉:卷积神经网络基础 计算机视觉概述 计算机视觉的发展历程 卷积神经网络 卷积(Convolution) 卷积计算 填充(padding) 步幅(stride) 感受野(Receptive F ...

  8. 动手学深度学习(PyTorch实现)(六)--卷积神经网络基础

    卷积神经网络基础 1. 二维卷积层 1.1 二维互相关运算 1.2 互相关运算与卷积运算 1.3 特征图与感受野 2. 填充与步幅 2.1 填充 2.2 步幅 3. 多通道 3.1 多输入通道 3.2 ...

  9. pytorch卷积神经网络_知识干货-动手学深度学习(pytorch)-06 卷积神经网络基础

    卷积神经网络基础 本节我们介绍卷积神经网络的基础概念,主要是卷积层和池化层,并解释填充.步幅.输入通道和输出通道的含义. 二维卷积层 本节介绍的是最常见的二维卷积层,常用于处理图像数据. 二维互相关运 ...

最新文章

  1. 上小学的读者居然造了个“编程语言”!
  2. 关于Delphi中TRttiContext.FindType失效的问题
  3. 西南科技大学研究生计算机,我们毕业啦……西南科技大学2020研究生毕业记!...
  4. c语言能让制表符空9个字符码,C语言编程规范 – 嗨!大佟!
  5. HDU1859 最小长方形【水题】
  6. Android自定义操作栏示例教程
  7. linux输入输出重定向详解
  8. mac下selenium+python环境搭建
  9. Java全栈工程师知识体系介绍
  10. React在ESLint下的报错收录(react-hooks/exhaustive-deps)
  11. excel提取身份证出生日期_Excel如何从身份证号码中提取年龄
  12. 设计模式六大原则详解
  13. 阿里云 vps云监控插件已停止状态解决方法
  14. Jquery判断动态表格中行数据是否重复
  15. oracle官方网址
  16. 电脑网络重置后的出现的问题以及解决办法
  17. 绑定ssh publickey后clone仍然Permission denied
  18. mysql LOCATE() 函数 模糊查询,类似like %%
  19. 2021-08-12_简单的处理oracle常见错误ORA-12170、ORA-12541、ORA-12514、
  20. FSCapture(录屏,截屏软件)

热门文章

  1. 【通俗理解线性代数】 -- 理解二次型
  2. Matlab数据的可视化 -- 平面多边形的着色
  3. 【ACM】杭电OJ 2015
  4. Python + 爬虫:可视化大屏帮你选粽子
  5. FCOS:全卷积一阶段Anchor Free物体检测器,多种视觉任务的统一框架
  6. 基于Go的语义解析开源库FMR,“屠榜”模型外的NLP利器
  7. 年后跳槽BAT必看:10种数据结构、算法和编程课助你面试通关
  8. 陆奇宣布卸任COO后首度露面,将担任李彦宏的个人顾问
  9. Google Duplex语气自然流利,外媒却质疑其演示通话录音是伪造的
  10. 用Python分析《红楼梦》:见证了贾府的兴衰,你是否还能“笑道”世事无常