超参数调节在神经网络的优化训练中非常重要,因为它直接影响神经网络的实际表现。一般而言好的神经网络设计是成功的一部分,关键还在于实际中超参数的调整。深度学习中的超参数数量比传统机器学习中的要多,而且调整起来也更复杂。这些超参数中最重要的就是学习率,还包括每层中隐藏单元数量,训练批次,迭代次数和层数等。同时也可以将激活函数的选择,正则化,优化方法也作为调节的一部分。超参数的调节以实验为基础,尝试不同的超参数设置以获得好的实验结果,不应该直接使用。超参数调节没有尽头,需要不断的尝试。
1.学习速率。是最重要的超参数,需要第一个确认和调整。学习速率不是越大越好,也不是越小越好,必须设置一个合适的值,此时模型的容量才是最大的,梯度更新最有效,否则模型无法学习。首先将学习速率设置为领域默认值,然后设置不同的数量级的对吧实验,检测不同数量级学习速率对误差的影响,这样确定学习速率的量级。然后进行微调,进一步确定大小,如果误差一直很大且不稳定,一般是速率大导致的。如果误差可以降低,但最终停留在一个较大位置,则学习率设置小,导致梯度更新停滞,可以调大学习速率。
2.批次大小。神经网络的优化基本都是采用基于梯度下降的方法,其中每次迭代的数据批次大小对模型的训练影响很大。通常批次大小的选择不宜过大,过大的批次训练出来的模型一般泛化效果不好,而且大批次对内存的要求高,容易造成内存泄露。调整方法也是绘制不同批次大小和误差的曲线,确定数量级后进行细微数值调整,最终确定。
3.迭代次数。迭代次数与模型的泛化能力有关。当发现模型的训练误差小,但是泛化误差大时,说明迭代次数大,导致模型过拟合,次数应该降低迭代次数。迭代次数不足,表现为训练误差大,模型没有得到充分优化。当不想重复多次试验来确定最优迭代次数时,可以使用提前终止策略,即在训练过程中,如果发现泛化误差基本稳定不变,那么提前终止训练。
4.隐藏单元的数量和网络的层数。两者类似,增大两者会提高模型的容量,即拟合能力,减小两者会降低模型容量。当训练数据集很大或者网络的训练误差很大时,可以适当增加两者的数量,因为此时模型很可能欠拟合,需要更大的容量来拟合众多的训练数据。当数据集很小或者泛化误差很大时,说明模型过拟合,可以减小数量。注意,当模型使用越多的层数和单元时,越容易过拟合,应该增加正则化方法以期望降低模型误差同时保证泛化能力
5.正则化超参数。正则化是防止模型过拟合的总要方法,但是并不是所有模型都需要正则化,只有当模型出现过拟合现象时再使用。
6.激活函数的选择。一般都是非线性的函数,目的是增加模型的非线性拟合能力。