学习了前馈神经网络和卷积两个知识之后,开始学习卷积神经网络。
这是一个简单的神经网络,包含三层: 输入层、隐藏层、输出层,其中隐藏层的层数根据需要而定。
卷积神经网络是从传统神经网络改进而来,结构图对比:
增加了卷积层(Convolution)与池化层(Pooling Layer)。

在卷积神经网络中,输入输出的数据称为特征图

一.卷积层

1.二维卷积

一维卷积是这样的

二维卷积是这样的
在图像处理中的二维卷积可以理解为一个二维卷积核从二维矩阵上滑过,进行相乘叠加
填充
步长

2.从全连接的局限性讲起

全连接层在使用中,前后两层的所有神经元全部连接,这样的连接,参数太过冗余。如果输入是一张640*480的图片,输入有30720个节点,在经过几层指数增长之后,计算消耗变得难以接受。

3.通过对比了解卷积层

在输入数据进入卷积层的时候,由于有卷积核的存在,卷积层中的一个神经元只与输入数据的局部数据相连,并不是全部数据。例如卷积核的大小是3x3,那么就代表输入特征图中的3x3的局部数据连接到卷积层一个神经元。这是CNN的第一个重要特性:局部感知
在全连接网络中,每条连接都有一个独立的权重。但是在卷积层中,计算流程是卷积核滑过特征图,卷积核里的参数是不变的,卷积核里的参数也就是权重。极大的减少了要训练的参数,CNN的第二个重要特性就是同一通道中所有神经元权重共享

4.多通道输入

卷积层的输入可以是同时输入多个矩阵,每个矩阵称为通道。输入的特征图和卷积核的形状用(通道,宽,高)表示。例如对于一个(4,4,4)的输入特征图,卷积核的大小是(4,3,3),输出的特征图是(1,2,2)。
这4个3x3的矩阵构成一个卷积核,输出一张特征图。如果需要n张特征图,那就要设置n个(4,3,3)的卷积核。
这就是为什么在网上搜到的很多示意图会用长方体来表示CNN。

二.池化层

池化-Pooling,pool是名词“水池”,动词“汇集”。这一层的工作是对网络中的特征进行选择,降低特征数量,从而减少计算开销,但不知道为啥翻译成池化。
通常在连续的卷积层之间会周期性地插入一个池化层,在一个卷积层得到输出特征图之后,再把这个特征图输入池化层。
最大池化

平均池化
图像深度学习中图像尺寸过大,池化是一种降采方式,引入池化层以减少参数矩阵的尺寸,从而减少最后的参数数量——根本目的为了防止过拟合。

三.全连接层(FC)在CNN中的作用

全连接层在整个网络卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的特征表示映射到样本的标记空间的作用。

一段来自知乎的通俗理解:

从卷积网络谈起,卷积网络在形式上有一点点像咱们正在召开的“人民代表大会”。卷积核的个数相当于候选人,图像中不同的特征会激活不同的“候选人”(卷积核)。池化层(仅指最大池化)起着类似于“合票”的作用,不同特征在对不同的“候选人”有着各自的喜好。

全连接相当于是“代表普选”。所有被各个区域选出的代表,对最终结果进行“投票”,全连接保证了receiptive field
是整个图像,既图像中各个部分(所谓所有代表),都有对最终结果影响的权利。

在实际使用中,全连接层可由卷积操作实现:对前层是全连接的全连接层可以转换为卷积核为1*1的卷积;而前层是卷积层的全连接层可以转换为卷积核为前层卷积输出结果的高和宽一样大小的全局卷积。

