这有一份花书《深度学习》笔记,深度学习规则,帮你抓住精髓!(附下载)

专知 2019-01-09 10:45
关注文章

【导读】一份深度学习精髓宝典。


作者 | Jeff Macaluso

编译 | Xiaowen



当我第一次在研究生院学习神经网络的时候,我问我的教授是否有选择架构和超参数的经验法则。我期望他的回答是“嗯,有点,但不是真的”……毕竟,神经网络比其他机器学习算法有更多的选择!当我阅读 Ian Goodfellow, Yoshua Bengio, 和 Aaaron Courville的深度学习书时,我一直在思考这个问题,并决定在这本书中列出一份规则清单。事实证明,它们有很多……主要是因为它们可以完成很多类型的神经网络和任务。

https://jeffmacaluso.github.io/post/DeepLearningRulesOfThumb/

有趣的是,许多这些经验法则并没有得到很好的确立-深度学习仍然是一个相对较新的活跃研究领域,所以下面列出的很多规则只是研究人员最近发现的。除此之外,这本书中还有很多领域,作者要么说(用更多的学术术语)“我们不知道这是为什么,但我们可以看到这是真的”或者“我们知道这不是最好的方法,但这是一个活跃的研究领域,我们目前还不知道更好的方法“。


下面是我在阅读深度学习过程中所做的更实际的笔记。



TL:DR

  • 如果可能的话,使用迁移学习。如果没有,并且要处理一个已经被广泛研究过的问题,那么从复制架构开始。

    • 网络体系结构最终应该通过实验来决定,并由验证误差来决定。更深(更多层more layers)、更薄(smaller layers)的网络更难优化,但往往会产生更好的泛化误差。


  • 总是要early stopping

    • 两种早期停止方法

      • 在整个数据集上使用新的参数重新训练模型,在早期停止点达到与前一个模型相同的训练步骤时停止。

      • 保持在早期停止时获得的参数,继续使用所有数据进行训练,当平均训练误差降到前一个早期停止点的训练误差以下时停止训练。


  • 使用Dropout可能是个好主意

    • 输入层用0.8的概率,隐藏层用0.5。

    • Dropout可能需要更大的网络,需要与更多的迭代训练。


  • ReLUs是理想的激活函数。当然它们还是存在缺陷,因此使用leaky或noisy ReLUs 可以获得性能增益,而代价是需要调整更多的参数。


  • 要获得可接受的性能,每个类别至少需要5,000次观察。

    • 如果你的观察量少于10万,使用k折交叉验证代替训练/验证/测试分割。


  • 使用GPU内存所能处理的批处理大小

    • 尝试不同的批次大小,每次增加2倍,从32开始(或者在大网络里先用16开始),增加到256。


  • 具有动量和衰减学习率的随机梯度下降是一种较好的优化算法。

  • ……

  • ……

  • …………还有很多很多……还有19页PDF…………翻译不完了……这段话老板千万别看见……

文末打包下载pdf

微信扫一扫
关注该公众号

模型

登录后下载

{{panelTitle}}
支持Markdown和数学公式,公式格式:\\(...\\)或\\[...\\]

还没有内容

关注微信公众号