机器学习课程学习周报十五

机器学习课程学习周报十五

文章目录

  • 机器学习课程学习周报十五
    • 摘要
    • Abstract
    • 一、机器学习部分
      • 1. 统计推断与贝叶斯推断
      • 2. GMM和EM算法补充
      • 3. 马尔可夫链蒙特卡罗法
        • 3.1 蒙特卡罗法
        • 3.2 马尔可夫链
        • 3.3 Diffusion模型中的马尔可夫链
    • 总结

摘要

本周的学习涵盖了统计推断和贝叶斯推断的基本概念,深入探讨了高斯混合模型中的EM算法及其有效性证明。此外,还介绍了马尔可夫链蒙特卡罗方法中的蒙特卡罗法及其应用。最后,通过Diffusion模型中的马尔可夫链,理解了如何实现图像生成的降噪过程。

Abstract

This week’s study covered fundamental concepts of statistical and Bayesian inference, with an in-depth exploration of the EM algorithm in Gaussian Mixture Models and its effectiveness. Additionally, the Monte Carlo method within Markov Chain Monte Carlo techniques was introduced and applied. Finally, the denoising process in image generation was understood through the Markov chain in the Diffusion model.

一、机器学习部分

1. 统计推断与贝叶斯推断

统计推断Statistical Inference)指的是根据观察样本去推断总体特征(即模型/分布的参数),它的方法包括参数估计和假设检验等。

贝叶斯推断Bayesian Inference)是一种基于贝叶斯定理的统计推断方法,它的核心思想是要建立对参数的主观信念(“验”),并要根据观察去完成从初始信念(“先验”)到校正信念(“后验”)的更新。这种主观信念是参数的分布,而推断最终还要从后验分布中选择一个确定的参数值。

例如:如果取分布最高点的对应参数值(通常被称为后验众数),就称为极大后验估计(MAP, Maximum A Posteriori)。

从贝叶斯公式来看:

p ( z ∣ x ) = p ( z ) ⋅ p ( x ∣ z ) p ( x ) p(z|x) = p(z) \cdot \frac{{p(x|z)}}{{p(x)}} p(zx)=p(z)p(x)p(xz)

z z z是要估计的参数(也包括隐变量), p ( z ) p(z) p(z)是先验分布(初始信念), p ( z ∣ x ) p(z|x) p(zx)是后验分布(校正信念)。这种校正是通过在先验上乘了一个校正因子 p ( x ∣ z ) p ( x ) \frac{{p(x|z)}}{{p(x)}} p(x)p(xz)得到的。其中,分子 p ( x ∣ z ) {p(x|z)} p(xz)是条件似然,是校正因子的关键部分,决定着先验到后验的形状变化;而分母 p ( x ) {p(x)} p(x)是边际似然,又叫证据(因为只跟观察 x x x有关),它与我们关心的 z z z无关,因此也常被称为归一化因子(因为就算我们不去管分母,等号左右的函数形状也已经一致,只需要把等号右边归一化到积分为1的概率分布即可。不过实际上,归一化也并不好计算,因为显然我们不知道 x x x的分布,而积分 p ( x ) = ∫ z p ( x ∣ z ) d z p(x) = \int_z {p(x|z)dz} p(x)=zp(xz)dz又是难以计算的,许多方法都试图绕过计算归一化因子这个点,如GAN模型。

2. GMM和EM算法补充

为了证明EM算法的迭代是有效的,先引入凸函数和琴生不等式的预备知识。

在这里插入图片描述

利用GMM中的概率表达式代入EM算法中。

在这里插入图片描述

EM算法的第一步:E-step求期望

在这里插入图片描述

EM算法的第二步:M-step求参数的最大(条件极值,使用拉格朗日乘数法)

在这里插入图片描述

3. 马尔可夫链蒙特卡罗法

3.1 蒙特卡罗法

蒙特卡罗法Monte Carlo method),也称统计模拟方法,是通过从概率模型的随机抽样进行近似数值计算的方法。统计学和机器学习的目的是基于数据对概率分布的特征进行推断,蒙特卡罗法要解决的问题是,假设概率分布的定义已知,通过抽样或者概率分布的随机样本,并通过得到的随机样本对概率分布的特征进行分析。比如,从样本得到经验分布,从而估计总体分布;或者从样本计算出样本均值,从而估计总体期望,所以蒙特卡罗法的核心是随机抽样random sampling)。

