讓機器自己設計圖片分類器

讓機器自己設計圖片分類器

來自專欄 tzattack Studio

摘要

神經網路已被證明在解決難題方面是有效的,但設計它們的架構可能具有挑戰性,即使僅對圖像分類問題也是如此。我們的目標是最大限度地減少人類參與,因此Google採用進化演算法自動發現此類網路。儘管有大量的計算要求,但實驗結果表明,現在有可能發展模型並使模型的精確率達到去年的最高水平。具體而言,Google採用前所未有的簡單進化技術來發現CIFAR-10和CIFAR-100數據集的模型,從基礎的初始條件開始,達到94.6%(整體的95.6%)和77.0%的準確度。

相關工作

最早的自動構建神經網路的方法是1989年Miller提出的neuro-evolution,最初僅用於演化固定架構的權重。

Stanley和Miikkulainen在2002年的工作表明,使用NEAT演算法同時進化架構是有利的。 NEAT有三種突變:

(i)修改權重,

(ii)在現有節點之間添加連接,

(iii)在拆分現有連接時插入節點。

它還具有將兩個模型重新組合成一個的機制和促進多樣性的策略,稱為適應性共享(Goldberg等,1987)。

進化演算法代表使用便於其目的的編碼的模型 - 類似於自然的DNA。 NEAT使用直接編碼:每個節點和每個連接都存儲在DNA中。

CPPN允許不同尺度的重複特徵的演化。此外,Kim和Rigazio在2015年使用間接編碼來改進最初高度優化的固定架構中的卷積濾波器。

關於權重演變的研究仍在進行中,但更廣泛的機器學習社區默認採用反向傳播來優化神經網路權重。 反向傳播和進化可以像Stanley等人那樣結合起來。 他們的演算法遵循架構突變和權重反向傳播的交替。 同樣,Breuel和Shafait在2010年將此方法用於超參數搜索。 費爾南多等人在2016年也使用反向傳播,允許通過結構修改繼承訓練的權重。

這些方法專註於編碼和進化過程的效率,而不是在規模上。而處理真實的圖片,比如cifar數據集,需要大型的模型才能達到高正確率。

非進化神經探索方法在真實圖片數據集上更成功。

2012年Snoek使用貝葉斯優化來調整固定深度的結構的9個超慘,得到了當時的state-of-the-art。

2016年Zoph 和 Le在一個更深的固定深度的結構上使用強化學習,在那個方法中,一個神經網路稱之為探索者——一次構建一層卷積神經網路——稱之為被探索者。除了調整層的參數,他們還增加或刪除一些跳邊。這樣,再加上一些手動的後期處理,讓他們非常接近了目前的state-of-the-art.

Baker在2016年使用Q-learning去探索一個網路,每一步探索一層,但在他們的方法中,網路層數有探索者決定。這是的系統可以根據使用的數據集的需求來構建深的或者淺的網路。

Google的思路

從基本初始條件開始探索大型模型架構搜索空間,避免使用有關手頭特定數據集的已知良好策略的信息來啟動系統。

使用簡化圖作為DNA,將其轉換為完整的神經網路圖以進行訓練和評估。

一些作用於這種DNA的突變讓人想起NEAT。 然而,一個突變可以插入整個層而不是單個節點,即一次幾十到幾百個節點。

允許刪除層,以便演化過程可以簡化架構以及複雜化。

層參數也是可變的,且沒有規定一小組可能的值來供選擇,以允許更大的搜索空間。

沒有使用適應性共享

使用recombination報告了其他結果,但在大多數情況下僅使用突變。

使用反向傳播來優化權重,這些權重可以通過突變進行繼承。

演化演算法

發展一群模型(人群),模型在單獨驗證數據集上的準確性是衡量個人質量或適應度的指標。每個模型(個人)是一個訓練好的結構。一名工人 - 從該人群中隨機選擇兩個人並比較他們的適合度。

