農林漁牧網

您現在的位置是:首頁 > 農業

迴圈生成網路 CycleGan 原理介紹

2022-04-07由 deephub 發表于 農業

加權因子怎麼計算

本文旨在解釋“迴圈生成網路”的內部工作原理,以及如何將其應用於解決現實世界中的任務。

介紹

迴圈生成對抗網路(簡稱CycleGans)[1]是功能強大的計算機演算法,具有改善數字生態系統的潛力。 它們能夠將資訊從一種表示形式轉換為另一種表示形式。 例如,當給定影象時,他們可以對其進行模糊處理,著色(如果其最初是黑白的),提高其清晰度或填補缺失的空白。

它們比傳統的設計/生產/寫作軟體更強大。 因為CycleGans是機器學習演算法,所以它們原則上可以學習實現所需的任何轉換。 相反,傳統的轉換軟體(例如Photoshop)通常經過編碼和開發以執行特定任務。 而且,CycleGans可以從現有的軟體獲得更高的效能,因為它們可以從資料中學習並隨著收集的資料的增加而提高效果。

瞭解CycleGans不同級別的工作原理和能力令人興奮,下面還介紹了有關人工智慧如何以前所未有的方式影響我們日常的見解。

生成對抗網路

在討論CycleGans之前,讓我們簡要討論常規的生成對抗網路。

生成對抗網路(簡稱GAN)[2]是能夠建立資料的機器學習演算法。 當向他們提供諸如影象,聲音或文字之類的資訊時,他們學會生成新的外觀/聲音相似的輸出。 例如:給定一組人臉影象,該演算法可以自學(透過機器學習資料進行訓練)人臉的外觀,並能夠建立新人臉。

CycleGAN是傳統GAN的特殊變體。 他們也可以建立新的資料樣本,但是透過轉換輸入樣本來實現,而不是從頭開始建立。 換句話說,他們學會了從兩個資料來源轉換資料。 這些資料可由提供此演算法資料集的科學家或開發人員進行選擇。 在兩個資料來源是狗的圖片和貓的圖片的情況下,該演算法能夠有效地能夠將貓的影象轉換為狗的影象,反之亦然。

他們是怎麼做到的呢?

什麼是CycleGan?

CycleGan是一個神經網路,可以學習兩個域之間的兩個資料轉換函式。 其中之一是G(x)。 它將給定樣本x∈X轉換為域Y的元素。第二個是F(y),它將樣本元素y∈Y轉換為域X的元素。

迴圈生成網路 CycleGan 原理介紹

兩個GAN,一個CycleGAN

為了學習F和G,使用了兩個傳統的GAN。 每個GAN內部都有一個生成器網路,該網路學習如何根據需要轉換資料。 GAN的第一生成器學習計算F,GAN的第二生成器學習計算G。

迴圈生成網路 CycleGan 原理介紹

生成器函式G和F的定義。

此外,每個生成器都與一個鑑別器相關聯,該鑑別器學習將實際資料y與合成數據G(x)區分開。

迴圈生成網路 CycleGan 原理介紹

生成器函式G和F的定義。

因此,CycleGAN由兩個生成器和兩個鑑別器組成,它們學習變換函式F和G。此結構顯示在下圖中:

迴圈生成網路 CycleGan 原理介紹

CycleGan表示形式。 它由兩個GAN組成,它們學習兩個轉換。

每個GAN網路的損失函式

每個GAN生成器將透過最小化損失來學習其對應的變換函式(F或G)。 透過測量生成的資料與目標資料的差異(例如,將貓的生成影象與真實貓的影象進行比較的差異)來計算生成器損失。 差異越大,生成器將受到的處罰越高。

鑑別器損失也用於訓練鑑別器,以擅長區分真實資料和合成資料。

當這兩個設定在一起時,它們將彼此改善。 訓練生成器來欺騙鑑別器,並且鑑別器將被訓練為從合成數據中更好地區分真實資料。 結果,生成器將非常擅長建立/轉換所需資料(學習所需轉換,例如F)。

總體而言,GAN損失看起來像:

迴圈生成網路 CycleGan 原理介紹

單個GAN損失的定義。 D是鑑別函式,G是生成函式。

對於第二個生成器-鑑別器對,可以寫出類似的損失:

迴圈生成網路 CycleGan 原理介紹

CycleGAN將嘗試最小化兩個GAN損失的總和,以變換F和G。

迴圈變換一致性

理想情況下,我們希望CycleGAN學習週期一致的變換函式F和G。 這意味著,在給定輸入x的情況下,我們希望前後變換F(G(x))= x‘準確地輸出原始輸入x。 從理論上講這應該是可能的,因為在輸入x上應用G將在Y域中輸出一個值,而在輸入y上應用F將在X域中輸出一個值。

週期一致性減少了這些網路可以學習的對映的可能集合,並迫使F和G進行相反的轉換。 想象一下,學習的函式F透過修改貓的耳朵將貓圖片轉換為狗圖片,而G透過修改貓的鼻子將貓圖片轉換為貓圖片。 儘管這些轉換可以實現目標,但它們並不一致,因為它們對資料應用了不同的更改。 使用週期一致性迫使F和G彼此相反。 這樣,透過修改貓的耳朵將貓圖片轉換為狗圖片,透過以相反的方式將貓耳朵修改為貓圖片。 如果這兩個函式是週期一致的,則它們也是更有意義的對映。

