机器学习入门笔记系列(5) | 神经网络(一)

作者: 胖三斤66 | 来源:发表于2018-08-30 12:10 被阅读26次

    如果你喜欢本文的话,不妨点赞、分享或者关注公共号「数据搬瓦工」,上面会同步更新文章。


    神经网络

    当我们有一个包含许多特征的复杂假设时,神经网络则是一种解决复杂假设问题的模型。

    神经元

    神经元是神经网络中最基本的单位。神经元是一个计算单元,神经元接收到来自其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,然后通过激活函数的计算以产生神经元的输出。

    神经元

    其中

    • 1:偏置单元(bias unit),有时记作 a_0
    • a_1...a_n:来自其他神经元传递过来的输入信息
    • \theta_0...\theta_n:神经元各个突触的权重(也称为参数)
    • y:神经元的输出
    • f:激活函数(activation function),读入输入数据和权值并计算,最后输出。通常,激活函数是 Sigmoid 函数(就是逻辑回归模型中假设函数, g(X\theta) = \frac{1}{1+ e^{-X\theta}}

    神经网络其实就是这些不同的神经元组合在一起的集合

    神经网络基本结构

    一种常见的多层结构的神经网络由三部分组成:输入层、隐藏层以及输出层。

    神经网络基本结构
    • 输入层:神经网络中的第一层;
    • 输出层:神经网络的最后一层,这层将会给出在假设上计算的最终值。二分类问题中输出层只有一个神经元,在多分类问题中输出层有多个神经元组成;
    • 隐藏层:神经网络除了输入层与输出层外都是隐藏层,同时将隐藏层的神经元也称为激活单元(activation units)

    下图描述了输入数据如何通过神经网络一层一层计算,最后得到输出结果。

    通过神经网络得到输出

    其中 g(z) 表示激活函数(Sigmoid 函数), x_0 = a_0^{(i)} = 1 是偏置单元。

    矢量化:

    矢量化过程

    解释一下,当计算完 a_1^{(i)}...a_{sj}^{(i)} 后,需要将 a_0^{(i)} = 1 插入于向量 a^{(i)} 头部。再计算下一层的 a^{(i+1)}

    矢量化过程

    简单神经网络运用:逻辑运算

    神经网络为何能解决复杂的非线性问题

    当神经网络只有输入层和输出层时,它跟逻辑函数一样。但是当神经网络增加了隐藏层时,两者就有所不同了。逻辑函数的输入是特征向量(如 x_1,x_2),而神经网络的输入都是上一层的神经元 a_j^{(i)}(除了第一层的隐藏层是特征向量外),a_j^{(i)}由一组参数 / 权重 \Theta 通过计算得到的,选择不同的参数有时可以学习到一些更复杂的特征。

    神经网络最后两层的计算

    当层数很多的时候,你有一个相对简单的输入量的函数作为第二层并计算出一些特征;第三层可以建立在此基础上来计算更加复杂一些的函数得到更复杂的特征;然后再下一层又可以计算再复杂一些的函数又得到更复杂的特征;最终传递给最后一层得到输出结果。

    用一个例子直观解释神经网络解决复杂问题。我们使用带有一层隐藏层的神经网络来计算 XNOR 逻辑运算符(相同取 1 ,不同取 0)。

    XNOR 逻辑运算可能由只有输入输出层的神经网络实现的(即不可能由逻辑回归模型解决),此时就需要运用到多层神经网络。

    多层神经网络解决 XNOR 运算

    a_1^{(2)} 使用了 AND 运算的神经元,a_2^{(2)} 使用了 NOT AND 运算的神经元,最后将 a_1^{(2)},a_2^{(2)} 作为输入,使用 OR 运算的神经元,得到 XNOR 运算。

    ★★★神经网络多输出单元:多分类

    如下图所示,我们得到一个有 4 个输出单元的神经网络,能够为图片分为 4 个类别:人行道(a_1^{(4)})、轿车(a_2^{(4)})、摩托车(a_3^{(4)})以及卡车(a_4^{(4)})。

    神经网络多输出单元:多分类

    当我们将人行道的图片输入到神经网络中,会得到 a_1^{(4)} = 1,a_2^{(4)} = 0,a_3^{(4)} = 0,a_4^{(4)} = 0,将输出结果组成向量表示
    h_\Theta(x) = \begin{bmatrix} 1\\ 0\\ 0\\ 0 \end{bmatrix}, when~~input == pedestrian

    同理

    神经网络多输出单元的输出

    而运用逻辑回顾模型中多分类时,输出如下:

    逻辑回顾模型中多分类输出

    可见,与逻辑回归模型中多分类对比,逻辑回顾模型多分类输出结果是一个实数,而神经网络多分类的输出是一个向量。

    故此,神经网络有多个输出单元时,一个训练样本(x^{(i)},y^{(i)}),其中 x^{(i)},y^{(i)} 均是向量。就拿上面 4 个图作为样本,那么

    神经网络多分类的训练样本的标记

    总结

    这章主要是讲解一下神经网络的概念,也讲到神经网络从输入到输出的过程与计算。从输入层到输出层这个过程又称为「向前传播」。用一张图来总结向前传播。

    向前传播

    参考文献

    1. Coursera 机器学习Week4 吴恩达z

    相关文章

      网友评论

      • 图书策划编辑杨孟然:老师您好,我是图书策划编辑杨孟然,想邀请您写书,关于计算机方面的,不知道您是否感兴趣?方便的话可以加一下我的微信:19862131349,如有打扰,还请谅解
      • 胖三斤66:如果你喜欢本文的话,欢迎点赞、收藏或者关注公号「数据搬瓦工」,上面会同步更新文章

      本文标题:机器学习入门笔记系列(5) | 神经网络(一)

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