前面幾天我們把卷積神經網路了解基本的原理後,緊接著要介紹的是生成對抗網路!
生成對抗網路(Generative Adversarial Network,我們簡稱GAN)是一種由兩個神經網路組成的機器學習框架,我們分別稱為生成器(Generator)還有判別器(Discriminator)。
GAN的概念最早是由Ian Goodfellow等人在2014年的時候提出,它主要目的是讓生成器學會創建類似真實數據的數據,然後判別器則是學會區分生成數據和真實數據。
工作原理
1.生成器(Generator)
生成器的目標是學會創建模擬像真實數據的合成數據。它從一個隨機的噪聲向量開始,通過一系列的神經網路層,接著生成與訓練數據集相似的數據。生成器不會直接與真實數據交互,而是嘗試騙過判別器,使其無法區分生成的數據和真實數據。
2.判別器(Discriminator)
判別器是一個二元分類器,很有趣的是跟前者相反,它的目標是區分真實數據和生成數據。我們給它一組數據,它會輸出一個概率,表示該數據是否為真實數據。隨著訓練的進行,判別器不斷提升自己辨別真假數據的能力,然後就會給生成器帶來更大的挑戰。
3.訓練的過程
GAN的訓練是一個對抗過程。生成器會想生成愈加逼真的數據來欺騙判別器,而判別器則不斷改進,努力分辨出哪個是真實數據,哪個是生成數據。這種對抗性的過程會一直進行,直到生成器生成的數據與真實數據難以區分,判別器也無法有效區分兩者。
今天的我覺得很有趣,兩兩個學習框架不斷互相切磋,然後彼此一起變得強,就像同學之間互相較勁一樣,太神奇了!我們明天再來介紹損失函數,以及他在現實的應用吧!