03.autograd与逻辑回归

本课程来自深度之眼deepshare.net,部分截图来自课程视频。
在线LaTeX公式编辑器

torch.autograd——自动求导系统

torch.autograd.backward

功能:自动求取梯度
·tensors:用于求导的张量,如y、loss
·retain_graph:保存计算图
·create_graph:创建导数计算图,用于高阶求导
·grad_tensors:多重梯度权重(就是多个需要计算多个loss的时候,计算各个loss的权重)

torch. autograd. backward(tensors, grad_tensors=None, retain_graph=None, create_graph=False)

上节课的例子:
计算图与梯度求导:
y = ( x + w ) ∗ ( w + 1 ) y=(x+w)*(w+1) y=(x+w)(w+1)
a = x + w a=x+w a=x+w
b = w + 1 b=w+1 b=w+1
y = a ∗ b y=a*b y=ab
∂ y ∂ w = ∂ y ∂ a ∂ a ∂ w + ∂ y ∂ b ∂ b ∂ w = b ∗ 1 + a ∗ 1 = b + a = ( w + 1 ) + ( x + w ) = 2 ∗ w + x + 1 = 2 ∗ 1 + 2 + 1 = 5 \begin{aligned}\frac{\partial y}{\partial w}&=\frac{\partial y}{\partial a}\frac{\partial a}{\partial w}+\frac{\partial y}{\partial b}\frac{\partial b}{\partial w}\\ &=b*1+a*1\\ &=b+a\\ &=(w+1)+(x+w)\\ &=2*w+x+1\\ &=2*1+2+1\\&=5\end{aligned} wy=aywa+bywb=b1+a1=b+a=(w+1)+(x+w)=2w+x+1=21+2+1=5
在运行

import torch
w=torch. tensor([1.], requires grad=True)
x=torch. tensor([2.], requires_gradeTrue)
a=torch. add(w,x)# retain_grad()
b=torch. add(w,1)
y=torch. mul(a,b)
y. backward() 
print(w. grad)

过程中,执行y. backward() 如果调试,会发现实际上是tensor类中调用的torch.autograd.backward方法。
如果需要多次使用计算图,需要设置retain_graph=True

torch.autograd.grad

功能:求取梯度
·outputs:用于求导的张量,如loss
·inputs:需要梯度的张量
·create_graph:创建导数计算图,用于高阶求导
·retain_graph:保存计算图
·grad_outputs:多梯度权重

if flag: x=torch.tensor([3.], requires _grad=True)
y=torch.pow(x,2)#y=x**2
grad_1=torch.autograd.grad(y,x, create_graph=True)# grad_1=dy/dx=2x=2*3=6
print(grad_1)
grad_2=torch.autograd. grad(grad_1[e],x)# grad2=d(dy/dx)/dx=d(2x)/dx=2
print(grad_2)

在这里插入图片描述
这里很简单, x 2 x^2 x2求一阶导数得到2x,x=3所以结果是6
求二阶导数就是常数2。

autograd小贴士

1.梯度不自动清零,除非使用:grad.zero_()方法
2.依赖于叶子结点的结点,requires_grad默认为True,例如下图中的a和b
在这里插入图片描述
3.叶子结点不可执行in-place(就是在内存中改变张量的值,内存地址不变)

逻辑回归

逻辑回归是线性的二分类模型模型表达式:
y = f ( W X + b ) y=f(WX+b) y=f(WX+b)
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1
f ( x ) f(x) f(x)称为Sigmoid函数,也称为Logistic函数
c l a s s = { 0 , 0.5 > y 1 , 0.5 ≤ y class=\left\{\begin{matrix}0,0.5>y \\ 1,0.5≤y \end{matrix}\right. class={0,0.5>y1,0.5y
在这里插入图片描述
线性回归是分析自变量×与因变量y(标量)之间关系的方法
逻辑回归是分析自变量×与因变量y(概率)之间关系的方法
对数几率回归等价于逻辑回归
l n y 1 − y = W X + b ln\frac{y}{1-y}=WX+b ln1yy=WX+b
y 1 − y = e W X + b \frac{y}{1-y}=e^{WX+b} 1yy=eWX+b
y = e W X + b − y ∗ e W X + b y=e^{WX+b}-y*e^{WX+b} y=eWX+byeWX+b
y ( 1 + e W X + b ) = e W X + b y(1+e^{WX+b})=e^{WX+b} y(1+eWX+b)=eWX+b
y = e W X + b 1 + e W X + b = 1 1 + e − ( W X + b ) y=\frac{e^{WX+b}}{1+e^{WX+b}}=\frac{1}{1+e^{-(WX+b)}} y=1+eWX+beWX+b=1+e(WX+b)1

机器学习模型训练步骤

在这里插入图片描述

实例代码(略)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

oldmao_2000

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

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

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

打赏作者

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

抵扣说明:

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

余额充值