閱讀719 返回首頁    go 阿裏雲 go 技術社區[雲棲]


新穎訓練方法——用迭代投影算法訓練神經網絡

首發地址:https://yq.aliyun.com/articles/72738


Jesse Clark

8293cf57e34cba700a3cd9a473017b739d1d3627

研究相位恢複的物理學家、數據科學家,有著豐富的建設網站與設計手機應用的經驗,在創業公司有著豐富的經驗,對創業有著極大的熱情。

 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]

1582d35b16b7b80825386276994866e970e3f9d5

大多PR問題的成功算法是基於投影的方法,這是受到凸優化投影到凸集上的啟發。由於基於投影的方法在PR上取得成功探索能否使用類似的方法訓練神經網絡。

738ab9dc7400d4866d941609053aa318dc5958a0

凸集投影(POCS)是找到凸集之間交點的有用方法。上麵顯示了一個簡單的例子,其中兩個凸約束集C1(紅色)和C2藍色)。通過簡單迭代映射連續地投影每個集合來找到交集:

3cfaf5f2282fa69d39c94bf4b71bc45e4091ebd4

其中P各自的集合上的投影。投影是冪等PP=P並且是距離最小化;

P(x)=y以至於33e2f72835a10956c0b97d8189890d7e54e18db9最小;

當滿足下式的時候,能夠發現解決方案:

d54977aa9958b20ea6a9af990053242dc8396a0a

當約束集非凸時,很少能得出一般結論。因此,使用簡單的交替投影可能導致局部最小值的停滯。下麵展示一個例子,其中集合被設置為非凸,找到交集(全局小值)的能力高度依賴於初始猜測

57ebb6657d27c4cebd050bb9571c2f2a74d94e31

盡管集合凸的情況下失去了保障,但投影方法證明是尋找非凸優化問題解決方案的一種有效方法。例子包括數獨、n皇後問題圖形著色和相位檢索[4,10]

最成功的非凸投影算法之一是差分圖(DM)[4,8],可以寫成

0f9d77805a8190f99f5a748ed48def79b29f2c69

其中

067d1fc68d787aeb2f3daa4014e24136eebe1bcb

其中y1和y2被稱為估計。一旦達到定點

3197703b6a36567a735776b90268658b410227fd

這意味著兩個估計等價於解決方案

0f810da3975723b48ed178ac76bdd27f15cde6b5

差異圖通過作為泛化或等價特定超參數,關聯了PR文獻中許多的不同算法不於上述形式,簡單版本差異圖經常被使用

b604bfebb15b24b8b92ad4e571fc3b7017e09b51

這種更簡單的版本通常表現良好,並減少每次迭代所需的投影數量(投影的順序也可以切換)。公式中的2P2-I也被稱為反射操作,出現在許多投影算法中[9]

同樣的非凸問題如下所示,使用差分映射算法被困在局部最小值中,而是能夠逃脫搜索更多的解空間,最後收斂一個解決方案。

cf220dd0037aed4ef5be11f9cde3603f1efcdec2

分治算法

差異圖先前被定義為兩個投影,那麼當有兩個以上時會發生什麼呢?在這種情況下,定義一個新的迭代X,它是n重複連接[10]

038a1bc7b2887968ff1137a27a40ab0b18ca6d0d

然後定義平均和直積投影;

52d66299f71d58223d288321e042b522957f9e61

其中Pll投影,x是加權和;

a6147e595ed94442a7c9173f154a4a1c8eeb4782

那麼許多預測的差異圖

9e6026186163a00142f9243b725b779ecfda30d4

更新X:

84ad0d1eb3d398afc1c9df8f8218591372302551

這種方法被稱為“分治算法”。下麵是一個數獨拚圖的迭代例子,收斂使用差異圖與分治算法

2fe9c5ca429d38df178803b77b92f64c6f08bfca

數獨有4個約束每行的數字為1到9,每列的數字為1到9,3x3子方格的數字為1到9,最後數字與部分填充的模板一致。代碼實現這個例子

對差異圖投影及其在非凸優化中的應用有了解,下一步是對神經網絡的訓練進行預測。下例僅考慮一個分類任務基本思想是尋找一個正確分類數據的權重向量將數據分解成K個子集

719a9e052cabc837fe4a64508976ed5b7ae3c335

