在生成對抗網路中,生成器和判別器同時進行訓練。 如果訓練不當,兩個網路可能會相互壓倒。 如果鑑別器經過的訓練超過它能夠輕鬆檢測假影象和真實影象,則生成器將無法生成真實影象。 如果生成器經過大量訓練,鑑別器將無法區分真假影象。 我們可以通過正確設定兩個網路的學習習率來解決這個問題。
當我們訓練乙個判別器時,我們不訓練生成器,當我們訓練生成器時,我們不訓練判別器。 這樣可以正確訓練生成器。 現在,讓我們看一下氮化鎵網路的每個部分。
鑑別器網路:
我們使用影象形狀為 (28, 28, 1) 的 MNIST 數字資料集。 由於影象尺寸較小,我們可以使用 MLP 網路作為判別器,而不是使用卷積層。 為此,我們首先需要將輸入重塑為大小為 (784, 1) 的單個向量。 然後,我在每層中應用了三個密集層和 128 個隱藏單元。
發電機網路:
為了建立生成器網路,我們首先將隨機雜訊作為形狀 (100, 1) 的輸入。 然後我使用了三個隱藏的形狀層和 1024。 然後,發電機網路的輸出被重塑為 (28, 28, 1)。 我對每個隱藏層都有批量歸一化。 批量歸一化可以提高訓練模型的質量,穩定訓練過程。
組合型號:
為了訓練生成器,我們需要建立乙個復合模型,其中不訓練判別器模型。 在組合模型中,隨機雜訊作為生成器網路的輸入,然後輸出影象通過判別器網路獲得標籤。 在這裡,我將判別器模型標記為不可訓練。
訓練氮化鎵網路:
訓練 GaN 網路需要仔細調整超引數。 如果不仔細訓練模型,它將無法收斂以產生良好的結果。 我們將使用以下步驟來訓練這個 GaN 網路:
首先,我們將對輸入資料集(MNIST 影象)進行歸一化。
使用真實世界的影象(來自 MNIST 資料集)訓練鑑別器。
對相同數量的雜訊向量進行取樣,以產生生成器網路的輸出(此處未對生成器進行訓練)。
使用上一步中生成的影象訓練判別器網路。
取乙個新的隨機樣本,在不訓練判別器的情況下,使用組合模型訓練構建器。
重複步驟 2-5 進行一定次數的迭代。 我已經訓練了它 30000 次迭代。
檢視此 GaN 網路生成的影象。
AI助手創作季