昇思25天學習打卡營第13天|linchenfengxue

Diffusion擴散模型

關于擴散模型(Diffusion Models)有很多種理解,本文的介紹是基于denoising diffusion probabilistic model (DDPM),DDPM已經在(無)條件圖像/音頻/視頻生成領域取得了較多顯著的成果,現有的比較受歡迎的的例子包括由OpenAI主導的GLIDE和DALL-E 2、由海德堡大學主導的潛在擴散和由Google Brain主導的圖像生成。

實際上生成模型的擴散概念已經在(Sohl-Dickstein et al., 2015)中介紹過。然而,直到(Song et al., 2019)(斯坦福大學)和(Ho et al., 2020)(在Google Brain)才各自獨立地改進了這種方法。

本文是在Phil Wang基于PyTorch框架的復現的基礎上(而它本身又是基于TensorFlow實現),遷移到MindSpore AI框架上實現的。

模型簡介

什么是Diffusion Model?

如果將Diffusion與其他生成模型(如Normalizing Flows、GAN或VAE)進行比較,它并沒有那么復雜,它們都將噪聲從一些簡單分布轉換為數據樣本,Diffusion也是從純噪聲開始通過一個神經網絡學習逐步去噪,最終得到一個實際圖像。 Diffusion對于圖像的處理包括以下兩個過程:

  • 我們選擇的固定(或預定義)正向擴散過程?𝑞𝑞?:它逐漸將高斯噪聲添加到圖像中,直到最終得到純噪聲

  • 一個學習的反向去噪的擴散過程?𝑝𝜃𝑝𝜃?:通過訓練神經網絡從純噪聲開始逐漸對圖像去噪,直到最終得到一個實際的圖像

由?𝑡𝑡?索引的正向和反向過程都發生在某些有限時間步長?𝑇𝑇(DDPM作者使用?𝑇=1000𝑇=1000)內。從𝑡=0𝑡=0開始,在數據分布中采樣真實圖像?𝐱0𝑥0(本文使用一張來自ImageNet的貓圖像形象的展示了diffusion正向添加噪聲的過程),正向過程在每個時間步長?𝑡𝑡?都從高斯分布中采樣一些噪聲,再添加到上一個時刻的圖像中。假定給定一個足夠大的?𝑇𝑇?和一個在每個時間步長添加噪聲的良好時間表,您最終會在?𝑡=𝑇𝑡=𝑇?通過漸進的過程得到所謂的各向同性的高斯分布。

擴散模型實現原理

Diffusion 前向過程

所謂前向過程,即向圖片上加噪聲的過程。雖然這個步驟無法做到圖片生成,但這是理解diffusion model以及構建訓練樣本至關重要的一步。 首先我們需要一個可控的損失函數,并運用神經網絡對其進行優化。

設?𝑞(𝑥0)𝑞(𝑥0)?是真實數據分布,由于?𝑥0~𝑞(𝑥0)𝑥0~𝑞(𝑥0)?,所以我們可以從這個分布中采樣以獲得圖像?𝑥0𝑥0?。接下來我們定義前向擴散過程?𝑞(𝑥𝑡|𝑥𝑡?1)𝑞(𝑥𝑡|𝑥𝑡?1)?,在前向過程中我們會根據已知的方差?0<𝛽1<𝛽2<...<𝛽𝑇<10<𝛽1<𝛽2<...<𝛽𝑇<1?在每個時間步長 t 添加高斯噪聲,由于前向過程的每個時刻 t 只與時刻 t-1 有關,所以也可以看做馬爾科夫過程:

回想一下,正態分布(也稱為高斯分布)由兩個參數定義:平均值?𝜇𝜇?和方差?𝜎2≥0𝜎2≥0?。基本上,在每個時間步長?𝑡𝑡?處的產生的每個新的(輕微噪聲)圖像都是從條件高斯分布中繪制的,其中

我們可以通過采樣然后設置

請注意,?𝛽𝑡𝛽𝑡?在每個時間步長?𝑡𝑡?(因此是下標)不是恒定的:事實上,我們定義了一個所謂的“動態方差”的方法,使得每個時間步長的?𝛽𝑡𝛽𝑡?可以是線性的、二次的、余弦的等(有點像動態學習率方法)。

