梯度下降和反向传播(理论基础)

目标

  1. 知道什么是梯度下降
  2. 知道什么是反向传播

1. 梯度是什么?

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

回顾机器学习
收集数据x,构建机器学习模型f,得到 f(x,w) = Ypredict

判断模型好坏的方法:

  • 回归损失:loss = (Ypredict - Ytrue)2
  • 分类损失:loss = Ytrue·log(Ypredict)

目标:通过调整(学习)参数w,尽可能的降低loss,那么我们该如何调整w呢?

在这里插入图片描述
随机选择一个起始点w0,通过调整w0,让loss函数取到最小值

在这里插入图片描述
w的更新方法:

  1. 计算w的梯度(导数)
    在这里插入图片描述
  2. 更新w
    在这里插入图片描述
    其中:α为学习率
    ① ▽w<0,意味着w将增大
    ② ▽w>0,意味着w将减小

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

2. 偏导的计算

2.1 常见的导数计算

在这里插入图片描述

2.2 多元函数求偏导

一元函数,即有一个自变量。类似f(x)
多元函数,即有多个自变量。类似f(x,y,z),三个自变量x,y,z

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

练习:
在这里插入图片描述

3. 反向传播算法

3.1 计算图和反向传播

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

在上面的练习中

在这里插入图片描述
把它绘制成计算图可以表示为:

在这里插入图片描述
绘制成为计算图之后,可以清楚的看到向前计算的过程

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

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

在这里插入图片描述

3.2 神经网络中的反向传播

3.2.1 神经网络示意图

w1,w2…wn表示网络第n层权重
wn[i,j]表示第n层第i个神经元,连接到第n+1层第j个神经元的权重

在这里插入图片描述

3.2.2 神经网络的计算图

在这里插入图片描述
其中:

  1. ▽out是根据损失函数对预测值进行求导得到的结果
  2. f函数可以理解为激活函数

问题:那么此时w1[1,2]的偏导该如何求解呢?

通过观察,发现从▽out到w1[1,2]的连接线有两条

在这里插入图片描述
结果如下:

在这里插入图片描述
公式分为两部分:

  1. 括号外:左边红线部分
  2. 括号内
  • ① 加号左边:右边红线部分
  • ② 加号右边:蓝线部分

但是这样做,当模型很大的时候,计算量非常大 所以反向传播的思想就是对其中的某一个参数单独求梯度,之后更新,如下图所示:

在这里插入图片描述
计算过程如下:

在这里插入图片描述
更新参数之后,继续反向传播

在这里插入图片描述
计算过程如下:
在这里插入图片描述
继续反向传播

在这里插入图片描述
计算过程如下:
在这里插入图片描述
通用的描述如下:

在这里插入图片描述

视频参考:https://www.bilibili.com/video/BV1pi4y1x7fx?p=10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值