定義一個“投影”權重的投影,使得子集中的所有訓練數據被正確分類(或者損失為0)。實際上,使用的是子集的梯度下降來實現投影(基本上是過度擬合的點)。目標是獲得能正確分類每個數據子集的權重,並且查找這些集合的交集。

為了測試訓練方案(代碼,使用標準方法[13]訓練一個小型網絡,並將其與基於投影的方法進行比較。小型網絡使用非常簡單的層,大約包含22000個參數; 1個卷積層,8個3x3濾波器2個子采樣1個全連接層(激活函數為ReLU),16個節點最後softmax10個輸出(MNIST的10類)。使用Glorot uniform[11]初始化權重

下圖顯示其平均訓練和測試損失曲線:

e03afedc47bfb2f7abbc76e75a0e3f06ec99cb0c

訓練損失曲線

9682470245de3125f87ee3b2d642e85bacedc693

測試損失函數

從圖中可以出效果不錯。訓練數據被分為大小相同的3組,都被用於投影約束。對於投影而言,需要找到一組最新的權重,使其與先前一組權重的距離最小另外使用梯度下降法進行訓練,一旦訓練數據的準確度達到99%就終止投影。更新後的權重投影到3組上產生3個新的權重集合,這些集合連接在一起以形成

41b46f89b66cf3bff2e165d3f5ea9ae0f9cf55d7

平均投影可以通過將權重平均得到之後進行複製並連接形成新的向量

1dc98aa873d97c3b500e0ab37fc7f954f4187ad7

根據差異圖將這兩個投影步驟組合以獲得權重的更新方案。除了常規度量外,還可以監視差異圖誤差來尋找收斂。差異映射誤差由下式定義:

a8b67c2bc4dc65fdc7480ba806a2783547f649e2

上式值越低,表明解決方案越。差異圖錯誤達到穩定表明已經找到了一個近似的解決方案。差異圖錯誤通常在穩定突然下降[4],表明找到合適的解決方案。

67c3015a68fe1bacf4378314fa989e94bec8e49e

在上例中,投影是通過訓練數據子集上的反複梯度變化定義,本質上是過度擬合的點。在下例中,遍曆完一次訓練數據終止投影

下麵顯示的是平均cv測試和訓練誤差(與上述相同的常規訓練相比)

9eb15578194f31947ad2cdaea989b9ab57a6080d

66ba6ca81398eeb0776abdda16df2cdbeeaeb147

478674c51c616a43265b9186c4e12014ab9605d4

從圖中可以看到這種方法仍然可行,為什麼會這樣呢?如果投影操作提前終止,那麼想到的一點就是簡單地將投影視為一個鬆弛投影或非最佳投影。凸優化和PR的結果[4,5,7,14]仍然表明,鬆弛投影或非最佳投影趨於的解決方案。另外,在單遍曆投影限製中,可以通過交替投影來恢複傳統的基於梯度下降的訓練方案(以3組為例)

a5bc188b28b440f651733ed296c1c0f4027fd8f1

最後,常規訓練中的參數設置會對網絡的結果產生很大的影響,具體參數設置可以查看原文。訓練這樣的網絡並執行提前終止,傳統訓練方法最終損失和準確度分別為0.0724和97.5%,使用差異圖方法的結果分別為0.0628和97.9%。

投影方法擴展

關於投影方法的好處之一是可以輕鬆實現額外的約束。對於L1正則化而言,可以定義收縮或軟閾值操作,如

944752dbcecf0a5c5056b6545c4f54d9e3210974

其他投影可以是卷積核的對稱性或權重的直方圖約束。

其他注意事項

本文還有很多未回答的問題,並沒有深入研究比如最佳集合數是多少投影操作如何工作、近解決方案平均有助於泛化等問題。雖然還有很多問題需要回答,但是使用相位檢索和非凸投影方法來重新構建訓練得到了一些有趣的結果。

本文由北郵@愛可可-愛生活老師推薦,阿裏雲雲棲社區組織翻譯。

文章原標題《Training neural networks with iterative projection algorthms》,作者:Jesse Clark,譯者:海棠,審閱:tiamo_zn

文章為簡譯,更為詳細的內容,請查看原文

最後更新:2017-07-12 22:11:16

  上一篇:go  矽穀資深數據科學家教你認清探索性數據分析(EDA)的價值
  下一篇:go  自動駕駛汽車?法律:倫理