网络结构选择
网络结构的基本类型取决于待解决的问题。网络结构需确定网络的层数、每层神经元的个数,输出神经元的个数以及在训练中选择哪种类型的性能函数。
网络的基本结构依据需要解决的问题决定。通常情况下从单隐层开始,逐层添加结构。对于困难的问题,通常需要并行计算或者GPU计算才能在合理的时间内训练好一个深度多层网络。隐层神经元的个数由待逼近函数或者待求解决策边界的复杂度决定。
通常有5种方法用于产生最简神经网络,包括生长法、剪枝法、全局搜索法、正则化法以及提前终止法。
生长法从无到有逐渐增加神经元数量直到网络满足性能需求。
剪枝法从一个庞大的可能过拟合的网络开始,逐渐减少神经元权值数量直到网络性能显著退化。
全局搜索法搜索所有可能的全部结果以确定能够解释数据的最简模型。
正则化和提前终止法不对网络权值的数量进行约束而是通过约束网络权值的大小来实现网络的最简化。
当有多个训练目标时,通常先使用一个多个输出的神经网络,如果其结果不理想,就使用多个单输出的神经网络。
另一个网络结构的选择就是输入数据是否存在冗余,可以通过让第一层权值矩阵有自己的权值,不重要的数据的权值会变小。另一个方法是对训练好的网络做敏感性分析。
网络训练
权值初始化:对于多层网络,权值和偏置值一般初始化为较小的随机值。
训练算法选择:对于多达几百个权值和偏置值的用于函数逼近的多层网络,levenberg-marquardt算法通常是最快的训练方法。当权值数量多达上千个是,共轭梯度法效率更高。
训练的终止条件:如果达到最大迭代次数权值没有收敛,可以使用上一次训练最后得到的权值初始化网络重新训练。
网络多次训练和网络委员会:通常情况下训练5-10次可以获得网络的全局最优值。或者多次训练网络并充分利用所有的训练结果。对于N个函数逼近训练网络,所有的网络联合起来取平均值。对于分类网络,联合输出投票。通常情况下,网络委员会的性能好于所有独立网络中最好的性能。每个独立网络输出的差异可为委员会提供误差柱状图或者置信等级。