iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0

前言

昨天帶各位實作了DDIM模型,不知道各位是否有成功實作出來?今天我們要來看看昨天的DDIM訓練時的損失變化與圖片生成的過程。看完了以後再來分享一下擴散模型訓練上常出現的問題以及未來的展望!

訓練分析

損失

我們來看看損失的變化圖:
https://ithelp.ithome.com.tw/upload/images/20231001/20151029PqIbgfuzp7.png

可以看到所有損失都有逐漸降低,而且大約20 epochs模型就收斂了,不過每個epoch會訓練幾萬張的圖片。所以訓練量應該是足夠的。主要看到KID有下降就代表圖片的品質有提高。 n_loss 下降代表模型有學到擴散過程的分布狀態。

訓練過程生成的圖片

接著就是擴散模型訓練過程中生成的圖片了,

Epoch=1。與GAN一樣,第一次訓練當然都是雜訊。
https://ithelp.ithome.com.tw/upload/images/20231001/20151029egwLQ6Xfgz.png

Epoch=5。從雜訊中似乎有新世界即將誕生,雖然圖片還是很亂,但這只是模型還尚未學習到最佳的逆向擴散方式。
https://ithelp.ithome.com.tw/upload/images/20231001/20151029VRipKFyXqZ.png

Epoch=8。花朵的輪廓已經大致上看的出來了,部分圖片會有一些亂亂的感覺。
https://ithelp.ithome.com.tw/upload/images/20231001/201510298tQVaWZpKT.png

Epoch=15。已經可以生成出美麗的花朵圖片~
https://ithelp.ithome.com.tw/upload/images/20231001/2015102948sAvv2Huc.png

Epoch=50。基本上都沒什麼變,模型已經收斂了。
https://ithelp.ithome.com.tw/upload/images/20231001/20151029CqGgOpso1r.png

另外也有擴散模型訓練過程的圖片變化,這個模型的訓練動畫跟GAN感覺起來不太一樣,感覺有種用魔法來塑型的fu。
DDIM

失敗經驗分享

這邊再附上資料集不夠、訓練次數不足或者生成任務難度較高的失敗圖片,這些圖片背後都有一個調參數到心累的可憐人QQ:

這些失敗品所使用的資料集來源於此。facades labels→photo

是大麻,我加了大麻。 (這個資料集是昨天範例所使用的資料集)
https://ithelp.ithome.com.tw/upload/images/20231001/20151029t3yKx1EUrK.png

參數量太少、訓練256x256的圖片後,學到了一些圖片特徵,但沒辦法把這些特徵好好的組合。
https://ithelp.ithome.com.tw/upload/images/20231001/20151029zZNyXOKrzD.png

這次換訓練資料集太少,模型完全學不到東西,生成了像塗油漆的痕跡。
https://ithelp.ithome.com.tw/upload/images/20231001/20151029JC7gpErcTw.png

接著模型參數量太大、層數太多,在某個Epoch梯度爆炸,之後生成的圖無藥可救。圖片像雜訊倒還好,有時候會全黑、全紅、全藍等莫名其妙的狀況發生QQ
https://ithelp.ithome.com.tw/upload/images/20231001/201510295E9aDsGpmu.png

最後是調到一個比較好的參數,但目標是想要生成房子的外觀圖片,反倒生成了鬼屋。
https://ithelp.ithome.com.tw/upload/images/20231001/20151029GtUhrGxsxY.png

擴散模型訓練時容易遇到的問題

擴散模型的生成能力超乎想像,而且聽起來好像非常強大,但是擴散模型有甚麼缺點或者訓練上的問題呢?當然有!現在就來看看目前訓練擴散模型上可能會遇到甚麼問題吧。

  1. 訓練時間長:這點應該是最廣為人知的訓練問題了,因為擴散模型訓練時會經過前向與逆向擴散,擴散過程中要採樣雜訊並加噪或者去噪。這段計算的時間會導致訓練時間被拉長許多,就算使用了許多技巧,目前擴散模型的訓練時間也還是長於其他生成模型。
  2. 逆向擴散訓練可能會失敗:如果逆向擴散的訓練中,針對雜訊分布的模仿訓練如果一直沒有進步的話容易導致生成結果完全無法辨識。
  3. 需要相當大量的資料集:擴散模型需要非常大量的資料集用於模擬分布情況,若資料集數量不夠就容易因為無法學會資料集圖片的分布導致生成結果也是完全無法辨識。
  4. 參數調整不容易:這個問題就是生成模型乃至各種深度學習模型都需要面對的課題,因為類神經網路內部的計算可解釋性很低,所以某些超參數造成的影響難以解釋,又因為訓練擴散模型時間長,所以超參數的調整就會變得非常久。
  5. 圖片太大則較難訓練:目前我在畢業論文上也使用了擴散模型生成256x256的圖片,不過我發現非常難以訓練TT,模型層數加深了許多,且參數量也是前幾天的好幾倍。訓練成果雖然有好一點,但不多,圖片大多都還是群魔亂舞。看了許多文獻大多數都還是以64x64的圖片為主的研究,目前我推測可能就與硬體設備有關係,因為現在深層且參數量大,訓練一次要非常非常久的時間。即便是3080的顯卡,計算負擔還是相當大,只能保佑之後訓練順利了~

