美文网首页
神经网络入门-上

神经网络入门-上

作者: 元宝的技术日常 | 来源:发表于2020-04-25 22:22 被阅读0次

    这是深度学习文集的第一篇,主要想写的是深度学习的基础、简单原理;可以从这个开篇读出入门的感觉。

    神经网络,一种美妙的受生物学启发的编程范式,可以让计算机从观测数据中进行学习。
    深度学习,⼀个强有力的用于神经网络学习的众多技术的集合。
    ---摘自Neural Network and Deep Learning

    像上边引用中说道,深度学习包含了众多技术,带来了传统机器学习不能赋予的新能量,在耳熟能详的计算机视觉、语音识别、自然语言处理等领域长足地进步,都跟深度学习有着不可分割的关系。这些技术包括了卷积神经网络、循环神经网络、自动编码器、稀疏编码、深度信念网络、限制玻尔兹曼机和深度强化学习等,现代深度学习中,最常见的当属卷积神经网络、循环神经网络和深度强化学习。

    那什么是神经网络?接下来依次介绍各个重要的部分。

    1、神经元

    神经元,被称作为最小的神经网络。

    神经元

    神经元包含两部分,一部分是上一层网络输出和当前网络层参数的一个线性乘积,另外一部分是线性乘积的非线性转换。(如果缺少非线性转换,则多层线性乘积可以转化为一层的线性乘积)

    具体的数学公式见下:

    神经元计算的数学公式

    线性乘积部分是 Wt · x,对于神经元图中就是 x1 * w1 + x2 * w2 + x3 * w3 + b。x1、x2、x3的现实意义是特征,w1、w2、w3的现实意义是权重。f函数即时非线性转换函数,又被称作为激活函数。

    很一个或多个神经元可以组成一层网络,由这些网络组成的模型,即为神经网络。可以见下图,直观感受一下。

    神经网络

    如图,特征输入的层,一般称为 input_layer -- 输入层,结果输出的层,一般称为 output_layer -- 输出层,在这两层中间的层次统称为 hidden_layer -- 隐含层。

    2、激活函数

    特征经过线性乘积后的非线性转换,用的就是激活函数。激活函数最常见的有:Sigmoid、ReLU、Tanh、Leaky ReLU等。所谓的非线性变换,可以从下图中可以直接看出来。

    2-1、Sigmoid
    Sigmoid

    优点:
    1.输出映射在(0,1)之间,单调连续,输出范围有限,优化稳定,可以用作输出层;
    2.导函数具有较好的数学性质,求导容易;
    3.在特征相差比较复杂或是相差不是特别大时效果比较好。
    缺点:
    1.激活函数计算量大,反向传播求误差梯度时,求导涉及除法
    2.反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练
    3.输出不是0均值的,会导致后层的神经元的输入是非0均值的信号,这会对梯度产生影响
    4.收敛缓慢

    2-2、Tanh
    Tanh

    优点:
    1.比Sigmoid函数收敛速度更快
    2.函数的均值是0,因此实际应用中 Tanh 会比 sigmoid 更好
    缺点:
    1.由于饱和性产生的梯度消失
    2.激活函数计算量大

    2-3、ReLU
    ReLU

    优点:
    1.没有sigmoid和tanh的指数运算,计算速度非常快,只需要判断输入是否大于0
    2.收敛速度远快于sigmoid和tanh
    3.有效缓解了梯度消失的问题
    缺点:
    1.ReLU在训练的时很“脆弱”。在x<0时,梯度为0。这个神经元及之后的神经元梯度永远为0,不再对任何数据有所响应,导致相应参数永远不会被更新
    2.ReLU的输出不是0均值的

    2-4、Leaky ReLU
    Leaky ReLU

    优点:
    1.解决了神经元不可逆死亡的问题
    缺点:
    1.理论可解释性不强,在实践中不见得效果好于经典ReLU

    相关文章

      网友评论

          本文标题:神经网络入门-上

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