YA

In me the tiger sniffes the rose.

  • 主页
  • 世界之内
  • 世界之外
  • 叶隙随笔
所有文章 友链 关于我

YA

In me the tiger sniffes the rose.

  • 主页
  • 世界之内
  • 世界之外
  • 叶隙随笔

【机器学习】BP算法

阅读数:22977次 2018-05-26
字数统计: 1.4k字   |   阅读时长≈ 6分

断断续续零零碎碎地学机器学习半年了,不会实践,不会运用,只是粗略地学了理论基础,因为涉及很多数学公式,markdown的数学公式语法又挺麻烦的,所以一直没有写过机器学习算法的文章。最近恰逢创新班、双特生面试,因为我是以机器学习为特点介绍我自己的,所以看了些算法的具体理论和优缺点。今天下午看了2个小时的BP算法,心想不如在近纲课上写一篇BP算法的文章。

一般思想

首先,依然是梯度下降法,为了更新W和b,就要计算出代价函数J对两者的偏导数,即

∂∂W(l)ijJ(W,b;x,y)=a(l)jδ(l+1)i
∂∂b(l)iJ(W,b;x,y)=δ(l+1)i

其中,

$\delta^{(l)}_i=\frac{\partial J(W,b;x,y)}{\partial z_i^{(l)}}=\frac{\partial }{\partial z^{(l)}i}\frac{1}{2} \left|y - h{W,b}(x)\right|^2 = - (y_i - a^{(l)}_i)\cdot f’(z^{(l)}_i)$

但这两个公式只能够更新输出层与前一层连接线的权重和输出层的偏置,原因是因为 δ 值依赖了真实值y这个变量,但是我们不可能知道每层隐藏层的真实值,所以无法计算每层隐藏层的 δ 值。而BP算法则可以让我们利用后一个δ计算前一个δ,避免了使用真实值。

BP算法细节

1: 首先当然是正向计算咯,分别求出L2,L3,…直至最后一层Ln的激活值。我们这里把输入当做第一层。下面是真正的反向传播。

2: 对于第n层(最后一层是特殊的,必须单独拿出来)每个输出单元i,下面的l的值为n, 计算每个结点的残差:

$\delta^{(l)}_i=\frac{\partial J(W,b;x,y)}{\partial z_i^{(l)}}=\frac{\partial}{\partial z^{(l)}i} \;\;\frac{1}{2} \left|y - h{W,b}(x)\right|^2 = - (y_i - a^{(l)}_i) \cdot f’(z^{(l)}_i)$

注意:这里最后乘上了对“net”的导,如果是用sigmoid的函数的话,根据f′(z(l)i)=a(l)i(1−a(l)i), 最后一层的第i个结点的残差δ(l)i=−(yi−a(l)i)∙a(l)i(1−a(l)i)

3: 从倒数第二层开始,也就是说 l=n−1,n−2,n−3,…,2 的各层,第l层的第i个结点的残差计算:

$\delta^{(l)}i = \left( \sum{j=1}^{s_{l+1}} W^{(l)}_{ji} \delta^{(l+1)}_j \right) f’(z^{(l)}_i)$

分析:要想知道第l层的第i个结点的残差,必须知道该节点所连接的下一层的各个结点的权值,以及这些结点的残差,幸亏第l+1层已经计算出来了残差,你只要把后面一层的每个结点j的残差乘以该结点与这一层的结点i相连的权值,然后加和,最后别忘了乘以这一层的激活方式的导数。

4: 你可能会说要残差干嘛?当然是计算∂J/∂w和∂J/∂b用的。
只要:

∂∂W(l)ijJ(W,b;x,y)=a(l)jδ(l+1)i

∂∂b(l)iJ(W,b;x,y)=δ(l+1)i

结论:求J对“结点j到i的线路”的导数,求出后者i的残差,然后乘以这条线路的流量即可。

分析:其实是这样的,Wlij是第l层到l+1层的权值,并且是从结点j到结点i的权值。根据链式法则:

$ \frac{\partial J{(W,b; x, y)}}{\partial w_{ij}^{(l)}} = \frac{\partial J{(W,b; x, y)}}{\partial out_{i}} \frac{\partial out_{i}}{\partial net_{i}} \frac{\partial net_{i}}{\partial w_{ij}}$

残差的定义就是∂J(W,b;x,y)∂neti,根据链式法则:

