【pytorch框架学习】4.梯度

一,梯度的概念

1.什么是梯度

梯度是一个向量,是由各个方向的偏导组成的向量

2.梯度下降算法

梯度下降算法在前面已经介绍过了,它会逐渐的找到一个最小点

3.影响梯度下降算法的因素
①初始值

如果初始值一开始就在全局最小点的附近,那么利用梯度下降算法得到最小值的速度就会很快

②学习速率

学习速率过小会导致算法速度慢,学习速率过大又会导致如下的情况

③局部最小点

图中红色标注的部分为局部最小点,如果点从蓝色的地方开始,进行梯度下降算法,那么它很有可能会被困在局部最小点,最终返回的结果也不是我们要的全局最小点

解决方法:进入惯性机制

当进入局部最小点的时候,它移动的方向是惯性向量和梯度下降算法的向量叠加起来的结果,就有可能会利用惯性冲出局部最小点

④鞍点

如图所示,该点在x维度上是极小值,在y维度上是极大值,这种点称为鞍点

鞍点是极难处理的,梯度下降的过程很有可能就会被困在鞍点,尤其是维度比较多的时候

二,常见的激活函数及其梯度

1.激活函数的引入

生物学家在研究青蛙的神经元的时候,会发现它的输入和输出不是简单的线性叠加,而是

当输入达不到某一个阈值的时候,就没有输出,当输入超过某个阈值的时候,输出也不会再变大了

因此,计算机模仿生物的神经元,提出了激活函数的概念

2.Sigmoid激活函数
①它的方程和图像

②它的梯度推导过程

③它的优点

十分光滑

把值域限制在了0到1之间,而很多实际问题都需要把值域限制到0到1之间,比如概率,或者图片的RGB表示

④它的缺点

会发现,当它无线趋近于0或1时,它的梯度会变得极小,这样在进行梯度下降算法的时候,会下降不动,也就是梯度弥散现象

⑤它的用法

3.Tanh激活函数
①它的函数以及图像

②它的梯度推导

③它的优缺点

它的优缺点与sigmoid一样,因为就是由sigmoid推导过来的

④它的使用

4.relu函数
①它的函数以及图像

②它的优点

relu是最适合深度学习的激活函数,梯度也是恒定的,很适合梯度下降算法

③它的应用

三,常见的损失函数及其梯度

1.常见的两种损失函数

2.Mean Squaared Error,就是平方差
①它的公式以及与norm的关系

②它的梯度

③mse_loss函数以及两种自动求导的方式

mse_loss的用法

mse_loss习惯把标签放在前面,把输出的y值放在后面

可以利用torch.autograd.grad(tensor mse,[w1,w2...])进行求导

其中第一个参数是对哪个式子进行求导,第二个参数是一个列表,代表对哪些权值进行求偏导

他会返回一个列表,如下图所示

但是,如果在上面的式子中,如果直接对w求grad是会报错的,因为w在创建的时候并没有设置他可以求导,因此需要下面的步骤来设置让w变成可以求导的

也可以利用loss.backword()进行求导

这种方法不会返回任何东西,它会自动把式子里设置的可以求导的权值都给求导了,然后后续可以用w.grad进行查询

3.Cross Entropy Loss损失损失函数

由于cel会在后续讲解,这就主要记录它的激活函数softmax

softmax函数的性质

1.输出都在0到1之间

2.输出的和加起来为1

3.使原来最大的输入(2.0)变得比重更大(0.7)

以上这三条性质特别适合应用于分类问题的输出,这样分类问题的输出经过softmax函数之后可以直接表示为各个标签的概率

softmax函数的梯度

当i==j的时候

当i!=j的时候

softmax的应用

F.sorfmax(tensor a,dim=x)

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

owooooow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值