新穎訓練方法——用迭代投影算法訓練神經網絡
首發地址:https://yq.aliyun.com/articles/72738
:Jesse Clark
研究相位恢複的物理學家、數據科學家,有著豐富的建設網站與設計手機應用的經驗,在創業公司有著豐富的經驗,對創業有著極大的熱情。
Github: https://github.com/jn2clark
Linkedin: https://www.linkedin.com/in/j3ss3cl4rk
相位恢複(PR)關心的是在給定幅度信息以及受到實空間限製下,找到複值函數(通常在傅立葉空間中)的相位。
PR是一個非凸優化問題,已經成為大量工作[1,2,3,4,5,6,9]的主題,並且成為結晶學的支柱,是結構生物學的中堅力量。
下麵顯示的是PR重建過程的一個例子,展示了3D彌散數據(傅裏葉幅度)重構實空間3D密度的納米晶體[15]。
大多PR問題的成功算法是基於投影的方法,這是受到了凸優化投影到凸集上的啟發。由於基於投影的方法在PR上取得了成功,探索能否使用類似的方法訓練神經網絡。
凸集投影(POCS)是找到凸集之間交點的有用方法。上麵顯示了一個簡單的例子,其中兩個凸約束集C1(紅色)和C2(藍色)。通過簡單的迭代映射連續地投影每個集合來找到交集:
其中P是各自的集合上的投影。投影是冪等PP=P,並且是距離最小化;
P(x)=y以至於最小;
當滿足下式的時候,能夠發現解決方案:
當約束集為非凸時,很少能得出一般結論。因此,使用簡單的交替投影可能會導致局部最小值的停滯。下麵展示一個例子,其中集合被設置為非凸,找到交集(全局極小值)的能力高度依賴於初始猜測值。
盡管集合在不為凸的情況下失去了保障,但投影方法被證明是尋找非凸優化問題解決方案的一種有效方法。例子包括數獨、n皇後問題、圖形著色和相位檢索等[4,10]。
最成功的非凸投影算法之一是差分圖(DM)[4,8],可以寫成
其中
其中y1和y2被稱為估計。一旦達到定點:
這意味著兩個估計等價於解決方案;
差異圖通過作為泛化或等價特定超參數,關聯了PR文獻中許多的不同算法,不於上述形式,簡單版本的差異圖經常被使用:
這種更簡單的版本通常表現良好,並減少每次迭代所需的投影數量(投影的順序也可以切換)。公式中的2P2-I項也被稱為反射操作,出現在許多投影算法中[9]。
同樣的非凸問題如下圖所示,但使用差分映射算法後不會被困在局部最小值中,而是能夠逃脫並搜索更多的解空間,最後收斂於一個解決方案。
差異圖先前被定義為兩個投影,那麼當有兩個以上時會發生什麼呢?在這種情況下,定義一個新的迭代X,它是n個重複連接[10]:
其中Pl為第l個投影,x是加權和;
那麼許多預測的差異圖為
更新X:
這種方法被稱為“分治算法”。下麵是一個數獨拚圖的迭代例子,其收斂使用了差異圖與分治算法。
數獨有4個約束:每行的數字為1到9,每列的數字為1到9,3x3子方格的數字為1到9,最後數字與部分填充的模板一致。該代碼實現這個例子。
對差異圖、投影及其在非凸優化中的應用有了解後,下一步是對神經網絡的訓練進行預測。下例僅考慮一個分類任務,基本思想是尋找一個能正確分類數據的權重向量,將數據分解成K個子集:
定義一個“投影”權重的投影,使得子集中的所有訓練數據被正確分類(或者損失為0)。實際上,使用的是子集的梯度下降來實現投影(基本上是過度擬合的點)。目標是獲得能正確分類每個數據子集的權重,並且要查找這些集合的交集。
為了測試訓練方案(代碼),使用標準方法[13]訓練了一個小型網絡,並將其與基於投影的方法進行比較。小型網絡使用非常簡單的層,大約包含22000個參數; 1個卷積層,8個3x3濾波器;2個子采樣;1個全連接層(激活函數為ReLU),有16個節點;最後softmax有10個輸出(MNIST的10類)。使用Glorot uniform[11]初始化權重。
下圖顯示其平均訓練和測試損失曲線:
訓練損失曲線
測試損失函數
從圖中可以看出效果不錯。訓練數據被分為大小相同的3組,都被用於投影約束。對於投影而言,需要找到一組最新的權重,使其與先前一組權重的距離最小。另外使用梯度下降法進行訓練,一旦訓練數據的準確度達到99%就終止投影。更新後的權重投影到3組上產生3個新的權重集合,這些集合連接在一起以形成
平均投影可以通過將權重平均得到,之後進行複製並連接後形成新的向量:
根據差異圖將這兩個投影步驟組合以獲得權重的更新方案。除了常規度量外,還可以監視差異圖誤差來尋找收斂。差異映射誤差由下式定義:
上式值越低,表明解決方案越好。差異圖錯誤達到穩定表明已經找到了一個近似的解決方案。差異圖錯誤通常在穩定前會突然下降[4],表明找到合適的解決方案。
在上例中,投影是通過訓練數據子集上的反複梯度變化定義,本質上是過度擬合的點。在下例中,遍曆完一次訓練數據後就終止投影。
下麵顯示的是平均cv測試和訓練誤差(與上述相同的常規訓練相比)
從圖中可以看到這種方法仍然可行,為什麼會這樣呢?如果投影操作提前終止,那麼能想到的一點就是簡單地將該投影視為一個鬆弛投影或非最佳投影。凸優化和PR的結果[4,5,7,14]仍然表明,鬆弛投影或非最佳投影趨於好的解決方案。另外,在單遍曆投影限製中,可以通過交替投影來恢複傳統的基於梯度下降的訓練方案(以3組為例):
最後,常規訓練中的參數設置會對網絡的結果產生很大的影響,具體參數設置可以查看原文。訓練這樣的網絡並執行提前終止,傳統訓練方法的最終損失和準確度分別為0.0724和97.5%,而使用差異圖方法的結果分別為0.0628和97.9%。
投影方法的擴展
關於投影方法的好處之一是可以輕鬆實現額外的約束。對於L1正則化而言,可以定義收縮或軟閾值操作,如
其他投影可以是卷積核的對稱性或權重的直方圖約束。
其他注意事項
本文還有很多未回答的問題,並沒有深入研究。比如最佳集合數是多少、投影操作如何工作、近解決方案的平均有助於泛化等問題。雖然還有很多問題需要回答,但是使用相位檢索和非凸投影方法來重新構建訓練得到了一些有趣的結果。
本文由北郵@愛可可-愛生活老師推薦,阿裏雲雲棲社區組織翻譯。
文章原標題《Training neural networks with iterative projection algorthms》,作者:Jesse Clark,譯者:海棠,審閱:tiamo_zn
文章為簡譯,更為詳細的內容,請查看原文
最後更新:2017-07-12 22:11:16