迴圈生成網路 CycleGan 原理介紹

左:輸入x的迴圈一致性損失的直觀表示。 右:輸入y的迴圈一致性損失的直觀表示。

僅使用GAN損失訓練CycleGAN並不能保證保持迴圈的一致性。 因此,額外的迴圈一致性損失被用於強制執行此屬性。 將該損失定義為輸入值x與前向預測F(G(x))以及輸入值y與前向預測G(F(y ))之間的差異。 差異越大,預測與原始輸入的距離就越遠。 理想情況下,我們的網路將這種損失降到最低。

迴圈生成網路 CycleGan 原理介紹

週期一致性損失的定義。 等效於上圖中的視覺表示。

完整損失

用於訓練網路的完整CycleGan損失的函式定義為兩個GAN損失和Cycle一致性損失之和。

加權因子(稱為lambda)用於控制迴圈一致性損失在全部損失中的權重。 權重越高,與其他損失相比,減少迴圈一致性損失就越有意義。

迴圈生成網路 CycleGan 原理介紹

CycleGan全損的定義

經過最佳化以最小化此功能的CycleGAN將能夠學習所需的變換F和G。有關機器學習的訓練細節,將留在我的後續文章中。

結果

CycleGans已經完成了多項任務的測試,並且能夠成功解決它們。 這些任務的一些示例是:

影象轉換

迴圈生成網路 CycleGan 原理介紹

輸入:原始花圖片。 輸出:改進的花卉圖片,並具有焦點和效果。

照片增強功能

:CycleGans經過訓練,可以生成專業的花朵照片,並具有多個級別的聚焦和模糊度,並且可以使用任何照片編輯工具。

迴圈生成網路 CycleGan 原理介紹

輸入:風景圖片。 輸出:將相同的風景替換到不同的藝術風格下。

影象樣式轉換

:CycleGans經過訓練可以改變圖片和藝術品的樣式。 例如,他們已經能夠將照片轉換成梵高風格的相同風景畫。

迴圈生成網路 CycleGan 原理介紹

從冬天到夏天的風景圖片。

季節轉換

:與樣式轉換類似,CycleGAN已用於轉換拍攝照片的季節。 結果令人驚訝,因為許多影象看起來像真實的圖片。

音訊轉換

音樂流派轉移

:蘇黎世聯邦理工大學的研究人員已經能夠訓練CycleGAN,將經典的流行流派音樂歌曲轉換為古典音樂作品[4]。

語音轉換

:日本NTT傳播科學實驗室的研究人員在使用CycleGAN轉換定位者之間的語音登錄檔時,無論性別如何,都顯示出令人印象深刻的結果[5]。

該作品的音訊樣本可以在他們的網站上找到。

其他

CycleGan官方紙質網站提供了在網際網路不同地方發現的其他CycleGAN用例的畫廊。 我希望這些引人入勝的示例能夠鼓勵您進一步瞭解CycleGans,併為它們提供更多有用和有趣的應用程式。

CycleGan問題

儘管CycleGAN在許多上述任務中都取得了明顯的成功,但仍顯示出100%的成功率。 這是他們當前的陷阱:

當從其訓練源中輸入資料時,CycleGans可能會提供意外結果(請參見下圖)。

需要進行幾何更改而不是顏色或對比度的任務會使輸入的更改最小。

迴圈生成網路 CycleGan 原理介紹

用來變換馬匹和斑馬影象的CycleGan並未提供人類的輸入,因此它可以生成任意變換。

進一步的研究可能集中在改進這些領域的工作。 一些策略包括使用更廣泛和更多樣化的資料集,以及使用半監督學習方法。

最後的話

我要感謝並祝賀加州大學伯克利分校AI研究實驗室的朱儁彥,Taesung Park,Phillip Isola和Alexei A。Efros在CycleGans方面所做的工作。 在他們的網站上,您將找到與該專案有關的更多資訊。

我鼓勵您看一下我的GANs儲存庫,在那裡您可以找到Python中不同型別的GANs實現,以及在PyTorch和TensorFlow中從頭開始進行中的CycleGan實現。 完成後,我將透過Medium釋出一個教程。

感謝您閱讀本文直到最後。 希望您在學習有關該主題的過程中玩得開心,下一個見。

引用

[1] Jun-Yan Zhu, Taesung Park, Phillip Isola, Alexei A。 Efros, Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks,

[2] Ian J。 Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio, Generative Adversarial Networks, 2014,

[3] Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo Aila, Analyzing and Improving the Image Quality of StyleGAN,

[4] Gino Brunner, Yuyi Wang, Roger Wattenhofer, Sumu Zhao, Symbolic Music Genre Transfer with CycleGAN, )

[5] Takuhiro Kaneko, Hirokazu Kameoka, Kou Tanaka, Nobukatsu Hojo。 CycleGAN-VC2: Improved CycleGAN-based Non-parallel Voice Conversion,

作者:Diego Gomez Mosquera

翻譯:孟翔傑