一般的蒙特卡罗法有直接抽样法、接受-拒绝抽样法、重要性抽样法等。接受-拒绝抽样法、重要性抽样法适合于概率密度函数复杂(如密度函数含有多个变量,各变量相互不独立,密度函数形式复杂),不能直接抽样的情况。

这里介绍接受-拒绝抽样法accept-reject sampling method),随机变量为 x x x,其概率密度函数为 p ( x ) p(x) p(x)。目的是得到该概率分布的随机样本,以对这个概率分布进行分析。基本思想如下:若 p ( x ) p(x) p(x)不可以直接抽样,找一个可以直接抽样的分布,称为建议分布proposal distribution)。假设 q ( x ) q(x) q(x)是建议分布的概率密度函数,并且有 q ( x ) q(x) q(x) c c c倍一定大于等于 p ( x ) p(x) p(x),其中 c > 0 c > 0 c>0。按照 q ( x ) q(x) q(x)进行抽样,假设得到的结果是 x ∗ {x^*} x,再按照 p ( x ∗ ) c q ( x ∗ ) \frac{{p({x^*})}}{{cq({x^*})}} cq(x)p(x)的比例随机决定是否接受 x ∗ {x^*} x

在这里插入图片描述

直观上,落到 p ( x ∗ ) p({x^*}) p(x)范围内的就接受(蓝色),落到 p ( x ∗ ) p({x^*}) p(x)范围外的就决绝(红色)。接受-拒绝法实际是按照 p ( x ) p(x) p(x)的涵盖面积(或涵盖体积)占 c q ( x ) {cq({x})} cq(x)的涵盖面积(或涵盖体积)的比例进行抽样。

在这里插入图片描述

接受拒绝法的优点是很容易实现,缺点是效率可能不高。如果 p ( x ) p(x) p(x)的涵盖体积占 c q ( x ) {cq({x})} cq(x)的涵盖体积的比例很低,就会导致拒绝的比例很高,抽样的效率很低。并且落入蓝色范围内的样本不是一定会被接受,还要经过随机检验才会被接受。

3.2 马尔可夫链

考虑一个随机变量的序列 X = { X 0 , X 1 , ⋯ , X t , ⋯ } X = \left\{ {{X_0},{X_1}, \cdots ,{X_t}, \cdots } \right\} X={X0,X1,,Xt,},这里 X t {{X_t}} Xt表示时刻 t t t的随机变量, t = 0 , 1 , 2 , ⋯ t = 0,1,2, \cdots t=0,1,2,。每个随机变量 X t {{X_t}} Xt的取值集合相同,称为状态空间,表示为 S S S。随机变量可以是离散的,也可以是连续的。以上随机变量的序列构成随机过程stochastic process)。

假设在时刻0的随机变量 X 0 {{X_0}} X0遵循概率分布 P ( X 0 ) = π 0 P\left( {{X_0}} \right) = {\pi _0} P(X0)=π0,称为初始状态分布。在某个时刻 t ≥ 1 t \ge 1 t1的随机变量 X t {{X_t}} Xt与前一个时刻的随机变量 X t − 1 {X_{t - 1}} Xt1之间有条件分布 P ( X t ∣ X t − 1 ) P({X_t}|{X_{t - 1}}) P(XtXt1),如果 X t {X_t} Xt只依赖于 X t − 1 {X_{t - 1}} Xt1,而不依赖于过去的随机变量 { X 0 , X 1 , ⋯ , X t − 2 } \left\{ {{X_0},{X_1}, \cdots ,{X_{t - 2}}} \right\} {X0,X1,,Xt2},这一性质称为马尔可夫性,即:

P ( X t ∣ X 0 , X 1 , ⋯ , X t − 1 ) = P ( X t ∣ X t − 1 ) , t = 1 , 2 , ⋯ P({X_t}|{X_0},{X_1}, \cdots ,{X_{t - 1}}) = P({X_t}|{X_{t - 1}}),t = 1,2, \cdots P(XtX0,X1,,Xt1)=P(XtXt1),t=1,2,

具有马尔可夫性的随机序列 X = { X 0 , X 1 , ⋯ , X t , ⋯ } X = \left\{ {{X_0},{X_1}, \cdots ,{X_t}, \cdots } \right\} X={X0,X1,,Xt,}称为马尔可夫链Markov chain),或马尔可夫过程Markov process)。条件概率分布 P ( X t ∣ X t − 1 ) P({X_t}|{X_{t - 1}}) P(XtXt1)称为马尔可夫链的转移概率分布。转移概率分布决定了马尔可夫链的特性。

