CS Notes
  • CS-Notes文档说明
  • 机器学习
    • 频率派和贝叶斯学派
    • 机器学习中的分类指标
    • 数学基础
    • 数据清洗
    • SVM
    • 线性模型
    • 拉格朗日乘子法和KKT条件
    • 集成学习
    • 贝叶斯分类器
    • 降维和度量学习
    • 决策树
    • 神经网络
    • 神经网络优化器
    • Autoencoders & GANs
    • IoU
    • EM算法
    • ML问题总结
    • 机器学习&深度学习学习资料汇总
    • 如何阅读论文
    • 如何写好一篇论文
  • 语言、算法相关
    • 背包问题 - 01背包&完全背包
    • 平衡二叉树AVL
    • 红黑树RB-Tree
    • STL容器
    • STL 常用算法
    • Markdown总结
    • 问题总结
    • 代码汇总
    • PAT手册
  • MIT 6.828 OS课程
  • ImGui
Powered by GitBook
On this page

Was this helpful?

  1. 机器学习

神经网络

Previous决策树Next神经网络优化器

Last updated 5 years ago

Was this helpful?

反向传播算法

核心的思想在于理解从x->y正向是计算损失,然后倒过来从y->x计算误差,利用链式法则计算参数的倒数,从而完成更新,迭代这个计算过程。

其中在链式法则计算的过程中,比较难理解是各个变量的依赖关系。

对于上层节点p和下层节点q,要求得,需要找到从q节点到p节点的所有路径,并且对每条路径,求得该路径上的所有偏导数之乘积,然后将所有路径的 “乘积” 累加起来才能得到的值。

重要的是要理解将一个神经元要看成两个小单元组成,下图中的out(o1)out_(o1)out(​o1)和neto1net_{o1}neto1​,然后根据网络结构得到得到要计算参数的路径,沿着路径,根据链式法则,就可以写出完整的求导式子,举个例子,要计算∂Etotal∂w5\frac{\partial E_{total}}{\partial w_5}∂w5​∂Etotal​​,可以看到从Eo1E_{o1}Eo1​误差到w5w_5w5​的路径:Eo1→out(o1)→neto1→w5E_{o1}\rightarrow out_(o1)\rightarrow net_{o1} \rightarrow w_5Eo1​→out(​o1)→neto1​→w5​,路径有了,就可以很轻松写出下面图片中求导式子了。

看一个来自两条路径的,这里在h1h1h1这个节点就要分成两部分来写,如下如图公式:

总的来说就是把握住要求参数的路径,就可以写出对应的求导式子。

正向传播的思路很好理解,这里不再赘述。

参考:

“反向传播算法”过程及公式推导

反向传播算法(过程及公式推导)

一文弄懂神经网络中的反向传播法——BackPropagation (包含示例代码)

\frac{\partial p}{\partial q}
\frac{\partial p}{\partial q}