学习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 ...
随机推荐
- Ubuntu16.04 安装 JDK
1.到Oracle官网下载 地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...
- 浅谈Django基础(HttpResponse、render、redirect)
1. 使用之前先导入他们 from django.shortcuts import HttpResponse, render, redirect 2. HttpResponse: 它是作用是内部传入一 ...
- postman---postman导出python脚本
前面一直写关于postman的一些文章,大家现在都应该简单了解,其实postman还有许多的功能,这个要大家一点点的挖掘出来了,安静在给大家分享一个关于postman导出python脚本 Postma ...
- 《目标:OKR与KPI漫谈》
一.为什么要写这个 写这个题目其实是很偶然的,因为到年中了,公司的同事和领导都要看一下上半年的OKR的完成情况,同时也要制定下下半年的OKR,突然想到了之前在天津的公司时,大家说的是KPI,现在说的是 ...
- Paper | Non-local Neural Networks
目录 1. 动机 2. 相关工作 3. Non-local神经网络 3.1 Formulation 3.2 具体实现形式 3.3 Non-local块 4. 视频分类模型 4.1 2D ConvNet ...
- H5纯前端生成Excel表格
H5纯前端生成Excel表格方法如下: <!DOCTYPE html> <html> <head> <title></title> < ...
- 【UOJ#310】【UNR#2】黎明前的巧克力(FWT)
[UOJ#310][UNR#2]黎明前的巧克力(FWT) 题面 UOJ 题解 把问题转化一下,变成有多少个异或和为\(0\)的集合,然后这个集合任意拆分就是答案,所以对于一个大小为\(s\)的集合,其 ...
- Python中文件操作2——shutil模块
1 文件操作 文件有很多的操作,之前的文件操作中介绍了内建函数对文件的打开.读取以及写入,这三种操作是对文件基本的使用.文件还有复制.删除.移动.改变文件的属主属组等操作.下面主要看os模块和shut ...
- 百度ai语音识别
//语音识别功能 var APP_ID = "149**323"; var API_KEY = "N1Po****o6WPUeU8er"; var SECRET ...
- 深入理解JVM,类加载器
虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流(即字节码)”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类.实现这个动作的代码模块称 ...