classifier-free-guidance 擴散模型引導生成

淺談擴散模型的有分類器引導和無分類器引導 - 知乎這篇文章主要比較一下擴散模型的引導生成的三種做法的區別。它們分別是用顯式分類器引導生成的做法,用隱式無分類器引導的做法和用CLIP計算跨模態間的損失來引導生成的做法。 Classifier-Guidance: Diffusion Mode…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/582880086通俗理解Classifier Guidance 和 Classifier-Free Guidance 的擴散模型 - 知乎【當一個擴散模型訓練好了之后,如何進行條件生成,例如如何按類別生成?】一、 Classifier Guidance Diffusion2021年OpenAI在「 Diffusion Models Beat GANs on Image Synthesis」中提出Classifier Guidance,使…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/640631667Diffusion學習筆記(五)——Conditional Control(Classifier-Guidance and Classifier-Free) - 知乎前幾篇文章都是討論無條件生成式的Diffusion模型,只能隨機采樣,無法控制模型的輸出。但很多時候,我們要求得到與指定文本信息或者與圖像信息對應的輸出(即文生圖或圖生圖),這就需要用到條件控制生成技術了。…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/623837604[論文理解] Classifier-Free Diffusion Guidance – sunlin-ai關于 Classifier-Free Diffusion 的論文理解icon-default.png?t=N7T8https://sunlin-ai.github.io/2022/06/01/Classifier-Free-Diffusion.htmlclassifer gudiance的classifer是用于生成任務還是分類任務? - 知乎和classifier-free guidance的區別是什么?icon-default.png?t=N7T8https://www.zhihu.com/question/607447662擴散模型引導生成的三種做法:1.classifier guidance,顯式分類器引導生成;2.classifier-free guidance隱式無分類器引導生成;3.clip計算跨模態間的損失引導生成。其中第1種和第2種可以描述為:1.classifier guidance是無條件輸入+classifier指導;2.classifier-free guidance是條件輸入+無條件輸入。可以對應到gan上,gan也有條件gan和非條件gan,gan里面大多數還是非條件gan,比如stylegan,非條件在特定領域訓一波,比如人臉還是很有用的,條件gan,按照我之前的經驗,效果有待商榷。擴散模型中,非條件的基本就是ddpm等這種生圖算法,文生圖就屬于條件diffusion,那么文本這類condition在訓練時如何引導就涉及到了classifier guidance這類方法,gan中比較簡單,基本上是把類別的embedding直接拼到采樣的隨機噪聲中,而diffusion model中要設計如何處理text embedding的問題,如何是cfg的話,就是條件輸入+無條件輸入,就是隨機drop text embedding這種方式。

1.classifier guidance 顯式分類器引導生成

也叫事后修改,即給定一個訓練好的無條件diffusion模型,再進行條件控制輸出。擴散模型的前向擴散過程和后向去噪過程都可以用一個隨機微分方程表示,其中后向去噪時,可以通過一個神經網絡來擬合當前輸入關于原數據分布的梯度,來將一個先驗分布(如高斯分布)里采樣出的點逐漸推進到數據分布里。后向生成可以看成是一個馬爾科夫蒙特卡洛采樣過程,其中每一步的轉移方程都是沿著往數據分布的梯度方向邁進,且該方向由神經網絡的輸出來擬合。DDPM里擴散網絡預測的噪聲實際上是往數據分布的轉移梯度。

生成符合原數據分布的點,可以通過逐步往該網絡的預測梯度方向行走來獲得最終數據點。但是這樣的無條件生成是無法做到條件生成的,2021年openai在diffusion models beat gans on image synthesis中提出classifier guidance,使得擴散模型能夠按類別生成。將條件生成對輸入的對數梯度用貝葉斯拆解一下:

想要獲得數據分布里在條件約束下的數據點時,實際只要在往數據方向的梯度方向上再額外添加一個分類器的梯度方向即可。classifier guidance需要訓練噪聲數據版本的classifier網絡,推理是每一步都需要額外計算classifier的梯度。

多了y關于x的梯度,這個就是classifier guidance。其中logp(y|x)是classifier。

在DDIM中,噪聲估計加上分類器引導的梯度。可以把stable diffusion的預訓練模型拿來用,text設置為空,根據它訓練一個classifier,實現類別指導生成。

2.classifier-free guidance?

也叫事前修改,即直接將條件y加入到訓練過程中。classifier guidance使用顯式的分類器有幾個問題:1.需要額外訓練一個噪聲版本的圖像分類器;2.該分類器的質量會影響類別生成的效果;3.通過梯度更新圖像會導致對抗攻擊效應,生成圖像可能會通過人眼不可察覺的細節欺騙分類器,實際上并沒有按條件生成。谷歌2022年提出classifier-free guidance,可以通過調節引導權重,控制生成圖像的逼真性和多樣性的平衡,dalle2、imagen、glide和stable dffusion等都是以classifier-free guidance為基礎進行訓練和推理。classifier-free guidance是通過一個隱式分類器來替代顯式分類器,而無需直接計算顯式分類器及其梯度。分類器的梯度可以用條件生成概率和無條件生成概率表示:

