DeepMind近期發表了一篇論文,這篇論文里給我們展示了通用AI到底是個什么樣子的。
在人工智能和神經網絡的研究領域,遷移學習(Transfer Learning)一直是一大難題。
遷移學習是什么?實際上它來源于一個1901年提出的教育心理學概念。
其探究的是個體一個概念的學習如何對具有類似特征的另一個概念的學習產生遷移,而放在人工智能領域就是把已學訓練好的模型參數遷移到新的模型來幫助新模型訓練數據集。
舉個例子:如果一個神經網絡能夠識別小型轎車,那將它所學習到的知識運用到相差不大但并不一樣的卡車身上就是學習的遷移。
DeepMind 發布的論文(全文在此)用了他們稱為 PathNet 的方法來研究遷移學習。
簡單講PathNet就是一批神經網絡組成的神經網絡,DeepMind 使用了隨機梯度下降法(Stochastic gradient descent)和遺傳選育(Selection)的方法。
PathNet 將一層層的神經網絡單元組合起來,每一層可以是不同的神經網絡:卷積、前饋、遞歸等等諸如此類的。
DeepMind 的訓練使用了 Pong 和 Alien 兩個小游戲,上圖分為兩部分,上半部分的九塊圖展示的是PathNet在九個不同階段的成果。
下半部分是PathNet的游戲分數變化,可以看到PathNet拿到的游戲分數趨勢是很樂觀的。
在這個實驗中,他們使用的是 Advantage Actor-critic 及 A3C 兩種算法。
所以 DeepMind 是怎么做的呢?
首先,我們需要一些定義:L 代表 PathNet 的層數,N 是每層神經網絡最大的單元數(論文中 DeepMind 的N最大是3或4)。
其中最后的一層神經網絡的密度很大,但不和其他部分進行分工。因為使用 A3C,最后這層代表的是價值功能和評估。
定義完成之后,PathNet 會生成 P 型基因(P 代表 pathway,即路徑)。由于 A3C 算法的異步性,神經網絡中多個部分會對其它部分生成的基因型進行評估。
經過一段時間之后,神經網絡會挑選一些 P 進行對比,其中更好效果的P會被留下繼續訓練。
而P被訓練的方式是反向傳播(Backpropagation)結合隨機梯度下降,每次的每條都是如此,這保證了時間不會過長。
在使用舊的任務訓練完成神經網絡后,就要開始新的任務,遷移學習開始了。
在掌握一項任務后,神經網絡會調整參數到最優路徑,其他參數都會被重置,否則 PathNet 在新任務中的表現會很糟糕。
使用A3C之后,舊任務的最優路徑在運用到新任務的時候不會被反向傳播算法影響,以此來確保神經網絡學習的知識不被清除。
上圖的最左一列是 PathNet 完成的任務,最上面一行是新的任務,相交的藍色框部分是 PathNet 在完成舊任務之后將知識運用到新任務所得到的結果。
簡單來說藍色的部分是不理想的,顏色越深效果越差;綠色代表積極的分數,顏色越深結果越好。
可以看到不是每次訓練都能得到好的結果,但綠色仍然是遠多于藍色的。