成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深度卷積生成對抗網絡實戰

譯文 精選
人工智能 機器學習
據《紐約時報》報道,數據中心90%的能源被浪費,這是因為公司收集的大部分數據從未被分析或以任何形式使用。更具體地說,這被稱為“暗數據(Dark Data)”。

?譯者 | 朱先忠

審校 | 孫淑娟

紅葡萄園(作者:Vincent van Gogh)

據《紐約時報》報道,數據中心90%的能源被浪費,這是因為公司收集的大部分數據從未被分析或以任何形式使用。更具體地說,這被稱為“暗數據(Dark Data)”。

“暗數據”是指通過各種計算機網絡操作獲取的數據,但不以任何方式用于得出見解或進行決策。組織收集數據的能力可能超過其分析數據的吞吐量。在某些情況下,組織甚至可能不知道正在收集數據。IBM估計,大約90%的傳感器和模數轉換產生的數據從未被使用。——維基百科上的“暗數據”定義

從機器學習的角度來看,這些數據對于得出任何見解都沒有用處的關鍵原因之一是缺乏標簽。這使得無監督學習算法對于挖掘這些數據的潛力非常有吸引力。

生成對抗網絡

2014年,Ian Goodfello等人提出了一種通過對抗過程估計生成模型的新方法。它涉及同時訓練兩個獨立的模型:一個生成器模型試圖建模數據分布,另一個鑒別器試圖通過生成器將輸入分類為訓練數據或假數據。

該論文在現代機器學習領域樹立了一塊非常重要的里程碑,為無監督學習開辟了新的途徑。2015年,深度卷積Radford等人發布的??GAN論文??通過應用卷積網絡的原理成功地生成了2D圖像,從而繼續構建了論文中的這一思想。

通過本文,我試圖解釋上述論文中論述的關鍵組件,并使用PyTorch框架來實現它們。

GAN哪些地方引人注目?

為了理解GAN或DCGAN(深度卷積生成對抗網絡:Deep Convolutional Generative Adversarial Networks)的重要性,首先讓我們來了解一下是什么使它們如此流行。

1. 由于大部分真實數據未標記,GAN的無監督學習特性使其非常適合此類用例。

2. 生成器和鑒別器對于具有有限標記數據的用例起到非常好的特征提取器的作用,或者生成附加數據以改進二次模型訓練,因為它們可以生成假樣本而不是使用增強技術。

3. GANs提供了最大似然技術的替代方法。它們的對抗性學習過程和非啟發式成本函數使得它們對強化學習非常有吸引力。

4. 關于GAN的研究非常有吸引力,其結果引起了關于ML/DL影響的廣泛爭論。例如,Deepfake是GAN的一種應用,它可以將人的面部覆蓋在目標人身上,這在本質上是非常有爭議的,因為它有可能被用于邪惡的目的。

5. 最后一點也是最重要的一點是,使用這種網絡很酷,該領域的所有新研究都令人著迷。

整體架構

深度卷積GAN的架構

正如我們前面所討論的,我們將通過DCGAN進行工作,DCGAN試圖實現GAN的核心思想,用于生成逼真圖像的卷積網絡。

DCGAN由兩個獨立的模型組成:一個生成器(G)嘗試將隨機噪聲向量建模為輸入并嘗試學習數據分布以生成假樣本,另一個鑒別器(D)獲取訓練數據(真實樣本)和生成的數據(假樣本),并嘗試對它們進行分類。這兩種模型之間的斗爭就是我們所說的對抗性訓練過程,一方的損失是另一方的利益。

生成器

生成器架構圖

生成器是我們最感興趣的部分,因為它是一個生成假圖像以試圖欺騙鑒別器的生成器。

現在,讓我們更詳細地了解一下生成器的架構。

  1. 線性層:將噪聲矢量輸入到完全連接層中,然后將其輸出變形為4D張量。
  2. 批量歸一化層:通過將輸入歸一化為零均值和單位方差來穩定學習,這避免了梯度消失或爆炸等訓練問題,并允許梯度流過網絡。
  3. 上采樣層:根據我對論文的解釋,其中提到使用上采樣(upsampling),然后在其上應用簡單的卷積層,而不是使用卷積轉置層進行上采樣。但我見過一些人使用卷積轉置,所以具體應用策略由你自己作決定。
  4. 二維卷積層:當我們對矩陣進行上采樣時,我們以1的步長將其通過卷積層,并使用相同的填充,使其能夠從上采樣數據中學習。
  5. ReLU層:本文提到使用ReLU代替LeakyReLU作為生成器,因為它允許模型快速飽和并覆蓋訓練分布的顏色空間。
  6. TanH激活層:本文建議我們使用TanH激活函數來計算生成器輸出,但沒有詳細說明為什么。如果我們不得不作一下猜測的話,這是因為TanH的性質允許模型更快收斂。