新的生成過程不再依賴顯式的classifier,訓練時,classifier-free guidance需要訓練兩個模型,一個是無條件生成模型(DDPM),一個是條件生成模型,這兩個模型可以用一個模型表示,訓練時只需要在無條件生成時將條件向量置為零即可。推理時,最終結果可以由條件生成和無條件生成的線性外推獲得,生成效果可以由引導系數調節,控制樣本生成的逼真性和多樣性。

classifier-free guidance一方面大大減輕了條件生成的訓練代價,無需訓練額外的分類器,只需要在訓練時進行隨機drop out condition來同時訓練兩個目標,另一方面,這樣的條件生成并不是以一個類似于對抗攻擊的方式進行。上面的采樣式子,實際上是另個梯度的差值所形成的。在訓練時同時算了e(xt,t,y)和e(xt,t),然后計算差值就到了加條件的目的。

在stable-diffusion-webui中,negative prompt實際上就用了無分類器引導的公式,將無條件生成轉成不想要的提示的條件生成。

既然網絡可以接受條件輸入,輸出不就自然是根據條件引導生成的結果,為什么還要用無條件的結果?并不是在生成網絡加個條件輸入就是條件生成,條件生成可理解為條件概率問題,cfg是根據隱分類器推導成線性外插的形式。classifier-guidance是每一步要訓練一個分類器引導;classifier-free guidance不用訓練分類器,只要在訓練條件生成模型時,給一個空條件,然后使用真實條件引導+空條件引導來更好的控制條件生成。

stable diffusion在訓練過程中,采用classifier-free guidance,就是在訓練條件擴散模型的同時也訓練一個無條件擴散模型,同時在采樣階段將條件控制下預測的噪聲和無條件控制下的預測噪聲組合在一起來確定最終的噪聲。

這里w是guidance scale,當w越大時,condition起的作用越大,即生成的圖像和輸入文本一致,cfg實現很簡單,在訓練過程中,只需要以一定概率(比如10%)隨機drop掉text即可,我們可以將text置為空字符串。

3.clip損失引導生成

通過使擴散生成的圖像和目標文本的多模態clip損失盡可能小來達到目的。

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

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

相關文章

瀏覽器是什么

瀏覽器是什么 本文簡要介紹瀏覽器的功能和組成。 瀏覽器(Web Browser)是一種用于訪問和瀏覽互聯網上的網頁和資源的軟件應用程序。它是用戶與互聯網交互的主要工具之一。 瀏覽器通過使用網絡協議(如HTTP、HTTPS等)與遠程服務器通…

從0開始學習JavaScript--JavaScript數據類型與數據結構

JavaScript作為一門動態、弱類型的腳本語言,擁有豐富的數據類型和數據結構,這些構建了語言的基礎,為開發者提供了靈活性和表達力。本文將深入探討JavaScript中的各種數據類型,包括基本數據類型和復雜數據類型,并介紹常…

nginx知識梳理及配置詳解

軟件開發全文檔獲取:點我獲取 nginx安裝 #nginx安裝 yum -y install gcc pcre-devel openssl-devel #依賴包 useradd -s /sbin/nologin nginx ./configure --prefix/usr/local/nginx #指定安裝目錄 --usernginx #指定用戶 --with-http_ss…

【數據庫篇】關系模式的表示——(1)問題的提出

1、關系模式的表示 R:表示關系的名字比如:sc選課表,student學生表。 U:表示一個關系模式的所有屬性,比如student表:U(sno,sname,sage,ssex)。 …

LedControl 庫說明文檔

LedControl 庫最初是為基于 8 位 AVR 處理器的 Arduino 板編寫的。但由于該代碼不使用處理器的任何復雜的內部功能,因此具有高度可移植性,并且應該在任何支持 和 功能的 Arduino(類似)板上pinMode()運行digitalWrite() 。 單個 M…

C練習題_3

