美文网首页
神经网络算法基础

神经网络算法基础

作者: 芄兰_ | 来源:发表于2019-01-05 20:19 被阅读0次

    全连接网络:

    每一层输出结果发送给下一层所有节点

    激活函数:

    对上层计算结果进行非线性运算
    a = f(u)
    u = W11 * X1 + W12 * X2 + W13 * X3 + b1)
    常用激活函数: sigmoid , tanh , relu
    -------算法的矩阵打不出来--------

    神经网络的每一层是对数据的一次非线性映射。

    y = f (wx + B) . wx + B 实现对数据的范围变换、空间旋转、平移 。 非线性激活函数 f() 对输入数据进行原始空间的扭曲。 层数越多,扭曲越大。越可以形成更高级的特征。 所以,深层网络比浅层网络拥有更好的表达

    -------矩阵 ai = [ai1 ... ain] = f [ [w] * [ai] + [bi] ] = f(wi * ai-1 + bi)

    整个网络是向量到向量的运算,计算结果取决于偏置项b和权值w ,若随机给出w和b 。 则训练过程就是在不断调整w和b 的值。直至整个网络表现出需要的行为。

    But how to ?

    • We need 一个能够衡量输出结果和真实结果相差多少的函数
    • This is 损失函数 loss function
    • 损失函数用于衡量输出结果和真实结果相差多少。越小越精确。
    • 常见损失函数: 0-1损失函数 、 绝对值损失函数、 均方误差损失函数。

    梯度下降法

    目的:

    不断调整神经网络中的参数,使得模型的表现越来越趋近于训练数据的分布

    原理:

    将样本的X和Y作为已知项,网络中的全部权值和偏置项作为自变量。误差L作为全部权值和偏置项的函数。整个算法的目的是找到全部权值和偏置项为何值时,L作为全局的极小值或接近最小值。

    核心:逐步迭代

    优化过程:

    对于样本(X,Y)。其中X和Y分别是标准的输入值和输出值。X通过模型运算得到Y。但我们不晓得模型中的参数值。神经网络通过不断根据样本更新参数。使得loss function 降到最小。样本中X经过计算,得到预测值Y1。 将Y1和Y经过损失函数运算,得到损失值。要使损失值最小,就要不断调整参数。怎样确定参数调整的方式?
    ——使这个自变量在它梯度变化的反方向上移动一点。即让它减去函数在该方向的梯度。减去多少由学习率控制。(需要事先设置一个比较小的学习率)。若梯度大于零,则此参数减小。反之参数增大。

    迭代公式 : 打不出来

    All in a word :

    梯度下降法的本质是在某个位置将loss function 一阶展开。利用其一阶性质持续下降最快的方向前进。尽可能找到函数的全局最小解。(不一定是全局最优解)
    此外,还有最速下降法和共轭梯度法
    若基于函数的二阶性质。则有牛顿法和拟牛顿法

    反向传播算法为梯度下降发,它要计算损失函数对应多权重和偏置项值的偏导数,计算公式打不出来

    反向传播:

    要更新参数,需要求出loss function 对于每个可变参数的导数。当有多层神经网络时,可以用反向传播方法更方便的求导。

    相关文章

      网友评论

          本文标题:神经网络算法基础

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