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

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

文章目录

  • 机器学习课程学习周报十五
    • 摘要
    • 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…

R语言绘制折线图

折线图是实用的数据可视化工具&#xff0c;通过连接数据点的线段展示数据随时间或变量的变化趋势。在经济、科学、销售及天气预报等领域广泛应用&#xff0c;为决策和分析提供依据。它能清晰呈现经济数据动态、助力科学研究、反映企业销售情况、预告天气变化&#xff0c;以简洁…

std::list

std::list是C标准库中的一个序列容器&#xff0c;它提供了双向链表的功能。std::list允许在序列的任何位置高效地插入和删除元素&#xff0c;而不会引起其他元素的移动&#xff0c;这使得std::list在需要频繁插入和删除操作的场景中非常有用。 std::list的特性&#xff1a; 双…

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

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

使用Go语言的gorm框架查询数据库并分页导出到Excel实例(包含源代码,可以直接运行)

文章目录 基本配置配置文件管理命令行工具: Cobra快速入门基本用法生成mock数据SQL准备gorm自动生成结构体代码生成mock数据查询数据导出Excel使用 excelize实现思路完整代码参考入口文件效果演示分页导出多个Excel文件合并为一个完整的Excel文件完整代码基本配置 配置文件管理…

Javascript 普通非async函数调用async函数

假设我们有一个异步函数 async function asyncFunction() {console.log("开始执行异步函数");await new Promise(resolve > setTimeout(resolve, 1000)); // 模拟异步操作console.log("异步函数执行完毕"); } 我们在调用这个异步函数时&#xff0c;比…

【差分数组】个人练习-Leetcode-3229. Minimum Operations to Make Array Equal to Target

题目链接&#xff1a;https://leetcode.cn/problems/minimum-operations-to-make-array-equal-to-target/description/ 题目大意&#xff1a;给出两个数组nums[]和target[]&#xff0c;可以对nums[]数组进行这样两种操作 给某个区间内的子列全加1给某个区间内的子列全减1 求…

C语言从头学66—学习头文件 <stdio.h>(二)

关于可变参数&#xff0c;我们曾经在《C语言从头学27》中接触过&#xff0c;下面学习能够接收可变参数作为 参数的几个函数。 一、printf函数的能够接收可变参数的变体函数&#xff1a; 1、函数vprintf() 功能&#xff1a;按照给定格式&#xff0c;将可变参数中的内容输…

Java 用属性名称字符串获取属性对象

一、场景分析 java 中没有 python 一样的方法&#xff0c;通过属性名称直接获取属性值。 getattr(obj, name[, default]) : 访问对象的属性。 getattr(student, name) java 中有 Map, 可以实现类似功能&#xff0c;但是如果我们现在有一个对象&#xff0c;要通过Map的方式获…

九大排序之交换排序

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

React Fiber 详解

why Fiber React Fiber的引入主要基于以下几个方面的考虑&#xff1a; 性能提升&#xff1a; 传统React的更新过程是同步的&#xff0c;一旦开始更新就会阻塞浏览器的主线程&#xff0c;直到整个组件树更新完成。这在处理大型组件树或高频用户交互时&#xff0c;可能会导致界…

数组合并与排序练习题

题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0c;合并后数…

OpenCV库模块解析

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

量子概率云:微观世界中的不确定性与概率分布

量子概率云&#xff1a;微观世界中的不确定性与概率分布 摘要&#xff1a; 量子力学的核心之一是概率描述的引入&#xff0c;即粒子的位置和动量不能同时确定&#xff0c;而是在一个概率云中分布。本文探讨了量子概率云的理论基础、数学描述及其在电子云和粒子波函数中的应用。…

【基础介绍】【OCR】

注&#xff1a;若有冒犯&#xff0c;请问候留言&#xff0c;会尽快删除。 文章目录 注&#xff1a;若有冒犯&#xff0c;请问候留言&#xff0c;会尽快删除。背景介绍OCR基本概念介绍基础实现算法深度学习方法1. CNN&#xff08;卷积神经网络&#xff09;2. RNN&#xff08;循环…

C语言学习之 没有重复项数字的全排列

题目描述 给出一组数字&#xff0c;返回该组数字的所有排列 例如&#xff1a; [1,2,3]的所有排列如下 [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1]. &#xff08;以数字在数组中的位置靠前为优先级&#xff0c;按字典序排列输出。&#xff09; 数据范围&#xff1a;数…

【React】入门Day04 —— 项目搭建及登录与表单校验、token 管理、路由鉴权实现

项目搭建 创建项目 # 使用npx创建项目 npx create-react-app my-react-app # 进入项目目录 cd my-react-app # 创建项目目录结构 mkdir -p src/{apis,assets,components,pages,store,utils} touch src/{App.js,index.css,index.js} 使用npx create-react-app创建项目&#xff0…