以下内容来自本人对《Neutral Networks- Tricks of the trade》的翻译。
转载请注明出处。
Andrew Chen
---------------------------------------------------------------------------
1.4.4 The sigmoid
Sigmoid函数的输出更接近于0。这比标准logstic要好。
1 对称的sigmoid比如双曲正切函数,经常会比标准的logistic函数收敛快。
2 推荐的sigmoid函数是: f(x)=1.7159·tanh(2x/3)。
3 有时候加上一个小的线性项会有帮助,比如,f(x)=tanh(x)+ax,来避免flat spots。
1.4.5 Choosing Target Values
Choose target values at the point of the max second derivative on the sigmoid so as to avoid saturating the output units.
1.4.6 initializing the weights
假如我们需要把每个node的输出的分布是标准差接近1,那么就需要在输入层尽早的规则化。假如在最开始的隐藏层使输出的标准差为1,我们需要输入sigmoid也是标准差为1,假设输入yi,对于一个单元是标准差为1,那么单元的权重:
因此,为了保证上式接近1,权重应该被随机的从均值为0标准差为。其中m是输入单元的数目。
1.4.7 Choosing Learning rates
1 give each weight its own learning rate 每个权重有自己的学习率
2 学习率应该与输入单元数的平方根成比例
3 Lower层的权重应该比Higher层的大。
1.4.8 RBF vs Sigmoid Units
RBF中,权重的点积和输入向量被换成了欧氏距离。
与sigmoid单元能cover整个空间不同的是,RBF单元只cover输入空间的一小片区域。这可以使学习更快。RBF在高层更适合,sigmoid在底层更适合。
1.5 Convergence of Gradient Descent
1.5.1 A little theory
不同学习率时在一维上的一个情况,如图1.6所示。
opt学习率是:
学习率最大的值不2倍的opt学习率。
总结中还有其他的一些训练网络的方法
1 如果训练集很大(远大于几百个样本)并且很多冗余,如果目标是分类,那么小心的去调随机梯度下降法。或者使用随机对角最小二乘法(stochastic diagonal Levenberg Marquardt Method)
2 如果训练集不是很大,或者如果目标是回归。那么使用共轭梯度法(Conjugate Gradient).
3 的二阶方法在几乎在所有情况中都是不切实际的。
4 在多层神经网络中的非线性动态随机梯度下降法,仍然是不能很好地被理解。