2.2 梯度下降和反向传播

梯度下降和反向传播

目标

  1. 知道什么是梯度下降

  2. 知道什么是反向传播

1. 梯度是什么?

梯度:是一个向量,导数+变化最快的方向(学习的前进方向)

回顾机器学习

收集数据2.2 梯度下降和反向传播 ,构建机器学习模型2.2 梯度下降和反向传播,得到2.2 梯度下降和反向传播

判断模型好坏的方法:

2.2 梯度下降和反向传播

目标:通过调整(学习)参数2.2 梯度下降和反向传播,尽可能的降低2.2 梯度下降和反向传播,那么我们该如何调整2.2 梯度下降和反向传播呢?

2.2 梯度下降和反向传播

随机选择一个起始点2.2 梯度下降和反向传播,通过调整2.2 梯度下降和反向传播,让loss函数取到最小值

2.2 梯度下降和反向传播

2.2 梯度下降和反向传播的更新方法:

  1. 计算2.2 梯度下降和反向传播的梯度(导数)

2.2 梯度下降和反向传播

  1. 更新2.2 梯度下降和反向传播

    2.2 梯度下降和反向传播

其中:

  1. 2.2 梯度下降和反向传播 <0 ,意味着w将增大

  2. 2.2 梯度下降和反向传播>0 ,意味着w将减小

总结:梯度就是多元函数参数的变化趋势(参数学习的方向),只有一个自变量时称为导数

2. 偏导的计算

2.1 常见的导数计算

  • 多项式求导数:2.2 梯度下降和反向传播

  • 基本运算求导:2.2 梯度下降和反向传播

  • 指数求导:2.2 梯度下降和反向传播

  • 对数求导:2.2 梯度下降和反向传播,ln 表示log以e为底的对数

  • 导数的微分形式:

    2.2 梯度下降和反向传播

那么:如何求2.2 梯度下降和反向传播 的导数呢?那就可以使用

2.2 梯度下降和反向传播

则有:

2.2 梯度下降和反向传播

2.2 多元函数求偏导

一元函数,即有一个自变量。类似2.2 梯度下降和反向传播

多元函数,即有多个自变量。类似2.2 梯度下降和反向传播三个自变量x,y,z

多元函数求偏导过程中:对某一个自变量求导,其他自变量当做常量即可

例1:

2.2 梯度下降和反向传播

例2:

2.2 梯度下降和反向传播

例3:

2.2 梯度下降和反向传播

练习:

2.2 梯度下降和反向传播

3. 反向传播算法

3.1 计算图和反向传播

计算图:通过图的方式来描述函数的图形

在上面的练习中,

2.2 梯度下降和反向传播

,把它绘制成计算图可以表示为:

2.2 梯度下降和反向传播

绘制成为计算图之后,可以清楚的看到向前计算的过程

之后,对每个节点求偏导可有:

2.2 梯度下降和反向传播

那么反向传播的过程就是一个上图的从右往左的过程,自变量$a,b,c$各自的偏导就是连线上的梯度的乘积:

2.2 梯度下降和反向传播

3.2 神经网络中的反向传播

3.2.1 神经网络的示意图

2.2 梯度下降和反向传播表示网络第n层权重

2.2 梯度下降和反向传播表示第n层第i个神经元,连接到第n+1层第j个神经元的权重。

2.2 梯度下降和反向传播

3.2.2 神经网络的计算图

2.2 梯度下降和反向传播

其中:

  1. 2.2 梯度下降和反向传播是根据损失函数对预测值进行求导得到的结果

  2. f函数可以理解为**函数

问题:那么此时2.2 梯度下降和反向传播的偏导该如何求解呢?

通过观察,发现从2.2 梯度下降和反向传播 到2.2 梯度下降和反向传播的来连接线有两条

2.2 梯度下降和反向传播

结果如下:

2.2 梯度下降和反向传播

公式分为两部分:

  1. 括号外:左边红线部分

  2. 括号内

    1. 加号左边:右边红线部分

    2. 加号右边:蓝线部分

但是这样做,当模型很大的时候,计算量非常大

所以反向传播的思想就是对其中的某一个参数单独求梯度,之后更新,如下图所示:

    2.2 梯度下降和反向传播

计算过程如下

2.2 梯度下降和反向传播

更新参数之后,继续反向传播

2.2 梯度下降和反向传播

计算过程如下:

2.2 梯度下降和反向传播

继续反向传播

2.2 梯度下降和反向传播

计算过程如下:

2.2 梯度下降和反向传播

通用的描述如下

2.2 梯度下降和反向传播