大师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,可以设置为小的正数。

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 艺少

posted @ 2015-09-11 22:07  ZhangPYi  阅读(139)  评论(0编辑  收藏  举报