一對中最壞的立即從人口中移除 - 它被殺死了。

選擇最好的一個是家長,即進行複製。這意味著工人創建家長的副本並通過應用變異來修改此副本。

我們將此修改後的副本稱為孩子。 在工人創建孩子之後,它會訓練這個孩子,在驗證集上對其進行評估,然後將其放回到人群中。 孩子然後變得「活著」 - 即可以自由地擔任家長這個角色。

計劃使用隨機個體的重複成對比賽,這使得它成為錦標賽選擇的一個例子(Goldberg&Deb,1991)。使用成對比較而不是整個人口操作可以防止工人在提前完成時怠速。

使用此策略搜索複雜圖像模型的大空間需要大量計算。 為了實現規模,Google開發了一個大規模並行,無鎖的基礎設施。 許多工作人員在不同的計算機上非同步操作。 他們不直接相互溝通。 相反,他們使用存儲填充的共享文件系統。 文件系統包含代表個人的目錄。 對這些個體的操作,例如殺死一個,在目錄上表示為原子重命名。 有時,工人可能會同時修改另一個工人正在操作的個人。 在這種情況下,受影響的工人只需要放棄並再次嘗試。

編碼和變異

在本DNA圖中,頂點表示秩-3張量或激活。張量的兩個維度表示圖像的空間坐標,第三個維度表示多個通道。激活函數應用於頂點,並且可以是:

(i)具有修正線性單元(ReLU)的批量標準化或

(ii)普通線性單元。

圖的邊緣表示身份連接或卷積,並包含定義卷積屬性的可變數值參數。

由於突變的作用,孩子與家長相似但不完全相同。 在每個再現事件中,工人從預定集合中隨機選擇突變。

作用於數值參數的突變在現有值周圍隨機選擇新值。 所有採樣均來自均勻分布。

例如,作用於具有10個輸出通道的卷積的突變將導致具有5到20個輸出通道的卷積(即,原始值的一半到兩倍)。 範圍內的所有值都是可能的。 因此,模型不受限於許多已知效果良好的過濾器。

原則上,任何參數也沒有上限。 例如,所有模型深度都是可以實現的。 由於硬體限制,搜索空間無限制。 參數的密集和無界特性導致探索真正大量可能的架構。

初始情況

每個進化實驗都從一群簡單的個體開始,所有這些都具有0.1的學習率。 他們都是非常糟糕的表演者。 每個初始個體僅構成沒有卷積的單層模型。 這種對初始條件差的有意識的選擇迫使進化自己進行發現。 實驗者主要通過選擇劃分搜索空間的突變來做出貢獻。 總而言之,使用較差的初始條件和較大的搜索空間限制了實驗者的影響。 換句話說,它阻止實驗者「操縱」實驗成功。

計算消耗

對於演化實驗中的每個人,我們計算TF操作在其體系結構中通過一批示例(在其訓練期間(Ft FLOP)和其驗證期間(Fv FLOP))產生的總FLOP。 然後我們為個體分配成本FtNt + FvNv,其中Nt和Nv分別是訓練和驗證批次的數量。 然後,實驗的成本是所有個體成本的總和。

權重繼承

訓練大型模型完成進化的速度極慢。 為了解決這個難題,我們允許孩子儘可能地繼承父母的體重。 即,如果層具有匹配的形狀,則保留權重。 因此,一些突變保留所有權重(如身份或學習率突變),一些保留無(重量重置突變),並且大多數保留一些但不是全部。

實驗和結果

本次實驗最主要回答以下3個問題:

  1. 一個簡單的一次性進化過程可以從瑣碎的初始條件開始,併產生完全訓練的模型,可與手工設計的架構相媲美嗎?
  2. 什麼是結果的可變性,可並行性和計算成本?
  3. 可以在CIFAR-100上應用迭代CIFAR-10的演算法,而不進行任何更改,仍可以生成競爭模型嗎?

