神经网络如何进行学习
我们对神经网络感兴趣是因为它预测和学习分类规则的能力。神经网络使用特定的学习算法从数据中学习。学习算法有很多,但一般来说,它们都通过迭代地修改连接权重和偏差来训练网络,直到网络产生的输出和期望的输出之间的误差低于指定的阈值。
反向传播算法是第一个广泛使用的学习算法,目前仍被广泛地使用,它使用梯度下降算法作为核心学习机制。开始给定随机的权重,反向传播计算网络的权重,做出细小调整,并逐渐根据网络产生的结果和预期结果之间的误差做出调整。
该算法从输出向输入传播误差,并且逐渐精细地调整网络权重,来让使用梯度下降法计算的误差总和最小化。学习过程的每个周期被称为一个epoch。
构建DNN模型
在定义深度学习模型时,选择一个适中的学习率和一个非常小的冲量。选择5%左右的随机失活率来加强泛化。
在开发自己的DNN模型时要注意:
1.随机失活的比例越大,训练中引入的噪声越多,这会降低学习的速度。
2.随机失活在非常大的DNN模型上的效果最佳。
共适应性:
神经网络的威力大部分是因为每个神经元都是独立的特征检测器。然而,在实际中,两个或多个神经元开始重复地检测相同的特征是很常见 的。这叫作共适应(coadaptation)。这意味着DNN并没有充分利用其全部能力,实际上浪费了计算资源来计算激活冗余神经元,而这些神经元都在做同样的事情。
在许多方面,共适应类似于线性回归中的共线性的概念,共线性中两个或多个协变量高度相关。这意味着协变量包含类似的信息,特别是当一个协变量可以从其他的协变量线性预测出来,而且误差非常小。实质