因此,如果我們適當設置時間表,從?𝐱0𝑥0?開始,我們最終得到?𝐱1,...,𝐱𝑡,...,𝐱𝑇𝑥1,...,𝑥𝑡,...,𝑥𝑇,即隨著?𝑡𝑡?的增大?𝐱𝑡𝑥𝑡?會越來越接近純噪聲,而?𝐱𝑇𝑥𝑇?就是純高斯噪聲。

那么,如果我們知道條件概率分布?𝑝(𝐱𝑡?1|𝐱𝑡)𝑝(𝑥𝑡?1|𝑥𝑡)?,我們就可以反向運行這個過程:通過采樣一些隨機高斯噪聲?𝐱𝑇𝑥𝑇,然后逐漸去噪它,最終得到真實分布?𝐱0𝑥0?中的樣本。但是,我們不知道條件概率分布?𝑝(𝐱𝑡?1|𝐱𝑡)𝑝(𝑥𝑡?1|𝑥𝑡)?。這很棘手,因為需要知道所有可能圖像的分布,才能計算這個條件概率。

Diffusion 逆向過程

為了解決上述問題,我們將利用神經網絡來近似(學習)這個條件概率分布?𝑝𝜃(𝐱𝑡?1|𝐱𝑡)𝑝𝜃(𝑥𝑡?1|𝑥𝑡)?, 其中?𝜃𝜃?是神經網絡的參數。如果說前向過程(forward)是加噪的過程,那么逆向過程(reverse)就是diffusion的去噪推斷過程,而通過神經網絡學習并表示?𝑝𝜃(𝐱𝑡?1|𝐱𝑡)𝑝𝜃(𝑥𝑡?1|𝑥𝑡)?的過程就是Diffusion 逆向去噪的核心。

現在,我們知道了需要一個神經網絡來學習逆向過程的(條件)概率分布。我們假設這個反向過程也是高斯的,任何高斯分布都由2個參數定義:

  • 由?𝜇𝜃𝜇𝜃?參數化的平均值

  • 由?𝜇𝜃𝜇𝜃?參數化的方差

綜上,我們可以將逆向過程公式化為

其中平均值和方差也取決于噪聲水平?𝑡𝑡?,神經網絡需要通過學習來表示這些均值和方差。

  • 注意,DDPM的作者決定保持方差固定,讓神經網絡只學習(表示)這個條件概率分布的平均值?𝜇𝜃𝜇𝜃?。

  • 本文我們同樣假設神經網絡只需要學習(表示)這個條件概率分布的平均值?𝜇𝜃𝜇𝜃?。

為了導出一個目標函數來學習反向過程的平均值,作者觀察到?𝑞𝑞?和?𝑝𝜃𝑝𝜃?的組合可以被視為變分自動編碼器(VAE)。因此,變分下界(也稱為ELBO)可用于最小化真值數據樣本?𝐱0𝑥0?的似然負對數(有關ELBO的詳細信息,請參閱VAE論文(Kingma等人,2013年)),該過程的ELBO是每個時間步長的損失之和?𝐿=𝐿0+𝐿1+...+𝐿𝑇𝐿=𝐿0+𝐿1+...+𝐿𝑇?,其中,每項的損失?𝐿𝑡𝐿𝑡?(除了?𝐿0𝐿0?)實際上是2個高斯分布之間的KL發散,可以明確地寫為相對于均值的L2-loss!

如Sohl-Dickstein等人所示,構建Diffusion正向過程的直接結果是我們可以在條件是?𝐱0𝑥0?(因為高斯和也是高斯)的情況下,在任意噪聲水平上采樣?𝐱𝑡𝑥𝑡?,而不需要重復應用?𝑞𝑞?去采樣?𝐱𝑡𝑥𝑡?,這非常方便。使用

我們就有

這意味著我們可以采樣高斯噪聲并適當地縮放它,然后將其添加到?𝐱0𝑥0?中,直接獲得?𝐱𝑡𝑥𝑡?。

請注意,𝛼ˉ𝑡𝛼ˉ𝑡?是已知?𝛽𝑡𝛽𝑡?方差計劃的函數,因此也是已知的,可以預先計算。這允許我們在訓練期間優化損失函數?𝐿𝐿?的隨機項。或者換句話說,在訓練期間隨機采樣?𝑡𝑡?并優化?𝐿𝑡𝐿𝑡?。

正如Ho等人所展示的那樣,這種性質的另一個優點是可以重新參數化平均值,使神經網絡學習(預測)構成損失的KL項中噪聲的附加噪聲。這意味著我們的神經網絡變成了噪聲預測器,而不是(直接)均值預測器。其中,平均值可以按如下方式計算:

