BP算法,用梯度下降法更新权值W与偏置项b

 

        Bp算法实际是输出的误差函数对每一个参数求导,输出层可以直接求出,非输出层则有链式法则求导。这里以上图5层神经网络为例进行说明。

一   符号说明:

      1)这里使用激活函数为sigmoid函数:

                                                                                  f\left ( x \right )=\frac{1}{1+e^{-x}}             (1)

            对sigmoid函数求导得:

                                                                        {f}'\left ( x \right )= \frac{1}{1+e^{-x}}\left ( 1- \frac{1}{1+e^{-x}}\right ) = f\left ( x \right )\left ( 1-f\left ( x \right ) \right )      (2)

        2)  W_{ij}^{l}:l表示l-1层传到l层的权重,i表示l-1层所对应的神经元,j表示l层的神经元;b^{l}:l表示l-1层传到l层的偏置项;I_{k}^{l}第l层尚未使用激活函数的第k个神经元;O_{k}^{l}第l层已使用激活函数的第k个神经元;n_{l}第l层神经元的个数。以第l层传到第l+1层为例:

                                                                                  I^{l+1}=\left ( W^{l} \right )^{T}O^{l}+b^{l}                                 (3)

                                                                                        O^{l+1}=sigmoid\left ( I \right )                                      (4)

        3) 不妨设实际输出为y1和y2,这里使用最小均方误差表示:

                                                                                E=\frac{1}{2}\left ( \left ( O_{1}^{5}-y_{1} \right )^{2}+ \left ( O_{2}^{5}-y_{2} \right )^{2}\right )                 (5)

            使用梯度下降法更新参数,对权值项W_{ij}^{l},更新公式为

                                                                                                         W_{ij}^{l}=W_{ij}^{l}-\eta \frac{\partial E}{\partial W_{ij}^{l}}           (6)

                                                              对偏置项b^{l},更新公式为:

                                                                                                               b^{l}=b^{l}- \eta \frac{\partial E}{\partial b^{l}}             (7)

二   推导说明:

    由梯度下降法的公式可以看出实际就是求出最小均方误差对参数的偏导。这里以W_{11}^{5}W_{11}^{4}W_{11}^{3}为例。

1)  W_{11}^{5}W_{11}^{5}只跟第5层神经网络的第1个神经元有关,既有:

                                                                             (9)

       由链式求导法则得:

                                                                             (10)

 

2)  W_{11}^{4}W_{11}^{4}跟第5层的所有神经元有关,跟第4层第1个神经元有关,既有:

                                                                                                       (11)

                由链式求导法则得:

                                                                                              (12)

                       对上式中E对O_{1}^{4}的偏导这里单独进行讨论,   

                                                                     (13)

                     又因为:

                                                                                                                         (14)

                故:

                                                    (15)

 

 3)  W_{11}^{3}W_{11}^{3}跟第3层的第1个神经元,第4层所有神经元有关,第5层第所有神经元有关,既有:

                                                                                   (16)

                     由链式求导法则得:

                                                                                          (17)

                 对上式中E对O_{1}^{3}的偏导这里单独进行讨论,

                                         (18)

                   又因为:

                                                                                            (19)

                 故:

                                           (20)

            公式太长了,这里就推到由第2层到第3层的参数W_{11}^{3}

 4)开始总结规律

对输出层(既第5层)不妨令:

                                                                              (21)

                                                                             (22)

对第4层:

                                     (23)

                                     (24)

                                     (25)

   对第3层第1个神经元

                    (26)

     由上可以可能出

                     对输出层即第5层:

                                                           (27)

                       对第4层:

                                                                   (28)

                     对第3层:
                                                                     (29) 

              同理可得对第2层     :

                                                                         (30)

综上可得:

          对输出层有:

                                                                 (31)

         对非输出层有:

                                                                (32)

        又由于: 

                                                           (33)

                                                         (34)

                                                          (35)

              所以:

                                                              (36)

                所以权重更新公式为:

                                                              (37)

               同理可得偏置项的更新公式为:

                                                                               (38)

6)推广到一般化,如果误差函数不是最小均方误差,而是E,激活函数不是sigmoid,而是f(x),此时:

                                                                                           (39)     

              有上面的推导我们易得,对输出层:

                                                                        (40)

                    对非输出层:

                                                                  (41)

                  此时权重更新公式:

                                                                       (42)

                 偏置项的更新公式为:

                                                                       (43)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字典生成工具_CANOpen系列教程09_CANOpen对象字典

说明:本文原创作者『strongerHuang』首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop标签:CAN、 CANOpen、 CanFestival一、写在前面上一篇文章主要是引导大家学习CANOpen协议通信接口的相关内容。通信…

Java命令行界面(第4部分):命令行

我在Java中进行命令行解析的系列的第四部分介绍了Commandline ,它被描述为 “用于解析命令行参数的Java库”,它“基于使用注释从命令行参数到对象的映射”。 像以前介绍的args4j和jbock一样, Commandline使用注释来提供潜在命令行选项的“定…

Dijkstra 计算两地间的最短距离

这里使用Dijkstra(戴克斯特拉)算法,该算法起始点实际计算出到任一点的距离,计算两城市间的距离实际是一个副产物,所有一下图为例来说明,该图为无向图,顶点间所标数字即为两点之间的距离。 问题:求点D到点A的…

Sequence

题目链接:http://dsalgo.openjudge.cn/binarytree/12/ 总时间限制: 3000ms 内存限制: 65536kB描述给定m个数字序列,每个序列包含n个非负整数。我们从每一个序列中选取一个数字组成一个新的序列,显然一共可以构造出n^m个新序列。接下来我们对每…

