人工神经网络—参数设置中更深入的问题

1. 回顾

在前面的章节中,我们讲过神经网络的训练是一门艺术。我们这一讲将从解决实际问题经验的角度出发,给出训练神经网络的一些建议,同时探讨神经网络参数设置中更深入的问题,希望通过本章内容的讲解,加深对训练神经网络的感性认识,提高利用神经网络解决实际问题的能力。

2. 参数设置问题

2.1 训练神经网络的建议

首先是三个训练神经网络的建议,这几个建议应该是学术界一致公认的。

(1)一般情况下,在训练集上的目标函数的平均值(cost) 会随着训练的深入而不断减小,如果这个指标有增大的情况,请停下来。

有两种情况:

  • 采用的模型不够复杂,以至于不能在训练集上完全拟合;
  • 已经训练很好了。

因此停下来检查一下是否训练好,采取相应的措施。

(2)分出一些验证集(Validation Set),训练的本质目标是在验证集上获取最大的识别率。

因此训练一段时间后,必须在验证集上测试识别率,同时需要保存使验证集上识别率最大的模型参数,作为最后的结果。

(3)注意调整学习率(Learning Rate),如果刚训练几步损失函数cost就增加,一般来说是学习率太高了;如果每次cost变化很小,说明学习率太低了。根据实际情况适度的调整学习率是使神经网络快速正确收敛的基础。

2.2 训练神经网络的经验

下面讲一下训练神经网络的各种经验,尤其着重最近几年来这个领域的研究进展。
(1)目标函数可以加入正则项(regularization term)
M i n i m i z e E ( W , b ) = L ( w , b ) + λ 2 ∣ ∣ W ∣ ∣ 2 Minimize E(W,b)=L(w,b)+\fracλ2||W||^2 MinimizeE(W,b)=L(w,b)+2λW2

其中, L ( w , b ) L(w,b) L(w,b)是原来的目标函数,例如MSECross Entropy,而 λ 2 ∣ ∣ W ∣ ∣ 2 \fracλ2||W||^2 2λW2叫作正则项,在这里 λ λ λ叫作权值衰减系数(Weight Decay Parameter。换句话说,我们的优化不仅是让原来的目标函数尽可能小,同时也要让所有的 ∣ ∣ W ∣ ∣ ||W|| W尽可能的小,这样可以防止一些权值绝对值过大造成的过拟合现象,从而增加系统的鲁棒性。

加了正则项的目标函数前向计算程序如下(nn_forward.m第50-53行)

 if strcmp(nn.objective_function,'MSE')
            nn.cost(s) = 0.5 / m * sum(sum((nn.a{k} - batch_y).^2)) + 0.5 * nn.weight_decay * cost2;
        elseif strcmp(nn.objective_function,'Cross Entropy')
            nn.cost(s) = -0.5*sum(sum(batch_y.*log(nn.a{k})))/m + 0.5 * nn.weight_decay * cost2;

后向传播(nn_backpropagation.m第22-23行)

nn.W_grad{nn.depth-1} = nn.theta{nn.depth}*nn.a{nn.depth-1}'/m + nn.weight_decay*nn.W{nn.depth-1};

可以看出第23行中第二项就是正则项求导获得的,导数正好等于 nn.weight_decay*nn.W{nn.depth-1},有兴趣大家可自行验证一下。

(2)训练数据归一化

我们建议要做训练数据的归一化,从而保证训练数据每一个维度落在一个相对固定的区间里。

在这里插入图片描述

图1 训练数据归一化

我们的建议是做如下均值和方差的归一化
n e w X = X − m e a n ( X ) s t d ( X ) newX=\frac{X-mean(X)}{std(X)} newX=std(X)Xmean(X)

[U,V] = size(xTraining);
avgX = mean(xTraining);
sigma = std(xTraining);
xTraining = (xTraining - repmat(avgX,U,1))./repmat(sigma,U,1);

(3)参数 w w

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值