上圖展示了演化實驗的進展。 每個點代表人口中的個體。 藍點(較暗,右上角)還活著。 其餘的都被殺了。 這四個圖顯示了發現的體系結構的示例。 這些對應於最好的個體(最右邊)和三個祖先。 通過其驗證準確性選擇最佳個體。 進化有時堆疊卷積而在它們之間沒有任何非線性(「C」,白色背景),這在數學上等同於單個線性操作。 與典型的手工設計架構不同,一些卷積後面跟著一個以上的非線性函數(「C + BN + R + BN + R + ……」,橙色背景)。

這些是從微不足道的初始條件開始的自動發現方法在這些數據集上獲得的最準確的結果。

為了了解結果的可變性,Google重複實驗5次。 在所有5個實驗運行中,通過驗證準確度的最佳模型具有94.6%的測試準確度。 並非所有實驗都達到相同的準確度,但它們接近(μ= 94.1%,σ= 0.4)。 通過驗證準確度可以在一定程度上區分實驗結果的細微差異(相關係數= 0.894)。 所有5個實驗的總計算量為4×1020 FLOP(或每個實驗平均9×1019 FLOP)。 每個實驗分布在250多名並行工人。

最後,Google將神經演化演算法應用於CIFAR-100,沒有任何變化和相同的元參數。 唯一的實驗使用2×10^20 FLOP達到了77.0%的準確度。 Google沒有嘗試其他數據集。 表1顯示CIFAR-10和CIFAR-100結果與現代手工設計的網路相比具有競爭力。

分析

元參數(不被演算法優化的參數)

種群會在一些情況下達到局部最佳狀態。 該最佳值的適應度(即驗證準確度)值在實驗之間變化。 由於並非所有實驗都達到了可能的最高值,因此一些人群正在「陷入」低劣的局部最佳狀態。 這種陷阱受兩個重要的元參數(即未通過演算法優化的參數)的影響。 這些是人口規模和每個人的培訓步驟數。

較大的人群更徹底地探索模型的空間,這有助於達到更好的最佳狀態。

另一個元參數是每個人的訓練步驟的數量T. 精度隨T增加。 較大的T意味著個體需要經歷較少的身份突變以達到給定的訓練水平。

雖然可能會增加人口規模或步數以防止人口形成,也可以釋放已經被困的人口。 例如,提高突變率或重置群體的所有權重效果很好,但計算成本很高。

總結

Google總結了目前大規模訓練演化演算法可以得到以下結論:

  1. 神經演化能夠為兩個具有挑戰性和流行的圖像分類基準構建大型,準確的網路
  2. 神經進化可以在搜索非常大的空間時從微不足道的初始條件開始
  3. 這個過程一旦啟動,就不需要實驗者的參與
  4. 該過程產生完全訓練的模型

參考文獻

[1] E. Real, S. Moore, A. Selle, S. Saxena, Y. L. Suematsu, Q. Le, and A. Kurakin. Large-scale evolution of image classifiers. In International Conference on Machine Learning, 2017.

資助

如果您喜歡我的文章,歡迎關注我的微信公眾號tzattack Studio,以及我的個人微博@仲耀暉tzattack。如果您願意資助我一包辣條,讓我更有激情地寫更多的文章,歡迎長按下方二維碼向我資助,筆者不勝感激。

wxp://f2f0xRrBLYVSm-qmzooZo0tzofId9tyPOqVu (二維碼自動識別)

推薦閱讀:

AI Challenger開賽,用AI挑戰真實世界問題
凈化網路空間,警企合作,阿里巴巴人工智慧鑒黃亮劍
fast.ai創始人:身為機器學習從業者是一種怎樣的體驗
Boosting/AdaBoost —— 多級火箭助推
人工智慧與以太星空ETA的結合:最新優質項目(09-02)

TAG:科技 | 計算機視覺 | 人工智慧演算法 |