美文网首页
Google机器学习速成课-04

Google机器学习速成课-04

作者: 一杯玄米茶 | 来源:发表于2019-03-06 14:01 被阅读0次

    十二、神经网络

    神经网络是更复杂版本的特征组合,能够自行学习特征规律而不用手动指定参数。

    下面是一个简单的神经网络的结构示意,每个蓝色圆圈均表示一个输入特征,隐藏层中的每个黄色节点均是蓝色输入节点值的加权和,输出是黄色节点的加权和。

    图12.1 简单的神经网络示例

    但是上面的神经网络无论增加多少层,输出始终都是输入的线性组合。无法处理非线性问题。

    要对非线性问题进行建模,我们可以直接引入非线性函数。我们可以用非线性函数将每个隐藏层节点像管道一样连接起来。

    在下图所示的模型中,在隐藏层 1 中的各个节点的值传递到下一层进行加权求和之前,我们采用一个非线性函数对其进行了转换。这种非线性函数称为激活函数。

    添加了激活函数层的三层模型

    常用的激活函数

    (1)S 型激活函数

    将加权和转换为介于 0 和 1 之间的值,函数定义及曲线图如下:

    F(x)=\frac{1}{1+e^{-x} }

    图12.2 S型激活函数

    (2)修正线性单元激活函数(ReLU)

    ReLU 的优势在于它基于实证发现(可能由 ReLU 驱动),拥有更实用的响应范围。S 型函数的响应性在两端相对较快地减少。

    ReLU激活函数

    实际上,所有数学函数均可作为激活函数。假设 σ 表示我们的激活函数(ReLU、S 型函数等等)。因此,网络中节点的值由以下公式指定:\sigma (\omega\cdot x+b )

    训练神经网络

    反向传播算法是最常见的一种神经网络训练算法。但是,反向传播依赖于梯度这一概念。事物必须是可微的,这样我们才能够进行学习(允许存在少量的间断点)。

    梯度下降法在多层神经网络中将成为可行方法。

    失败案例

    (1)梯度消失,有时会出现失败的情况,如果网络太过于深入信噪比会越来越差。学习速率可能会变得非常慢。

    (2)梯度分解,如果学习速率太高就会出现不稳定的情况,模型中就可能出现NaN。这时就需要降低学习速率。

    (3)ReLU消失,一旦 ReLU 单元的加权和低于 0,ReLU 单元就可能会停滞。它会输出对网络输出没有任何贡献的 0 激活,而梯度在反向传播算法期间将无法再从中流过。由于梯度的来源被切断,ReLU 的输入可能无法作出足够的改变来使加权和恢复到 0 以上。降低学习速率有助于防止 ReLU 单元消失。

    丢弃正则化

    这是称为丢弃的另一种形式的正则化,可用于神经网络。其工作原理是,在梯度下降法的每一步中随机丢弃一些网络单元。丢弃得越多,正则化效果就越强:

    0.0 = 无丢弃正则化。

    1.0 = 丢弃所有内容。模型学不到任何规律。

    0.0 和 1.0 之间的值更有用。

    有效的机器学习准则

    (1)确保第一个模型简单易用。

    (2)着重确保数据管道的正确性。

    (3)使用简单且可观察的指标进行训练和评估。

    (4)拥有并监控您的输入特征。

    (5)将您的模型配置视为代码:进行审核并记录在案。

    (6)记下所有实验的结果,尤其是“失败”的结果。

    相关文章

      网友评论

          本文标题:Google机器学习速成课-04

          本文链接:https://www.haomeiwen.com/subject/csrouqtx.html