机器学习(选修)(持续更新)

Gradient Descent

1、一般我们会得到一组参数 ,它是由很多组weight和bias组成的。

2、首先,我们在处理数据的时候,会选择一个初始化参数

3、其次,我们计算每个与w的偏微分,把他们组成矩阵的形式,如下图:

这个就是我们所求的梯度(gradient)。

4、然后,我们将选定的初始参数减去我们的梯度乘于学习率,就得到了我们新的参数,如下图:

5、我们一直按照2、3、4的方式持续计算,不断更新我们的参数 。

以上就是我们的梯度下降算法(Gradient Descent),下一步我们将其扩展到神经网络(neural network),寻求一个计算梯度更加有效的算法------反向传播(Backprogation)。

反向传播(Backprogation)

1、反向传播的核心就是链式法则(chain rule),如果有听过宋浩老师的高数课的话,就是他的洋葱法则。

2、首先,我们定义一个损失函数(就是将每个Loss值做累加),如下图:

3、其次,我们做损失函数关于参数w的偏微分(参数b也同理),就相当于每次Loss值对w的偏微分的累加和,为了更简单的进行计算,我们拿出一组,如下图:

这就相当于在整个神经网络(neural network)里面,拿出一个神经元(neural)出来,如下图:

4、因为w会影响z,z会影响c,所以我们就可以将z做为一个中间变量,将c对w的偏微分分为z对w的偏微分乘于c对z的偏微分,如下图:

z对w的偏微分称之为forwardpass,c对z的偏微分称之为backwardpass。

5、我们先求forwardpass,如下图:

实际上forwardpass就是我们的输入值,下一步我们应该求backwardpass了。

Backward pass

1、因为z对a(激活函数)有影响,a对c有影响,所以我们可以吧c对z的偏微分写为a对z的偏微分乘于c对a的偏微分,从上面给绿色方框里面的内容,我们可以很直观的得出a对z的偏微分等于激活函数的导数。

2、下面就是要求c对a的偏微分了,根据上面forwardpass中的知识我们可以很清楚的求出z'对a的偏微分等于w3,z''对a的偏微分等于w4。

3、但是c对z'的偏微分和c对z''的偏微分怎么求呢?首先,我们假设已知以上两个值,我们把他们带进去,我们就可以得到c对z的偏微分了,如下图:

然后我们将这个式子看作一个新的神经元(但是并不在我们的神经网络里面),如下图:

4、 现在我们的问题就是怎么算c对z'的偏微分和c对z''的偏微分,假设现在蓝色方框里面的就是我们最后一个hidden layer ,也就是y1和y2就是我们的输出。

然后我们就可以将c对z'的微分写成y1对z'的微分乘于c对y'的微分了,同理c对z''的微分同理,如下图:

只要知道组后的激活函数是多少我们就可以很轻松的求出y1对z'的微分,只要知道我们采用的那种Loss(cross entropx或mean square error)我们就可以求出c对y1的微分。

以上现在已经不成问题了,问题是我们如果想知道的不是最后一层呢?

5、其实很简单我们就从最后的输出层开始计算,根据后一项计算前一项,一层一层递进,如下图:

总结:反向传播(backprogation)------back pass,就是一个建立一个反向的神经网络的过程。

相关推荐
csdn_aspnet3 小时前
如何用 C# 和 Gemma 3 在本地构建一个真正能完成工作的 AI 代理的
人工智能·ai·c#·gemma
啊哈哈哈哈哈啊哈哈3 小时前
边缘计算与轮廓检测
人工智能·opencv·计算机视觉
cskywit3 小时前
从DFL到无NMS推理:一文拆解YOLO26背后的工程取舍与数学原理
人工智能·机器学习
PPHT-H3 小时前
【人工智能笔记】第四十四节:OpenClaw封神工具 openclaw-free-openai-proxy 免费AI模型批量调用,零token费+稳到不翻车!
人工智能·深度学习·openclaw·免费openai·ai服务代理
yiyu07163 小时前
3分钟搞懂深度学习AI:实操篇:RNN
人工智能·深度学习
uzong4 小时前
CoPaw是什么?-- 2026年开源的国产个人AI助手
人工智能·后端
海盗儿4 小时前
TensorRT-LLM 框架与源码分析
人工智能
无心水4 小时前
【任务调度:框架】11、分布式任务调度进阶:高可用、幂等性、性能优化三板斧
人工智能·分布式·后端·性能优化·架构·2025博客之星·分布式调度框架
码森林4 小时前
小龙虾居然比你更健忘?OpenClaw 记忆系统指南,让它永远记住你
人工智能·ai编程·全栈
ghie90905 小时前
维纳滤波器语音增强MATLAB实现
人工智能·matlab·语音识别