学习CNN系列一:原理篇
CNN的发展历程:
1962年,卷积神经网络的研究起源于Hubel和Wiesel研究毛脑皮层的发现局部互连网络可以有效降低反馈神经网络的复杂性。
1980年,CNN的第一个实现网络:Fukushima为解决模式识别问题基于神经元间的局部连通性和图像的层次组织转而提出的新识别机。
1998年,第一个多层人工神经网络——LeNet5,也是第一个正式的CNN模型(LeCun,用于手写数字分类)。共7层:2个卷积层,2个池化层,3个全连接层,利用BP算法训练参数。
(之后十年停滞,一因BP算法训练计算量极大,硬件计算能力不足。二因浅层机器学习算法(如SVM)开始发展。)
2012年,AlexNet在ImageNet大赛上夺冠,掀起CNN学习热潮。AlexNet整体架构与LeNet-5相似,但是更深。在卷积层使用ReLU函数作为非线性激活函数,在全连接层使用Dropout机制来减少过拟合。
2014年,GooleNet在ImageNet夺冠,达到22层。主要创新在于Inception(核心结构),是一种网中网的结构,即原来的节点也是一个网络。
2015年,ResNet将网络做到152层,引入残差,解决了网络层比较深时无法训练的问题。
2016年,商汤做到了1207层的CNNM,是截止目前在ImageNet上最深的深度学习网络。
CNN与普通网络的区别:
CNN可以避免前期对图像复杂的预处理,可以直接输入原始图像,因此在模式分类领域得到了广泛的应用。
CNN包含了一个由卷积层(Convolution Layer)和池化层(Pooling Layer)构成的特征提取器。在普通的神经网络中,一个神经元一般与全部邻接神经元连接,称之为全连接神经网络。而CNN的卷积层,一个神经元只与部分邻接神经元连接。在CNN的一个卷积层中,通常包含若干个特征图(feature map),每个特征图由一些矩形排列的神经元组成,同一特征图的神经元共享权值,即卷积核(Covolutional Kernel)。卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中它进行学习并得到合理的权值。共享权值带来的直接好处是减少了网络各层之间的连接,同时又降低了过拟合的风险。池化可以看做是一个特殊的卷积过程。卷积核池化大大降低了模型的复杂度,减少了模型的参数。
CNN主要用于识别位移、缩放及其他形式扭曲不变的二维图像。一方面,CNN的特征检测层通过训练数据进行学习,这样避免了显式的特征抽取,而是隐式的从训练数据中学习。另一方面,同一特征图上的神经元权值相同,网络可以并行学习,这是卷积网络相比全连接层的优势。
CNN结构:
CNN基本结构通常包含三层:卷积层+池化层+全连接层。为防止过拟合,有的网络添加了Dropout层。
学习CNN系列一:原理篇的更多相关文章
- Nagios学习实践系列——基本安装篇
开篇介绍 最近由于工作需要,学习研究了一下Nagios的安装.配置.使用,关于Nagios的介绍,可以参考我上篇随笔Nagios学习实践系列——产品介绍篇 实验环境 操作系统:Red Hat Ente ...
- WebApi学习总结系列第三篇(Http)此篇持续更新...
越了解Http对WebApi开发就越有帮助,因为WebApi就是建立在Http基础之上的. 一.Http: 通过 <ASP.NET Web API 2 框架揭秘>一书中 了解到 什么叫We ...
- 学习CNN系列二:训练过程
卷积神经网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间精确的数学表达式,只要用已知的模式对卷积神经网络加以训练,网络就具有输入.输出之间映射的 ...
- WebApi学习总结系列第五篇(消息处理管道)
引言: ASP.NET WebAPI的核心框架是一个消息处理管道,这个管道是一组HttpMessageHandler的有序组合.这是一个双工管道,请求消息从一端流入并依次经过所有HttpMessage ...
- WebApi学习总结系列第四篇(路由系统)
由于工作的原因,断断续续终于看完了<ASP.NET Web API 2 框架揭秘>第二章关于WebApi的路由系统的知识. 路由系统是请求消息进入Asp.net WebApi的第一道屏障, ...
- java并发编程系列原理篇--JDK中的通信工具类Semaphore
前言 java多线程之间进行通信时,JDK主要提供了以下几种通信工具类.主要有Semaphore.CountDownLatch.CyclicBarrier.exchanger.Phaser这几个通讯类 ...
- Nagios学习实践系列——配置研究[监控当前服务器]
其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...
- Nagios学习实践系列
其实上篇Nagios学习实践系列--基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...
- OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(下)
1 UI5代码结构 上一次我们一起用了20秒的时间完成一个UI5版的Hello World.应用打开后有一个按钮,按钮的文字是Hello World,点击这个按钮之后,按钮会慢慢的消失掉(Fade o ...
随机推荐
- 检测到无法识别的AP,请升级AP数据库
0x00 事件 原因是公司新增了两个 AP 设备 TL-AP1202i ,似乎是新的 AP 硬件版本比较高,导致 AC 无法识别,控制器 Web 页面给出 检测到无法识别的AP,请升级AP数据库! 的 ...
- Python中机器学习-验证码识别-粗略总结
#验证码识别# 解决办法:将验证码切割成单个字符训练 遇到问题:验证码字符大小不一或重叠 对上述问题的解决:通过CNN(卷积神经网络)直接就是端到端不分割的识别方式 处理验证码:将图片二值化 输入验证 ...
- 40-用 volume container 共享数据
volume container 是专门为其他容器提供 volume 的容器.它提供的卷可以是 bind mount,也可以是 docker managed volume.下面我们创建一个 volum ...
- 微信小程序如何做金额输入限制
引言:金额输入时,需求如下: 1)首位不能出现0或者小数点(.) 2)仅保留两位小数 3)仅保留一个小数点(.),不允许出现多个. 1.wxml核心代码: <!-- 1.adjust-posit ...
- R-2 - 正态分布-中心极限-置信区间-正态假设检验
本节内容 1:样本估计总体均值跟标准差,以及标准误 2:中心极限定理 3:如何查看数据是否是正态分布QQ图 4:置信区间的理解跟案例 5:假设检验 参考文章: 假设检验的学习和理解 一.样本估计总体均 ...
- Python连载49-正则举例
一.re举例 import re #查找数字 p = re.compile(r"\d+") #在字符串“ongahjeuf125”中及逆行查找,按照规则p指定的正则进行查找 m = ...
- HTML连载47-设计思想、浮动元素高度问题
一.设计网页的思想 拿到需求之后我们先对各个模块(盒子)进行划分,然后从外到内进行设计(1)设计一个盒子最基本的设计大致包括背景颜色(其实用于识别),宽,高,边界浮动流还是标准流. (2)然后盒子和盒 ...
- 在 ASP.NET Core 中使用 ApplicationPart 的简单示例
1. 项目截图: 2. 代码 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFra ...
- Redis for OPS 06:Redis Cluster 集群
写在前面的话 前面的主从,HA 都只是解决我们数据安全性方面的问题,并没有解决我们业务瓶颈的问题.当业务并发到达一定瓶颈的时候,我们需要对服务进行横向扩展,而不是纵向扩展.这就需要引入另外一个东西,R ...
- 基于 EntityFramework 生成 Repository 模式代码
借助 WeihanLi.EntityFramework 实现简单的 Repository Intro 很多时候一些简单的业务都是简单的增删改查,动态生成一些代码完成基本的增删改查,而这些增删改查代码大 ...