马尔可夫的直观解释是“未来只依赖于现在(假设现在已知),而与过去无关”。这个假设在许多应用中是合理的。

若转移概率分布 P ( X t ∣ X t − 1 ) P({X_t}|{X_{t - 1}}) P(XtXt1) t t t无关,即

P ( X t + s ∣ X t − 1 + s ) = P ( X t ∣ X t − 1 ) , t = 1 , 2 , ⋯ , s = 1 , 2 , ⋯ P({X_{t + s}}|{X_{t - 1 + s}}) = P({X_t}|{X_{t - 1}}),t = 1,2, \cdots ,s = 1,2, \cdots P(Xt+sXt1+s)=P(XtXt1),t=1,2,,s=1,2,

则称该马尔可夫链为时间齐次的马尔可夫链time homogenous Markov chain

以上定义的是一阶马尔可夫链,可以扩展到n阶马尔可夫链,满足n阶马尔可夫性

P ( X t ∣ X 0 , X 1 , ⋯ , X t − 2 , X t − 1 ) = P ( X t ∣ X t − n , ⋯ , X t − 2 , X t − 1 ) P({X_t}|{X_0},{X_1}, \cdots ,{X_{t - 2}},{X_{t - 1}}) = P({X_t}|{X_{t - n}}, \cdots ,{X_{t - 2}},{X_{t - 1}}) P(XtX0,X1,,Xt2,Xt1)=P(XtXtn,,Xt2,Xt1)

3.3 Diffusion模型中的马尔可夫链

对于计算机而言,实现图像生成,一副图像就是一个 H × W × C H \times W \times C H×W×C维的矩阵,如何生成这样的一个矩阵?Diffusion的做法是先随机创建一个噪点图,有没有可能让一幅噪点图变成“米老鼠”呢?显然想要做到这点似乎非常困难。

我们换个思路:现在假如我们已经有一组噪点图 X T {X_T} XT和“米老鼠” X 0 {X_0} X0之间的过渡图片,如下:

在这里插入图片描述

从直觉上来说,将过渡序列中的上一张图片转变成下一张图片,显然要比直接从噪点图 变成 “米老鼠”要容易得多。这个直观的认知其实是Diffusion模型区别于其他生成模型(如GAN)的特别之处。

在这里插入图片描述

由于这个序列当中,每一张图都比上一张图要更清晰(噪点更少),因此我们称这个过程为降噪denoise)。 X t → X t − 1 {X_t} \to {X_{t - 1}} XtXt1的降噪过程,在概率论中可以通过采样实现。为了从 X t {X_{t}} Xt采样得到 X t − 1 {X_{t - 1}} Xt1,我们需要知道条件概率:

q ( x t − 1 ∣ x t ) q({x_{t - 1}}|{x_t}) q(xt1xt)

假如任意 t = 1 , 2 , ⋯ , T t = 1,2, \cdots ,T t=1,2,,T q ( x t − 1 ∣ x t ) q({x_{t - 1}}|{x_t}) q(xt1xt)都是已知的。我们记号 ∼ \sim 表示“依概率采样”,那么将噪点图 X T {X_T} XT转变为“米老鼠” X 0 {X_0} X0的整个采样过程,可以形式化表示为,给定噪点图 X T {X_T} XT

X T − 1 ∼ q ( x T − 1 ∣ X T ) ⋯ X 2 ∼ q ( x 2 ∣ X 3 ) , X 1 ∼ q ( x 1 ∣ X 2 ) , X 0 ∼ q ( x 0 ∣ X 1 ) {X_{T - 1}} \sim q({x_{T - 1}}|{X_T}) \cdots {X_2} \sim q({x_2}|{X_3}),{X_1} \sim q({x_1}|{X_2}),{X_0} \sim q({x_0}|{X_1}) XT1q(xT1XT)X2q(x2X3),X1q(x1X2),X0q(x0X1)

整个采样过程,构成了一个马尔可夫链,假如我们有了 q ( x t − 1 ∣ x t ) q({x_{t - 1}}|{x_t}) q(xt1xt)这个转移概率,就能按步骤将噪点图转化为“米老鼠”,所以问题是如何求出 q ( x t − 1 ∣ x t ) q({x_{t - 1}}|{x_t}) q(xt1xt)这个函数?答案就是机器学习。