其中,層2至層5構成核心生成器塊,可以重復N次以獲得所需的輸出圖像形狀。

下面是我們如何在PyTorch中實現它的關鍵代碼(完整源碼見地址https://github.com/akash-agni/ReadThePaper/blob/main/DCGAN/dcgan.py)。

使用PyTorch框架的生成器實現關鍵代碼

鑒別器

鑒別器架構圖

從圖中易見,鑒別器更像是一個圖像分類網絡,只是做了一些小的調整。例如,它沒有使用任何池層進行下采樣,而是使用了一種稱為跨距卷積層(stride convolutional layer)的特殊卷積層,允許它學習自己的下采樣。

下面,讓我們更詳細地了解一下鑒別器架構。

  1. Concat層:該層將假圖像和真實圖像組合在一個批次中,以提供給鑒別器,但這也可以單獨完成,僅用于獲得生成器損耗。
  2. 卷積層:我們在這里使用跨距卷積(stride convolution),它允許我們在一次訓練中對圖像進行下采樣并學習濾波器。
  3. LeakyReLU層:正如論文所提到的,與原始GAN論文的最大輸出函數相比,它發現Leakyrelus對于鑒別器非常有用,因為它允許更容易的訓練。
  4. Dropout層:僅用于訓練,有助于避免過度擬合。該模型有記憶真實圖像數據的傾向,在這一點上訓練可能崩潰,因為鑒別器不能再被生成器“愚弄”了。
  5. 批量歸一化層:論文提到,它在每個鑒別器塊(第一個除外)的末尾應用批量歸一化。論文提到的原因是,在每個層上應用批量歸一化會導致樣本振蕩和模型不穩定。
  6. 線性層:一個完全連接層,從通過應用的2D批次歸一化層中獲取一個重新定義形狀的向量。
  7. Sigmoid激活層:因為我們正在處理鑒別器輸出的二進制分類,所以做出了Sigmoidd層邏輯選擇。

在該架構中,層2至層5構成鑒別器的核心塊,可以重復N次計算以使模型對于每個訓練數據更復雜。

下面是我們如何在PyTorch中實現它(完整源碼見地址https://github.com/akash-agni/ReadThePaper/blob/main/DCGAN/dcgan.py)。

用PyTorch實現的鑒別器關鍵代碼部分

對抗訓練

我們訓練鑒別器(D)以最大化將正確標簽分配給訓練樣本和來自生成器(G)的樣本的概率,這可以通過最小化log(D(x))來完成。我們同時訓練G以最小化log(1 ? D(G(z))),其中z代表噪聲向量。換句話說,D和G都是使用值函數V (G, D)來玩以下兩人極小極大博弈(two-player minimax game):

對抗性成本函數計算公式

在實際應用環境中,上述方程可能無法為G提供足夠的梯度來很好地學習。在學習的早期,當G較差時,D可以以高置信度拒絕樣本,因為它們與訓練數據明顯不同。在這種情況下,log(1 ? D(G(z)))函數達到飽和。我們不是訓練G以最小化log(1 ? D(G(z))),而是訓練G以最大化logD(G(z))。該目標函數能夠生成動態G和D的相同的固定點,但在學習早期卻提供了更強的梯度計算。——??arxiv論文??

由于我們同時訓練兩個模型,這可能會很棘手,而GAN是出了名的難以訓練,我們將在后面討論的已知問題之一稱為模式崩潰(mode collapse)。

論文建議使用學習率為0.0002的Adam優化器,如此低的學習率表明GAN傾向于非常快地發散。它還使用值為0.5和0.999的一階和二階動量來進一步加速訓練。模型初始化為正態加權分布,平均值為零,標準差為0.02。

下面展示的是我們如何為此實現一個訓練循環(完整源碼見https://github.com/akash-agni/ReadThePaper/blob/main/DCGAN/dcgan.py)。

DCGAN的訓練循環

模式崩潰(Mode Collapse)

理想情況下,我們希望生成器生成各種輸出。例如,如果它生成人臉,它應該為每個隨機輸入生成一個新的人臉。但是,如果發生器產生足夠好的似是而非的輸出從而能夠欺騙鑒別器的話,它可能會一次又一次地產生相同的輸出。

最終,生成器會對單個鑒別器進行過度優化,并在一小組輸出結果之間旋轉(rotate),這種情況稱為“模式崩潰”。

以下方法可用于糾正該情況。

  1. Wasserstein損失函數法(Wasserstein loss):Wasserstin損失函數通過讓您將鑒別器訓練到最優而無需擔心梯度消失,從而減輕模式崩潰。如果鑒別器沒有陷入局部極小值,它會學習拒絕生成器穩定的輸出。因此,生成器必須嘗試新的東西。
  2. 展開GAN法(Unrolled GANs):展開GAN使用生成器損失函數,該函數不僅包含當前鑒別器的分類,還包含未來鑒別器版本的輸出。因此,生成器不能針對單個鑒別器進行過度優化。

應用

  1. 風格轉換:面部修飾應用程序現在都在大肆宣傳。其中,面部老化、哭臉和名人臉變形等只是當前社交媒體上已經廣泛流行的一部分應用程序而已。
  2. 視頻游戲:3D對象的紋理生成和基于圖像的場景生成只是幫助視頻游戲行業更快開發更大游戲的一部分應用程序。
  3. 電影行業:CGI(計算機合成圖像)已經成為模型電影的一大組成部分,憑借GAN帶來的潛力,電影制作人現在可以實現比以往更大的夢想。
  4. 語音生成:一些公司正在使用GAN來改進文本到語音的應用,通過使用它們來生成更真實的語音。
  5. 圖像恢復:使用GANs對受損圖像進行去噪和恢復,對歷史圖像進行著色,并通過生成缺失幀來改進舊視頻,以提高幀率。

結論

總之,本文上面提到的有關GAN和DCGAN的論文簡直稱的上是一篇里程碑式的論文,因為它在無監督學習方面開辟了一條新的途徑。其中提出的對抗式訓練方法為訓練模型提供了一種新的方法,該模型緊密模擬真實世界的學習過程。因此,了解一下這個領域是如何發展的將是一件非常有趣的事情。

最后,您可以在我的??GitHub源碼倉庫??上找到本文示例工程完整的實現源碼。

譯者介紹

朱先忠,51CTO社區編輯,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:??Implementing Deep Convolutional GAN??,作者:Akash Agnihotri

責任編輯:華軒 來源: 51CTO
相關推薦

2023-10-31 10:33:35

對抗網絡人工智能

2020-05-28 10:45:36

機器學習人工智能 PyTorch

2024-04-01 08:00:00

2021-03-12 10:40:46

CycleGAN網絡圖像深度學習

2022-11-28 08:47:33

AI圖片GAN

2017-05-10 14:32:31

神經網絡網絡架構模型

2023-07-04 09:49:50

人工智能GAN

2017-10-23 06:36:27

生成對抗網絡架構訓練技巧

2018-07-11 10:46:05

人工智能計算機視覺面部屬性

2020-05-21 14:05:59

人工智能機器學習技術

2018-07-04 09:10:54

人工智能機器人側臉

2022-08-24 09:00:00

深度可分離卷積運算模型

2020-10-22 17:56:40

神經網絡生成式對抗網絡

2017-09-11 17:16:35

2024-08-09 08:12:35

深度學習VAEsGANs

2022-01-05 07:53:03

訪問控制網絡犯罪網絡安全

2022-08-02 07:25:48

對抗網絡數據生成Python

2021-08-02 19:39:51

網絡測試路由器

2018-06-04 10:39:39

人工智能深度學習

2017-05-08 22:40:55

深度學習自編碼器對抗網絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 少妇精品亚洲一区二区成人 | 成人免费在线小视频 | 亚洲国产aⅴ精品一区二区 免费观看av | 精品日韩在线 | 中文字幕在线三区 | 欧美黑人一区 | 免费一级淫片aaa片毛片a级 | 精品一区二区三区在线观看国产 | 日本精品视频在线观看 | 国产精品国产馆在线真实露脸 | 亚洲欧美视频 | 毛片网站在线观看视频 | 国产区精品在线观看 | 免费黄网站在线观看 | 欧美h视频| 国产最新精品视频 | 在线观看成人小视频 | 亚洲a在线观看 | 自拍偷拍亚洲欧美 | 亚洲精品视频导航 | 欧美日韩综合一区 | 免费能直接在线观看黄的视频 | 国产精品久久久久久238 | 欧美日韩国产高清视频 | 久久精品国产99国产精品 | 国产精品亚洲一区 | 免费成人高清在线视频 | 天天操天天干天天爽 | 极品销魂美女一区二区 | 福利社午夜影院 | 中文字幕一区二区三区精彩视频 | 久久精品一区 | 久久久精品影院 | 日本特黄特色aaa大片免费 | 国产精品久久国产精品 | 亚洲欧洲精品成人久久奇米网 | 亚洲精品在线91 | 视频在线一区二区 | 中文日韩字幕 | 黄网站色大毛片 | 成人日批视频 |