你不得不瞭解的深度學習知識(二)

你不得不瞭解的深度學習知識

書接上回,你不得不瞭解的深度學習知識(一),瞭解了卷積神經網絡,以及循環神經網絡。這節把剩下的兩種常見網絡給講述完畢!

3 生成對抗網絡 – Generative Adversarial Networks | GAN

生成對抗網絡 – GAN 是最近2年很熱門的一種無監督算法,他能生成出非常逼真的照片,圖像甚至視頻。我們手機裏的照片處理軟件中就會使用到它。

(1)GAN的設計初衷

一句話來概括 GAN 的設計動機就是——自動化。

深度學習最特別最厲害的地方就是能夠自己學習特徵提取。機器的超強算力可以解決很多人工無法解決的問題。自動化後,學習能力更強,適應性也更強。

人工判斷生成結果的好壞——自動判斷和優化

訓練集需要大量的人工標註數據,這個過程是成本很高且效率很低的。而人工判斷生成結果的好壞也是如此,有成本高和效率低的問題。

而 GAN 能自動完成這個過程,且不斷的優化,這是一種效率非常高,且成本很低的方式。GAN是如何實現自動化的呢?下面我們講解一下他的原理。

(2)生成對抗網絡 GAN 的基本原理

大白話版本:

假設一個城市治安混亂,很快,這個城市裏就會出現無數的小偷。在這些小偷中,有的可能是盜竊高手,有的可能毫無技術可言。假如這個城市開始整飭其治安,突然開展一場打擊犯罪的「運動」,警察們開始恢復城市中的巡邏,很快,一批「學藝不精」的小偷就被捉住了。之所以捉住的是那些沒有技術含量的小偷,是因爲警察們的技術也不行了,在捉住一批低端小偷後,城市的治安水平變得怎樣倒還不好說,但很明顯,城市裏小偷們的平均水平已經大大提高了。

警察們開始繼續訓練自己的破案技術,開始抓住那些越來越狡猾的小偷。隨着這些職業慣犯們的落網,警察們也練就了特別的本事,他們能很快能從一羣人中發現可疑人員,於是上前盤查,並最終逮捕嫌犯;小偷們的日子也不好過了,因爲警察們的水平大大提高,如果還想以前那樣表現得鬼鬼祟祟,那麼很快就會被警察捉住。

爲了避免被捕,小偷們努力表現得不那麼「可疑」,而魔高一尺、道高一丈,警察也在不斷提高自己的水平,爭取將小偷和無辜的普通羣衆區分開。隨着警察和小偷之間的這種「交流」與「切磋」,小偷們都變得非常謹慎,他們有着極高的偷竊技巧,表現得跟普通羣衆一模一樣,而警察們都練就了「火眼金睛」,一旦發現可疑人員,就能馬上發現並及時控制——最終,我們同時得到了最強的小偷和最強的警察。

非大白話版本

生成對抗網絡(GAN)由2個重要的部分構成:

  • 生成器(Generator):通過機器生成數據(大部分情況下是圖像),目的是“騙過”判別器
  • 判別器(Discriminator):判斷這張圖像是真實的還是機器生成的,目的是找出生成器做的“假數據”

詳細過程:

  • 第一階段:固定「判別器D」,訓練「生成器G」

我們使用一個還 OK 判別器,讓一個「生成器G」不斷生成“假數據”,然後給這個「判別器D」去判斷。

一開始,「生成器G」還很弱,所以很容易被揪出來。

但是隨着不斷的訓練,「生成器G」技能不斷提升,最終騙過了「判別器D」。

到了這個時候,「判別器D」基本屬於瞎猜的狀態,判斷是否爲假數據的概率爲50%。

  • 第二階段:固定「生成器G」,訓練「判別器D」

當通過了第一階段,繼續訓練「生成器G」就沒有意義了。這個時候我們固定「生成器G」,然後開始訓練「判別器D」。

「判別器D」通過不斷訓練,提高了自己的鑑別能力,最終他可以準確的判斷出所有的假圖片。

到了這個時候,「生成器G」已經無法騙過「判別器D」。

  • 循環階段一和階段二

通過不斷的循環,「生成器G」和「判別器D」的能力都越來越強。