一、單項選擇題(本大題共20小題,每小題2分,共40分。在每小題給出的四個備選項中,選出一個正確的答案,并將所選項前的字母填寫在答題紙的相應位置上。 以下正確的C語言自定義標識符是() A. la B. 2a C. do D. a.12 2.在C語言中,錯…

C# 之對象與Xml序列化工具類

寫在前面 一個常用的對象與Xml序列化工具類&#xff0c;使用系統類庫System.Xml&#xff0c;序列化時需要注意只能將對象的公共字段和讀/寫屬性轉換為 XML。不轉換方法、索引器、私有字段或只讀屬性。另外XmlSerializer 類無法序列化ArrayList數組和List<T>數組。 using…

3、Qt使用windeploy工具打包可執行文件

新建一個文件夾&#xff0c;把要打包的可執行文件exe拷貝過來 點擊輸入框&#xff0c;復制一下文件夾路徑 點擊電腦左下角&#xff0c;找到Qt文件夾&#xff0c; 點擊打開 “Qt 5.12.0 for Desktop” &#xff08;我安裝的是Qt 5.12.0版本&#xff09; 輸入“cd bin”&#xff…

springsecurity5.7.x和springsecurity6.x配置文件對比

springsecurity5和springsecurity6如何要實現多種登錄方式&#xff0c;自定義登錄方式都是一樣的操作步驟&#xff0c;主要有四個步驟。 一、自定義登錄用戶實體實現springsecurity中的UserDetails接口 二、自定義登錄用戶實現類實現springsecurity中的UserDetailsService接口 …

vivado產生報告閱讀分析20-QOR

Report QoR Suggestions report_qor_suggestions 命令是處理 QoR 建議對象時使用的主要命令。 QoR 建議對象會創建命令和屬性來改善設計的時序性能&#xff08; 欲知詳情 &#xff0c; 請參閱 QoR 建議 &#xff09; 。 report_qor_suggestions 命令可執行兩項任務 &am…

代碼隨想錄-刷題第七天

454. 四數相加II 題目鏈接&#xff1a;454. 四數相加II 思路&#xff1a;哈希法。使用map集合&#xff0c;key存放ab的值&#xff0c;value存放ab出現的次數。使用兩層循環&#xff0c;循環前兩個數組&#xff0c;找出ab&#xff0c;對map賦值。再用兩層循環&#xff0c;遍歷…

唯創知音WT2605C-A001音頻藍牙語音芯片:小巧體積,高品質音頻播放的創新

在現今的科技繁榮時代&#xff0c;音頻技術作為人類感知世界的重要方式&#xff0c;已經變得越來越重要。唯創知音WT2605C-A001音頻藍牙語音芯片&#xff0c;以其卓越的特性和創新性&#xff0c;正在為音頻技術領域帶來一場革命。 首先&#xff0c;這款芯片以其極小的體積—僅…

chatGPT4機器學習數據后最終保留在機器里的是什么? 機器是怎么產生智能的? TensorFlow沒有直接開發出類似GPT-4這樣的模型

機器學習數據后最終保留在機器里的是機器學習模型。機器學習模型是機器學習系統中的核心&#xff0c;它是機器學習系統能夠進行推理和預測的基礎。 機器學習模型通常由參數組成。參數是機器學習模型的權重和偏差。機器學習系統通過訓練來學習這些參數。訓練是指讓機器學習系統…

webpack 打包優化

在vue.config.js中配置 下載 uglifyjs-webpack-plugin 包 const { defineConfig } require("vue/cli-service"); var path require("path");module.exports defineConfig({transpileDependencies: true,filenameHashing: false, // 去除Vue打包后.cs…

0003Java程序設計-ssm基于微信小程序的家教信息管理系統

文章目錄 摘要目 錄系統實現開發環境 編程技術交流、源碼分享、模板分享、網課分享 企鵝&#x1f427;裙&#xff1a;776871563 摘要 本文講述了基于微信小程序的家教信息管理系統的設計與實現。結合線上管理的特點&#xff0c;分析了家教信息管理系統的現狀&#xff0c;給出…

外匯天眼:香港監管機構對AMTD Global Markets Limited啟動法律訴訟

香港證監會&#xff08;SFC&#xff09;已經啟動了法律程序&#xff0c;要求首次審裁法院調查AMTD Global Markets Limited&#xff08;AMTD&#xff0c;目前以orientiert XYZ Securities Limited為名&#xff09;及其前高管在與首次公開發行&#xff08;IPO&#xff09;相關的…

【經典小練習】修改文件中的數據

文章目錄 &#x1f339;例子&#x1f33a;思路&#x1f6f8;方法一?報錯解決 &#x1f6f8;方法二 &#x1f339;例子 文本文件中有下面的數據 2-1-9-4-7-8 將文件中的數據進行排序&#xff0c;變成下面的數據 1-2-4-7-8-9 &#x1f33a;思路 要對這些數據進行排序&#xf…

智慧樓宇可視化視頻綜合管理系統,助力樓宇高效安全運行

隨著互聯網技術的進步和發展&#xff0c;智能化的樓宇建設也逐步成為人們選擇辦公場所是否方便的一個重要衡量因素。在智能化樓宇中&#xff0c;安全管理也是重要的一個模塊。得益于互聯網新興技術的進步&#xff0c;安防視頻監控技術也得到了快速發展并應用在樓宇的安全管理中…

Python武器庫開發-前端篇之html概述(二十八)

前端篇之html概述(二十八) html概述 HTML5是構建Web內容的一種語言描述方式。HTML5是互聯網的下一代標準&#xff0c;是構建以及呈現互聯網內容的一種語言方式&#xff0e;被認為是互聯網的核心技術之一。HTML產生于1990年&#xff0c;1997年HTML4成為互聯網標準&#xff0c;…

虹科Pico汽車示波器 | 汽車免拆檢修 | 2011款瑞麒M1車發動機起動困難、加速無力

一、故障現象 一輛2011款瑞麒M1車&#xff0c;搭載SQR317F發動機&#xff0c;累計行駛里程約為10.4萬km。該車因發動機起動困難、抖動、動力不足、熱機易熄火等故障進廠維修。用故障檢測儀檢測&#xff0c;發動機控制單元&#xff08;ECU&#xff09;中存儲有故障代碼“P0340相…