δ(l+1)i=∂J(W,b;x,y)∂neti=∂J(W,b;x,y)∂outi∗∂outi∂neti

这下明白了吧,就是说第l+1层,

∂J∂w(l)ij=δ(l+1)i∗∂neti∂wij=δ(l+1)ia(l)j

注意,第l+1层的∂neti∂wij就是该层的输入,也就是第l层的输出a(l)j.

最后一个问题,为什么

$ \delta^{(l)}i = \left( \sum{j=1}^{s_{l+1}} W^{(l)}_{ji} \delta^{(l+1)}_j \right) f’(z^{(l)}_i)$

呢?

$ \delta^{(l-1)}_i =\frac{\partial}{\partial z^{(l-1)}_i}J(W,b;x,y) = \frac{\partial}{\partial z^{(l-1)}i}\frac{1}{2} \left|y - h{W,b}(x)\right|^2 = \frac{\partial}{\partial z^{(l-1)}i}\frac{1}{2}\sum{j=1}^{S_{l}}(y_j-a_j^{(l)})^2 \ = \frac{1}{2}\sum_{j=1}^{S_{l}}\frac{\partial}{\partial z^{(l-1)}_i}(y_j-a_j^{(l)})^2 = \frac{1}{2} \sum_{j=1}^{S_{l}}\frac{\partial}{\partial z^{(l-1)}_i}(y_j-f(z_j^{(l)}))^2 \= \sum_{j=1}^{S_{l}}-(y_j-f(z_j^{(l)})) \cdot \frac{\partial}{\partial z_i^{(l-1)}}f(z_j^{(l)}) = \sum_{j=1}^{S_{l}}-(y_j-f(z_j^{(n_l)})) \cdot f’(z_j^{(l)}) \cdot \frac{\partial z_j^{(l)}}{\partial z_i^{(l-1)}} \ = \sum_{j=1}^{S_{l}} \delta_j^{(l)} \cdot \frac{\partial z_j^{(l)}}{\partial z_i^{(l-1)}} = \sum_{j=1}^{S_{l}} \left(\delta_j^{(l)} \cdot \frac{\partial}{\partial z_i^{(l-1)}}\sum_{k=1}^{S_{(l-1)}}f(z_k^{(l-1)}) \cdot W_{jk}^{(l-1)}\right) \ = \sum_{j=1}^{S_{l}} \delta_j^{(l)} \cdot W_{ji}^{(l-1)} \cdot f’(z_i^{(l-1)}) = \left(\sum_{j=1}^{S_{l}}W_{ji}^{(l-1)}\delta_j^{(l)}\right)f’(z_i^{(l-1)})$

我们可以看到

$ \delta^{(l-1)}i =\left(\sum{j=1}^{S_{l}}W_{ji}^{(l-1)}\delta_j^{(l)}\right)f’(z_i^{(l-1)})$

前一层的偏差是后一层偏差与相关权重的点积,intuitively,前一层的偏差是后一层偏差之和,符合我们的直觉。

赏

谢谢你请我吃糖果

支付宝
微信
  • 本文作者: YA
  • 本文链接: http://www.yuuuuang.com/2018/05/26/BP算法/
  • 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
  • 世界之内

扫一扫,分享到微信

【增强学习】AirSim搭建
【康德】宏大的哲学语境
  1. 1. 一般思想
  2. 2. BP算法细节
© 2018-2025 YA
GitHub:hexo-theme-yilia-plus by Litten
本站总访问量26576次 | 本站访客数21597人
  • 所有文章
  • 友链
  • 关于我