最終我們得到了一個效果非常好的「生成器G」,我們就可以用它來生成我們想要的圖片了。

(3)GAN的優缺點

3個優勢:

  • 能更好建模數據分佈(圖像更銳利、清晰)

  • 理論上,GANs 能訓練任何一種生成器網絡。其他的框架需要生成器網絡有一些特定的函數形式,比如輸出層是高斯的。

  • 無需利用馬爾科夫鏈反覆採樣,無需在學習過程中進行推斷,沒有複雜的變分下界,避開近似計算棘手的概率的難題。

2個缺陷:

  • 難訓練,不穩定。生成器和判別器之間需要很好的同步,但是在實際訓練中很容易D收斂,G發散。D/G 的訓練需要精心的設計。

  • 模式缺失(Mode Collapse)問題。GANs的學習過程可能出現模式缺失,生成器開始退化,總是生成同樣的樣本點,無法繼續學習。

(4)GAN算法

如果你對 GANs 算法感興趣,可以在 gan動物園 裏查看幾乎所有的算法。

(5)GAN的實際應用

生成圖像數據集

人工智能的訓練是需要大量的數據集的,如果全部靠人工收集和標註,成本是很高的。GAN 可以自動的生成一些數據集,提供低成本的訓練數據。

圖像到圖像的轉換

簡單說就是把一種形式的圖像轉換成另外一種形式的圖像,就好像加濾鏡一樣神奇。

文字到圖像的轉換

在2016年標題爲“ StackGAN:使用 StackGAN 的文本到逼真照片的圖像合成 ”的論文中,演示了使用 GAN,特別是他們的 StackGAN,從鳥類和花卉等簡單對象的文本描述中生成逼真的照片。

自動生成模特

在2017年標題爲“ 姿勢引導人形象生成 ”的論文中,可以自動生成人體模特,並且使用新的姿勢。

照片到Emojis

GANs 可以通過人臉照片自動生成對應的表情(Emojis)。

預測不同年齡的長相

給一張人臉照片, GAN 就可以幫你預測不同年齡階段你會長成什麼樣。

提高照片分辨率,讓照片更清晰

給GAN一張照片,他就能生成一張分辨率更高的照片,使得這個照片更加清晰。

照片修復

假如照片中有一個區域出現了問題(例如被塗上顏色或者被抹去),GAN可以修復這個區域,還原成原始的狀態。

自動生成3D模型

給出多個不同角度的2D圖像,就可以生成一個3D模型。

4 強化學習-Reinforcement learning | RL

(1) 什麼是強化學習

強化學習並不是某一種特定的算法,而是一類算法的統稱。

強化學習算法的思路非常簡單,以遊戲爲例,如果在遊戲中採取某種策略可以取得較高的得分,那麼就進一步「強化」這種策略,以期繼續取得較好的結果。這種策略與日常生活中的各種「績效獎勵」非常類似。我們平時也常常用這樣的策略來提高自己的遊戲水平。

在 Flappy bird 這個遊戲中,我們需要簡單的點擊操作來控制小鳥,躲過各種水管,飛的越遠越好,因爲飛的越遠就能獲得更高的積分獎勵。

這就是一個典型的強化學習場景:

  • 機器有一個明確的小鳥角色——代理
  • 需要控制小鳥飛的更遠——目標
  • 整個遊戲過程中需要躲避各種水管——環境
  • 躲避水管的方法是讓小鳥用力飛一下——行動
  • 躲避水管的方法是讓小鳥用力飛一下——行動

(2) 強化學習的主流算法

免模型學習(Model-Free) vs 有模型學習(Model-Based)

強化學習算法的2大分類。這2個分類的重要差異是:智能體是否能完整了解或學習到所在環境的模型

有模型學習(Model-Based)對環境有提前的認知,可以提前考慮規劃,但是缺點是如果模型跟真實世界不一致,那麼在實際使用場景下會表現的不好。

免模型學習(Model-Free)放棄了模型學習,在效率上不如前者,但是這種方式更加容易實現,也容易在真實場景下調整到很好的狀態。所以免模型學習方法更受歡迎,得到更加廣泛的開發和測試。

免模型學習 – 策略優化(Policy Optimization)

免模型學習 – Q-Learning

有模型學習 – 純規劃

有模型學習 – Expert Iteration

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章