論文閱讀筆記:Generative Modeling by Estimating Gradients of the Data Distribution

1、參考來源

論文《Generative Modeling by Estimating Gradients of the Data Distribution》
來源:NeurIPS 2019
論文鏈接:https://arxiv.org/abs/1907.05600
參考鏈接:
【AI知識分享】真正搞懂擴散模型Score Matching一定要理解的三大核心問題

2、布朗運動

布朗運動是描述花粉微粒在水中的運動情況的。可以看出,花粉微粒在水中的受力情況如下所示。因此根據牛頓第二定律,
F = m a m ? d v t d t = F 合力 = F 摩擦力 + F 碰撞力 = ? γ ? v t + η \begin{equation} \begin{split} F&=ma\\ m\cdot\frac{dv_t}{dt}&= F_{合力}\\ &=F_{摩擦力}+F_{碰撞力}\\ &=-\gamma\cdot v_t+\eta \end{split} \end{equation} Fm?dtdvt???=ma=F合力?=F摩擦力?+F碰撞力?=?γ?vt?+η???
其中, γ \gamma γ是摩擦力因子。 η \eta η是碰撞力,也是一個隨機的力,滿足高斯分布, η ~ N ( 0 , σ 2 ) \eta \sim N(0,\sigma^2) ηN(0,σ2)
請添加圖片描述

花粉微粒包含的總能量 E ω E_{\omega} Eω?包含動能 E E E和勢能 U U U。在合力的作用下,動能和勢能相互轉化,且總能量保持不變。動能定理,可以得到
F 合力 ? Δ x = Δ E ? F 合力 = Δ E Δ x = Δ E ω ? Δ U Δ x = ? Δ U Δ x \begin{equation} \begin{split} F_{合力}\cdot \Delta x&=\Delta E\\ &\Updownarrow\\ F_{合力}&=\frac{\Delta E}{\Delta x}\\ &=\frac{\Delta E_{\omega}-\Delta U}{\Delta x}\\ &=\frac{-\Delta U}{\Delta x} \end{split} \end{equation} F合力??ΔxF合力??=ΔE?=ΔxΔE?=ΔxΔEω??ΔU?=Δx?ΔU????

其中, x x x為位移。由于花粉微粒的總能力 E ω E_{\omega} Eω?保持不變,因此 Δ E ω Δ x = 0 \frac{\Delta E_{\omega}}{\Delta x}=0 ΔxΔEω??=0
另一方面,花粉微粒在水中的分布,服從波爾茲曼分布。
P ( x ) = e ? U ( x ) z \begin{equation} \begin{split} P(x)=\frac{e^{-U(x)}}{z} \end{split} \end{equation} P(x)=ze?U(x)????
其中 U ( x ) U(x) U(x)表示在位置 x x x處的花粉微粒所具有的勢能。 z z z 是一個歸一化因子。也就是說,具有勢能越大的花粉,其對應的概率密度越小。波爾茲曼分布是描述粒子的熱運動的。玻爾茲曼分布體現了系統的穩定性傾向。系統中的粒子總是趨向于占據能量較低的狀態,因為低能量狀態更穩定。但由于熱運動的存在,粒子也有一定的概率處于較高能量的狀態,不過這種概率會隨著能量的升高而迅速減小。探秘玻爾茲曼分布:解鎖微觀粒子能量分布的神奇密碼

