精華區beta C_Chat 關於我們 聯絡資訊
我很久以前連waifu diffusion都還沒出來就發過了 https://www.pttweb.cc/bbs/C_Chat/M.1661681711.A.DE3 複製貼上自己的文章算抄襲嗎 -------------------- 造成這波圖像生成革命的推手 正式所謂的 Diffusion / Score-matching model 系列 一般往前最早大約推到2015年這篇文章 [1] https://arxiv.org/abs/1503.03585 Deep Unsupervised Learning using Nonequilibrium Thermodynamics 不過船過水無痕 之後幾年還是一直由GAN (Generative Adversarial Netwok 生成對抗網路 ) 統領生成模型這塊 直到2019年後兩派人馬分別用不同個觀點把這系列的效果真的做起來後 才有我們今天所看到的這些結果 所以說 Diffusion model 到底是什麼 會什麼效果可以這麼好 下面分三個面向來談 真的想深入了解的很推薦今年 CVPR 的 tutorial https://cvpr2022-tutorial-diffusion-models.github.io/ 深入淺出的從不同面向介紹這些模型 1. Diffusion model as denoiser 最直覺最好解釋 同時也可能是最正確的觀點 是把 Diffusion model 當作一個不斷去噪的過程 以下圖片分別取自 DDPM 的 Paper [2] 以及上面提到的 tutorial https://imgur.com/kkj76zH https://imgur.com/uEPubtG 第一張圖示從右到左 x0 到 xT 不斷地加噪音 而訓練是學習如何把不同程度噪音的圖片還原成原本的資料 由於還原無法完美 所以嘗試還原再加上一定程度的噪音 相當於學習如何從一個噪音較多的 xt 到一個噪音較少的 x_{t-1} 而最後生成圖片的時候 則是從白噪音不斷去噪 得到我們所見到的成果 至於為什麼這簡單的解釋正是真的的原因 可以參考 Cold Diffusion: Inverting Arbitrary Image Transforms Without Noise [3] 2. Diffusion model as maximum-likelihood model 數學的角度上來講 Diffusion model 跟任何機率模型一樣 (Gaussian mixture, Hidden markov chain or whatever 都是由許多參數來描述一個機率 也就是經過上面一部一部去噪所得到的機率分佈 不過它由於利用許多如今神經網路的特性所以效果特別好 稍微讀過統計的人大概都聽過 學習一個模型最常用的就是 maximum-likelihood 白話來說 就是如何找到一組參數使得在這個參數下觀察到手邊資料的機率是最大的 而所謂訓練去除噪音的過程 其實就是在最小化訓練集機率分佈跟模型機率分佈的交叉熵的某個上界 以達到 maximum likelihood 的效果 詳細推導可以參考 https://lilianweng.github.io/posts/2021-07-11-diffusion-models/ 而這也是 DDPM [2] 或者 2015 那篇 [1] 的看法 另外同樣機率模型來說 Diffusion model 也可以看作一種 energy model 又或者是 hierarchical VAE 的特例 3. Diffusion model as discretization of a reverse stochastic differential equati on 如果把剛剛一部一部往前加噪音連續化 那將成為一個隨機微分方程的軌跡 (trajectory) 將它從我們感興趣的圖片的機率分佈帶到高斯噪音 而這個隨機微分方程其實是可逆的 往回走得過程需要學每一個時間點的 score function 也就是 gradient of log density 如同下圖所示 (取自 https://yang-song.net/blog/2021/score/ 那邊有詳細解釋 https://imgur.com/fprfULR 而其實學習如何去噪 也可以理解成在學習這個 score function 上面的 sampling process 也跟學好 score function 後沿著這個 reverse SDE 走回來有 異曲同工之妙 另外同樣 score function 系列的 比較早期的 Annealed Langevin Dynamics 也是類似的概念 -------------------- 好貼完了 今天出了waifu diffusion 1.3 https://huggingface.co/hakurei/waifu-diffusion-v1-3 跟hentai diffusion 1214 https://huggingface.co/Deltaadams/Hentai-Diffusion/tree/main 正在測效果但不會下prompt 崩潰 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 172.58.43.212 (美國) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1665033024.A.A40.html
smart0eddie: 引用自己的文章說不定還真的有些人會告你抄襲10/06 13:11
diabolica: 我發現我才是猴子10/06 13:11
diabolica: 跟AI相比10/06 13:11
※ 編輯: cybermeow (172.58.43.212 美國), 10/06/2022 13:13:11
smart0eddie: 沒關係 我們會看色圖就好了10/06 13:13
psee: 你有經過創世神同意引用自己文章嗎10/06 13:14
Koyomiiii: 論文 引用 抄襲 嗚我頭好痛10/06 13:15
Vulpix: 即使是解ODE,應該也能視為在dual space裡面的簡單操作。10/06 13:17
miyazakisun2: 所以生成圖就是可以想像一張不存在的圖被上噪音了10/06 13:17
miyazakisun2: AI 去去噪 是這樣ㄇ10/06 13:17
qd6590: 幸好我看得懂 樓下說看完了還好而已10/06 13:17
guogu: 原來是這樣練的 之前有試過每一步都讓他展示10/06 13:17
guogu: 起始看起來就是一片彩色雜訊然後慢慢浮出形狀10/06 13:17
Vulpix: ……至少「dual」in some sense。10/06 13:17
不太確定你的意思 我做gradient descente也可以全部當作是在dual space 反正詮釋方法很多種 我跟sde也不熟
guogu: 這樣我在玩novelai裡的seed 其實就是起始雜訊的seed?10/06 13:18
都是 有些回推過程每一步都有噪音 像是Euler a 那就是起始噪音跟每一步的噪音
aqswde12349: 推個簡單易懂10/06 13:19
leo125160909: 還有圖片的prompt沒解釋 10/06 13:20
啊對了還要解釋clip embedding跟text to image 板上神人那麼多等別人發好了 我要繼續玩新出的模型www 反正大概念就是把那個文字訊息訓練去噪時也當輸入讓他一起學 所以才需要用有文字描述的訓練集 至於怎麼讓輸入文字變成模型懂的又是一門學問
rkl: 推 10/06 13:21
※ 編輯: cybermeow (172.58.43.212 美國), 10/06/2022 13:23:03
inte629l: 完蛋 微方和機率統計都還給老師了...10/06 13:24
paul51110: 清楚明了 10/06 13:26
paul51110: *瞭 10/06 13:26
naya7415963: 雖然還是不太懂但感謝解說 10/06 13:26
※ 編輯: cybermeow (172.58.43.212 美國), 10/06/2022 13:27:04
lsd25968: 要完全搞懂原理太難了= = 就算相關領域的也得花點時間去 10/06 13:28
lsd25968: 了解 還是看色圖就好 10/06 13:28
starsheep013: 長知識推 10/06 13:31
k960608: 也不難 就跟計算器也是拆成0跟1一樣 只是這中間多了很多 10/06 13:31
k960608: 讓機器語言更強的方法 10/06 13:31
Forbidden204: 摁摁 我也是這麼想 10/06 13:33
et310: 太專業了8 10/06 13:33
healworld: 恩嗯 跟我想的一樣 10/06 14:17
louisalflame: 專業推 10/06 14:18
holden0609: 專業推推 10/06 14:51
bearking2: 快推免得被人發現我們不懂XD 10/06 15:19
LeonBolton: 不行。你引用有著作權的問題 10/06 16:21
zxcmoney: 我還以為去噪很早就發展完了 10/06 16:49