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

大师Geoff Hinton关于Deep Neural Networks的建议的更多相关文章

  1. [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 ...

  2. On Explainability of Deep Neural Networks

    On Explainability of Deep Neural Networks « Learning F# Functional Data Structures and Algorithms is ...

  3. Classifying plankton with deep neural networks

    Classifying plankton with deep neural networks The National Data Science Bowl, a data science compet ...

  4. (Deep) Neural Networks (Deep Learning) , NLP and Text Mining

    (Deep) Neural Networks (Deep Learning) , NLP and Text Mining 最近翻了一下关于Deep Learning 或者 普通的Neural Netw ...

  5. 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 ...

  6. 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 ...

  7. (转)Understanding, generalisation, and transfer learning in deep neural networks

    Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017   Thi ...

  8. 为什么深度神经网络难以训练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 ...

  9. 论文翻译:2018_Source localization using deep neural networks in a shallow water environment

    论文地址:https://asa.scitation.org/doi/abs/10.1121/1.5036725 深度神经网络在浅水环境中的源定位 摘要: 深度神经网络(DNNs)在表征复杂的非线性关 ...

随机推荐

  1. Matlab中矩阵的数据结构

    在Matlab中,矩阵默认的数据类型是double, 并不是integer. 而且奇怪的是,矩阵乘法默认按照浮点数类型进行, 整数矩阵相乘会报错.另外,可以用a= int16(A)这种形式实现数据类型 ...

  2. Learning a Discriminative Feature Network for Semantic Segmentation(语义分割DFN,区别特征网络)

    1.介绍 语义分割通常有两个问题:类内不一致性(同一物体分成两类)和类间不确定性(不同物体分成同一类).本文从宏观角度,认为语义分割不是标记像素而是标记一个整体,提出了两个结构解决这两个问题,平滑网络 ...

  3. Complete the Projects

    F1. Complete the Projects (easy version) F2. Complete the Projects (hard version) 参考:Complete the Pr ...

  4. 生产者消费者模型Java实现

    生产者消费者模型 生产者消费者模型可以描述为: ①生产者持续生产,直到仓库放满产品,则停止生产进入等待状态:仓库不满后继续生产: ②消费者持续消费,直到仓库空,则停止消费进入等待状态:仓库不空后,继续 ...

  5. Oracle备份的几种方式

    这里使用Oracle 12C来大概演示说明一下rman的基本用法,这里不会深入讨论,因为本人也只是刚刚才接触,只是结合了网上的一些文章以及自己的实践来总结并拿出来大家学习,谢谢 目录 一.关于备份与恢 ...

  6. PHP如何解决网站大流量与高并发的问题(四)

    动态语言的并发处理 相关概念 什么是进程.线程.协程 什么是多进程.多线程 同步阻塞模型 异步非阻塞模型 php并发编程实践 什么是进程.线程.协程 进程 进程是一个执行中的程序 进程的三态模型:多道 ...

  7. web文件上传,带进度条

    原生ajax上传带进度条 (百分比) <%@ page language="java" contentType="text/html; charset=UTF-8& ...

  8. python命令行传入参数

    1.sys import sys a=eval(sys.argv[1])b=eval(sys.argv[2]) print(a+b) 1    2    3    4    5    6 evel() ...

  9. gcov—a Test Coverage Program

    gcov—a Test Coverage Program https://coverage.readthedocs.io/en/v4.5.x/cmd.html 覆盖率测试

  10. 高性能计算 —— 中国金融服务业创新发展的助推剂 & 微软

    “高性能计算 —— 中国金融服务业创新发展的助推剂“六大盘点 - 微软 - 博客园https://www.cnblogs.com/stbchina/archive/2011/12/02/HPC-in- ...