可以用神經網路解決演算法問題嗎?

時間 2021-05-10 23:46:27

1樓:larmbr宇

對於特定的一些演算法問題, 其實已經有很多成功的嘗試(更確切說是toy game級別的成功嘗試)了, 除了其他回答舉的例子, 還有不少, 比如基於pointer network做組合優化問題(如TSP).

我對用ML做傳統的運籌學問題這個方向也很有興趣, 有過一點粗淺的思考. 不得不說, 從更廣泛的解決非toy game演算法問題這一角度來說, 這個問題的答案目前起碼是否定的. 乙個很重要的問題是如何保持穩定的泛化能力, 和保持協變性(covariance).

這不單指隨輸入規模的擴大有泛化能力, 可能還包括有遷移能力(比如對於乙個multi-agent path finding問題的求解, 如果訓練集的狀態分布與測試集的狀態分布發生了shift, 演算法可能就失效了). 雖然個人傾向於以強化學習來做這個方向, 但這個問題也是繞不過的. 雖然以上成功的案例, 都有問題(或模型)特定的 trick 去一定程度解決問題, 但這還不足以真正去解決更多的演算法問題.

我個人覺得主要是純統計學習的路子在這一方向有一定的侷限性. NN表現出強大的表徵學習能力, 但其遷移能力是堪憂的(從很多對抗樣本的研究中得以一窺). 而對於有確定解法,有窮步驟的演算法問題, 很明顯基於統計學習的路子學出來的解法不是真正理解問題的本身, 我直覺是應該引入symbolic knowledge到系統裡(就是傳統AI的路子), 用NN強大的學習能力, 把習得的(或者是作為prior knowledge加入到模型中的)關於演算法問題本身的離散化的symbolic knowledge實數化表示(學習並儲存在權重裡), 這樣的AI演算法solver可能才有更好的泛化性.

並且這種機制還可以設計得更具有理解性(即假設學得的模型失效了, 甚至可以從中抽離出符號化的知識, 以幫助改進). 這些嘗試其實也有不少, 有基於關係圖網路來做的, 也有用如 first-order logic 來做. 我昨天發現一篇進了ICML'19的文章就是後者這個思路(文章是Neural Logic Reinforcement Learning).

2樓:tree jade

在不追求精度的情況下, 用神經網路能解決很多演算法問題, 得到近似解, 但是對於值域太廣的演算法(比如輸出是-999999999~+9999999999), 神經網路是不怎麼好模擬的(即使模擬,精度也很低)

3樓:

Combinatorial Optimization with Graph Convolutional Networks and Guided Tree Search, Zhuwen Li,Qifeng Chen,Vladlen Koltun

4樓:michael

能解決部分演算法問題,例如分類、聚類,擬合等等。

但是對於np-hard問題,目前的神經網路最多只能給近似解,給不了最優解,不過就時間複雜度而言,除去訓練時間,神經網路在面對np-hard問題上確實會比傳統方法,比如DP,快很多。

既然使用神經網路也可以解決分類問題,那SVM 決策樹這些演算法還有什麼意義呢?

Tyler Durden 其中乙個原因是神經網路的可解釋性目前太差了。比如說有時候銀行在決定是不是要批信用卡申請的時候會用到決策樹但不是神經網路,因為他需要解釋之後為什麼批給某人,為什麼不批給某人。 knnay 其他演算法肯定是有意義的,有可能為神經網路的進一步改進,提供靈感。例如,軟閾值化是訊號降...

神經網路的bp中為什麼可以用偏導數來表示殘差?

桃新枝 反向傳播不就是在計算梯度嗎,假設你構建的損失函式和成本函式如下,損失函式是定義在單個訓練樣本上的,用來衡量演算法在單個訓練樣本的表現如何,代價函式則衡量演算法在全部的 個樣本上的表現。如圖,因為 是關於 的函式,找到一組 使成本函式 最小,即演算法表現最好。從吳恩達課裡copy的圖 採用梯度...

人腦難以思考解決的問題,人工神經網路是否同樣難以解決?

機器在思考 海量輸入與確定輸出的系統,機器不應該跟人學,人應該跟機器學。所以深度學習的效果可以遠超過人類。所以問題的核心就在於 這個世界上究竟哪些事情是海量輸入與確定輸出的系統,比如我們在環境中看 聽 說 動,都可以看作是海量輸入與確定輸出的系統,因為目標明確而單一,就是要適應環境。哪些事情不是確定...