對公式(3)的兩邊分別取對數且求導
? x l o g ( P ( x ) ) = ? x l o g e ? U ( x ) z = ? x ? U ( x ) = F 合力 = ? γ ? v t + η = ? γ ? d x d t + η ? d x = ? d t γ ? x l o g ( P ( x ) ) + η γ ? d t ? x t + Δ t = x t ? Δ t γ ? x l o g ( P ( x ) ) + Δ t γ ? η = x t ? Δ t γ ? x l o g ( P ( x ) ) + Δ t γ ? σ ? z \begin{equation} \begin{split} \nabla_x log\big(P(x)\big)&=\nabla_x log \frac{e^{-U(x)}}{z} \\ &=\nabla_x-U(x) \\ &=F_{合力} \\ &=-\gamma\cdot v_t+\eta\\ &=-\gamma\cdot \frac{dx}{dt}+\eta \\ &\Updownarrow \\ dx&=-\frac{dt}{\gamma}\nabla_x log\big(P(x)\big) + \frac{\eta}{\gamma} \cdot dt \\ &\Updownarrow \\ x_{t+\Delta t}&=x_{t}-\frac{\Delta t}{\gamma}\nabla_x log\big(P(x)\big) + \frac{\Delta t}{\gamma} \cdot \eta\\ &=x_{t}-\frac{\Delta t}{\gamma}\nabla_x log\big(P(x)\big) + \frac{\Delta t}{\gamma} \cdot \sigma \cdot z\\ \end{split} \end{equation} ?x?log(P(x))dxxt+Δt??=?x?logze?U(x)?=?x??U(x)=F合力?=?γ?vt?+η=?γ?dtdx?+η?=?γdt??x?log(P(x))+γη??dt?=xt??γΔt??x?log(P(x))+γΔt??η=xt??γΔt??x?log(P(x))+γΔt??σ?z???
其中, z ~ N ( 0 , 1 ) z\sim N(0,1) zN(0,1)。如果分別令 Δ t γ = ? 2 \frac{\Delta t}{\gamma}=\frac{\epsilon}{2} γΔt?=2?? Δ t γ ? σ = ? \frac{\Delta t}{\gamma} \cdot \sigma=\sqrt{\epsilon} γΔt??σ=? ?。公式(4)則變為
x t + Δ t = x t ? ? 2 ? x l o g ( P ( x ) ) + ? ? z \begin{equation} \begin{split} x_{t+\Delta t}=x_{t}-\frac{\epsilon}{2}\nabla_x log\big(P(x)\big) + \sqrt{\epsilon} \cdot z\\ \end{split} \end{equation} xt+Δt?=xt??2???x?log(P(x))+? ??z???
對于下圖中的概率分布來說,對于在 x 0 x_0 x0?處的花粉微粒來說,其對應的斜率是負數,對應于公式(4)中的 ? x l o g ( P ( x ) ) \nabla_x log\big(P(x)\big) ?x?log(P(x))是負數。因此,相對于 x t x_{t} xt? x t + Δ t x_{t+\Delta t} xt+Δt?大概率會增大,因為是存在一個隨機高斯分布 η \eta η;對于在 x 1 x_1 x1?處的花粉微粒來說,其對應的斜率是正數,對應于公式(4)中的 ? x l o g ( P ( x ) ) \nabla_x log\big(P(x)\big) ?x?log(P(x))是正數。因此,相對于 x t x_{t} xt? x t + Δ t x_{t+\Delta t} xt+Δt?大概率會減小。綜上所述,花粉微粒大概率會朝向密度低的位置移動。這是符合墨水滴入水中的運動常識的。
請添加圖片描述
論文《Generative Modeling by Estimating Gradients of the Data Distribution》中的公式如公式(6)所示。可以看出,論文中的公式(6)是花粉擴散過程的逆過程
x t + Δ t = x t + ? 2 ? x l o g ( P ( x ) ) + ? ? z \begin{equation} \begin{split} x_{t+\Delta t}=x_{t}+\frac{\epsilon}{2}\nabla_x log\big(P(x)\big) + \sqrt{\epsilon} \cdot z\\ \end{split} \end{equation} xt+Δt?=xt?+2???x?log(P(x))+? ??z???

2、正篇

圖像生成別只知道擴散模型(Diffusion Models),還有基于梯度去噪的分數模型:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77532.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77532.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77532.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kubernetes相關的名詞解釋CNI插件(1)

