卷积神经网络CNN-学习1
卷积神经网络CNN-学习1
十年磨一剑,霜刃未曾试。
简介:卷积神经网络CNN学习。
CNN中文视频学习链接:卷积神经网络工作原理视频-中文版
CNN英语原文学习链接:卷积神经网络工作原理视频-英文版
一、定义
二、CNN灵感来源?
对于不同的物体,人类视觉也是通过这样逐层分级,来进行如下认知的。
人类视觉识别示例
在最底层特征基本上是类似的,就是各种边缘,越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等),到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。于是便模仿人类大脑的这个特点,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类。
三、卷积神经网络解决了什么?
概括来说就是保留图像特征,参数降维,复杂参数简单化。
图像像素RGB

众所周知,图像是由像素构成的,每个像素又是由颜色构成的。现在随随便便一张图片都是 1000×1000 像素以上的, 每个像素都有RGB 3个参数来表示颜色信息。
假如我们处理一张 1000×1000 像素的图片,我们就需要处理3百万个参数!1000×1000×3=3,000,000
这么大量的数据处理起来是非常消耗资源的,卷积神经网络 – CNN 解决的第一个问题就是「将复杂问题简化」,把大量参数降维成少量参数,再做处理。
更重要的是:我们在大部分场景下,降维并不会影响结果。比如1000像素的图片缩小成200像素,并不影响肉眼认出来图片中是一只猫还是一只狗,机器也是如此。
图片数字化的传统方式

图像简单数字化无法保留图像特征,如上图假如有圆形是1,没有圆形是0,那么圆形的位置不同就会产生完全不同的数据表达。但是从视觉的角度来看,图像的内容(本质)并没有发生变化,只是位置发生了变化。所以当我们移动图像中的物体,用传统的方式的得出来的参数会差异很大!这是不符合图像处理的要求的。而 CNN 解决了这个问题,他用类似视觉的方式【模仿人类大脑视觉原理,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类】保留了图像的特征,当图像做翻转,旋转或者变换位置时,它也能有效的识别出来是类似的图像。
四、卷积神经网络的架构

典型的 CNN 由卷积层、池化层、全连接层3个部分构成:
典型CNN组成部分

五、数据输入层
去相关与白化效果图

六、卷积计算层
卷积层有两个重要的操作,一个是局部关联,每个神经元看做一个滤波器filter;另一个是窗口滑动,filter对局部数据计算。
卷积层的运算过程如下图,用一个卷积核扫完整张图片:
卷积层动态运算图

卷积层的运算过程,可以当做使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值,即卷积层通过卷积核的过滤提取出图片中局部的特征。
卷积层运算图

卷积层计算过程动图

七、激励层
激励层是把卷积层输出结果做非线性映射。CNN采用的激励函数一般为ReLU(The Rectified Linear Unit/修正线性单元)。

八、池化层
池化层在连续的卷积层中间,其用于压缩数据和参数的量,减少过拟合。最重要的作用就是保持特性不变,压缩图像,降低数据维度。

池化层用的方法有Max pooling 和 average pooling,而实际用的较多的是Max pooling。Max pooling思想:对于每个2 * 2的窗口选出最大的数作为输出矩阵的相应元素的值,比如输入矩阵第一个2 * 2窗口中最大的数是6,那么输出矩阵的第一个元素就是6,如此类推,保持特征不变地降低维度。
Max pooling图

动态池化图

我们可以看到动态池化图中,原始图片是20×20的,我们对其进行下采样,采样窗口为10×10,最终将其下采样成为一个2×2大小的特征图。
九、全连接层
十、CNN实际应用场景
图像分类/检索、目标定位检测、目标分割、人脸识别、骨骼识别等。
CNN人脸识别