最終的目標函數?𝐿𝑡𝐿𝑡?如下 (隨機步長 t 由?(𝜖~𝑁(0,𝐈))(𝜖~𝑁(0,𝐼))?給定):

在這里,?𝐱0𝑥0?是初始(真實,未損壞)圖像,?𝜖𝜖?是在時間步長?𝑡𝑡?采樣的純噪聲,𝜖𝜃(𝐱𝑡,𝑡)𝜖𝜃(𝑥𝑡,𝑡)是我們的神經網絡。神經網絡是基于真實噪聲和預測高斯噪聲之間的簡單均方誤差(MSE)進行優化的。

訓練算法現在如下所示:

換句話說:

  • 我們從真實未知和可能復雜的數據分布中隨機抽取一個樣本?𝑞(𝐱0)𝑞(𝑥0)

  • 我們均勻地采樣11和𝑇𝑇之間的噪聲水平𝑡𝑡(即,隨機時間步長)

  • 我們從高斯分布中采樣一些噪聲,并使用上面定義的屬性在?𝑡𝑡?時間步上破壞輸入

  • 神經網絡被訓練以基于損壞的圖像?𝐱𝑡𝑥𝑡?來預測這種噪聲,即基于已知的時間表?𝐱𝑡𝑥𝑡?上施加的噪聲

實際上,所有這些都是在批數據上使用隨機梯度下降來優化神經網絡完成的。

U-Net神經網絡預測噪聲

神經網絡需要在特定時間步長接收帶噪聲的圖像,并返回預測的噪聲。請注意,預測噪聲是與輸入圖像具有相同大小/分辨率的張量。因此,從技術上講,網絡接受并輸出相同形狀的張量。那么我們可以用什么類型的神經網絡來實現呢?

這里通常使用的是非常相似的自動編碼器,您可能還記得典型的"深度學習入門"教程。自動編碼器在編碼器和解碼器之間有一個所謂的"bottleneck"層。編碼器首先將圖像編碼為一個稱為"bottleneck"的較小的隱藏表示,然后解碼器將該隱藏表示解碼回實際圖像。這迫使網絡只保留bottleneck層中最重要的信息。

在模型結構方面,DDPM的作者選擇了U-Net,出自(Ronneberger et al.,2015)(當時,它在醫學圖像分割方面取得了最先進的結果)。這個網絡就像任何自動編碼器一樣,在中間由一個bottleneck組成,確保網絡只學習最重要的信息。重要的是,它在編碼器和解碼器之間引入了殘差連接,極大地改善了梯度流。

可以看出,U-Net模型首先對輸入進行下采樣(即,在空間分辨率方面使輸入更小),之后執行上采樣。

構建Diffusion模型

