[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

时间:2022-08-30 09:19:41

先一层一层的说卷积神经网络是啥:

1:卷积层,特征提取

我们输入这样一幅图片(28*28):

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

如果用传统神经网络,下一层的每个神经元将连接到输入图片的每一个像素上去,但是在卷积神经网络中,我们只把输入图像的一部分连接到下一层的神经元上。

比如每个神经元连接对应的一个5*5的区域:

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

这个输入图像的区域被称为隐藏神经元的局部感受野(local receptive fields),它是输入像素上的一个小窗口。每个连接学习一个权重。而隐藏神经元同时也学习一个总的偏置。可以把特定的隐藏神经元看作是在学习分析它对应的那个局部感受野。

然后我们在整个图像上移动局部感受野,移动的步长可以设定,假如每次移动一格,图像数据和权重的对应元素相乘并求和就得到了下一层神经元的值:

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

这样我们就得到了一个24*24的特征图,注意生成这个特征图时用的5*5的权重和偏置是固定的,这就是共享权重和偏置。这种方法可以降低参数量,同时还可以认为是一种特征的提取。在人工神经网络中,如果输入一幅图片中有一盘烧鸡在图片的角落中,那么输出的烧鸡得分可能不会高,因为图像的大部分信息都和烧鸡无关,但CNN使用这种滑动卷积核寻找特征的方式,无论你这只鸡在哪里,都能提取出他的特征不是吗。图像这个东西,本身就是一个区域的信息更有说服力,一张图的左上角和右上角两块可能真是没什么实际关系,但一张图中间的某一个区域的像素就关系很大了,比如对一张烧鸡的图片截取其中一小块,人也能通过色泽啊肉质判断出来一点点这最起码是禽类的肉而不是哺乳动物的肉,但随机的在图中取一堆点让人判断这是啥就很难了。这是我对CNN处理图像问题优越性的一个认识吧,可能不够严谨,还请高人指教。。。

或者可以理解为,这个5*5的参数就好像是一个人的世界观,他通过逐行查看这个图片,得出了一个结论就是特征图。CNN通常会设定好多个卷积层(好多个特征图),比如一张特征图专门用来查看图像的边缘信息,另一张专门查看图像的对比度信息,还有查看图像里有没有耳朵等等。

图:一个完整的卷积层通常由若干个不同的特征映射组成

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

这些特征映射的参数并不是人工决定的,而也是通过优化损失函数自动学习得到的,所以在CNN中不是每个特征都是可以用人话描述清楚的。

这就是卷积层,也是卷积神经网络的核心方法。卷积层的每一个特征图中的每个神经元也需要经过一个激活函数的计算以做非线性的映射,这个激活函数通常使用ReLU:

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

从一些大神口中得知CNN激励函数一定不能使用sigmoid(太容易饱和了,除非你再加一层把所有的值都归一化到0和1之间),优先使用ReLU,如果ReLU训练不下去,就使用Leaky ReLU。

2:Pooling layer

这个层是夹在连续的卷积层之间的一个压缩数据用的层,功能很简单,就是把feature map缩小,有时此层又叫subsampling层,假设有一个特征图如下,使用2*2的max pool来压缩:

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

同时还可以用L2池化,均值池化,功能都是一样的。

为什么要有这个层呢?我的理解是这样的:首先对于一个feature map,把它缩小后依旧可以判断出这个特征来,就比如一张红色的图,缩小后它还是红色的,其次这样可以缩小卷积层的层数,如果没有池化,那么一层一层卷积层叠起来,最终连接到最后一层全连接层时候,卷积神经网络的深度将很深,也对训练带来了很大的难度。

CNN就是卷积、池化、卷积、卷积这样组合起来的,到了特征图很小的时候,再链接一个全连接层,就可以做分类问题了下图就是一个卷积神经网络的基本组成:

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

训练卷积神经网络的方法和人工神经网络是一样的,都是先写出来cost function,使用BP求损失函数对各个参数的偏导数,在应用SGD算法迭代得出最优的参数组合。

对于ANN和CNN的原理解析到此为止,从现在开始将使用一些成熟的CNN模型和DL框架实现深度学习的一些功能。

[DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络的更多相关文章

  1. [DL学习笔记]从人工神经网络到卷积神经网络_1_神经网络和BP算法

    前言:这只是我的一个学习笔记,里边肯定有不少错误,还希望有大神能帮帮找找,由于是从小白的视角来看问题的,所以对于初学者或多或少会有点帮助吧. 1:人工全连接神经网络和BP算法 <1>:人工 ...

  2. &lbrack;DL学习笔记&rsqb;从人工神经网络到卷积神经网络&lowbar;3&lowbar;使用tensorflow搭建CNN来分类not&lowbar;MNIST数据&lpar;有一些问题&rpar;

    3:用tensorflow搭个神经网络出来 为什么用tensorflow呢,应为谷歌是亲爹啊,虽然有些人说caffe更适合图像啊mxnet效率更高等等,但爸爸就是爸爸,Android都能那么火,一个道 ...

  3. ufldl学习笔记与编程作业:Multi-Layer Neural Network&lpar;多层神经网络&plus;识别手写体编程&rpar;

    ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程) ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践. 在dee ...

  4. 学习笔记CB009&colon;人工神经网络模型、手写数字识别、多层卷积网络、词向量、word2vec

    人工神经网络,借鉴生物神经网络工作原理数学模型. 由n个输入特征得出与输入特征几乎相同的n个结果,训练隐藏层得到意想不到信息.信息检索领域,模型训练合理排序模型,输入特征,文档质量.文档点击历史.文档 ...

  5. 深度学习笔记 &lpar;二&rpar; 在TensorFlow上训练一个多层卷积神经网络

    上一篇笔记主要介绍了卷积神经网络相关的基础知识.在本篇笔记中,将参考TensorFlow官方文档使用mnist数据集,在TensorFlow上训练一个多层卷积神经网络. 下载并导入mnist数据集 首 ...

  6. 【深度学习笔记】(二)基于MNIST数据集的神经网络实验

    一.介绍 MNIST(Mixed National Institute of Standards and Technology database)是网上著名的公开数据库之一,是一个入门级的计算机视觉数 ...

  7. 《TensorFlow2深度学习》学习笔记(二)手动搭建并测试简单神经网络(附mnist&period;npz下载方式)

    本实验使用了mnist.npz数据集,可以使用在线方式导入,但是我在下载过程中老是因为网络原因被打断,因此使用离线方式导入,离线包已传至github方便大家下载: https://github.com ...

  8. 卷积神经网络&lpar;CNN&rpar;学习笔记1:基础入门

    卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01   |   In Machine Learning  |   9 Comments  |   14935  Vie ...

  9. tensorflow学习笔记——图像识别与卷积神经网络

    无论是之前学习的MNIST数据集还是Cifar数据集,相比真实环境下的图像识别问题,有两个最大的问题,一是现实生活中的图片分辨率要远高于32*32,而且图像的分辨率也不会是固定的.二是现实生活中的物体 ...

随机推荐

  1. perform

    public class ArgsTest { private List <Object> args; private ArgsTestCheckPoint checkPoint; pub ...

  2. 使用SDWebImage下载图片&comma;sharedDownloader方法下载成功&comma;new 方法下载失败

    一,经历 1.使用 new 方法创建下载对象时,下载图片总是失败,而且不会执行成功或失败后的回调. 2.参考别人的代码,用的是sharedDownloader来创建下载对象,可以顺利下载图片. 3.看 ...

  3. LINQ查询操作符之Select、Where、OrderBy、OrderByDescending、GroupBy、Join、GroupJoin及其对应的查询语法

    介绍    ·Select - Select选择:延迟    ·Where - Where查询:延迟    ·OrderBy - 按指定表达式对集合正序排序:延迟    ·OrderByDescend ...

  4. 架构设计:负载均衡层设计方案(5)——LVS单节点安装

    1.概述 上篇文章<架构设计:负载均衡层设计方案(4)——LVS原理>(http://blog.csdn.net/yinwenjie/article/details/46845997),我 ...

  5. WCF &plus; EF 遇到的问题

    此文承接上一文章 基于WCF的API实现 http://www.cnblogs.com/heyixiaoran/p/4000695.html 由于上一次Entity部分没怎么写,到Services里识 ...

  6. spring mvc 和ajax异步交互完整实例

    Spring MVC 异步交互demo: 1.jsp页面: <%@ page language="java" contentType="text/html; cha ...

  7. &period;CN根域名被攻击至瘫痪,谁之过&quest;

    2013-10-08 09:19 佚名 新浪科技 2013年8月25日凌晨,.CN域名凌晨出现大范围解析故障,经分析.CN的根域授权DNS全线故障,导致大面积.CN域名无法解析.事故造成大量以.cn和 ...

  8. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...

  9. Codeforces 741B Arpa&&num;39&semi;s weak amphitheater and Mehrdad&&num;39&semi;s valuable Hoses &lpar;并查集&plus;分组背包&rpar;

    <题目链接> 题目大意: 就是有n个人,每个人都有一个体积和一个价值.这些人之间有有些人之间是朋友,所有具有朋友关系的人构成一组.现在要在这些组中至多选一个人或者这一组的人都选,在总容量为 ...

  10. postgresql时间处理

    时间取到截取 例:select date_trunc('second', "reportTime") from travel_message limit 10; 结果: 他人博客: ...