机器学习(T1)--深度学习的网络设计技巧

目录

一、如何改进神经网络?

1、改变激活函数

 2、变化学习率

3、batchsize和趋势项

4、dropout


一、如何改进神经网络?

1、改变激活函数

        当使用sigmoid函数进行迭代,迭代次数增加时,可能会出现梯度消失,即比较靠近输入的几层梯度值十分小,靠近输出层的几层梯度值会很大,当你设定相同的学习率时,靠近输入层的参数收敛缓慢,而输出层的参数已经收敛完全。

        通过用ReLU函数来改善梯度消失,由于ReLU函数的梯度不会随x的变化而变化,所以不会出现梯度消失的问题。

 

机器学习(T1)--深度学习的网络设计技巧_第1张图片

 2、变化学习率

        常用的变化学习率的算法有RMSprop、SGD、Adam、Adagrad、Momentum

        RMSprop是一种自适应学习率方法。Adagrad会累加之前所有的梯度平方,而RMSprop仅仅是计算对应的平均值,因此可缓解Adagrad算法学习率下降较快的问题。

        Adam是另一种自适应学习率的方法。它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。

        Adagrad能够在训练中自动的对α进行调整,对于出现频率较低参数采用较大的α更新;相反,对于出现频率较高的参数采用较小的α更新。因此,Adagrad非常适合处理稀疏数据。

3、batchsize和趋势项

        batchsize:选取一次训练的样本数,一个epoch读取一次所有的batchsize,通常来说batchsize越小训练出来的模型越好,但计算时间越长,batchsize越大计算速度更快,越容易欠拟合。

        趋势项:通过在梯度下降过程中加入趋势项来避免局部最优解。

4、dropout

        在神经网络前向传播时,通过让神经元以一定概率p来停止工作,提高泛化程度,降低对特征的依赖程度,从而优化模型。

机器学习(T1)--深度学习的网络设计技巧_第2张图片

 

        
 

        

        

你可能感兴趣的:(机器学习小白,深度学习,机器学习,人工智能,神经网络,python)