机器学习的训练数据是什么?虽然“降噪”似乎很难,但是添加噪点却挺容易。比如给定一张原始图片 X 0 {X_0} X0我们总可以通过朝原始图增加噪点生成图片 X 1 {X_1} X1,然后进一步增加噪点,直到图片变成一幅完全随机的噪点图 X T {X_{T}} XT。这个过程也是通过随机过程的采样来实现,我们记这个随机过程对应的“转移概率”是 q ( x t ∣ x t − 1 ) q({x_t}|{x_{t - 1}}) q(xtxt1),那么整个添加噪点的过程就可以形式化表示为,给定米老鼠图 X 0 {X_0} X0

X 1 ∼ q ( x 1 ∣ X 0 ) , X 2 ∼ q ( x 2 ∣ X 1 ) , X 3 ∼ q ( x 3 ∣ X 2 ) , ⋯ , X T ∼ q ( x T ∣ X T − 1 ) {X_1} \sim q({x_1}|{X_0}),{X_2} \sim q({x_2}|{X_1}),{X_3} \sim q({x_3}|{X_2}), \cdots ,{X_T} \sim q({x_T}|{X_{T - 1}}) X1q(x1X0),X2q(x2X1),X3q(x3X2),,XTq(xTXT1)

给定一个图片数据集,我们对其中的任一图片进行一次这种采样操作,我们就得到了一组连续过渡的图片序列,也就是一条训练数据。

总结

本周完善了上周学习的EM算法,并且开始学习马尔可夫链蒙特卡罗法,马尔可夫链在Diffusion模型中有特别重要的应用。接来的一周将从理论继续学习马尔可夫链蒙特卡罗法,并结合着实际应用中的Diffusion模型进行参照。

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

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

相关文章

C语言 | Leetcode C语言题解之第468题验证IP地址

题目&#xff1a; 题解&#xff1a; char * validIPAddress(char * queryIP) {int len strlen(queryIP);if (strchr(queryIP, .)) {// IPv4int last -1;for (int i 0; i < 4; i) {int cur -1;if (i 3) {cur len;} else {char * p strchr(queryIP last 1, .);if (p…

演讲干货整理:泛能网能碳产业智能平台基于 TDengine 的升级之路

在 7 月 26 日的 TDengine 用户大会上&#xff0c;新奥数能 / 物联和数据技术召集人袁文科进行了题为《基于新一代时序数据库 TDengine 助力泛能网能碳产业智能平台底座升级》的主题演讲。他从泛能网能碳产业智能平台的业务及架构痛点出发&#xff0c;详细分享了在数据库选型、…

怎么选择合适的数据恢复软件?适用于 Windows 的数据恢复软件对比

针对 Windows 的领先数据恢复软件的全面回顾&#xff1a; 丢失重要数据对任何 Windows 用户来说都是一场噩梦。从意外删除到系统崩溃&#xff0c;数据丢失是一个非常普遍的问题。值得庆幸的是&#xff0c;有强大的数据恢复工具可以帮助找回丢失的文件。这篇评论深入探讨了适用于…

编译链接的过程发生了什么?

一&#xff1a;程序的翻译环境和执行环境 在 ANSI C 的任何一种实现中&#xff0c;存在两个不同的环境。 第 1 种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令。 第 2 种是执行环境&#xff0c;它用于实际执行代码 也就是说&#xff1a;↓ 1&#xff1…

阿里140滑块-滑块验证码逆向分析思路学习

一、声明&#xff01; 原创文章&#xff0c;请勿转载&#xff01; 本文内容仅限于安全研究&#xff0c;不公开具体源码。维护网络安全&#xff0c;人人有责。 文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;均已做脱敏处…

九大排序之交换排序

1.前言 所谓交换&#xff0c;就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置&#xff0c;交换排序的特点是&#xff1a;将键值较大的记录向序列的尾部移动&#xff0c;键值较小的记录向序列的前部移动。 重点&#xff1a; 冒泡排序和快速排序 2.冒泡排…

OpenCV库模块解析

1.OpenCV库每个模块解析 2.OpenCV的常用函数 它为计算机视觉应用程序提供了一个通用的基础设施&#xff0c;并加速了在商业产品中使用机器感知。作为BSD许可的产品&#xff0c;OpenCV使企业可以很容易地利用和修改代码。该库拥有超过2500个优化算法&#xff0c;其中包括经典和最…

网站优化门槛低了还是高了?

