如果学习速率太高,就会出现极不稳定的情况,模型中就可能出现NaN。在这种情况下,就要以较低的学习速率再试一次。
ReLU 单元消失
一旦ReLU单元的加权和低于0,ReLU单元就可能会停滞。它会输出对网络输出没有任何贡献的0激活,而梯度在反向传播算法期间将无法再从中流过。如果最终所有内容都低于0值,梯度就无法反向传播,由于梯度的来源被切断,ReLU的输入可能无法做出足够的改变来使加权和恢复到0以上。降低学习速率有助于防止ReLU单元消失。
10.2.3 标准化特征值
训练时,如果特征值在输入时就已经标准化(normalize),通常会对我们非常有用。如果范围大致相同,就有助于提高神经网络的转化速度。虽然范围实际值并不重要,但是我们通常推荐的大致范围是-1\~+1。正因为如此,标准化特征值有时叫作“归一化”。它是为了加快训练网络的收敛性,避免空值。
由于采集的各数据单位不一致,因而需对数据进行[-1,1]归一化处理,归一化的具体作用是归纳统一样本的统计分布性。归一化在0和1之间是统计的概率分布,归一化在-1和+1之间是统计的坐标分布。无论是为了建模还是为了计算,首先基本度量单位要统一,神经网络是以样本在事件中的统计概率来进行训练(概率计算)和预测的,归一化是统一在0和1之间的统计概率分布。
当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号的均值接近于0或与其均方差相比很小。
10.2.4 丢弃正则化
在训练深度网络时还有一个很有用的技巧,即正则化的另一种形式,叫作丢弃(Dropout),可用于神经网络。其工作原理是,在梯度下降法的每一步中随机丢弃一些网络单元。丢弃得越多,正则化效果就越强:
● 0.0= 无丢弃正则化。
●1.0=丢弃所有内容。模型学不到任何规律。
0.0和1.0之间的值更有用。
若一个都不丢弃,则模型便具备完整的复杂性;若在训练过程中的某个位置进行丢弃,则相当于在这个位置应用了某种有效的正则化。丢弃的目的也是用来减少过拟合。而和L1、L2正则化不同的是,丢弃是改变神经网络本身的结构。假设有一个神经网络,按照前面的方法,根据输入X,先正向更新神经网络,得到输出值,然后反向根据backpropagation算法来更新权重和偏向。而丢弃不同的是:
人工智能与大数据技术导论
324