大师Geoff Hinton关于Deep Neural Networks的建议
大师Geoff Hinton关于Deep Neural Networks的建议
Note: This covers suggestions from Geoff Hinton’s talk given at UBC which was recorded May 30, 2013. It does not cover bleeding edge techniques.
主要分为如下几点展开:
- Have a Deep Network.
1-2个hidden layers被认为是一个shallow network,浅浅的神经网络,当hidden layers数量多时,会造成local optima,缺乏数据等。
因为deep neural network相比shallow neural network,最大的区别就是greater representational power,这个能力随着layer的增加而增加。
PS:理论上,只有一个单层hidden layer但是有很多unit的神经网络(large breadth,宽度,not deep),具有与deeper network相似的representational power,但是目前还不知道有哪种方法来训练这样的network。
- Pretrain if you do not have a lot of unlabelled training data. If you do skip it.
pre-training 又叫做greedy layer-wise training,如果没有足够的标签样本就需要执行greedy layer-wise pretraining,如果有足够多的样本,只需执行正常的full network stack 的训练即可。
pre-training可以让parameters能够站在一个较好的初始值上,当你有足够的无标签样本时,这一点就无意义了。
Side Note: An interesting paper shows that unsupervised pretraining encourages sparseness in DNN. Link is here.
- Initialize the weight to sensible values.
可以将权重设置为小的随机数,这些小随机数权重的分布取决于在network中使用的nonlinearity,如果使用的是rectified linear units,可以设置为小的正数。
- Use rectified linear units.
可以参看我的博文《修正线性单元(Rectified linear unit,ReLU)》
It makes calculating the gradient during back propagation trivial. It is 0 if x < 0 and 1 elsewhere. This speeds up the training of the network.
![]()
ReLU units are more biologically plausible then the other activation functions, since they model the biological neuron’s responses in their area of operation. While sigmoid and tanh activation functions are biologically implausible. A sigmoid has a steady state of around 12 and after initlizing with small weights fire at half their saturation potential.
- Have many more parameters than training examples.
确保整个参数的数量(a single weight in your network counts as one parameter)超过训练样本的数量一大截,总是使得neural network overfit,然后强力的regularize它,比如,一个例子是有1000个训练样本,须有1百万个参数。
这样做的理由是模仿大脑的机制,突触的数量要比经验多得多,在一次活动中,只不过大部分都没有激活。
- Use dropout to regularize it instead of L1 and L2 regularization.
dropout是一项用来在一个隐含层中丢掉或者遗漏某些隐含单元的技术,每当训练样本被送入network时就发生。随机从隐含层中进行子采样。一种不同的架构是all sharing weights。
这是一种模型平均或者近似的形式,是一种很强的regularization方法,不像常用的L1或者L2 regularization将参数拉至0,subsample或者sharing weights使参数拉至合理的值。比较neat。
- Convolutional Frontend (optional)
如果数据包含任何空间结构信息,比如voice,images,video等,可以使用卷积前段。
可以参看我的博文《卷积神经网络(CNN)》
卷积可以看作诗一个滤波器,算子等,可以从原始的pixel等中抽取边缘等特征,或者表示与卷积核的相似度等等。采用卷积可以对空间信息进行编码。
参考文献:
http://343hz.com/general-guidelines-for-deep-neural-networks/
2015-9-11 艺少
大师Geoff Hinton关于Deep Neural Networks的建议的更多相关文章
- [C4] Andrew Ng - Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
About this Course This course will teach you the "magic" of getting deep learning to work ...
- On Explainability of Deep Neural Networks
On Explainability of Deep Neural Networks « Learning F# Functional Data Structures and Algorithms is ...
- Classifying plankton with deep neural networks
Classifying plankton with deep neural networks The National Data Science Bowl, a data science compet ...
- (Deep) Neural Networks (Deep Learning) , NLP and Text Mining
(Deep) Neural Networks (Deep Learning) , NLP and Text Mining 最近翻了一下关于Deep Learning 或者 普通的Neural Netw ...
- Must Know Tips/Tricks in Deep Neural Networks
Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei) Deep Neural Networks, especially C ...
- Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei)
http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html Deep Neural Networks, especially Conv ...
- (转)Understanding, generalisation, and transfer learning in deep neural networks
Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017 Thi ...
- 为什么深度神经网络难以训练Why are deep neural networks hard to train?
Imagine you're an engineer who has been asked to design a computer from scratch. One day you're work ...
- 论文翻译:2018_Source localization using deep neural networks in a shallow water environment
论文地址:https://asa.scitation.org/doi/abs/10.1121/1.5036725 深度神经网络在浅水环境中的源定位 摘要: 深度神经网络(DNNs)在表征复杂的非线性关 ...
随机推荐
- lixuxmint系统定制与配置(5)-效率配置
小书匠Linux 目录: 1.zsh安装与配置 1.1 安装 1.1.1 检查当前的终端类型 1.1.2 安装zsh 1.2 美化zsh 1.3 配置zsh 1.3.1 别名设置 2.自动登录服务器 ...
- 《挑战30天C++入门极限》C++中利用构造函数与无名对象简化运算符重载函数
C++中利用构造函数与无名对象简化运算符重载函数 在完整描述思想之前,我们先看一下如下的例子,这个例子中的加运算符重载是以非成员函数的方式出现的: //程序作者:管宁 //站点:www.cn ...
- golang 斐波那契数
golang 斐波那契数 package main import "fmt" /* 斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci) ...
- 在Maven项目中使用lombok
事前准备:如果是eclipse的话,需要在官网下载jar文件,放到eclipse根目录下,eclipse.ini的最后追加 -Xbootclasspath/a:lombok.jar -javaagen ...
- Android Studio 和 SDK 下载、安装和环境变量配置
转Android Studio 和 SDK 下载.安装和环境变量配置https://blog.csdn.net/hahahhahahahha123456/article/details/8065135 ...
- 中山纪中集训Day2又是测试(划水)
A组T1 bzoj 2674 Attack Description chnlich 非常喜欢玩三国志这款游戏,并喜欢用一些策略出奇制胜.现在,他要开始征服世界的旅途了.他的敌人有N 座城市和N 个太守 ...
- CSS3 clip-path & clip-path 打破矩形设计的限制
CSS 形状模块标准1(CSS Shapes Module Level 1)这个规范打破了 WEB 中的矩形盒模型的限制,并且将网页设计提升到一个新的高度. 关于 Shapes 规范 shape-ou ...
- seajs.config的解释
alias 别名配置,配置之后可在模块中使用require调用 require(‘jquery’); seajs.config({ alias: { 'jquery': 'jquery/jquery/ ...
- Parse发布Bolts,一个面向iOS和Android的底层库集合
转载自:http://www.infoq.com/cn/news/2014/02/parse-announces-bolts 数月前,Parse被Facebook收购.最近,它开源了一个面向iOS和A ...
- 4 个用于执行高级数学计算的 JavaScript 库
在使用JavaScript执行数学方面的任务时,往往要用到浮点运算,且需要精确到某位小数,这就容易造成错误,而且会相当费时.因此,如果你需要做一些高精度的数学计算的编程工作,比如财务或科学计算,那么你 ...