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