(一)什么是CNI插件? 在 Kubernetes 中,CNI 插件(Container Network Interface Plugin) 是一種用于配置容器網絡接口的標準工具,負責為 Pod 分配網絡資源(如 IP 地址)并建…

2021-11-10 C++蝸牛爬井進3退1求天數

緣由C大一編程題目。-編程語言-CSDN問答 int n 0, t 0;cin >> n;while ((n - 3)>0)n, t;cout << t << endl;

分享一個DeepSeek+自建知識庫實現人工智能,智能回答高級用法。

這個是我自己搞的DeepSeek大模型自建知識庫相結合到一起實現了更強大的回答問題能力還有智能資源推薦等功能。如果感興趣的小伙伴可以聯系進行聊聊&#xff0c;這個成品已經有了實現了&#xff0c;所以可以融入到你的項目&#xff0c;或者畢設什么的還可以去參加比賽等等。 1.項…

動態規劃算法:狀態壓縮

狀態壓縮動態規劃算法 狀態壓縮動態規劃是動態規劃的一種&#xff0c;它通過使用位運算的方式壓縮程序占用的空間&#xff0c;對于可以用來解決一些只有兩個狀態&#xff08;是與否&#xff09;的問題。 多少無益&#xff0c;我們通過下面的一道編程題目來學習這種算法。 題目…

查看matlab函數幫助文檔的方法

方法一&#xff1a;在命令行窗口中使用help命令 方法二&#xff1a;在命令行窗口中使用doc命令 方法三&#xff1a;在幫助文檔中搜索關鍵字

MYSQL初階(暫為自用草稿)

目錄 基本操作 database操作 table操作 數據類型 INT類型 bit類型 FLOAT類型 CHAR類型 DATE類型 SEL類型 表的約束 列約束 NULL DEFAULT PRIMARY KEY UNIQUE KEY 表約束 PRIMARY KEY FOREIGN KEY 其他補充 AUTO_INCREMENT COMMENT ZEROFILL 表的CRUD …

MVC/MVVM 高級應用的深度解析

狀態共享與同步 跨組件狀態管理策略 狀態變更的傳播機制優化 狀態快照與時間旅行調試 狀態持久化 本地存儲策略 狀態序列化與反序列化 與服務端狀態同步 數據綁定進階 雙向綁定優化 臟檢查機制優化 基于Proxy/Object.defineProperty的實現差異 批量更新策略 自定義…

AI 邊緣計算盒子:開啟智能物聯新時代

一、什么是 AI 邊緣計算盒子 AI 邊緣計算盒子是一種集成了高性能芯片、AI 算法和數據處理能力的硬件設備。它部署在數據源的邊緣側&#xff0c;如工廠、商場、交通路口等&#xff0c;能夠在本地進行數據采集、預處理、分析和決策&#xff0c;而無需將所有數據上傳到云端。這種…

LeetCode 5:最長回文子串

1、題目描述 給你一個字符串 s&#xff0c;找到 s 中最長的 回文 子串。 示例 1: 輸入&#xff1a;s "babad" 輸出&#xff1a;"bab" 解釋&#xff1a;"aba" 同樣是符合題意的答案。 示例 2: 輸入&#xff1a;s "cbbd" 輸出&#…

簡易 Python 爬蟲實現,10min可完成帶效果源碼

目錄 準備工作 編寫爬蟲代碼 運行爬蟲 查看結果 遇到的問題及解決 總結 前言和效果 本文記錄了使用 Python 實現一個簡單網頁爬蟲的過程&#xff0c;目標是爬取 quotes.toscrape.com 的名言和作者&#xff0c;并將結果保存到文本文件。以下是完整步驟&#xff0c;包含環境…

【KWDB 創作者計劃】_上位機知識篇---Docker容器