Finally
CNN中文视频学习链接:卷积神经网络工作原理视频-中文版
CNN英语原文学习链接:卷积神经网络工作原理视频-英文版
十年磨一剑
霜刃未曾试
卷积神经网络CNN-学习1的更多相关文章
- 卷积神经网络(CNN)学习笔记1:基础入门
卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01 | In Machine Learning | 9 Comments | 14935 Vie ...
- 卷积神经网络CNN学习笔记
CNN的基本结构包括两层: 特征提取层:每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征.一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来: 特征映射层:网络的每个计算层由多 ...
- 卷积神经网络 CNN 学习笔记
激活函数Relu 最近几年卷积神经网络中,激活函数往往不选择sigmoid或tanh函数,而是选择relu函数.Relu函数的定义 $$f(x)= max(0,x)$$ Relu函数图像如下图所示: ...
- 【深度学习系列】手写数字识别卷积神经--卷积神经网络CNN原理详解(一)
上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
- 深度学习之卷积神经网络(CNN)详解与代码实现(一)
卷积神经网络(CNN)详解与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10430073.html 目 ...
- 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理
上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
- 深度学习之卷积神经网络CNN
转自:https://blog.csdn.net/cxmscb/article/details/71023576 一.CNN的引入 在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连 ...
- 深度学习之卷积神经网络CNN及tensorflow代码实例
深度学习之卷积神经网络CNN及tensorflow代码实例 什么是卷积? 卷积的定义 从数学上讲,卷积就是一种运算,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分.级数,所以看起来觉得很复杂 ...
- 深度学习之卷积神经网络CNN及tensorflow代码实现示例
深度学习之卷积神经网络CNN及tensorflow代码实现示例 2017年05月01日 13:28:21 cxmscb 阅读数 151413更多 分类专栏: 机器学习 深度学习 机器学习 版权声明 ...
- TensorFlow 2.0 深度学习实战 —— 浅谈卷积神经网络 CNN
前言 上一章为大家介绍过深度学习的基础和多层感知机 MLP 的应用,本章开始将深入讲解卷积神经网络的实用场景.卷积神经网络 CNN(Convolutional Neural Networks,Conv ...
随机推荐
- 用FL Studio制作反向人声音效(Vocal Chops)
人声切片在各类电子音乐中都被广泛运用,在FL Studio20中我们也可以运用其自带的插件来制作属于我们自己的人声切片效果.在学完这篇文章后你就可以动手做出如Kygo.Martin Garrix等大牌 ...
- ZAB
ZAB=ZooKeeper Atomic Broadcast ZooKeeper原子消息广播协议,支持崩溃回复的原子广播协议. zk使用一个单一的主进程来接受并处理客户端的所有事务请求,并采用ZAB的 ...
- 五. Webpack详解
1. 什么是Webpack 1.1 引入 什么是webpack?这个webpack还真不是一两句话可以说清楚的. 我们先看看官方的解释:At its core, webpack is a static ...
- Kubernetes中Service的使用
目录 简介 1. Service资源定义 1.1 Service Type ClusterIP 无头service NodePort sessionAffinity实现源地址session绑定 简介 ...
- Docker 与 Podman 容器管理的比较
翻译自 Paul Ferrill 2020年9月1日的文章<Compare Docker vs. Podman for container management> [1] Docker 和 ...
- win10拔下电源会黑一下屏
- 第2.3节 Python运算符大全
一. Python的算术运算 Python的算术运算符与C语言类似,略有不同.包括加(+).减(-).乘(*).除(/).取余(%).按位或(|).按位与(&).按位求补(~).左移位(< ...
- PyQt学习随笔:Model/View开发时在view数据项中设置不同角色数据的方法
在往Model中通过QStandardItem等类插入数据项时,除了实际插入的存储数据,还可以设置不同角色(请参考<PyQt学习随笔:Model/View中诸如DisplayRole的数据角色及 ...
- PyQt(Python+Qt)学习随笔:Qt Designer组件属性编辑界面中对话窗QDialog的modal属性
modal属性表示窗口执行show()操作时是以模态窗口还是非模态窗口形式展示,缺省为False,设置该值与QWidget.windowModality的值设置为 Qt.ApplicationModa ...
- 团队作业3_需求改进&系统设计
一.需求&原型改进 1.需求改进: (1)发现问题:通过发布问卷调查及收集整理的形式发现用户的新需求: (2)修改需求:考虑新增提醒用户未完成事件的功能. 附:用户调查问卷(如下) 调研途 ...