自从2015年刚接触网站时&#xff0c;从一无所知到现在无人指导&#xff0c;一直跌跌撞撞走过来&#xff0c;当年花了1500元找了广东一个网友用织梦CMS做了一个门户网站&#xff0c;记得那时一星期没下楼&#xff0c;把网站折腾的千疮百孔&#xff0c;而终逐步熟悉网站建设与搜索…

【在Linux世界中追寻伟大的One Piece】DNS与ICMP

目录 1 -> DNS(Domain Name System) 1.1 -> DNS背景 2 -> 域名简介 2.1 -> 域名解析过程 3 -> 使用dig工具分析DNS 4 -> ICMP协议 4.1 -> ICMP功能 4.2 -> ICMP报文格式 4.3 -> Ping命令 4.4 -> traceroute命令 1 -> DNS(Domain Na…

webGL进阶(一)多重纹理效果

效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&q…

【Unity踩坑】Unity导出的UWP项目编译失败

在Unity中导出了UWP平台的项目后&#xff08;Xaml或D3D&#xff09;&#xff0c;使用Visual Studio编译时发生错误&#xff1a; Error: Unity.IL2CPP.Building.BuilderFailedException: Lump_libil2cpp_vm.cpp 查找后发现是Visual Studio 与Unity兼容的问题 原贴&#xff1a;…

黑神话:仙童,数据库自动反射魔法棒

黑神话&#xff1a;仙童&#xff0c;数据库自动反射魔法棒 Golang 通用代码生成器仙童发布了最新版本电音仙女尝鲜版十一及其介绍视频&#xff0c;视频请见&#xff1a;https://www.bilibili.com/video/BV1ET4wecEBk/ 此视频介绍了使用最新版的仙童代码生成器&#xff0c;将 …

C++-容器适配器- stack、queue、priority_queue和仿函数

目录 1.什么是适配器 2.deque 1.简单了解结构 2.deque的缺陷 3.为什么选择deque作为stack和queue的底层默认容器 3.stack&#xff08;栈&#xff09; 4.queue&#xff08;队列&#xff09; 5.仿函数 6.priority_queue&#xff08;优先级队列&#xff09;&#xff08;堆…

Linux C接口编程入门之文件I/O

一切皆文件 "Linux一切皆文件"是Linux操作系统中的一个重要理念和设计原则。在Linux系统中&#xff0c;几乎所有的设备、资源都以文件的形式进行访问和操作。简化了操作系统的设计和管理&#xff0c;提供了一种统一的抽象模型&#xff0c;使得应用程序可以使用相同的…

docker简述

1.安装dockers&#xff0c;配置docker软件仓库 安装&#xff0c;可能需要开代理&#xff0c;这里我提前使用了下好的包安装 启动docker systemctl enable --now docker查看是否安装成功 2.简单命令 拉取镜像&#xff0c;也可以提前下载使用以下命令上传 docker load -i imag…

【gRPC】1—gRPC是什么

gRPC是什么 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; &#x1f4d6;RPC专栏&#xff1a;https://b…

脉冲下跳沿提取电路

本例中的电路可将负脉冲转换为正脉冲。尽管这个任务看似简单&#xff0c;但负脉冲的幅度为-5V~-2V。按照不同应用要求&#xff0c;正脉冲也需要不同的脉冲宽度&#xff0c;而负脉冲是梯形的。脉冲必须先经过一个长距离的传输线才能到达某个控制设备。有多个电路可以解决这一问题…

jQuery——解决快速点击翻页的bug

本文分享到此结束&#xff0c;欢迎大家评论区相互讨论学习&#xff0c;下一篇继续分享jQuery中内置动画的学习。

谷歌AI大模型Gemini API快速入门及LangChain调用视频教程

1. 谷歌Gemini API KEY获取及AI Studio使用 要使用谷歌Gemini API&#xff0c;首先需要获取API密钥。以下是获取API密钥的步骤&#xff1a; 访问Google AI Studio&#xff1a; 打开浏览器&#xff0c;访问Google AI Studio。使用Google账号登录&#xff0c;若没有账号&#xf…

大数据ETL数据提取转换和加载处理

什么是 ETL&#xff1f; 提取转换加载&#xff08;英语&#xff1a;Extract, transform, load&#xff0c;简称ETL&#xff09;&#xff0c;用来描述将资料从来源端经过抽取、转置、加载至目的端的过程。ETL一词较常用在数据仓库&#xff0c;但其对象并不限于数据仓库。 ETL&…