zoukankan      html  css  js  c++  java
  • DNN

       

     

    DNN

    一、感知机

    我们介绍过感知机的模型,它是一个有若干输入和一个输出的模型,如下图:

     

     

    输出:

    激活函数:

     

    从而得到我们想要的输出结果1或者-1。

    这个模型只能用于二元分类,且无法学习比较复杂的非线性模型,因此在工业界无法使用。

     

    二、DNN

    2.1 DNN介绍

     

    DNN是深度神经网络,其实就是一个多层感知机,DNN相对于感知机的区别:

    • 加入了隐藏层
    • 输出层的神经元不止一个
    • 扩展了激活函数,如sigmod,tanx,softmax,ReLU

    2.2 DNN前向算法

    前向传播实际上就是利用上一层的输出计算下层的输出。

    表示第l-1层的第k个神经元指向第l层的第j个神经元的权重。

     

    前向传播算法

    假设第l-1层共有m个神经元,则对于第l层的第j个神经元的输出,我们有:

    从上面可以看出,使用代数法一个个的表示输出比较复杂,而如果使用矩阵法则比较的简洁。假设第l-1层共有m个神经元,而第l层共有n个神经元,则第l层的线性系数W组成了一个n*m的矩阵, 第l层的偏倚b组成了一个n*1的向量b1,第l-1层的的输出a组成了一个m*1的向量al-1,第l层的的未激活前线性输出z组成了一个n*1的向量zl ,第l层的的输出a组成了一个n*a的向量al。则用矩阵法表示,第l层的输出为:

    2.3  DNN反向算法

    2.3.1 DNN反向传播算法思路

    在进行DNN反向传播算法前,我们需要选择一个损失函数,来度量训练样本计算出的输出和真实的训练样本输出之间的损失。你也许会问:训练样本计算出的输出是怎么得来的?这个输出是随机选择一系列W,b,用我们上一节的前向传播算法计算出来的。即通过一系列的计算:。计算到输出层第L层对应的aL即为前向传播算法计算出来的输出。

    输出层损失函数:

    求解输出层对W,b的梯度:

    现在求解任意一层对W,b的梯度:

    记:

    则:

    现在只需求出即可

    因为:

    所以:

    2.3.2 DNN反向传播算法过程总结

    现在我们总结下DNN反向传播算法的过程。由于梯度下降法有批量(Batch),小批量(mini-Batch),随机三个变种,为了简化描述,这里我们以最基本的批量梯度下降法为例来描述反向传播算法。实际上在业界使用最多的是mini-Batch的梯度下降法。不过区别仅仅在于迭代时训练样本的选择而已。

    输入: 总层数L,以及各隐藏层与输出层的神经元个数,激活函数,损失函数,迭代步长α,最大迭代次数MAX与停止迭代阈值ϵ,输入的m个训练样本

    输出:各隐藏层与输出层的线性关系系数矩阵W和偏倚向量b

    算法如下:

    1)初始化各隐藏层与输出层的线性关系系数矩阵W和偏倚向量b的值为一个随机值。

    2)for iter to 1 to MAX:

      2-1) for i =1 to m:

        a) 将DNN输入设置为x1

        b) for l=2 to L,进行前向传播算法计算

        c) 通过损失函数计算输出层的

        d) for l= L-1 to 2, 进行反向传播算法计算

        

      2-2) for l= 2 to L,更新第l层的Wl,bl:

        

         

      2-3) 如果所有W,b的变化值都小于停止迭代阈值ϵ,则跳出迭代循环到步骤3)。

    3)输出各隐藏层与输出层的线性关系系数矩阵W和偏倚向量b。

    参考资料

    1) Neural Networks and Deep Learning by By Michael Nielsen

    2) Deep Learning, book by Ian Goodfellow, Yoshua Bengio, and Aaron Courville

    3) UFLDL Tutorial

     

  • 相关阅读:
    工具安装
    Windbg调试
    SQL学习
    Pwnable小结
    how2heap总结
    堆利用小结
    栈溢出利用小结
    格式化字符串利用小结
    python 节假日爬取
    selenuim学习
  • 原文地址:https://www.cnblogs.com/ordili/p/10257352.html
Copyright © 2011-2022 走看看