幾年前,深度學(xué)習(xí)剛興起時,應(yīng)該是2015年,當(dāng)時,學(xué)著用MXNET搭建卷積網(wǎng)絡(luò)去識別數(shù)字,得到的結(jié)果相當(dāng)?shù)淖屛艺痼@。讓我震驚的原因在于:
代碼是如此的簡潔。如同數(shù)學(xué)界推崇簡潔清晰的證明一樣,我們也一樣欣賞用簡潔的算法去解決工程上的問題。 正如張益唐的論文就比懷爾斯的證明漂亮的的多。
神經(jīng)網(wǎng)絡(luò)這樣一個黑盒系統(tǒng),可以解決圖像識別這個很難的問題,而我們無法用一步一步的方式,清楚的看到神經(jīng)網(wǎng)絡(luò)系統(tǒng)是如何求解的。這很違和?。?br>
雖然,因?yàn)槠渌氖虑?,沒有深入學(xué)習(xí)DL了,但對DL的強(qiáng)大實(shí)力,算是有了一個很深的印象。
接著,AlphaGo出現(xiàn)。從一開始,我就堅(jiān)定的認(rèn)為,這次機(jī)器必勝。果然,AlphaGo取得意料之中的勝利后,下一代版本Master,全面碾壓人類選手。然而,當(dāng)柯潔在賽中痛哭,那個時刻,我也感受到了那一絲絲的落寞和無奈。
人類也許如同恐龍一樣,只是進(jìn)化樹中的一個分支。人工智能才是進(jìn)化樹上最興旺的那個新芽。人類終將毀滅,AI必勝。
最近,有兩道AI的任務(wù),一個是紅心大戰(zhàn),一個是小車自動駕駛。
后者,搞過數(shù)字識別,所以,這個任務(wù)很快搞定。使用nVidia設(shè)計(jì)好的DCNN網(wǎng)絡(luò),把tensorflow環(huán)境一搭,自己手工跑出一些訓(xùn)練數(shù)據(jù),練一練,AI就可以自己跑圈了。
這里的幾個關(guān)鍵點(diǎn):
數(shù)據(jù)量要足夠。訓(xùn)練網(wǎng)絡(luò),就像小孩子學(xué)習(xí)一樣,給一遍正確的知識,小孩子是記不住的,會有遺忘的,也就是訓(xùn)練出來的網(wǎng)絡(luò)并不足夠逼近。因?yàn)橛?xùn)練網(wǎng)絡(luò)本質(zhì)是遞度下降,數(shù)據(jù)不足,下降的不足,網(wǎng)絡(luò)沒有足夠的逼近我們所要的函數(shù)。所以,即使數(shù)據(jù)是很精確的,但量不足也是不行的。至少要20000幀。
每一幀應(yīng)該去掉其中的無效信息。比如,遠(yuǎn)處的景物。
每一幀應(yīng)該做一些變形,形成新的數(shù)據(jù)。
這個任務(wù)就輕松搞定。
另一個任務(wù)是紅心大戰(zhàn)。
本質(zhì)上,紅心大戰(zhàn)是信息缺失的博弈性的游戲。理論上,這類型的任務(wù),使用DL技術(shù)是不可能得到完美解的。例如,DeepStack,就是打德州的那個AI算法。它僅是在公共牌亮出后,才使用訓(xùn)練好的網(wǎng)絡(luò)去計(jì)算近似解。在公共牌沒有亮出來前,信息是不足的,神經(jīng)網(wǎng)絡(luò)本質(zhì)是高維函數(shù),是確定解的。不可能用于博弈。這也是為什么在熱身任務(wù)中,我司各個隊(duì)伍的程序,本質(zhì)都是 rule-based,只是披個AI的皮(當(dāng)前,廣義上講,rule-based 也算AI了)。我也披了這個皮。
對于紅心大戰(zhàn)游戲,它的信息也是不足的,應(yīng)該也是需要一定的 rule-based 來幫助。如果應(yīng)用DL,最適合的應(yīng)該是DQN。
DQN來源于 Q-Learning 。 后者于1989年提出,92年被證明是收斂的。收斂是很重要的事情。不收斂,這事就沒法玩兒了。Q-Learning理論上有效,但在近三十年前(唉,都是三十年前了),以當(dāng)時的計(jì)算力,應(yīng)該沒有辦法應(yīng)用,就算是今天,這個算法也不適合大規(guī)模的問題。所以,搞了個DQN。用神經(jīng)網(wǎng)絡(luò)來近似維度超高的Q表。
但DQN,也是適用于完美信息的游戲。
網(wǎng)上有一個公開代碼的項(xiàng)目,使用的是POMDP算法,用了一下,好像能力很強(qiáng)。要是這個行,也就不用什么DQN了。雖然DQN還挺好玩的。
DQN從2015提出后,也是有一系列的迭代和演進(jìn)。Double DQN ; 利用S和A合并為Q值;后者是還是最近的大會的最佳論文。想法超簡單,效果卻超好。