深度学习-1.3卷积神经网络相关推荐

  1. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP

    原文地址可以查看更多信息 本文主要参考于:Multilayer Perceptron  python源代码(github下载 CSDN免费下载) 本文主要介绍含有单隐层的MLP的建模及实现.建议在阅读 ...

  2. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-03-基于Python的LeNet之LR

    原地址可以查看更多信息 本文主要参考于:Classifying MNIST digits using Logistic Regression  python源代码(GitHub下载 CSDN免费下载) ...

  3. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  4. 深度学习21天——卷积神经网络(CNN):实现mnist手写数字识别(第1天)

    目录 一.前期准备 1.1 环境配置 1.2 CPU和GPU 1.2.1 CPU 1.2.2 GPU 1.2.3 CPU和GPU的区别 第一步:设置GPU 1.3 MNIST 手写数字数据集 第二步: ...

  5. 深度学习算法中卷积神经网络的应用

    下面一起来探讨一下关于深度学习算法中卷积神经网络的基本概念和应用: 1.卷积神经网络基本概念 卷积神经网络也是在传统人工神经网络的基础上发展起来的,它与 BP 神经网络有很大的相似之处,但也有很大的区 ...

  6. [人工智能-深度学习-33]:卷积神经网络CNN - 常见分类网络- LeNet网络结构分析与详解

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  7. 记录|深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天

    记录|深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天 1. 彩色图片分类效果图 数据集如下: 测试图1如下 训练/验证精确图如下: 优化后:测试图--打印预测标签: 优化后:测试图- ...

  8. 深度学习的数学-卷积神经网络的误差反向传播

    文章目录 前言 正文 卷积神经网络中的关系式 卷积层 池化层 输出层 平方误差(损失函数) 梯度下降法 卷积层和输出层的神经单元误差(重点) 输出层的神经单元误差计算 输出层的神经单元与其权重偏置的关 ...

  9. 深度学习教程(10) | 卷积神经网络解读(吴恩达·完整版)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/35 本文地址:http://www.showmeai.tech/article-det ...

  10. 深度学习21天——卷积神经网络(CNN):天气识别(第5天)

    目录 一.前期准备 1.1 设置GPU 1.2 导入数据 1.2.1 np.random.seed( i ) 1.2.2 tf.random.set_seed() 1.3 查看数据 二.数据预处理 2 ...

最新文章

  1. ICCV 2021 | 英伟达新研究:直接通过视频就能捕获3D人体动作!
  2. 什么是mysql分发版_MySQL:使用源码分发版还是二进制分发版
  3. ABAP中的F4帮助怎么用?
  4. kernel 3.10内核源码分析--内核栈及堆栈切换
  5. ffmpeg与ffserver的协同工作
  6. 学习响应式BootStrap来写融职教育网站,Bootsrtap第四天Header处理
  7. HTTP权威指南阅读笔记一:HTTP概述
  8. C++Primer学习笔记:第6章 函数
  9. python生成器与迭代器。
  10. iOS - 获取状态栏和导航栏尺寸(宽度和高度)
  11. epoll文件服务器,使用epoll模型的服务器
  12. 操作系统原理1-3章答案 黑新宏 胡元义主编
  13. Activiti6.0(十二)子流程
  14. rpc error: code = Unimplemented desc =
  15. 关于一个App调起另一个App
  16. Linux下 Yum 是什么
  17. java腰间盘终结者_大枣加大葱竟是腰椎间盘突出的终结者,一用一个好,腰不好不要错过...
  18. 侍魂服务器维护中,侍魂出现BUG,却是玩家们日思夜想希望出现的功能!
  19. Vue 2项目如何升级到Vue 3?
  20. mac Node 安装及部署

热门文章

  1. SolidWorks二次开发经验总结
  2. php实时聊天源码 仿手机QQ,php加swoole加mysql 仿webqq及时聊天
  3. 基于组态软件的35kV变电站监控系统设计简介
  4. 5GC NEF网元功能介绍
  5. java连点方法,Re:连点器(示例代码)
  6. 石墨烯 量子计算机,《Nature Nanotech.》又是石墨烯,这次对量子计算机下手了!...
  7. php 替换某个字符,php如何将指定字符串替换?
  8. 将SpringBoot项目打包并部署到服务器
  9. 遗补:“预防‘磁碟机’病毒”
  10. [SharePoint教程系列] 1.SharePoint 2016安装