來(lái)源:Google TensorFlow
文 / Adam Gaier 學(xué)生研究員 和 David Ha 研究員
【新智元導(dǎo)讀】在“權(quán)重?zé)o關(guān)神經(jīng)網(wǎng)絡(luò)”(Weight Agnostic Neural Networks, WANN) 中,谷歌踏出了第一步:使用隨機(jī)共享權(quán)重執(zhí)行各種任務(wù)的神經(jīng)網(wǎng)絡(luò)架構(gòu)。這項(xiàng)工作旨在探索:針對(duì)給定任務(wù),當(dāng)不學(xué)習(xí)任何權(quán)重參數(shù)時(shí),神經(jīng)網(wǎng)絡(luò)架構(gòu)編碼解決方案的表現(xiàn)如何。此外,為促進(jìn)此研究領(lǐng)域的交流,谷歌還開(kāi)放了相關(guān)源代碼,以便更多研究社區(qū)能夠重現(xiàn) WANN 實(shí)驗(yàn)。來(lái)新智元 AI 朋友圈說(shuō)說(shuō)你的觀點(diǎn)~
無(wú)論是圖像分類還是強(qiáng)化學(xué)習(xí),在通過(guò)訓(xùn)練神經(jīng)網(wǎng)絡(luò)來(lái)完成一項(xiàng)給定任務(wù)時(shí),都需要對(duì)神經(jīng)網(wǎng)絡(luò)中每個(gè)連接的權(quán)重進(jìn)行調(diào)優(yōu)。
而在創(chuàng)建有效的神經(jīng)網(wǎng)絡(luò)時(shí),另一種行之有效的方法是神經(jīng)架構(gòu)搜索(通過(guò)手工構(gòu)建的組件,如卷積網(wǎng)絡(luò)組件或代碼塊,來(lái)搭建神經(jīng)網(wǎng)絡(luò)架構(gòu))。研究表明,利用這些組件搭建的神經(jīng)網(wǎng)絡(luò)架構(gòu)(如深度卷積網(wǎng)絡(luò))在圖像處理任務(wù)方面具有很強(qiáng)的歸納偏置(inductive biases),甚至能在隨機(jī)初始化權(quán)重的情況下執(zhí)行這些任務(wù)。這種神經(jīng)架構(gòu)搜索提供的新方法雖然可用于為當(dāng)前的任務(wù)域安排具有已知?dú)w納偏置的人工設(shè)計(jì)組件,但對(duì)自動(dòng)發(fā)現(xiàn)具有此類歸納偏置的 新 神經(jīng)網(wǎng)絡(luò)架構(gòu)(用于各類任務(wù)域)則表現(xiàn)效果甚微。
注:神經(jīng)架構(gòu)搜索
https://ai.googleblog/2017/05/using-machine-learning-to-explore.html
卷積網(wǎng)絡(luò)組件
https://ai.googleblog/2018/03/using-evolutionary-automl-to-discover.html
隨機(jī)初始化
https://arxiv.org/abs/1711.10925
我們可以以這些組件的先天和后天為例進(jìn)行類比。在生物學(xué)領(lǐng)域,某些早熟性物種 (precocial species) 天生具有反捕食行為 (anti-predator behaviors),它們無(wú)需學(xué)習(xí)就能進(jìn)行復(fù)雜的運(yùn)動(dòng)和感官活動(dòng)。我們或許能以此構(gòu)建無(wú)需訓(xùn)練就能出色完成任務(wù)的神經(jīng)網(wǎng)絡(luò)。顯然這些自然物種(類比人工神經(jīng)網(wǎng)絡(luò))通過(guò)訓(xùn)練可以進(jìn)一步強(qiáng)化,但這種即使不學(xué)習(xí)也能執(zhí)行任務(wù)的能力表明,它們包含非常適合這些任務(wù)的偏置。
在“權(quán)重?zé)o關(guān)神經(jīng)網(wǎng)絡(luò)”(Weight Agnostic Neural Networks, WANN) 中,我們踏出了專門(mén)搜索具有此類偏置的網(wǎng)絡(luò)的第一步:使用隨機(jī)共享權(quán)重執(zhí)行各種任務(wù)的神經(jīng)網(wǎng)絡(luò)架構(gòu)。這項(xiàng)工作旨在探索:針對(duì)給定任務(wù),當(dāng)不學(xué)習(xí)任何權(quán)重參數(shù)時(shí),神經(jīng)網(wǎng)絡(luò)架構(gòu)編碼解決方案的表現(xiàn)如何。通過(guò)探索此類神經(jīng)網(wǎng)絡(luò)架構(gòu),我們提出一種無(wú)需學(xué)習(xí)權(quán)重參數(shù)就能在其環(huán)境中出色執(zhí)行任務(wù)的智能體。此外,為促進(jìn)此研究領(lǐng)域的交流,我們還開(kāi)放了相關(guān)源代碼,以便更多研究社區(qū)能夠重現(xiàn)我們的 WANN 實(shí)驗(yàn)。
注:權(quán)重?zé)o關(guān)神經(jīng)網(wǎng)絡(luò)
https://weightagnostic.github.io/
左圖:經(jīng)人工設(shè)計(jì)且擁有 2760 個(gè)權(quán)重連接的全連接深度神經(jīng)網(wǎng)絡(luò)。借助某種學(xué)習(xí)算法,我們可以求解出 2760 個(gè)權(quán)重參數(shù)的集合,使該網(wǎng)絡(luò)能夠執(zhí)行 BipedalWalker-v2 任務(wù)。
右圖:僅有 44 個(gè)連接,但能夠執(zhí)行相同 Bipedal Walker 任務(wù)的權(quán)重?zé)o關(guān)神經(jīng)網(wǎng)絡(luò)架構(gòu)。不同于全連接網(wǎng)絡(luò),此 WANN 無(wú)需訓(xùn)練每個(gè)連接的權(quán)重參數(shù)便能執(zhí)行該任務(wù)。實(shí)際上,為簡(jiǎn)化訓(xùn)練,此 WANN 只會(huì)在每個(gè)權(quán)重連接的值相同或共享時(shí) 執(zhí)行任務(wù),即使采用隨機(jī)采樣的共享權(quán)重參數(shù)也不受影響。
注:BipedalWalker-v2
https://gym.openai/envs/BipedalWalkerHardcore-v2/
搜索 WANN
我們從一組最小的神經(jīng)網(wǎng)絡(luò)架構(gòu)候選對(duì)象開(kāi)始(每個(gè)候選對(duì)象只有很少的連接),使用完善的拓?fù)渌阉魉惴?(topology search algorithm, NEAT),進(jìn)而通過(guò)逐個(gè)添加單連接和單節(jié)點(diǎn)來(lái)演化架構(gòu)。WANN 背后的核心理念是通過(guò)弱化權(quán)重的重要性來(lái)進(jìn)行架構(gòu)搜索。與傳統(tǒng)的將所有權(quán)重參數(shù)都通過(guò)學(xué)習(xí)算法進(jìn)行訓(xùn)練得到不同,我們采用了一種更簡(jiǎn)單有效的方法。在搜索過(guò)程中,我們先在每次迭代時(shí)為所有候選架構(gòu)分配一個(gè)共享權(quán)重值,然后對(duì)其進(jìn)行優(yōu)化,以期通過(guò)更大范圍的共享權(quán)值來(lái)獲得更好的表現(xiàn)。
注:拓?fù)渌阉魉惴?/p>
nn.cs.utexas.edu/?stanley:ec02
用于搜索網(wǎng)絡(luò)拓?fù)淇臻g的算子
左圖:最小的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),輸入和輸出僅部分連接。
中間圖:網(wǎng)絡(luò)的三種更改方式:
(1) 插入節(jié)點(diǎn):通過(guò)拆分現(xiàn)有連接插入新節(jié)點(diǎn)。
(2) 添加連接:通過(guò)連接兩個(gè)先前未連接的節(jié)點(diǎn)來(lái)添加新連接。
(3) 更改激活:重新分配隱藏節(jié)點(diǎn)的激活函數(shù)。
右圖:支持的激活函數(shù)(線性函數(shù)、階躍函數(shù)、正弦函數(shù)、余弦函數(shù)、高斯函數(shù)、正切函數(shù)、Sigmoid 函數(shù)、反函數(shù)、絕對(duì)值函數(shù)、ReLU 函數(shù))
除了探索各類權(quán)重?zé)o關(guān)神經(jīng)網(wǎng)絡(luò)之外,我們還必須尋找能滿足所需的復(fù)雜網(wǎng)絡(luò)架構(gòu)。為此,我們利用多目標(biāo)優(yōu)化 (multi-objective optimization) 技術(shù)同時(shí)優(yōu)化網(wǎng)絡(luò)的性能和復(fù)雜度。
權(quán)重?zé)o關(guān)神經(jīng)網(wǎng)絡(luò)搜索以及用于搜索網(wǎng)絡(luò)拓?fù)淇臻g的相應(yīng)算子概覽
訓(xùn)練 WANN 架構(gòu)
與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)不同的是,我們只需找到單個(gè)最優(yōu)性能的最佳共享權(quán)重參數(shù),便能輕松訓(xùn)練 WANN。如下例所示,在使用恒定權(quán)重執(zhí)行 swing-up cartpole 任務(wù)時(shí),我們的架構(gòu)可以發(fā)揮一定作用:
注:Swing-up Cartpole 任務(wù)
underactuated.csail.mit.edu/underactuated.html?chapter=acrobot
在不同權(quán)重參數(shù)下執(zhí)行 swing-up cartpole 任務(wù) WANN,以及使用微調(diào)權(quán)重參數(shù)的 WANN
如上圖所示,雖然 WANN 可使用一系列共享權(quán)重參數(shù)來(lái)執(zhí)行任務(wù),但其性能通常仍無(wú)法與學(xué)習(xí)每個(gè)連接權(quán)重的神經(jīng)網(wǎng)絡(luò)相比。
如果想進(jìn)一步提高其性能,我們可以先使用 WANN 架構(gòu)和最佳共享權(quán)重, 然后像神經(jīng)網(wǎng)絡(luò)的常規(guī)訓(xùn)練方法一樣, 通過(guò)學(xué)習(xí)算法微調(diào)每個(gè)連接的權(quán)重。這種先使用網(wǎng)絡(luò)架構(gòu)的權(quán)重?zé)o關(guān)特性,然后通過(guò)學(xué)習(xí)微調(diào)其性能的方法有助于為研究動(dòng)物的學(xué)習(xí)方式提供有參考價(jià)值的類比。
注:動(dòng)物的學(xué)習(xí)方式
https://nature/articles/s41467-019-11786-6
通過(guò)針對(duì)性能和網(wǎng)絡(luò)簡(jiǎn)單性使用多目標(biāo)優(yōu)化,我們找到了一種適用于像素賽車任務(wù)(https://gym.openai/envs/CarRacing-v0/)的簡(jiǎn)單 WANN,該網(wǎng)絡(luò)無(wú)需顯式權(quán)重訓(xùn)練即可出色執(zhí)行任務(wù)
使用隨機(jī)權(quán)重的神經(jīng)網(wǎng)絡(luò)架構(gòu)不僅能執(zhí)行任務(wù),而且還具有其他優(yōu)勢(shì)。例如,通過(guò)使用相同 WANN 架構(gòu)的副本,但為 WANN 的每個(gè)副本分配不同的權(quán)重值,我們可以為同一任務(wù)創(chuàng)建多個(gè)不同模型組成的集合。相較于單個(gè)模型,此類集合通常具有更好的性能。為證明這一點(diǎn),我們給出下方 MNIST 分類器使用隨機(jī)權(quán)重的演化示例:
注:MNIST
yann.lecun/exdb/mnist/
MNIST 分類器使用隨機(jī)權(quán)重的演化過(guò)程
傳統(tǒng)隨機(jī)初始化的網(wǎng)絡(luò)在 MNIST 上的精度約為 10%,但針對(duì) MNIST,這種使用隨機(jī)權(quán)重的特殊網(wǎng)絡(luò)架構(gòu)卻能實(shí)現(xiàn)精度高于隨機(jī)初始化網(wǎng)絡(luò)(高于 80%)。當(dāng)使用 WANN 集合并為其中每個(gè) WANN 分配不同的共享權(quán)重時(shí),精度甚至能夠升至 90% 以上。
即使不使用集合方法,我們也可將網(wǎng)絡(luò)中權(quán)重值的數(shù)量壓縮為 1,從而能夠快速調(diào)整網(wǎng)絡(luò)。在持續(xù)的終身學(xué)習(xí)中,快速微調(diào)權(quán)重的能力也有助于智能體在整個(gè)生命周期內(nèi)獲得、適應(yīng)和轉(zhuǎn)移技能。這使得 WANN 特別適合鮑德溫效應(yīng) (Baldwin effect),這種進(jìn)化壓力會(huì)傾向于學(xué)習(xí)有用行為的個(gè)體,避免陷入“學(xué)會(huì)學(xué)習(xí)”這個(gè)代價(jià)高昂的計(jì)算陷阱。
注:進(jìn)化壓力
cs.toronto.edu/~hinton/absps/maynardsmith.pdf
結(jié)論
我們希望以此項(xiàng)工作為基石,促進(jìn)發(fā)現(xiàn)更多新的基礎(chǔ)神經(jīng)網(wǎng)絡(luò)組件,如卷積網(wǎng)絡(luò),其發(fā)現(xiàn)和應(yīng)用已為深度學(xué)習(xí)領(lǐng)域做出巨大貢獻(xiàn)。自發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)以來(lái),研究領(lǐng)域可用的計(jì)算資源有了顯著增加。如果此類資源的增加能促進(jìn)網(wǎng)絡(luò)架構(gòu)的自動(dòng)發(fā)現(xiàn)并有望實(shí)現(xiàn)網(wǎng)絡(luò)架構(gòu)的革命性改進(jìn),我們認(rèn)為,使用新的構(gòu)建塊(而不僅僅是其安排)進(jìn)行搜索也值得一試。
如果您有興趣了解這項(xiàng)工作的更多相關(guān)內(nèi)容,歡迎閱讀我們的互動(dòng)文章(或離線閱讀 pdf 版本的論文)。除了將這些實(shí)驗(yàn)面向研究社區(qū)開(kāi)源之外,我們還公開(kāi)了一個(gè)名為 PrettyNEAT 的通用 Python 實(shí)現(xiàn),旨在幫助有興趣的讀者從基本原理開(kāi)始了解神經(jīng)網(wǎng)絡(luò)。
注:互動(dòng)文章
https://weightagnostic.github.io/
pdf 版本論文
https://arxiv.org/abs/1906.04358
PrettyNEAT
https://github/google/brain-tokyo-workshop/tree/master/WANNRelease/prettyNEAT