目前擴散模型的發展

前幾天介紹的擴散模型,在圖像生成以外,也有許多應用被發展出來,如以下幾點。這邊會貼上一些來自於CVPR 2023 或者CVPR 2022 的研究,CVPR是計算機視覺中頂尖的研討會,每年都有高質量的研究被提出來,其中就有許多跟擴散模型有關的研究。

  1. 條件生成:擴散模型在逆向擴散過程中可以加入條件變量來引導其去噪的生成,這可以讓擴散模型根據生成對應的圖片,詳情可以看看這篇文章
  2. 文本轉圖片:這個就是大家熟知的Stable Diffusion了,在第7天 有稍微介紹Stable Diffusion,感興趣的人可以回去看看。另外也有一篇文章介紹了一個利用文字來指示模型修圖的應用,他可以透過文字條件來指示模型生成的內容,例如在原始圖片中添加新的東西、或者刪除圖片中的物件、甚至也可以做背景替換等。
  3. 生成影片:今年CVPR有一篇研究,Video Probabilistic Diffusion Models in Projected Latent Space ,該文章研究是讓擴散模型學習較低維度中潛在空間的影片資料分布,讓資源有限的影片進行有效的訓練,且生成高解析度的影片。
  4. 3D物件生成:可以生成2D的圖片,擴散模型當然也可以生成3D的圖片啦,不過生成3D圖片跟生成影片一樣,只是一個是加入空間維度另一個是加入時間維度。DiffRF: Rendering-Guided 3D Radiance Field Diffusion 這個研究實現把2D的視圖透過擴散模型去進行準確的3D物件生成。與另一個可以生成3D物件的3D-GAN相比,這個模型甚至還可以實現條件控制生成!

其他還有擴散模型的用途真的不勝枚舉,基本上許多最新的研究也都跟擴散模型的發展相關。目前主流的研究成果都還是與圖片、影像生成相關,相信未來也會有更多領域的研究使用擴散模型生成各種資料!

在建立擴散模型的過程,我們使用U-Net來訓練,正當我們認為U-Net已經是極限的時候。這時候另一個模型又殺出來了,那就是現今自然語言處理NLP常會使用的Transformer模型。Scalable Diffusion Models with Transformers 這篇文章在2012年12月刊登上Arxiv,2023年3月發布新版本,算是非常新的版本。該研究使用了Transformer來取代傳統的U-Net,而且性能優於當時所有的擴散模型。所以使用不同的模型來訓練擴散模型也可以訓練出良好的結果,而且可能還有別的功能,非常讓我感到意外。例如今年有一篇文章用擴散模型產生室內空間的2D平面圖,就是使用Transformer模型訓練的。有興趣可以直接看看該研究的論文

結語

今天帶各位分享了DDIM的訓練過程,以及擴散模型的未來展望等等。擴散模型作為最新的模型雖然文獻量還不是很多,還有許多問題尚待探索。但我覺得生成式AI的發展真的非常快,應該過沒多久這些問題就會被解決,或者基於這些模型的其他變種模型就會被發展出來了。總之這些模型的未來發展真的令人可期!

生成模型的介紹到此告一段落,明天會來介紹生成模型常用的指標。每個指標都有自己的特色以及背景,各位在學會以後就可以拿去評估自己的生成模型啦!


上一篇
[Day27]:用DDIM來生成超高質量的圖吧!
下一篇
[Day29]:評估生成模型優劣指標—LPIPS & PSNR & SSIM
系列文
生成式AI到底何方神聖?一窺生程式AI的真面目31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言