李宏毅机器学习笔记——09.Tips_for_training_DNN

为了解决train中可能遇到的问题,从testing data和testing data的performance两个方面来考虑,讲解了自适应学习速率、新的激活函数、early stopping、正则化、dropout等解决方案。

一、几点说明

  1. 所谓train,即是求参数(如weight)
  2. ReLu和maxout,它们的activation很接近“线性”,所以dropout在这两种模型上performance较好。
  3. early stopping
    • 因为training和testing的分布不一样,导致error表现不一样
    • 从testing(有label的)中切除一部分或者使用kaggle的数据作为validating set,在error表现较好时,停下来。
  4. dropout 主要针对hidden layer和input layer,不对output layer作dropout

二、笔记

三、详细说明

从过拟合开始讲,一定要同时注意在training data和testing data上的表现,再决定是否overfitting。

在深度学习训练过程中有用的技巧,整体架构如下:

1526400264239

1.针对training data

1)激活函数

梯度消失,因为sigmoid的激活函数导致,参数变化对lossfun的影响,如果权重w变化,因为sigmoid函数会压缩输出到0和1之间,多层network,使得衰减不断叠加,导致对lossfun的影响几乎消失。

解决办法,修改激活函数,使用ReLU

maxout,神经网络自动学习激活函数,ReLU是maxout的特例,

2)自适应学习速率

2.针对testing data