Pytorch Intro

激活函数与Loss

包括MSE和交叉熵

MSE

不需要开平方
函数F.mse_loss(torch.ones(1),x*w) : 第一个是预测的值,第二个是标签的值

函数 torch.autograd.grad(mse,[w]) : 接收两个参数,第一个是目标函数y,在这里是mse,第二个参数是目标函数的自变量,在这里是w

下面这个例子中y = 1
在这里插入图片描述
必须要对w信息进行更新,告诉pytorch w需要求导
也可以在初始化时 就是建立需要求导的信息 如

w = torch.full([1],2,requires_grad = True)  # 告诉w需要求导信息

mse_loss()会建立动态图
mse.backward()会自动求解所有能求解的梯度值

这里补充一些范数的基本概念

softmax 激活函数 soft version of max

在这里插入图片描述
所有概率值之和为1

单层感知机的推导

在这里插入图片描述

梯度更新的过程

在经过复杂的公式推导之后,直接看推导结果。从结果感性的理解梯度更新的过程。
如下面两图所示,当进行一次运算之后,已知的量包括:所有节点的输出,所有权值w在本轮运算的值
在经过之前的公式推导之后可以知道,这一层的梯度信息是可以通过这一层的输出与下一层的梯度信息相乘得到。而输出层的梯度信息是根据输出结果O与标签值t得到的。那么既然最后一层的梯度信息已知,每一层的输出也已知,就可以从后往前一步一步的推导得到每一层的梯度信息,从而更新本轮的所有参数的梯度信息。
在这里插入图片描述
在这里插入图片描述

一个例子

如下图:在这里optimizer的操作就是实现使用求出的梯度信息来更新变量 在这里插入图片描述
backwards方法更新梯度信息
后面再使用step操作

熵 交叉熵

熵表示的就是混乱程度 混乱程度越高 熵越高 所蕴含的可能及信息就越多
对于01分布 熵为0
交叉熵可以拆分为熵和KL散度,KL散度就是描述两个分布的离散程度。两份高斯分布完全重合,其KL散度就为0,因为完全不离散。
如果使用one-hot编码,那么交叉熵中的熵就为0,求交叉熵就等于求两个分布的KL散度。
在这里插入图片描述
二分类的优化目标
在这里插入图片描述
总体的计算流程
在这里插入图片描述
灰色部分直接打包成模块使用 就是corss_entropy = softmax + log + nll_loss
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值