精華區beta C_Chat 關於我們 聯絡資訊
週末閒著來聊聊最近很紅的AI生成動畫圖片 不廢話先上圖 https://imgur.com/G9gKpXP https://imgur.com/U9HNT5v https://imgur.com/tVK8Am0 https://imgur.com/Rx1OQAE https://imgur.com/M70u9O7 https://imgur.com/eQlOjjl https://imgur.com/VkXvv8b https://imgur.com/ohMnJ6p https://imgur.com/g01yYrb 稍微瑟瑟版本 https://imgur.com/366A3aG https://imgur.com/0KWzZei 雖然動畫專門版的 StableDiffusion 還沒釋出 (https://www.reddit.com/r/StableDiffusion/comments/ww0yfq/coming_soon_stable_d iffusion_anime_version/ 但其實拿目前市面上有的模型開源碼跟API 就算不 fine tune (指在自己的個人訓練集進行微調 也能有不少不錯的結果 而且因為是開源的 不會有額度的問題可以無限生成 至於造成這波圖像生成革命的推手 正式所謂的 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 也是類似的概念 =================== 以上專業內容可跳過 =================== 回來談談我一開始的圖片是怎麼生成的 基本上是先用別人稍微再 Danbooru fine tune 過的 DALL·E Min 生成原形 https://github.com/cccntu/anim_e 值得注意 DALL-E [4] 是比較早期的技術 本身是用 VQGAN 跟 autoregressive model 而不是 diffusion model 生成速度比較快而且因為別人已經 fine tune 過生成的圖片比較接近動畫 之後在用 StableDiffusion 最近釋出的權重 https://stability.ai/blog/stable-diffusion-public-release 利用 Diffuser 的 API 對圖片的品質進行微調 https://github.com/huggingface/diffusers 那麼 diffusion model 厲害的地方在哪裡呢 正因為它生成圖片是經由一次一次的去噪 所以它對生成的圖片也可以有更精細的控制 也就是你可以要求生成的資料符合某種特性 例如你可以挖洞要它補 (inpainting 可以要生成的圖像是某個角色/某個畫師的畫風 當然也可以各種修圖微調 只要你的訓練集某種程度上包含你想要生成的圖片類型 那你就可以在生成的途中把圖片導向你想要的模樣 不過由於以上這些目前都沒有api必須手寫 所以還沒嘗試 事實上以數學的語言來說 你甚至可以做 posterior sampling 因此這不僅僅侷限於圖片生成 甚至可以影響到所有需要 prior 來進行 optimization 的問題 嗯嗯這已經逐漸到個人研究主題的範疇了 無論如何 Diffusion model 真的是個很讚的東西 因為它背後充滿了酷炫的數學 同時你也可以無視這些拿它來瑟瑟 它顯示了數學推導如何直接在生活產生實質的影響 有興趣更深入了解的人下面網站有豐富的資源 https://github.com/heejkoo/Awesome-Diffusion-Models https://scorebasedgenerativemodeling.github.io/ 置底貼圖 https://imgur.com/UJ39mEP https://imgur.com/2yuFxoE https://imgur.com/Snnlp5N https://imgur.com/m3Nlzsq https://imgur.com/VCP0btu https://imgur.com/yOpgscG https://imgur.com/Cg0R6R6 [1] Sohl-Dickstein, J., Weiss, E., Maheswaranathan, N., & Ganguli, S. (2015, June). Deep unsupervised learning using nonequilibrium thermodynamics. In International Conference on Machine Learning (pp. 2256-2265). PMLR. [2] Ho, J., Jain, A., & Abbeel, P. (2020). Denoising diffusion probabilistic models. Advances in Neural Information Processing Systems, 33, 6840-6851. [3] Bansal, A., Borgnia, E., Chu, H. M., Li, J. S., Kazemi, H., Huang, F., ... & Goldstein, T. (2022). Cold Diffusion: Inverting Arbitrary Image Transforms Without Noise. arXiv preprint arXiv:2208.09392. [4] Esser, P., Rombach, R., & Ommer, B. (2021). Taming transformers for high-resolution image synthesis. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition (pp. 12873-12883). -- 北歐組一生推 https://i.imgur.com/ydMoryp.jpg https://i.imgur.com/njHa0OA.jpg https://i.imgur.com/KVrWmNb.jpg https://i.imgur.com/leUc4jP.jpg https://i.imgur.com/aWFuDE4.jpg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 73.222.84.130 (美國) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1661681711.A.DE3.html
diabolica: laplace 08/28 18:16
attacksoil: 已備份 感謝08/28 18:21
※ 編輯: cybermeow (172.58.35.190 美國), 08/28/2022 18:23:49
Vulpix: 挖洞補圖可以用來去除浮水印吔XD 08/28 18:37
Grothendieck: 放個有碼片測試看看嗎 08/28 18:42
kirimaru73: 我可不可以理解成 有一個專業的去雜訊模型08/28 18:58
kirimaru73: 結果他的慣老闆丟了越來越過份的雜訊圖給他08/28 18:58
kirimaru73: 他的腦洞被打穿後就獲得了把任何雜訊看出圖片的能力 08/28 18:58
也是沒錯
k18535318: 已收藏08/28 19:13
hdjj: 其實就像你看天花板上的污漬,大腦會發揮腦補(降噪)的能力,把08/28 19:13
hdjj: 原本無意義的色塊和腦中的資料庫連結比對,產生類似的資料包08/28 19:15
agario: 如果想全職做AI圖片生成的開發,可以去哪家公司?08/28 20:12
看你想做哪塊吧 幾家大公司 Google meta amazon Microsoft 我猜加減都有 Nvidia 圖片生成一直做很兇 像是上面 tutorial 就有兩個 Nvidia 動畫相關日本那邊 preferred network 應該做一段時間了 https://crypko.ai/ 不然其實像是midjourney和StableDiffusion都是自己的團隊 有心也可以自己找人慢慢做起來 ※ 編輯: cybermeow (172.58.35.190 美國), 08/28/2022 21:38:04
eric00826: 先收藏再拜讀 08/28 21:49
agario: 你說的這些在台灣不見得有相關的缺吧,有沒有台灣的 08/28 22:13
cybermeow: Q 臺灣公司生態我不熟 可是臺灣人才濟濟而且環境應該08/28 23:04
cybermeow: 還可以 還是自己創業吧www 認真說應該還是接下來幾年 08/28 23:04
cybermeow: 看看 看臺灣ai產業會不會起來 08/28 23:04
cybermeow: 說真的台灣真的是有人材沒產業一堆人都跑到國外 08/28 23:06
xkiller1900: 我雖然看不懂但是我知道色色貓為了生成ㄌㄌ色圖08/29 00:32
xkiller1900: 非常努力,性欲果然是人類的原動力(08/29 00:32
蘇格拉底說過 人因色圖而偉大 (並沒有 ※ 編輯: cybermeow (172.58.35.190 美國), 08/29/2022 06:28:23
FAccounting: 推08/29 08:18
inte629l: 推08/30 09:58
yoyololicon: 想問一下 你說maximum likelihood 的解是從score ma08/30 16:06
yoyololicon: tching 的方向解釋的嗎 我記得DDPM用機率去看應該跟 08/30 16:06
yoyololicon: VAE一樣都是maximize a lower bound 08/30 16:06
yoyololicon: 自己沒修過微方所以sde那套解釋一直都不是很懂XD 08/30 16:07
yoyololicon: 另外自己最近的研究在解inverse problems using dif 08/30 16:08
yoyololicon: fusion models ,有機會可以交流看看:) 08/30 16:08
maximum likelihood是第二個 你說的沒錯跟VAE那套一樣就是ELBO 我寫最小化上界所以也是最大化下界 score matching 才是對到 sde 解釋 交流很歡迎可以密我 我現在就在研究怎麼拿diffusion model當prior做posterior sampling 解inverse problem應該可以算是其應用之一
bitcch: 推講解 08/30 17:56
※ 編輯: cybermeow (172.58.43.8 美國), 08/30/2022 21:24:30