小白学Pytorch系列- -torch.distributions API Distributions (1)

news/2024/5/21 22:27:47/文章来源:https://blog.csdn.net/weixin_42486623/article/details/130083487

小白学Pytorch系列- -torch.distributions API Distributions (1)

分布包包含可参数化的概率分布和抽样函数。这允许构造用于优化的随机计算图和随机梯度估计器。这个包通常遵循TensorFlow分发包的设计。

不可能通过随机样本直接反向传播。但是,有两种主要方法可以创建可以反向传播的代理函数。这些是得分函数估计器/似然比估计器/REINFORCE 和路径导数估计器。REINFORCE 通常被视为强化学习中策略梯度方法的基础,而路径导数估计器通常出现在变分自动编码器的重新参数化技巧中。而得分函数只需要样本的值f(x)f(x)f(x), 路径导数需要导数 F‘(x)F^‘(x)F(x). 下一节将在强化学习示例中讨论这两者。有关更多详细信息,请参阅 使用随机计算图进行梯度估计。

评分功能

当概率密度函数关于其参数可微时,我们只需要sample()log_prob()实现 REINFORCE:
Δθ=αr∂log⁡p(a∣πθ(s))∂θ\Delta \theta=\alpha r \frac{\partial \log p\left(a \mid \pi^\theta(s)\right)}{\partial \theta}Δθ=αrθlogp(aπθ(s))

其中θθθ是参数,ααα是学习率,rrr是奖励,p(a∣πθ(s))p(a|πθ(s))p(aπθ(s))是在给定策略πθ的情况下在状态sss中采取行动aaa的概率。

在实践中,我们会从网络的输出中抽取一个动作,将这个动作应用到一个环境中,然后使用log_probb来构造一个等效的损失函数。请注意,我们使用负数是因为优化器使用梯度下降,而上面的规则假设梯度上升。使用分类策略,实现REINFORCE的代码如下所示

probs = policy_network(state)
# Note that this is equivalent to what used to be called multinomial
m = Categorical(probs)
action = m.sample()
next_state, reward = env.step(action)
loss = -m.log_prob(action) * reward
loss.backward()

路径导数

实现这些随机/策略梯度的另一种方法是使用从rsample()方法中使用重新聚集技巧,其中参数化的随机变量可以通过无参数无参数随机变量的参数化确定性函数构造。因此,重新聚集样品变得可区分。实施路径衍生物的代码如下:

params = policy_network(state)
m = Normal(*params)
# Any distribution with .has_rsample == True could work based on the application
action = m.rsample()
next_state, reward = env.step(action)  # Assuming that reward is differentiable
loss = -reward
loss.backward()

分布

分布是概率分布的抽象基类。

ExponentialFamily

Bernoulli

Beta

Binomial

Categorical

Cauchy

Chi2

ContinuousBernoulli

Dirichlet

Exponential

FisherSnedecor

Gamma

Geometric

Gumbel

HalfCauchy

HalfNormal

Independent

Kumaraswamy

LKJCholesky

Laplace

LogNormal

LowRankMultivariateNormal

MixtureSameFamily

Multinomial

MultivariateNormal

NegativeBinomial

Normal

OneHotCategorical

Pareto

Poisson

RelaxedBernoulli

LogitRelaxedBernoulli

RelaxedOneHotCategorical

StudentT

TransformedDistribution

基于一个基础分布和一系列分布变换构建一个新的分布。

  • arg_constraints
  • cdf(value) 通过反转变换和计算基本分布的分数来计算累积分布函数。
  • expand(batch_shape, _instance=None)
  • icdf(value) 使用变换和计算基本分布的分数计算逆累积分布函数。
  • log_prob(value) 通过反变换对样本进行评分,并使用基本分布的评分和对数abs det雅可比矩阵的评分计算评分。
  • rsample(sample_shape=torch.Size([])) 如果分布参数是批处理的,则生成一个样本形状的重新参数化样本或重新参数化样本的样本形状的批处理。首先从基本分布中采样,并对列表中的每个转换应用transform()。
  • sample(sample_shape=torch.Size([])) 如果分布参数是批量的,则生成一个样本形状的样本或样本形状的样本批次。首先从基本分布中采样,并对列表中的每个转换应用transform()。

Uniform

VonMises

Weibull

Wishart

KL Divergence

Transforms

Constraints

Constraint Registry

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_96735.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tomcat中出现RFC7230和RFC3986问题解析

问题截图 问题分析 出现上述问题,是因为各版本tomcat中对特殊字符和请求路径中携带中文参数而产生的错误提示。 解决办法 1、调整tomcat版本 tomcat 7.0.76之前的版本不会出现类似问题 2、tomcat9之前,修改tomcat目录底下的/conf/catalina.properti…

chapter-5 数据库设计

以下课程来源于MOOC学习—原课程请见:数据库原理与应用 考研复习 引言 设计的时候: 我们为什么不能设计成R(学号,课程号,姓名,所咋系,系主任,成绩)? 因为存在数据冗余…

C++算法初级7——二分查找

C算法初级7——二分查找 文章目录C算法初级7——二分查找在升序的数组上进行二分查找总结应用范围应用二分查找的原理:每次排除掉一半答案,使可能的答案区间快速缩小。 二分查找的时间复杂度:O(log n),因为每次询问会使可行区间的…

appium+python自动化测试启动app

一、部署环境 1、依次下载安装以下工具,并配置环境变量: android sdk Nodejs appium appium-doctor Appium-Python-Client pycharm64 ps:安装包下载和配置环境变量的操作步骤跟着网上各路大神的帖子一步一步做就好了,没啥难度 二、连…

