---
# System prepended metadata

title: 深度學習專題 & 類神經與深度學習進階 week 6 課程筆

---

# 深度學習專題 & 類神經與深度學習進階 week 6 課程筆記

## 一 、 生成對抗式網路(GAN)簡介

![image](https://hackmd.io/_uploads/ByLSx56Rp.png)

GAN全名「生成對抗式網路」（Generative Adversarial Networks），屬於非監督式學習(Unsupervised learning，只需蒐集原始資料不需要做額外的標記)。

架構中包含兩個神經網路，分別為生成器（Generator）和判別器（Discriminator），它們彼此競爭抗衡，透過對抗訓練的方式使得生成器能夠生成逼真的資料、同時訓練判別器判斷樣本真偽的能力。

### GAN的基本工作原理：

1. 生成器（Generator）：生成器接收隨機Z（通常稱為噪音）作為輸入，並試圖生成與訓練資料相似的新資料樣本。它通常由多層神經網路組成，透過反向傳播和梯度下降等技術來調整參數，以改進生成的資料樣本(期望生成愈逼真的新樣本愈好，也就是說希望生成的新樣本能夠逼真到「騙過」判別器)。

1. 判別器（Discriminator）：判別器則是一個二元分類器，接收真實資料和生成器生成的資料作為輸入，並試圖區分它們是真實資料還是生成的資料。與生成器一樣，判別器也是通過訓練來調整其參數，以最大程度地提高準確性。

## 二、 深入了解GAN
### GAN的訓練過程如下：

1. 生成器通過將隨機噪音轉換為資料樣本來生成資料。
1. 判別器評估這些生成的新樣本，並判斷新樣本的真偽。
1. 根據判別器的反饋，生成器調整自身以生成更逼真的資料，使得判別器難以區分生成的資料和真實資料。
1. 同時，判別器也在訓練中更新自身的參數，以更好地區分生成的資料和真實資料。也就是生成器與判別器都會在訓練過程中調整參數更新能力，一者訓練生成更逼真的假樣本，另一者訓練自己的判斷真偽的能力。
1. 通過交替訓練生成器和判別器，GAN的目標是使得生成器能夠生成與真實資料無法區分的逼真資料樣本。這種競爭性的訓練方式通常能夠產生高品質的生成資料，被廣泛應用於圖像生成、音訊生成、自然語言處理等領域。
2. 訓練過程中會固定權重：訓練判別器時固定生成器，提高判別器準確度；訓練生成器時固定判別器，提高生成器生成逼真樣本，
3. 會一直交替訓練，直到穩定或者效能達到一定水平。

### 深入了解GAN工作原理：
![image](https://hackmd.io/_uploads/S14U7qTCp.png)
![image](https://hackmd.io/_uploads/By0wQ56Ra.png)

## 三、 GAN的難題

如果訓練過程中沒有真實樣本參與訓練、給生成器指導(也就是生成器沒有從真實資料得到啟發、參考)，有可能導致生成器在訓練過程中變得請向生成容易欺騙辨別器的樣本(生成器得過且過，不思進取)，這個問題同時使得生成器忽略其他模式的樣本資料(生成器又笨又懶，生成的樣本單一、不多元)無法涵蓋整個分布範圍，這種現象稱為模式崩潰(Mode Callapse)，而模式崩潰是GAN訓練中最常遇到的挑戰。

除了模式崩潰外還有以下幾點是GAN訓練中的難題：
* 不穩定的訓練，可能發生震盪或者發散的情況(是由於GAN本身的對抗訓練性質，以及模型是高度非線性的)。
* GAN訓練過程中需要不斷地交替更新生成器與判別器，可想而知訓練速度會緩慢，這樣的訓練同時也會需要大量的計算資源與時間。
* 判別器有可能變得過於強大，對抗過程中把生成器壓著打導致生成器的學習變得很慢，也導致生成器無法生出足夠逼真的樣本(判別器太嚴苛了)。這可能會導致生成器陷入局部最佳解，因此限制了模型的能力，這稱為模式匹配。