hadooprbac_rbac权限管理系统的学习

RGBA学习在web开发项目中,有些网页是公开给所有人访问的,但有些网页涉及了某些数据表的增删改查的操作,而某些操作,特别是增改删的操作是一些敏感操作所有需要给不同的用户添加不同的权限,那么问题来了来了,我们需要怎样设置数据表来分配不同权限呢?很显…

api过滤器_了解播放过滤器API

api过滤器随着Play 2.1的热销,很多人开始询问新的Play过滤器API。 实际上,API非常简单: trait EssentialFilter {def apply(next: EssentialAction): EssentialAction }本质上,过滤器只是一个执行一个动作并返回另一个动作的函数…

HTML5中的webSocket、ajax、http

本文原链接:https://cloud.tencent.com/developer/article/1115496 https://cloud.tencent.com/developer/article/1193011 webSocket与ajax、web 一、webSocket与ajax 1、ajax2、webSocket二、webSocket API 1、事件2、方法3、属性4、常量三、webSocket与HTTP四、w…

动态规划,背包问题

背包问题模型,背包问题是一类整数规划问题,叙述如下:设有n件物品,并且第i件物品的重量为,其价值为,而背包能承受的总重量是,问应如何选择这些物品,才可以使背包中所装物品的价值最大…

routing zuul_尚学堂0131之zuul的相关概念及如何性能调优

采用服务名称指定路由方式1.1使用服务名称指定路由的规则是什么?1.2需改配置文件,将路由规则修改为使用服务名称路由。通过服务名, service-id为服务名zuul:routes:E-Book-Product-Provider:path: /suibian/**service-id: E-Book-Product-Provider路由的…

实时通信:使用Spring Boot实现Websocket

在开发Web应用程序时,有时我们需要将服务器事件下推到已连接的客户端。 但是,HTTP并非旨在允许这样做。 客户端打开与服务器的连接并请求数据。 服务器不会打开与客户端的连接并推送数据。 为了解决此限制,建立了一种轮询模式,其…

CUDA10.1配置VS2017

目录 一 CUDA 安装 二 CUDA环境变量配置 三 CUDA配置VS2017 一 CUDA 安装 1.1 CUDA下载 网址:https://developer.nvidia.com/cuda-toolkit-archive 可以根据需要下载不同版本的CUDA安装包。 1.2 CUDA安装 1.2.1 双击下载的.exe文件安装 1.2.2 点击‘OK’ 1.2…

鸿蒙应用开发 常用组件与布局

简介 HarmonyOS ArkUI 提供了丰富多样的 UI 组件,您可以使用这些组件轻松地编写出更加丰富、漂亮的界面。在本篇 Codelab 中,您将通过一个简单的购物社交应用示例,学习如何使用常用的基础组件和容器组件。本示例主要包含:“登录”…

[数论]莫比乌斯反演1

索引 莫比乌斯反演1 定理莫比乌斯反演2 证明莫比乌斯反演3 技巧前言 本篇内容全部为定理,无证明 定义 莫比乌斯函数的符号为\(\mu\),通俗的来讲\[ \mu(n) \left\{ \begin{matrix} 1 & n1\\ (-1)^k & n p_1p_2p_3\dots p_k\\ 0 & \text{其他…

怎么卸载光速头条_我用这三招,整理了桌面并且屏蔽了广告弹窗

这段时间,在用公司电脑工作时,有两个问题让我非常不爽。一是正处在专心工作中,突然桌面中间就弹出一个:天猫双12的广告,而且还没有关闭按钮。只能打开然后再关闭。二是每次打开电脑,桌面中间和右下角就有一…

Qt配置VS2017

目录 一 Qt安装 二 VS2017安装 三 Qt配置VS2017 一 Qt安装 1.1 下载网址:http://download.qt.io/archive/qt/ 这里选择 1.2 安装Qt 安装路径可以自己更改,然后点下一步 可以根据自己的VS版本自己选择,我们这里选MSVC-2017 64-bit 二…

opencv python tutorials_OpenCV-Python Tutorials 笔记(二)

OpenCV官方有一个面向python的文档OpenCV-PythonTutorials:我根据此文档进行了实践学习,结合自己经验简单记录一下笔记。(续)4、Image Processing inOpenCV4.1ChangingColorspaces转换颜色空间算是极其常用的操作了。不用说,cvtColor()。相关…

runltp出现问题 [

runltp 623行: if [ "$?" "0" ]; then 对[解析出了问题。 我灵机一动,是不是sh的问题。 which sh /bin/sh ls -l /bin/sh sh指向dash 果然不对 rm后 ln -s /bin/bash /bin/sh 再次运行,正确。 转载于:https://www.cnbl…

fork join框架_Java 7:Fork / Join框架示例

fork join框架Java 7中的Fork / Join Framework专为可分解为较小任务的工作而设计,并将这些任务的结果组合起来以产生最终结果。 通常,使用Fork / Join Framework的类遵循以下简单算法: // pseudocode Result solve(Problem problem) {if (p…

numpy T、transpose()函数、swapaxes()函数

目录 1 矩阵转置T,既线性代数中矩阵转置 2 transpose()函数 3 swapaxes()函数 1 矩阵转置T,既线性代数中矩阵转置 示例程序如下: import numpy as npa np.arange(0,24,2).reshape(3, 4)print(*****a****) print(a: \n, a) print(a.…

leetcode-54 螺旋矩阵

题目: 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,…