zoukankan      html  css  js  c++  java
  • BP神经网络

    作者:桂。

    时间:2017-08-19  22:40:05

    链接:http://www.cnblogs.com/xingshansi/p/7398396.html 


    前言

    BP与RBF是分析基本神经网络的两个概念,最近接触到这些概念(目前的认识是:用在矩阵分析中减少计算量),简单梳理一下。

    这里记录基本的BP神经网络,神经网络的基础是感知器,这里的BP(back propagation )算法是求解神经网络参数的一种实现思路。

    一、算法简介

      任何从输入到输出的连续函数都可以用一个三层非线性网络实现,条件是给出足够多的隐单元数。BP的基本结构:

    包括输入单元、输出单元、中间的各个层次称为隐单元,上面的网络结构可以表述为:

    其中f(.)是判别函数,因为优化通常涉及到求导,所以平滑性对梯度下降类学习方法很有效,通常f(.)选取连续易求导的判别函数,如sigmoid。

    反向传播主要利用误差项(正是因为:根据误差项,建立准则函数,进行参数优化,而误差只能从输出计算,因而误差的计算顺序从后往前,也就是反向传播的概念,进而更新权重w。)。

    由于涉及到梯度下降,因此针对参数求解的那一套改进这里也使用:如基于一阶导的随机梯度下降、批量梯度下降,基于二阶导的Newton-raphson等等。

    二、BP的直观描述

       A-结构图及映射关系

    首先借助一篇讲义来直观描述BP的思想:

    BP的结构图:

    结构图对应的映射关系:

      B-神经网络的计算步骤

    神经网络在参数给定的情况下,计算依旧是从输入→输出的顺序。

    第一层

    第二层

    第三层

     

     至此已经得到输出结果,可以根据训练数据的理想输出,计算误差(反向传播)。

      C-误差反向传播

    计算误差,开始反向传播:

    反传至第二层:

    反传至第一层:

     

    至此完成了误差的反向传播,带入更新公式(也称为链式微分法则)。

      D-利用BP更新权重的步骤

    第一层

    第二层

     

    第三层

    B、C、D操作循环往复,直到满足迭代约束条件。

    三、BP的参数推导及算法流程

      A-理论推导 

    为了方便,直接copy原文的图:

    对应网络层的加权组合成为het。

    设定准则函数J,这里选取常用的最小方差:

    1-隐层到输出层

    核心思路还是梯度下降法更新参数,使用链式微分法则:

    其中单元k的敏感度(sensitivity)定义为:

    敏感度描述总误差怎样随着单元的激发而变化。

    同样是链式法则(其实就是逐层推进):

    从而计算出更新准则:

    2-输入层到隐层

    与上面的步骤类似:

    后两项可以直接得出,主要是计算第一项求解,分析链式流程:J→z→net_k→y,从而有:

    定义隐单元的敏感度:

    从而得到学习规则:

    至此,完成了整个网络的权重更新过程。

      B-算法流程

     这里给出两种基本的实现思路,一是基于随机梯度下降,二是基于批量梯度下降,更多求解思路可以参考梯度下降法的思路。

    1-随机梯度下降

    2-批量梯度下降

     

       C-算法推广

    BP的思路可以直接推广至:

    • 输入单元包含偏置bias单元;
    • 允许输入单元直接与输出单元和隐单元相连
    • 网络多于三层
    • 不同层有不同的非线性函数f(.)
    • 每个单元有它各自的非线性函数f(.)

    参考

    • http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
    • 《模式分类》第二版,p235~240.
  • 相关阅读:
    Nginx 高级配置
    nginx安装和优化配置
    location语法介绍
    iptables
    通过 loganalyzer 展示数据库中的系统日志
    ubuntu_server16.04详细安装步骤
    内存控制mmap的原型和使用方法
    C语言中open函数read函数lseek函数是如何使用的
    gdb调试工具的基本使用
    C语言如何制作静态库
  • 原文地址:https://www.cnblogs.com/xingshansi/p/7398396.html
Copyright © 2011-2022 走看看