DDPM論文表明擴散模型是(非)條件圖像有希望生成的方向。自那以后,diffusion得到了(極大的)改進,最明顯的是文本條件圖像生成。下面,我們列出了一些重要的(但遠非詳盡無遺的)后續工作:

  • 改進的去噪擴散概率模型(Nichol et al., 2021):發現學習條件分布的方差(除平均值外)有助于提高性能

  • 用于高保真圖像生成的級聯擴散模型([Ho et al., 2021):引入級聯擴散,它包括多個擴散模型的流水線,這些模型生成分辨率提高的圖像,用于高保真圖像合成

  • 擴散模型在圖像合成上擊敗了GANs(Dhariwal et al., 2021):表明擴散模型通過改進U-Net體系結構以及引入分類器指導,可以獲得優于當前最先進的生成模型的圖像樣本質量

  • 無分類器擴散指南([Ho et al., 2021):表明通過使用單個神經網絡聯合訓練條件和無條件擴散模型,不需要分類器來指導擴散模型

  • 具有CLIP Latents (DALL-E 2) 的分層文本條件圖像生成 (Ramesh et al., 2022):在將文本標題轉換為CLIP圖像嵌入之前使用,然后擴散模型將其解碼為圖像

  • 具有深度語言理解的真實文本到圖像擴散模型(ImageGen)(Saharia et al., 2022):表明將大型預訓練語言模型(例如T5)與級聯擴散結合起來,對于文本到圖像的合成很有效

請注意,此列表僅包括在撰寫本文,即2022年6月7日之前的重要作品。

目前,擴散模型的主要(也許唯一)缺點是它們需要多次正向傳遞來生成圖像(對于像GAN這樣的生成模型來說,情況并非如此)。然而,有正在進行中的研究表明只需要10個去噪步驟就能實現高保真生成。

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

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

相關文章

小蜜蜂WMS與小蜜蜂WMS對接集成根據條件獲取客戶信息列表(分頁)連通新增客戶信息(小蜜蜂讀寫測試)

小蜜蜂WMS與小蜜蜂WMS對接集成根據條件獲取客戶信息列表&#xff08;分頁&#xff09;連通新增客戶信息(小蜜蜂讀寫測試) 接通系統&#xff1a;小蜜蜂WMS 天津市小蜜蜂計算機技術有限公司&#xff08;acbee&#xff0c;TianJinACBEEComputerTechnologyCo.,Ltd&#xff09;成立于…

基于圖像處理的滑塊驗證碼匹配技術

滑塊驗證碼是一種常見的驗證碼形式&#xff0c;通過拖動滑塊與背景圖像中的缺口進行匹配&#xff0c;驗證用戶是否為真人。本文將詳細介紹基于圖像處理的滑塊驗證碼匹配技術&#xff0c;并提供優化代碼以提高滑塊位置偏移量的準確度&#xff0c;尤其是在背景圖滑塊陰影較淺的情…

上海市計算機學會競賽平臺2023年2月月賽丙組平分數字(一)

題目描述 給定 &#x1d45b;n 個整數&#xff1a;&#x1d44e;1,&#x1d44e;2,??,&#x1d44e;&#x1d45b;a1?,a2?,?,an?&#xff0c;請判定能否將它們分成兩個部分&#xff08;不得丟棄任何數字&#xff09;&#xff0c;每部分的數字之和一樣大。 輸入格式 第…

模擬,CF 570C - Replacement

一、題目 1、題目描述 2、輸入輸出 2.1輸入 2.2輸出 3、原題鏈接 570C - Replacement 二、解題報告 1、思路分析 1、長為cnt的連續串的最小操作次數為cnt - 1 2、每次將一個非. 替換為. f要么增加1要么增加2 只有前后都是 . 的時候會增加2 同理&#xff0c;當我們將一…

STM32外擴SRAM及用法

一.概述 一般單片機有片內的RAM&#xff0c;但都不多&#xff0c;比如&#xff1a;STM32F407ZGT6 自帶了 192K 字節的 RAM&#xff0c;對一般應用來說&#xff0c;已經足夠了&#xff0c;不過在一些對內存要求高的場合&#xff0c;比如做華麗效果的 GUI&#xff0c;處理大量數據…

swagger的接口文檔導入到yapi上

一、訪問swagger接口 swagger集成到項目后&#xff0c;通過http:\\ip:port/swagger-ui.html 訪問。 說明&#xff1a;這里的路徑是基于swagger2。如果用swagger3&#xff0c;需要用swagger3的路徑進行訪問。 訪問如圖&#xff1a; 這就是swagger接口首頁。如果想導入到yapi上…

module_param_named 內核啟動時模塊參數實現原理

基于上節內核啟動參數實現原理內容, 其中對early_param的實現流程做了分析, 已基本清晰. 但有不少的參數是在內核模塊中聲明的, 具體賦值流程也值得一探究竟. nomodeset 裝過Linux系統的同學可能多少有看到過nomodeset這個參數, 解決一些顯卡點不亮Linux的問題. 那么這個nomo…

AI繪畫Stable Diffusion 新手入門教程:萬字長文解析Lora模型的使用,快速上手Lora模型!

大家好&#xff0c;我是設計師阿威 今天給大家講解一下AI繪畫Stable Diffusion 中的一個重要模型—Lora模型&#xff0c;如果還有小伙伴沒有SD安裝包的&#xff0c;可以看我往期入門教程2024最新超強AI繪畫Stable Diffusion整合包安裝教程&#xff0c;零基礎入門必備&#xff…

React Hooks --- 分享自己開發中常用的自定義的Hooks (1)

為什么要使用自定義 Hooks 自定義 Hooks 是 React 中一種復用邏輯的機制&#xff0c;通過它們可以抽離組件中的邏輯&#xff0c;使代碼更加簡潔、易讀、易維護。它們可以在多個組件中復用相同的邏輯&#xff0c;減少重復代碼。 1、useThrottle 代碼 import React,{ useRef,…

三葉青圖像識別研究簡概

三葉青圖像識別研究總概 文章目錄 前言一、整體目錄介紹二、前期安排三、構建圖像分類數據集四、模型訓練準備五、遷移學習模型六、在測試集上評估模型精度七、可解釋性分析、顯著性分析八、圖像分類部署九、樹莓派部署十、相關補充總結 前言 本系列文章為近期所做項目研究而作…

工作助手VB開發筆記(2)

今天繼續講功能 2.功能 2.9開機自啟 設置程序隨windows系統啟動&#xff0c;其實就是就是將程序加載到注冊表 Public Sub StartRunRegHKLM()REM HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ RunDim strName As String Applicat…

教師商調函流程詳解

作為一名教師&#xff0c;您是否曾面臨過工作調動的困惑&#xff1f;當您決定邁向新的教育環境&#xff0c;是否清楚整個商調函流程的每一個細節&#xff1f;今天&#xff0c;就讓我們一起來探討這一過程&#xff0c;確保您能夠順利地完成工作調動。 首先需要確定新調入的學校已…

裁員風波中的項目經理,如何自洽?

最近都在擔心企業裁員&#xff0c;那么項目經理會不會也有被優化的風險呢&#xff1f; 答案是&#xff0c;一定會&#xff01; 今天從3個方面給大家闡述一下項目經理崗位的發展現狀以及未來的趨勢 01 項目經理被優化的可能性大嗎&#xff1f; 02 哪一類項目經理會被最先裁員…

CSDN導入本地md文件圖片不能正常回顯問題

標題 搭建圖像倉庫獲取圖片URL 路徑替換 因為服務器讀取不到本地圖片&#xff0c;故不能正常回顯&#xff0c;因此想要正常回顯圖片&#xff0c;我們首先要做的就是搭建一個可以存放圖片的服務器&#xff0c;像你可以選擇購買一個云服務器、FastDFS圖片服務器、Minio多云對象存…

信息收集-arping

信息收集-arping 簡介 arping 是一個用于發送 ARP 請求和接收 ARP 回復的工具。它通常用于檢查網絡中的 IP 地址是否被使用&#xff0c;或發現網絡中的重復 IP 地址。arping 工具類似于 ping 命令&#xff0c;但它使用的是 ARP 協議而不是 ICMP 協議。在 Kali Linux 中&#…

娛樂圈驚爆已婚男星劉端端深夜幽會

【娛樂圈驚爆&#xff01;已婚男星劉端端深夜幽會&#xff0c;竟是《慶余年》二皇子“戲外風云”】在這個信息爆炸的時代&#xff0c;娛樂圈的每一次風吹草動都能瞬間點燃公眾的熱情。今日&#xff0c;知名娛樂博主劉大錘的一則預告如同投入湖中的巨石&#xff0c;激起了層層漣…

紙電混合階段,如何在線上實現紙電會檔案的協同管理?

隨著國家政策的出臺和引導&#xff0c;電子會計檔案的管理越來越規范&#xff0c;電子會計檔案建設成為打通財務數字化最后一公里的重要一環。但是&#xff0c;當前很多企業的財務管理仍處于電子檔案和紙質檔案并行的階段&#xff0c;如何能將其建立合理清晰關聯&#xff0c;統…

《數字圖像處理-OpenCV/Python》第17章:圖像的特征描述

《數字圖像處理-OpenCV/Python》第17章&#xff1a;圖像的特征描述 本書京東 優惠購書鏈接 https://item.jd.com/14098452.html 本書CSDN 獨家連載專欄 https://blog.csdn.net/youcans/category_12418787.html 第17章&#xff1a;圖像的特征描述 特征檢測與匹配是計算機視覺的…

javascript v8編譯器的使用記錄

我的機器是MacOS Mx系列。 一、v8源碼下載構建 1.1 下載并更新depot_tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH/path/to/depot_tools:$PATH 失敗的話可能是網絡問題&#xff0c;可以試一下是否能ping通&#xff0c;連…

【代碼隨想錄_Day25】452. 用最少數量的箭引爆氣球 435. 無重疊區間 763. 劃分字母區間

Day25 OK&#xff0c;今日份的打卡&#xff01;第二十五天 以下是今日份的總結用最少數量的箭引爆氣球無重疊區間劃分字母區間 以下是今日份的總結 用最少數量的箭引爆氣球無重疊區間劃分字母區間 今天的題目難度不低&#xff0c;而且非常的有意思&#xff0c;盡量還是寫一些…