【概率方法】朗之万动力学 Langevin Dynamics

目前我们了解到采样方法有很多种,按照从朴素到高效的演变顺序大致是

  • 反函数采样
  • 蒙特卡洛模拟(求统计量)
  • 接受-拒绝采样
  • MCMC
    • HM 算法
    • Gibbs 采样

接上一篇文章,Gibbs 采样能在有条件分布 p ( x d ′ ∣ x − d ) p(\mathbf{x}'_{d}|\mathbf{x}_{-d}) p(xdxd) 的情况下对高维分布进行采样,并且接受率为1,有很高的效率,但是 Gibbs 采样也不是完美的。很多时候我们如果想要采样一个 p ( x ) p(\mathbf{x}) p(x) 但是写不出条件分布或者边缘分布,怎么办呢?(比如说 x \mathbf{x} x 是一个图片, p ( x ) p(\mathbf{x}) p(x) 是一个 NN,那么这个概率显然是没法求的)

Langevin Dynamics

朗之万动力学的想法和 HM 有几分神似,先任意选择一个 x 0 \mathbf{x}_0 x0 ,然后重复:

  1. x t \mathbf{x}_t xt 的梯度 ∇ p ( x t ) \nabla p(\mathbf{x}_t) p(xt)
  2. 带噪声梯度上升:如果 ϵ \epsilon ϵ视作学习率,梯度上升的过程中加 2 ϵ \sqrt{2\epsilon} 2ϵ 倍的正态分布噪声,更新样本 x t + 1 = x t + ϵ ∇ p ( x t ) + 2 ϵ z i ,       z i ∼ N ( 0 , 1 ) \mathbf{x}_{t+1} = \mathbf{x}_{t} +\epsilon \nabla p(\mathbf{x}_t) + \sqrt{2\epsilon}z_i, \ \ \ \ \ z_i \sim \mathcal{N}(0,1) xt+1=xt+ϵp(xt)+2ϵ zi,     ziN(0,1)
    在这里插入图片描述

直觉

这样做的直觉是,梯度上升项会让样本集中在分布的峰上,而噪声项可以让样本在峰周围游走。
对比HM:HM算法是,如果跳跃的方向是往 p ( x ) p(x) p(x) 的高概率方向跳跃的,那么就 100 % 100\% 100% 概率接受;反之,有概率接受,有概率不接受。实际上也是在促使样本往高概率峰移动,但是保留样本从峰上下来,在周边游走的可能性。

请添加图片描述

改进——MALA

如果简单地使用朗之万采样,会有问题:

  • 对于梯度下降的经典峡谷地形,朗之万采样也会有同样的问题,就是一直在山谷两侧震荡,不往中间走。
  • ϵ \epsilon ϵ 不好调参,低维(<=2)的时候还能从视觉上看分布的采样效果,但是高维的时候基本上只能看一些统计指标
  • 当分布有孤立的“岛屿”的时候,从初始点开始可能难以跳跃到别的岛屿。

请添加图片描述

请添加图片描述

MALA (Metropolis adjusted Langevin algorithm)就不仅仅使用 ∇ p ( x ) \nabla p(\mathbf{x}) p(x) 进行朗之万的梯度上升,还缝合整合了 MH 算法,用 p ( x ) p(\mathbf{x}) p(x) 进行采样,这样只要时间足够长总是收敛到正确的分布,无论 ϵ \epsilon ϵ 是大还是小

MALA 的 demo 页面

不仅利用梯度,还利用概率值,来计算HM接受率alpha

退火朗之万

还可以继续改进,给朗之万动力学的 ϵ \epsilon ϵ 套一个退火,在开始的时候学习率很大,来学习大致的峰的形状,然后学习率逐渐变小,来学习分布的具体细节。这样选择 ϵ \epsilon ϵ 的问题转化成选择退火的超参的问题,从而可以跳出孤岛,和狭窄的峡谷地形
ϵ = ϵ 0 ( β + t ) γ \epsilon=\epsilon_0 (\beta + t)^{\gamma} ϵ=ϵ0(β+t)γ

请添加图片描述

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

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

相关文章

头歌-Python 基础

第1关&#xff1a;建模与仿真 1、 建模过程&#xff0c;通常也称为数学优化建模(Mathematical Optimization Modeling)&#xff0c;不同之处在于它可以确定特定场景的特定的、最优化或最佳的结果。这被称为诊断一个结果&#xff0c;因此命名为▁▁▁。 填空1答案&#xff1a;决…

【数据挖掘】国科大苏桂平老师数据库新技术课程作业 —— 第四次作业

云数据库研究 云计算与云数据库背景 云计算&#xff08;cloud computing&#xff09;是 IT 技术发展的最新趋势&#xff0c;正受到业界和学术界的广泛关注。云计算是在分布式处理、并行处理和网格计算等技术的基础上发展起来的&#xff0c;是一种新兴的共享基础架构的方法。它…

大数据技术7:基于StarRocks统一OALP实时数仓

前言&#xff1a; 大家对StarRocks 的了解可能不及 ClickHouse或者是远不及 ClickHouse 。但是大家可能听说过 Doris &#xff0c;而 StarRocks 实际上原名叫做 Doris DB &#xff0c;他相当于是一个加强版的也就是一个 Doris ,也就是说 Doris 所有的功能 StarRocks 都是有的&a…

this.$emit(‘update:isVisible‘, false)作用

这个写是不是很新颖&#xff0c;传父组件传值&#xff01;这是什么鬼。。。 假设你有以下逻辑业务。在A页面弹出一个组件B&#xff0c;A组件里面使用B组件&#xff0c;是否展示B组件你使用的是baselineShow变量控制&#xff01; <BaselineData :isVisible.sync"basel…

SQL命令---修改字段的排列位置

介绍 使用sql语句表字段的排列顺序。 命令 alter table 表名 modify 字段名1 数据类型 first|after 字段名2;例子 将a表中的age字段改为表的第一个字段。 alter table a modify age int(12) first;下面是执行命令后的表结构&#xff1a; 将a表中的age字段放到name字段之…

ELK简单介绍二

学习目标 能够部署kibana并连接elasticsearch集群能够通过kibana查看elasticsearch索引信息知道用filebeat收集日志相对于logstash的优点能够安装filebeat能够使用filebeat收集日志并传输给logstash kibana kibana介绍 Kibana是一个开源的可视化平台,可以为ElasticSearch集群…

linux 15day apache apache服务安装 httpd服务器 安装虚拟主机系统 一个主机 多个域名如何绑定

目录 一、apache安装二、访问控制总结修改默认网站发布目录 三、虚拟主机 一、apache安装 [rootqfedu.com ~]# systemctl stop firewalld [rootqfedu.com ~]# systemctl disable firewalld [rootqfedu.com ~]# setenforce 0 [rootqfedu.com ~]# yum install -y httpd [rootqfe…

用23种设计模式打造一个cocos creator的游戏框架----(十二)状态模式

1、模式标准 模式名称&#xff1a;状态模式 模式分类&#xff1a;行为型 模式意图&#xff1a;允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 结构图&#xff1a; 适用于&#xff1a; 1、一个对象的行为决定于它的状态&#xff0c;并且它必须…

记录一次云原生线上服务数据迁移全过程

文章目录 背景迁移方案调研迁移过程服务监控脚本定时任务暂停本地副本服务启动&#xff0c;在线服务下线MySQL 数据迁移Mongo 数据迁移切换新数据库 ip 本地服务启动数据库连接验证服务打包部署服务重启前端恢复正常监控脚本定时任务启动旧服务器器容器关闭 迁移总结 背景 校园…

代码随想录二刷 |二叉树 |101. 对称二叉树

代码随想录二刷 &#xff5c;二叉树 &#xff5c;101. 对称二叉树 题目描述解题思路 & 代码实现递归法迭代法使用队列使用栈 题目描述 101.对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,…

adb unauthorized 踩坑记录

给Realme X7 Pro 安装Root后&#xff0c;发现adb连接设备呈现unauthorized 状态&#xff1a; 在Google以后&#xff0c;尝试了很多方案&#xff0c;均无效&#xff0c;尝试的方案如下&#xff1a; 重启手机&#xff0c;电脑。不行撤销调试授权&#xff0c;开关usb调试&#xf…

持续集成交付CICD:Jenkins配置Nexus制品发布

目录 一、实验 1.Jenkins配置Nexus制品发布 一、实验 1.Jenkins配置Nexus制品发布 &#xff08;1&#xff09;策略 发布其实就是下载制品&#xff0c;然后将制品发送到目标主机&#xff0c;最后通过脚本或者指令启动程序。 &#xff08;2&#xff09;安装Maven Artifact …

基于JavaWeb+SSM+Vue马拉松报名系统微信小程序的设计和实现

基于JavaWebSSMVue马拉松报名系统微信小程序的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.…

SQL命令---添加新字段

介绍 使用sql语句为表添加新字段。 命令 alter table 表名 add 新字段名 数据类型;例子 向a表中添加name字段&#xff0c;类型为varchar(255)。 alter table a add name varchar(255);下面是执行添加有的表结构&#xff1a;

react之项目打包,本地预览,路由懒加载,打包体积分析以及如何配置CDN

react之项目打包,本地预览,路由懒加载,打包体积分析以及如何配置CDN 一、项目打包二、项目本地预览三、路由懒加载四、打包体积分析五、配置CDN 一、项目打包 执行命令 npm run build根目录下生成的build文件夹 及时打包后的文件 二、项目本地预览 1.全局安装本地服务包 npm…

内存分配器

实现分配器需要考虑的问题 空闲块的组织方式&#xff1a;如何记录现有的空闲块空闲块的选择&#xff1a;如何选择一个合适的空闲块空闲块的分割&#xff1a;选择了一个合适的空闲块后如何处理空闲块内部的剩余部分空闲块的合并&#xff1a;如何处理一个刚刚被释放的块&#xf…

Python sqlalchemy使用

基本结构 #!/usr/bin/python3 # -*- coding:utf-8 -*- """ author: JHC file: base_db.py time: 2023/6/19 21:34 desc: """ from sqlalchemy import create_engine,text from sqlalchemy.orm import sessionmaker,scoped_session from contex…

计算机服务器中了Mallox勒索病毒怎么解密,Mallox勒索病毒解密步骤

计算机网络技术的不断发展与应用&#xff0c;为企业的生产运营提供了坚实的基础&#xff0c;大大提高了企业的生产与工作效率&#xff0c;但随之而来的网络安全威胁也在不断增加。在本月&#xff0c;云天数据恢复中心接到了很多企业的求助&#xff0c;企业的计算机服务器遭到了…

Nacos源码解读12——Nacos中长连接的实现

短连接 VS 长连接 什么是短连接 客户端和服务器每进行一次HTTP操作&#xff0c;就建立一次连接&#xff0c;任务结束就中断连接。 长连接 客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭&#xff0c;客户端再次访问这个服务器时&#xff0c;会继续使用这一条已经建立…

数理统计基础:参数估计与假设检验

在学习机器学习的过程中&#xff0c;我充分感受到概率与统计知识的重要性&#xff0c;熟悉相关概念思想对理解各种人工智能算法非常有意义&#xff0c;从而做到知其所以然。因此打算写这篇笔记&#xff0c;先好好梳理一下参数估计与假设检验的相关内容。 1 总体梳理 先从整体结…
最新文章