文章目錄 前言1. Docker 容器是什么&#xff1f;隔離性輕量級可移植性可復用性 2. Docker 核心概念鏡像容器倉庫Dockerfile 3. Docker 基本使用(1) 安裝 Docker(2) 容器生命周期管理(3) 鏡像管理(4) 進入容器內部(5) 數據持久化&#xff08;掛載卷&#xff09;(6) 網絡管理 4. …

樹莓派練習

1.守護進程 守護進程含義&#xff1a;守護進程在樹莓派上電后開始運行&#xff0c;斷電后結束運行的進程&#xff0c;即使你的終端退出也不會停止&#xff0c;我們可以手動關閉它 使用nohup創建守護進程 先創建一個c語言文件&#xff08;long_task.c&#xff09; #include …

詳細解釋瀏覽器是如何渲染頁面的?

渲染流程概述 渲染的目標&#xff1a;將HTML文本轉化為可以看到的像素點 當瀏覽器的網絡線程收到 HTML 文檔后&#xff0c;會產生一個渲染任務&#xff0c;并將其傳遞給渲染主線程的消息隊列。在事件循環機制的作用下&#xff0c;渲染主線程取出消息隊列中的渲染任務&#xff0…

java+postgresql+swagger-多表關聯insert操作(九)

入參為json&#xff0c;然后根據需要對多張表進行操作&#xff1a; 入參格式&#xff1a; {"username": "車主01","usertel": "11111111111","useridtype": "2","useridcard": null,"proname&qu…

JavaSpring 中使用 Redis

創建項目 配置 Redis 服務地址 創建 Controller 類 由于當前只是些簡單的測試代碼&#xff0c;所以就不進行分層了&#xff0c;只創建一個 Controller 來實現 jedis 通過 jedis 對象里的各種方法來操作 Redis 此處通過 StringRedisTemplate 來操作 Redis 最原始提供的類是 Re…

AI文生圖工具推薦

一、AI文生圖技術實現原理 AI文生圖&#xff08;Text-to-Image&#xff09;基于生成對抗網絡&#xff08;GAN&#xff09;或擴散模型&#xff08;Diffusion Model&#xff09;實現&#xff0c;通過深度學習將文本描述轉化為圖像。其核心流程包括&#xff1a; 文本編碼&#xf…

數據結構——快排和歸并排序(非遞歸)

快速排序和歸并排序一般都是用遞歸來實現的&#xff0c;但是掌握非遞歸也是很重要的&#xff0c;說不定在面試的時候面試官突然問你快排或者歸并非遞歸實現&#xff0c;遞歸有時候并不好&#xff0c;在數據量非常大的時候效率就不好&#xff0c;但是使用非遞歸結果就不一樣了&a…

【筆記】網絡安全管理

計算機硬件中,運算器和控制器通常集成在一塊芯片內,一般稱為()。 數據庫DB、數據庫系統DBS、數據庫管理系統DBMS,三者之間的關系是()。 OSI/RM體系結構中的網絡層與TCP/IP體系結構中的()功能相同。 三級系統應按照等保2.0要求采用密碼技術通信過程中數據的()。 …

.net core web api 數據驗證(DataAnnotations)

目錄 一、什么是 DataAnnotations&#xff1f; 二、擴展驗證邏輯&#xff08;自定義驗證器&#xff09; 一、什么是 DataAnnotations&#xff1f; DataAnnotations 是一組特性&#xff08;Attributes&#xff09;&#xff0c;用于在模型類上定義驗證規則。主要用于屬性級別的…

小白從0學習網站搭建的關鍵事項和避坑指南

以下是針對小白從零學習網站搭建時需要注意的關鍵事項和避坑指南&#xff0c;幫助你高效學習、少走彎路&#xff1a; 一、學習路徑注意事項 不要跳過基礎 誤區&#xff1a;直接學習框架&#xff08;如 React、Laravel&#xff09;而忽視 HTML/CSS/JS 基礎。 正確做法&#xff…