参考:

http://blog.csdn.net/iamrichardwhite/article/details/51089199

一、神经网络的发展历史

五六十年代,提出感知机

八十年代,提出多层感知机,也就是神经网络,神经网络的层数直接决定了它对现实的刻画能力。

但是,多层神经网络带来了一些问题:

优化函数越来越容易陷入局部最优解

梯度消失现象更加严重

06年,Hinton利用预训练方法缓解了局部最优解问题,将隐含层推动到了7层,神经网络有了真正意义上的深度,解开了深度学习DNN的热潮。近期出现的高速公路网络和深度残差学习进一步避免了梯度消失,达到了前所未有的100多层。

二、CNN的提出:卷积神经网络

全连接DNN中参数数量膨胀,不仅容易过拟合,还容易陷入局部最优。对此,提出CNN,通过卷积核作为中介,取代全连接来连接相邻的两层。同一个卷积核在所有图像内共享,图像通过卷积操作后仍然保留原来的位置关系。CNN模型限制了参数的个数并且挖掘了局部结构的这个特点。

三、RNN的提出:循环神经网络

全连接DNN无法对时间序列上的变化进行建模,但样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要,所以提出了RNN。

RNN中,神经元的输出可以再下一个时间戳直接作用到自身。但同时在时间轴上出现了梯度消失现象,引入长短时记忆单元LSTM,通过门的开关实现时间上的记忆功能,并防止梯度消失。

为了利用未来的信息,引入双向RNN、双向LSTM,同时利用历史和未来的信息。

四、CNN的典型代表:LeNet5

目标问题:手写体识别

输入层:32*32

C1:卷积层,6个特征图,每个和输入中的5*5的邻域相连,特征图大小28*28,每个卷及神经元参数数目:5*5+1=26,25个unit参数和1个bias参数,连接数目(5*5+1)*6*(28*28)=122,304个,因为参数共享,所以总的参数为(5*5+1)*6=156个。

S2:下采样层,6个14*14的特征图,每个图的每个单元和C1中的2*2邻域相连,不重叠。

C3:卷积层,16个卷积核,得到16个特征图,每个大小10*10,每个特征图的每个神经元和S2中的某三层中5*5邻域相连

S4:下采样层,由16个5*5大小的特征图构成,每个单元与C3中的2*2邻域相连接

C5:卷积层,120个神经单元,和C5全连接

F6:全连接层,84个单元,和C5全相连

输出层:欧式径向基函数

五、CNN反向传播的三种情况

卷积层后是一个pooling层:

mean-pooling:等值复制

max-pooling:在前向传播中记录最大值的位置

pooling层后是一个卷积层:

先对卷积层中对应的残差图进行扩充

扩充后的矩阵与对应的核进行卷积

矩阵求和

卷积层与前一层连接方式未定:

定义卷积核与前一层特征图之间的连接强度,可表示为另一个值的softmax函数,通过加入规则化项加强洗属性

六、著名实现

Alex Net

ZF Net

GoogLeNet

VGGNet

ResNet

七、过拟合和正则化

两种正则化方法:

penalizing weights:

l1-norm/l2-norm

weights/embedding

dropout:

删除部分节点

CNN & RNN 及一些常识知识(不断扩充中)的更多相关文章

  1. Sql Server 小知识不断扩充中

    1.  char.varchar.nvarchar 区别 char 定长字符数据长度8000字符,小于8000字符时以空格填充. varchar 变长字符数据最大长度8000,小于8000字符时不会以 ...

  2. 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践

    https://zhuanlan.zhihu.com/p/25928551 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文题目便是文本分类问题,趁此机会总结下文本分类 ...

  3. [转] 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践

    转自知乎上看到的一篇很棒的文章:用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文 ...

  4. 使用Keras搭建cnn+rnn, BRNN,DRNN等模型

    Keras api 提前知道: BatchNormalization, 用来加快每次迭代中的训练速度 Normalize the activations of the previous layer a ...

  5. 深度学习-CNN+RNN笔记

    以下叙述只是简单的叙述,CNN+RNN(LSTM,GRU)的应用相关文章还很多,而且研究的方向不仅仅是下文提到的1. CNN 特征提取,用于RNN语句生成图片标注.2. RNN特征提取用于CNN内容分 ...

  6. 网站开发进阶(二十二)HTML UI知识汇总(更新中...)

    HTML知识汇总(更新中...) 1.<iframe> 标签 浏览器支持 所有浏览器都支持 <iframe> 标签. 定义和用法 iframe 元素会创建包含另外一个文档的内联 ...

  7. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  8. Java开发知识之Java中的集合Set接口以及子类应用

    ---恢复内容开始--- Java开发知识之Java中的集合Set接口以及子类应用 一丶Set接口以及作用 在上一讲.我们熟悉了接口的实现图.以及自己各有的子类. List接口主要存储的数据是可以重复 ...

  9. Java开发知识之Java中的集合上List接口以及子类讲解.

    Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就 ...

随机推荐

  1. 处理海量数据的高级排序之——归并排序(C++)

    代码实现                                                                                                 ...

  2. 单例 (JAVA)

    java中单例模式是一种常见的设计模式,以下是它的特点: 单例类只能有一个实例. 单例类必须自己创建自己的唯一实例. 单例类必须给所有其他对象提供这一实例 第一种(懒汉,线程不安全):  1 publ ...

  3. HashMap封装的数据用循环快速添加进list中产生的数据集全部相同的问题

    一.问题概述 在一次使用SimpleAdapter时,Data需要使用传入一条数据(Image.Text),该数据条使用HashMap封装.在用HashMap封装的数据用循环快速添加进list中产生了 ...

  4. [LintCode] Wiggle Sort 扭动排序

    Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] < ...

  5. HTML第一节课

    html的基本结构<html> <head> <title> 页面标题 </title> </head> <boby> 页面内容 ...

  6. 关闭CentOS不必要的开机启动项

    命令行: for i in `chkconfig --list |grep 3:on|awk '{print $1}' |grep -Ev "network|sshd|sysstat|ude ...

  7. Daily Scrum 10.24

    昨天我们的工作已经全面开始了,本来想等今天(25号)看那个燃尽图和燃速图能不能出来,结果还是没有,就先把我们的Task统计贴上来吧. 今天的Task统计: 至于燃尽图和燃速图的问题已经发老师邮件提问了 ...

  8. linux笔记三-------根目录相关说明

    1. /bin   binary二进制文件,可执行程序文件          ls   su    pwd    cd          内部文件是一些指令信息 2. /sbin  super bin ...

  9. js控制滚动条平滑滚动到制定位置

    http://www.daixiaorui.com/read/92.html 滚动到顶部: $('.scroll_top').click(function(){$('html,body').anima ...

  10. Unity3D着色器Shader编程入门(一)

    自学Unity3D也有大半年了,对Shader一直不敢入坑,最近看了些资料,以及通过自己的实践,对Shader还是有一点了解了,分享下仅作入门参考. 因Shader是对图像图像渲染的,学习前可以去了解 ...