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

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,就是一个建立一个反向的神经网络的过程。

相关推荐
胡耀超7 分钟前
知识图谱入门——3:工具分类与对比(知识建模工具:Protégé、 知识抽取工具:DeepDive、知识存储工具:Neo4j)
人工智能·知识图谱
陈苏同学15 分钟前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
吾名招财33 分钟前
yolov5-7.0模型DNN加载函数及参数详解(重要)
c++·人工智能·yolo·dnn
羊小猪~~1 小时前
深度学习项目----用LSTM模型预测股价(包含LSTM网络简介,代码数据均可下载)
pytorch·python·rnn·深度学习·机器学习·数据分析·lstm
我是哈哈hh1 小时前
专题十_穷举vs暴搜vs深搜vs回溯vs剪枝_二叉树的深度优先搜索_算法专题详细总结
服务器·数据结构·c++·算法·机器学习·深度优先·剪枝
鼠鼠龙年发大财1 小时前
【鼠鼠学AI代码合集#7】概率
人工智能
龙的爹23331 小时前
论文 | Model-tuning Via Prompts Makes NLP Models Adversarially Robust
人工智能·gpt·深度学习·语言模型·自然语言处理·prompt
工业机器视觉设计和实现1 小时前
cnn突破四(生成卷积核与固定核对比)
人工智能·深度学习·cnn
我算是程序猿2 小时前
用AI做电子萌宠,快速涨粉变现
人工智能·stable diffusion·aigc
萱仔学习自我记录2 小时前
微调大语言模型——超详细步骤
人工智能·深度学习·机器学习