大白话 5 分钟带你走进人工智能:神经网络之反向传播详细案例及解释

本文以通俗易懂的方式讲解神经网络的反向传播,包括反向传播的基本概念、案例解析、通用计算逻辑以及逻辑回归案例。通过具体的计算示例,深入浅出地阐述反向传播在求导、梯度计算和参数更新中的作用,帮助读者理解深度学习的核心原理。
摘要由CSDN通过智能技术生成

神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向--深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术。而 反向传播是神经网络的核心原理,了解 反向传播的具体细节,会对以后在深度学习里面的探索起到触类旁通的重要作用。

我们的愿景是打造全网 AI 最通俗博客,赠人玫瑰,手有余香,在人工智能前行的路上一起前行。以通俗简介的方式,让每一位热爱着深入其中。

在本 Chat 中,你将收获如下内容:

  1. 反向传播前述
  2. 第一个案例解说反向传播
  3. 通用案例形式
  4. 逻辑回归案例
  5. 总结

适合人群: 对神经网络有兴趣,想探索深度学习领域的技术人员。

反向传播前述

我们知道正向传播就是把 x 拿下来一层层的和 w 乘,然后经过 function 非线性变化,最后得到一个 y 输出结果。反向传播(reverse-mode autodiff)就是反过来,从最后的 y 到 x,反向的自动求导。前向传播是 make predictions,去预测ŷ,然后计算出误差,再计算出每个神经节点对误差的贡献。这里的求贡献就是反向传播过程,首先根据前向传播的误差来求梯度,梯度越大贡献越大。然后根据梯度调整原来的权重。总结下来反向传播就是求导、求梯度,然后根据梯度在迭代里面调整 w 的一个过程。

反向自动求导是 tensorflow 实现的方案,首先,它执行图的前向阶段,从输入到输出,去计算节点值;然后反向阶段,从输出到输入去计算所有变量的偏导。

什么是偏导数:在数学中,一个多变量的函数的偏导数,就是它关于其中一个变量的导数而保持其他变量恒定(相对于全导数,在其中所有变量都允许变化)。偏导数在向量分析和微分几何中是很有用的。

说白了就是假如 f 对 x 求偏导:∂f*∂x。就是把除 x 以外的自变量当成常数,然后再进行正常的求导即可。

第一个案例解说反向传播

比如f(x, y)=x\^{2} * y+y+2这个计算逻辑,即这个算法。可以用如图来表达正向传播和反向传播逻辑。图中红色虚线表示正向传播,黑色实线是反向传播。

如果 x=3,y=4,正向传播之后,结果为 42,体现在n7 节点上。

那反向传播是做什么事情呢?怎样传播? 如何计算每根线上面的梯度呢?

这里依赖反向自动求导(reverse-mode autodiff),求解的想法是逐渐的从上往下,来计算 f(x,y)的偏导,使用每一个中间连续的节点,直到我们达到变量节点,这里严重依赖链式求导法则

链式求导法则,就是 x 不能直接连接 f,我们通过一个中间的节点,比如 ni,如果 ni 可以连接 f,就可以让 f 对 ni 求偏导;然后 x 可以连接 ni,ni 对 xi 求偏导,然后根据链式求导法则相乘,得到的就是 f 对 x 求偏导的一个值。

在这里插入图片描述

比如上图中的算法逻辑我们最终的 f 对 x 来求偏的,f 是最后节点出现的结果,x 是第一个节点,中间有好长的路要走。所以如果对 x 求偏导的话,得把每一步节点输出对 x 求偏导。n1 节点没有直接连上 n7 节点,n1 节点也没有直接连上 n5 节点,但是 n1 节点可以连上 n4 节点;n4 节点连不上 n7 节点,但是能连接 n5 节点。那么我们可以让 xn1 通过 n4 去连接 n5,然后再通过 n5 连接到 n7,它就成为一条链,求这条链上面的导数,最后就可以把 n7 对 n1 也就是

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值