Machine Learning-Ex4(吴恩达课后习题)Neural Networks Learning

目录 1. Neural Networks 1.1 Visualizing the data 1.2 Model representation 1.3 Feedforward and cost function 1.4 Regularized cost function 2. Backpropagation 2.1 Sigmoid gradient 2.2 Random initialization 2.3 Backpropagation 2.4 Gradient Checking…

【数据库原理 • 四】数据库设计和规范化理论

前言 数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进,最常用的技术。 当前…

linux之jdk1.8环境安装与配置和Maven安装与配置

文章目录一、jdk1.8环境安装1、官网下载&#xff1a;<https://www.oracle.com/java/technologies/downloads/#java8>2、在usr文件夹下新建一个java文件夹3、解压完成后&#xff0c;将文件jdk文件传入到java目录下二、配置环境&#xff08;重点&#xff09;1、按 i 进行编…

蓝牙技术|苹果获空间音频新专利,AirPods可动态调整声学输出

美国商标和专利局&#xff08;USPTO&#xff09;公示的清单显示&#xff0c;苹果在近日获得了一项名为“测定虚拟聆听环境”的新专利。据悉&#xff0c;该技术可以改善用户的聆听体验&#xff0c;增强空间音频的沉浸感&#xff0c;未来有望应用在AirPods上。 这项专利技术可以…

代码随想录_二叉树_二叉树的层序遍历十道题

leetcode102.二叉树的程序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&…

文心一言对于宣传文案理解

前言 前段时间对于文心一言开放部分内测邀请&#xff0c;有幸获得邀请内测权限&#xff01;抱着试一试的态度对其进行了使用&#xff0c;结果还是比较满意的。我们来看一下我所说的满意是否能够达到你的要求&#xff01;&#xff01;&#xff01; 使用逻辑 文心一言的使用还…

FPGA lattice 深力科LCMXO3LF-4300C-6BG256I 可实现高效、灵活和安全的工业应用开发 低功耗FPGA解决方案详情讲解

FPGA lattice 深力科LCMXO3LF-4300C-6BG256I 可实现高效、灵活和安全的工业应用开发 低功耗FPGA解决方案详情讲解 超低密度FPGA 是最新的立即启用、非挥发性、小型覆盖区 FPGA&#xff0c;采用先进的封装技术&#xff0c;能让每个元件达到最低成本。此系列采用最新的小型封装&…

android12 displayArea学习

一&#xff1a;数据结构分析 1&#xff1a;android 12 WindowContainer 的类继承关系如下 下图为 WindowContainer 简要的对象图。 下图是 Aosp默认的display层次结构对象图。 Aosp定义的feature有如下 FEATURE_ROOT 0; FEATURE_DEFAULT_TASK_CONTAINER 1; FEATURE_WINDOW_…

正版软件 Directory Opus 12 Pro Windows 平台上的资源管理器,定是功能完全、可定制化程度高的那款。

Directory Opus 是一款 Windows 平台上的资源管理器&#xff0c;定是功能最完全、可定制化程度最高的那款。你可以通过它完成几乎所有操作&#xff0c;包括查看图片元信息、预览图片、阅读文本文件内容、批量重命名、操作压缩文件以及 FTP 同步请求等。 Directory Opus 是一款由…

使用大华惠智双目半球网络摄像机DH-IPC-HD4140X-E2获取人流量统计数据

记录一下使用Java的SpringBoot大华SDK在智慧公厕项目中使大华惠智双目半球网络摄像机DH-IPC-HD4140X-E2获取人流量统计数据 首先根据说明书登录摄像头&#xff0c;一般摄像头都有自己的账号和密码(可能是admin admin 也可能是admin 888888 还有可能是admin 12345)&#xff0c;…

DriveGPT、车企订单背后,为什么毫末每年都能搞出新东西?

作者 | 祥威 编辑 | 德新 4月11日&#xff0c;毫末智行正式发布自动驾驶生成式大模型 DriveGPT&#xff0c;中文名 雪湖海若&#xff0c;可以提升自动驾驶认知能力&#xff0c;最终提升规控效率。 雪湖海若的核心&#xff0c;是将各种驾驶场景作为Token输入到模型中&#xff…

零基础搭建私人影音媒体平台【远程访问Jellyfin播放器】

文章目录1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置4.公网访问测试5. 结语1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&#xf…

react 1:jsx-组件-状态-事件

主要是为了解决什么问题 &#xff1f; 构建那些数据会随时间改变的大型应用 React 特点 虚拟 DOM 组件系统 单向数据流 jsx语法 jsx语法 组件创建方式 两种&#xff1a;class类组件&#xff0c;函数方式创建 代码快捷生成插件&#xff1a;&#xff1a;&#xff1a;rc…

算法 || DFS(深度优先搜索) BFS(广度优先搜索)

&#xff11;、基本概念 dfs全称为Depth First Search,即深度优先搜索。它的思想是沿着每一条可能的路径一个节点一个节点地往下搜索,搜到了路径的到终点再回溯,一直到所有路径搜索完为止。 bfsbfs全称为Breath First Search,即广度(宽度)优先搜索。它的思想是将每一层的结搜…

浅谈 如果做微服务了 这个模块怎么去划分?

如果做微服务了 这个模块怎么去划分&#xff1f; 还是高内聚 低耦合的一个思想吧 &#xff0c;单一职责的设计原则&#xff0c;也是一个封装的思想吧&#xff0c; 业务维度&#xff1a; ​ 按照业务的关联程度来决定&#xff0c;关联比较密切的业务适合拆分为一个微服务&…