對於一個可以窮舉的問題,比如五子棋,深度學習得到的模型和窮舉的演算法有啥異同?
一個可以用計算力窮舉的問題,雖然沒有用深度學習的必要,但是假如應用深度學習,得到的模型和窮舉法得到的有何異同?深度學習苦手,可能這個問題完全不 makesense,但是希望大牛拍磚
題主好像是在問deep reinforcement learning相關的DL。
可以「在計算資源範圍內」窮舉,說明可以算出最優解。
DL主要應用在無法在計算資源範圍內窮舉的情況下,用神經網路去approximate兩個函數,一個是value function (判斷某個局勢的價值), 一個是policy function (找到最優的下一步). 理論上深度的網路可以approximate任何函數,所以數據夠多的話也可以收斂到那個最優解上。但是這個網路經常是非凸的,所以很容易卡在local optimal點上。
DL還有一個好,就是不需要人去想怎麼去做representation。要是數據夠多,純像素輸入也行。
總的來說,可能相當於是「解析解」和「數值解」的區別吧。我們把這種可窮舉的遊戲以Markov Decision Process(MDP)的模型來建立。
MDP,簡單的來說就是把加強學習問題抽象成
- state(狀態) 例如棋子的擺布
- action(行為) 例如在左上方落子
- reward(回報) 你在這個狀態可以得到多少回報
- policy(策略) 即選擇較好的行為策略,一般為一個概率分布
如果我們遇到了最簡單的棋類問題,例如tic-tac-toe(井字棋)我們是可以通過窮舉法(實際上是動態規劃,但我們把它類比為窮舉法)得到一個optimal deterministic policy。
但是,如果像圍棋這種棋盤擺布近乎無限種的問題,用DP(動態規劃)求解就不可能了,這時候,我們大體的做法,就是把states量化成向量,定義loss function,然後用CNN、DNN之類的對policy進行參數估計,然後根據量化state我們就能得到action。回到問題,對於簡單的井字棋遊戲,如果我們使用DQN等深度學習技術,是可以得到最優解的,只是把求最優解的過程變成了冷冰冰的矩陣操作而已。但對於五子棋這種問題,通過類似的技術,是近乎不可能得到的最優解的,類比於機器學習的分類問題,事實上分類方法可能超級複雜,但是我們用線性模型就能得到足夠好的結果了。簡單來說,窮舉法(或者說DP法)就是開了上帝時視角每一步都是最好的,模型也就是簡單的greedy。深度學習方法就是管他三七二十,先給你一個參數,然後不停跑啊跑,得到較好的參數,讓它正確率最高。我覺得這個問題其實很好。雖然答案顯而易見-- 深度學習不用幫什麼忙,under finite states of environment. 我想說的是,這種網窮舉和 機器學習 的組合是一種非常有效的方法:比如,RL 加上memory replay 幫助 policy learning。我們人他們也是結合 以前的經驗 和 邏輯推理能力 來完成某些任務。
其實你現在能接觸到的能用計算機解決的問題都可以窮舉,別說五子棋,圍棋也可以窮舉解決,只是需要很多時間罷了AI演算法是能在一個可接受時間得到近似優的解,否則可能即便是人看起來很小規模的遊戲,也無法在人類滅亡之前窮舉完成,所以「可以用計算力窮舉的問題,沒有用深度學習的必要」本身就是錯的
Balance between accuracy and efficiency.
窮舉法,下在某處前,已知下這裡要麼輸,要麼贏,要麼平!根據後面變化提前得到結果!
深度學習模型,要每一步都分析,要求絕對精度,相當於完全窮舉的分析一遍。。。能確定每步的結果和窮舉後的結果並無區別!但多了一些東西!就是對棋局的分析!
這個分析可以選擇最簡潔的贏法,最複雜的輸法,還可以在必輸的情況下,找到對方最易犯錯(未必是變化最複雜)的落點,獲得取勝的可能!面對弱者可以引誘對方犯錯,或主動落在必輸的落點(確保對方無法識破),等待對方犯錯,可以更少的計算量或更快的結束棋局!總之結合窮舉結果的學習模型可以玩出更多花樣。。。
兩者區別,窮舉可以知輸贏,學習模型可以玩弄輸贏。。。
曾經無聊,起名「午夜屠豬男」,凌晨時新手房間玩五子棋,大部分時候,先手十子內贏,後手十五子內贏,下的還快!一個多小時贏100多盤狂虐新手。。。做成模型的話並不複雜!存儲幾個下套的開局!之後只要模擬計算幾步就可以得出必勝的演算法!做成程序一兩兆大就可以實現。。但前提是有地毯譜和對局棋譜,對比常見錯誤,再誘殺。。。但對職業玩家就要複雜很多了,而且職業玩家不容易犯同樣錯誤!但要是只定某人,拿地毯譜分析錯誤,贏一兩局也是很容易搞定的!其中關鍵還是窮舉!不窮舉不知真正輸贏!深度學習可以理解為特徵工程,特徵是實體抽象,假設窮舉演算法能完美得到任何解,那麼經過特徵再mapping的深度學習只能不斷靠近擬合這個窮舉演算法,而且要看玄學運氣是否能建立完全一樣的模型
樓主想問的是不是:對於傳統演算法能解決的問題,如果用 NN ,學到的解和傳統演算法的解是不是一樣?
一句話能解釋明白不知道說那麼多幹嘛。窮舉能得到最優解,深度學習能得到近似解。
可以看看有多接近窮舉法
推薦閱讀:
※如何系統的學習深度學習?
※如何評價 Facebook 新推出的 CNN 機器翻譯項目 Fairseq?
※multi-task深度神經網路如何實現,優化?
※如何評價陳天奇團隊新開源的TVM?
※能不能給神經網路計算一個「學習進度」的指標?
TAG:人工智慧 | 演算法 | 機器學習 | 深度學習DeepLearning |