tag:

  • 随笔
  • 年终总结
  • 世界之内
  • 世界之外
  • 叶隙集
  • 机器学习
  • 叶隙随笔
  • 图像处理
  • 数据挖掘

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 【叶隙集】42 实习

    2025-05-31

    #随笔#叶隙集

  • 2024年终总结

    2025-04-08

    #随笔#年终总结

  • 【叶隙集】41 盘旋的白文鸟

    2025-01-12

    #随笔#叶隙集

  • 大语言模型正在伤害人机交互领域的研究

    2025-01-05

    #随笔#世界之内

  • 【叶隙集】40 台湾旅行

    2024-12-22

    #随笔#叶隙集

  • 【叶隙集】39 搬家了

    2024-09-05

    #随笔#叶隙集

  • 2023年终总结

    2024-06-27

    #随笔#年终总结

  • 【叶隙集】38 参加学术会议

    2024-05-22

    #随笔#叶隙集

  • Notes of 3D Gaussian Splatting

    2024-03-19

    #世界之内

  • 【叶隙集】37 音乐会和朋友

    2023-12-04

    #随笔#叶隙集

  • 【叶隙集】36 QE和音乐会

    2023-11-02

    #随笔#叶隙集

  • 【叶隙集】35 新室友和更积极的生活

    2023-09-11

    #随笔#叶隙随笔

  • 读书笔记|《规训与惩罚》

    2023-08-27

    #随笔#世界之外

  • 【叶隙集】34 无法参加学术会议

    2023-06-28

    #随笔#叶隙集

  • 【叶隙集】33 回国后与朋友和家人们的聚会

    2023-06-11

    #随笔#叶隙集

  • 视频压缩技术概述

    2023-04-28

    #世界之内

  • 2022年终总结

    2023-03-31

    #随笔#年终总结

  • 【叶隙集】32 平和的心态

    2022-12-27

    #随笔#叶隙集

  • 【叶隙集】31 双相情绪障碍症

    2022-12-17

    #随笔#叶隙集

  • 【学习笔记】CS5229 Advanced Computer Network

    2022-12-17

    #世界之内

  • 【叶隙集】30 下半学期太忙了!

    2022-11-25

    #随笔#叶隙集

  • 【叶隙集】29 当助教的半个学期

    2022-10-07

    #随笔#叶隙集

  • 【叶隙集】28 忙碌的第一个月

    2022-08-31

    #随笔#叶隙集

  • 【叶隙集】27 老师的职责

    2022-07-31

    #随笔#叶隙集

  • 【叶隙集】26 新加坡太难找工作了

    2022-07-23

    #随笔#叶隙集

  • 【叶隙集】25 生产工具、学习生活和阅读笔记

    2022-07-15

    #随笔#叶隙集

  • 【叶隙集】24 学习、科研、旅行和爱与关怀

    2022-06-24

    #随笔

  • 【叶隙集】23 学习与研究

    2022-04-26

    #随笔#叶隙集

  • 【学习笔记】人工智能规划与决策

    2022-04-26

    #世界之内

  • 博士申请的总结

    2022-03-31

    #随笔

  • 【叶隙集】22 新的体验和宗教

    2022-03-07

    #随笔#叶隙集

  • 2021年终总结

    2022-01-08

    #随笔#年终总结

  • 【叶隙集】21 新朋友和学术报告

    2021-10-31

    #随笔#叶隙集

  • 【叶隙集】20 音乐会与教训

    2021-10-19

    #随笔#叶隙集

  • 【叶隙集】19 六周年纪念日

    2021-10-03

    #随笔#叶隙集

  • 【叶隙集】18 疫情与疫苗

    2021-09-24

    #随笔#叶隙集

  • 摘录|联合国2021年气候问题总结报告的摘要

    2021-09-19

    #世界之外

  • 【叶隙集】17 音乐会和读书

    2021-09-08

    #随笔#叶隙集

  • 【叶隙集】16 喜欢上了游泳

    2021-09-01

    #随笔#叶隙集

  • 【叶隙集】15 课前的夜曲

    2021-08-24

    #随笔#叶隙集

  • 【叶隙集】14 平稳的学习生活

    2021-08-16

    #随笔#叶隙集

  • 【叶隙集】13 生活与朋友

    2021-07-15

    #随笔#叶隙集

  • 【叶隙集】12 毕业

    2021-06-30

    #随笔#叶隙集

  • 【叶隙集】11 毕业前的生活

    2021-06-23

    #随笔#叶隙集

  • 读书笔记|《国境以南,太阳以西》读后感

    2021-06-17

    #随笔

  • 【叶隙集】10 青甘环线旅行

    2021-06-13

    #随笔#叶隙集

  • 半监督学习|论文粗读

    2021-06-07

    #机器学习

  • 【叶隙集】9 纯粹地生活

    2021-06-06

    #随笔#叶隙集

  • 【叶隙集】8 生活的界限

    2021-05-30

    #随笔#叶隙集

  • 【叶隙集】7 隔离结束

    2021-05-21

    #随笔#叶隙集

  • 【叶隙集】6 隔离生活

    2021-05-14

    #随笔#叶隙集

  • 【叶隙集】5 新的阶段

    2021-05-08

    #随笔#叶隙集

  • 【叶隙集】4 团队管理

    2021-04-30

    #随笔#叶隙集

  • 【叶隙集】3 过低的自我评价

    2021-04-23

    #随笔#叶隙集

  • 【叶隙集】2 方向与交往

    2021-04-16

    #随笔#叶隙集

  • 【叶隙集】1 原爆点-续

    2021-04-08

    #随笔#叶隙集

  • 随笔|目的与纯粹

    2021-03-28

    #随笔

  • 随笔|白文鸟

    2021-01-20

    #随笔

  • 写在一百以后——2020年终总结

    2021-01-01

    #随笔#年终总结

  • 随笔|选择

    2020-12-25

    #随笔

  • 读书笔记|《人生的意义》总结、摘录

    2020-11-25

    #世界之外

  • 书评|Normal People, Normal Love

    2020-10-07

    #随笔

  • Decision Making|人工智能、机器学习与强化学习的概述与比较

    2020-10-03

    #世界之内

  • 随笔|疫情后的总结

    2020-09-10

    #随笔

  • 学习笔记@PRML|1 Introduction

    2020-07-31

    #世界之内

  • 随笔|面试后的回顾与思考

    2020-07-26

    #随笔

  • 数据挖掘|数据挖掘概论笔记

    2020-06-24

    #世界之内#数据挖掘

  • 续写|美女或野兽

    2020-06-18

    #随笔

  • 随笔|无常

    2020-05-31

    #随笔

  • 现象学|胡塞尔《小观念》笔记

    2020-05-13

    #世界之外

  • 随笔|我的局限性

    2020-05-13

    #随笔

  • 随笔|胡乱的记录

    2020-04-09

    #随笔

  • 随笔|疫情

    2020-02-16

    #随笔

  • 随笔|怅惘地忖度

    2020-01-29

    #随笔

  • 2019年终总结

    2019-12-08

    #随笔#年终总结

  • 机器学习|Flow-based Model学习笔记

    2019-11-06

    #世界之内#机器学习

  • 【Introduction to TensorFlow】03 卷积神经网络与复杂数据集

    2019-10-31

    #世界之内#机器学习

  • 【Introduction to TensorFlow】02 初识机器学习与计算机视觉

    2019-10-29

    #世界之内#机器学习

  • 【Introduction to TensorFlow】01 TF 快速入门

    2019-10-29

    #世界之内#机器学习

  • 【Introduction to TensorFlow】00 课程概览

    2019-10-29

    #世界之内#机器学习

  • 随笔|呓语

    2019-10-27

    #随笔

  • 周记|面纱 久别重逢

    2019-09-21

    #随笔

  • 学习笔记|拟合优化

    2019-09-15

    #世界之内

  • 周记|爱人 体验 芝诺

    2019-09-07

    #随笔

  • 摘录|造成不幸福的原因之六:嫉妒

    2019-09-06

    #世界之外

  • 随笔|虚无 纵欲

    2019-08-22

    #随笔

  • 周记|尘埃落定

    2019-06-29

    #随笔

  • 周记|本能 愉悦 基因

    2019-06-12

    #随笔

  • 周记|空荡荡

    2019-06-02

    #随笔

  • 四月裂帛——读《女儿红》

    2019-05-30

    #随笔#世界之外

  • 机器学习|主成分分析

    2019-05-10

    #世界之内#机器学习

  • 《好运设计》史铁生

    2019-05-09

    #世界之外

  • 机器学习|感知机与支持向量机

    2019-04-27

    #世界之内#机器学习

  • 周记|记忆 概念 庸俗

    2019-04-27

    #随笔

  • 机器学习|模型评估与选择

    2019-04-17

    #世界之内#机器学习

  • 机器推理|SLD Resolution

    2019-04-06

    #世界之内

  • 第五代计算机

    2019-03-31

    #世界之内

  • 学习笔记|Volume Rendering

    2019-03-31

    #世界之内#图像处理

  • 周记|三月驼云

    2019-03-28

    #随笔

  • 生成对抗网络与强化学习:文本生成的方法

    2019-03-11

    #世界之内

  • 《桨声灯影里的秦淮河》俞平伯

    2019-03-09

    #世界之外

  • 周记|雨

    2019-03-09

    #随笔

  • 《春之积雪》简媜

    2019-03-01

    #世界之外

  • 周记|逃离

    2019-02-15

    #随笔

  • 存在主义是一种人道主义

    2019-02-11

    #世界之外

  • 学习笔记|比较文学

    2019-02-09

    #世界之外

  • 尼采的美学

    2019-02-01

    #世界之外

  • 哲学涉猎

    2019-02-01

    #世界之外

  • 读书笔记|光的诗人——《如何看懂印象派》

    2019-01-28

    #随笔#世界之外

  • 叔本华的生命意志哲学

    2019-01-25

    #世界之外

  • 再也不要把他们弄丢了

    2019-01-21

    #随笔

  • 2018年终总结

    2018-12-31

    #随笔#年终总结

  • 人类的心理行为模式

    2018-12-25

    #世界之外

  • 周记|神经症人格

    2018-12-22

    #随笔

  • 【周记】旋转

    2018-11-30

    #随笔

  • 七牛云Bucket失效

    2018-11-21

    #世界之内

  • 周记|从前的日色慢

    2018-11-21

    #随笔

  • 【数理逻辑】Incompleteness Theorem

    2018-11-10

    #世界之外

  • 专业随想

    2018-11-05

    #随笔

  • 生活

    2018-11-04

    #世界之外

  • 计算机组成与体系结构

    2018-11-04

    #世界之内

  • 【强化学习】Policy Gradient

    2018-11-03

    #世界之内

  • 怀疑是否有价值——怀疑论

    2018-10-30

    #世界之外

  • 周记|Every hero and coward

    2018-10-20

    #随笔

  • Web in Java

    2018-10-11

    #世界之内

  • 周记|十月女泽

    2018-10-02

    #随笔

  • 托福备考

    2018-09-28

    #世界之内

  • 周记|裸体之舞

    2018-09-24

    #随笔

  • 周记|中秋幸福

    2018-09-18

    #随笔

  • History of artificial intelligence

    2018-09-09

    #世界之外

  • 周记|我那无趣的灵魂

    2018-09-09

    #随笔

  • Softmax Regression

    2018-09-08

    #世界之内

  • 周记|Rational

    2018-09-02

    #随笔

  • 贰 《SICP》笔记:模块化、对象和状态

    2018-08-05

    #世界之内

  • 周记|困倦

    2018-08-04

    #随笔

  • 壹 《SICP》笔记:构造数据抽象

    2018-07-31

    #世界之内

  • 周记|原爆点

    2018-07-31

    #随笔

  • 零 《SICP》笔记:构造过程抽象

    2018-07-23

    #世界之内

  • Norms or maybe more

    2018-07-09

    #世界之内

  • 事已至此

    2018-06-24

    #随笔

  • 【增强学习】AirSim搭建

    2018-06-02

    #世界之内

  • 【机器学习】BP算法

    2018-05-26

    #世界之内

  • 【康德】宏大的哲学语境

    2018-05-26

    #世界之外

  • 【康德】康德的研究领域是什么

    2018-05-11

    #世界之外

  • 【高等数学】什么是梯度(期中考试复习思考)

    2018-04-29

    #世界之内

  • 《自控力》读书笔记

    2018-04-21

    #随笔

  • 【线性代数】The Essence of Linear Algebra

    2018-04-21

    #世界之内

  • 【数据结构与算法】临时抱佛脚

    2018-03-10

    #世界之内

  • 科技革命与人类社会——《论工业社会及其未来》读后感

    2018-03-08

    #随笔

  • 《论工业社会及其未来》原文摘录

    2018-02-23

    #世界之外

  • 《如何高效学习》读后总结

    2018-02-19

    #随笔

  • 《精进》chapter-2读后总结

    2018-02-13

    #随笔

  • A Review of Brian - Inspired Computer Vision

    2018-02-11

    #世界之内

  • 最近有个女生,说对我很失望

    2017-12-07

    #随笔

  • 病入膏肓

    2017-01-29

    #随笔

  • 白文鸟

    2016-10-29

    #随笔

  • 《不能承受的生命之轻》读后感

    2016-07-13

    #随笔

  • 都五月份了

    2016-04-29

    #随笔

  • 《四月裂帛》简媜

    2014-09-29

    #世界之外

  • Fernweh
  • Wuuuudle (已失效)
  • Nemo
  • Elmo (yyh) (已失效)
  • highestpeak (已失效)
  • Kazoo Blog
努力做一名谦逊、独立、乐于思考的学生