查看完整版本 : AlphaGo進化 自學3天勝人類3,000年

煙民母親生賤種 2017-10-21 03:26 AM

AlphaGo進化 自學3天勝人類3,000年

但問題是, 它學懂如何拔插蘇未?? :fst_008:


[url=http://news.discuss.com.hk/viewthread.php?tid=27003618&extra=page%3D1]http://news.discuss.com.hk/viewthread.php?tid=27003618&extra=page%3D1[/url]

DeepMind團隊在科學雜誌《自然》發表論文,稱最新的AlphaGo Zero未用到任何人類圍棋數據,憑藉更新後的神經網絡和演算法,依據圍棋規則和自己下了500萬盤棋後,迅速進步。AlphaGo Zero自學3天後,就以100:0打敗在2016年3月戰勝李世乭的舊版AlphaGo;自學40天後,又擊敗今年5月戰勝柯潔的AlphaGo Master,「不僅重新發現人類傾向使用的開局走法與招式……之後還揚棄了這些走法,自創出過去人類根本不知道的招式」。
團隊指出,AlphaGo Zero使用新的強化學習方法,讓自己變成老師。

Ob1Kenobi 2017-10-21 02:40 PM

佢幾時識執床、換尿布。我身為窮L,唔想第時俾人喂屎食。:smile_42:

xianrenb 2017-10-21 02:53 PM

[quote]原帖由 [i]煙民母親生賤種[/i] 於 2017-10-21 03:26 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469690175&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
但問題是, 它學懂如何拔插蘇未?? :fst_008:


[url=http://news.discuss.com.hk/viewthread.php?tid=27003618&extra=page%3D1]http://news.discuss.com.hk/viewthread.php?tid=27003618&extra=page%3D1[/url]

DeepMind團隊在科學雜誌《自然》發表論文,稱最新的AlphaGo Zero未用到任何人類圍棋數據 ... [/quote]

好似有 d 問題。
上面說到 500 萬盤及 40 天。
以我的理解,用任何正常 machine learning 方法,都應該是試 run 一次,然後 collect data 來改進 model 。
model 改進後,才可以 run 第二次。
那麼 500E4 / (40 * 24 * 60 * 60) ~= 1.447 盤/秒 。
而一盤至少有過百着,即是每着不用百份一秒來算?
就算是中國象棋或國際象棋也不可能。
否則表現出來的棋力其實很差。
看來是平行運算來 run 、改進 model 。
無論如何,這比用40天就 OK 的表面說法要用多好多資源。

而其實我看這個 AlphaGo Zero 都只是神化了 neural network 的效用。
圍棋每着可下的選擇最多是 19 * 19 = 361 。
而 361/10 =  36.1 ,大概就等於中國象棋或國際象棋每着的可選擇走法。
某程度上可說,只要有方法,如用 neural network ,把每着數百個可選擇走法,先選剩三十多個好走法才再分析的話,其難度就與中國象棋或國際象棋差不多。
選十分一,大約就等於在一堆手寫數目字當中,認出正確的 0 出來一樣。
[url=https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_ml/py_knn/py_knn_opencv/py_knn_openc>><<ml#knn-opencv]https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_ml/py_knn/py_knn_opencv/py_knn_openc>><<ml#knn-opencv[/url]
[quote]">><<" 轉為 "v"+"."+"h"+"t"[/quote]
[quote]...This particular example gave me an accuracy of 91%....[/quote]
即是對 91% 不是什麼極難的事。
錯 9 % 代表什麼,即是 36.1 * 9% ~= 3.249 個走法認錯了。
換個說法,可能是把約 3 着的好棋走法認作較差的走棋。
而那極可能當作排序中的第 37 至第 39 着好棋。
那麼只要選首 40 着好棋來考慮,基本上就無什麼失誤了。
這還仍然是中國象棋/國際象棋般的難度級數啊!

[[i] 本帖最後由 xianrenb 於 2017-10-21 03:11 PM 編輯 [/i]]

xianrenb 2017-10-21 09:56 PM

[quote]原帖由 [i]xianrenb[/i] 於 2017-10-21 02:53 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469707564&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


好似有 d 問題。
上面說到 500 萬盤及 40 天。
以我的理解,用任何正常 machine learning 方法,都應該是試 run 一次,然後 collect data 來改進 model 。
model 改進後,才可以 run 第二次。
那麼 500E4 /  ... [/quote]

不過話雖如此,如果無特製硬件,要為每個局面評分,又或者如前述般為每着選出最佳的數十着走法出來,應該還是很花時間。
也就是說,考慮整體效能要求的話,當中用到的 neural network 特製硬件方式是一種合適的選擇。

煙民母親生賤種 2017-10-22 02:19 AM

[quote]原帖由 [i]xianrenb[/i] 於 2017-10-21 02:53 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469707564&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
即是對 91% 不是什麼極難的事。
錯 9 % 代表什麼,即是 36.1 * 9% ~= 3.249 個走法認錯了。
換個說法,可能是把約 3 着的好棋走法認作較差的走棋。
而那極可能當作排序中的第 37 至第 39 着好棋。
那麼只要選首 40 着好棋來考慮,基本上就無什麼失誤了。
這還仍然是中國象棋/國際象棋般的難度級數啊![/quote]91% accuracy 呢個 term 可圈可點。accuracy 不可能是一次, 二次, 或三次, 而是經過至少 50 次的 test , 再把數據經統計運算測出來。這是與 level of confidence 有關。看一看這個圖:
[img]http://www.whatissixsigma.net/wp-content/uploads/2014/05/Confidence-Interval.png[/img]

這個應該是經過 normalized distribution 才 plot 出來的統計圖, 一般會用 95% 或 99% 的 LOC, 愈高愈準。第二, 就係個 confidence intervals, 這個可能亦是關鍵。在什麼情況下可有 91% 的機會行到一步無錯誤的棋??

煙民母親生賤種 2017-10-22 02:23 AM

[quote]那麼 500E4 / (40 * 24 * 60 * 60) ~= 1.447 盤/秒 。
而一盤至少有過百着,即是每着不用百份一秒來算?
就算是中國象棋或國際象棋也不可能。
否則表現出來的棋力其實很差。
看來是平行運算來 run 、改進 model 。[/quote]每一著的棋的走法, 是不是 dependent? 若不, 應該可 run in parallel, 以 alpha go 的配備, 唔夠 compute power 咪加多幾個 node , 加到夠為止 ...

xianrenb 2017-10-22 08:22 AM

[quote]原帖由 [i]煙民母親生賤種[/i] 於 2017-10-22 02:19 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469736966&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
91% accuracy 呢個 term 可圈可點。accuracy 不可能是一次, 二次, 或三次, 而是經過至少 50 次的 test , 再把數據經統計運算測出來。這是與 level of confidence 有關。看一看這個圖:
[url=http://www.whatissixsigma.ne]http://www.whatissixsigma.ne[/url] ... [/quote]

91% 準確度的意思不必深究,同時 AlphaGo Zero 的實際算法我也不清楚。
但棋類算法不可能是“一眼看局面,就知應走那一着”。
就算亂走,也要試走數着後看局面如何才能評價該走法好不好,否則棋力一定不高。
所以基本肯定,那不會只是直接的 machine learning 方式,而是必須有一些傳統棋類算法的部份。

前面提到 91% ,只是說明所用的 machine learning 算法其實不必很高明。
不過同時,亦要每着用時極短,如數十個 clock cycle 內完成,整個系統才可極速算出好棋。

而基本上從數據可判斷, AlphaGo Zero 的 training 是 parallel 進行的。
這意味 training 時,同時間不是只有一套 AlphaGo Zero (應用時的)系統在運行 。
相信很可能有數百套這樣的系統 parallel run 來搜集數據才行。
這比起字面上說只用 40 天就可完成 training 的說法的意義相差很遠。

煙民母親生賤種 2017-10-23 03:30 AM

[quote]原帖由 [i]xianrenb[/i] 於 2017-10-22 08:22 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469740658&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


91% 準確度的意思不必深究,同時 AlphaGo Zero 的實際算法我也不清楚。
但棋類算法不可能是“一眼看局面,就知應走那一着”。
就算亂走,也要試走數着後看局面如何才能評價該走法好不好,否則棋力一定不高。
... [/quote]
我沒有深究那 91%, 因為我也覺得不是重點, 只係廢 UP 幾句。
玩 alphaGo 呢類野, 唔係普通人可以有能力做到, 單係硬體設備都玩死你。你寫到一個好的 AI System, 無器材 testing, 點改進? 唗氣。加上人一天只有 24 小時, 即使不眠不休, 點同一個 expert crew 鬥?:fst_016:

xianrenb 2017-10-23 09:12 AM

[quote]原帖由 [i]煙民母親生賤種[/i] 於 2017-10-23 03:30 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469786967&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]

我沒有深究那 91%, 因為我也覺得不是重點, 只係廢 UP 幾句。
玩 alphaGo 呢類野, 唔係普通人可以有能力做到, 單係硬體設備都玩死你。你寫到一個好的 AI System, 無器材 testing, 點改進? 唗氣。加上人一天只有 24 ... [/quote]

一半一半啦!

某個角度看,大企業有財力,硬體設備可以特製,可以隨時 setup 數百套平行來 run ,普通人當然無得比。
但另一方面,電腦算法如果設計得好,效能相差好遠。
例如一個算法由 O(n) 改良到成 O(log n) ,實際運行時間就相差很大。
我自己也寫過中國象棋電腦程式。
解一個 9 着將死的殘局,早期算法要用半小時,到現在是兩秒內。
而設計算法,只需有頭腦,與財力無關。
所以即使無財力,普通人設計的系統也未必做不到大公司專家設計的系統的效能。

動感超人打怪獸 2017-10-23 09:50 AM

自學3分鐘寫program
勝人類3,000年:smile_o14:

ncream 2017-10-23 11:34 AM

[quote]原帖由 [i]xianrenb[/i] 於 2017-10-23 09:12 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469791288&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


一半一半啦!

某個角度看,大企業有財力,硬體設備可以特製,可以隨時 setup 數百套平行來 run ,普通人當然無得比。
但另一方面,電腦算法如果設計得好,效能相差好遠。
例如一個算法由 O(n) 改良到成 O(l ... [/quote]

我用過Alpha Beta 修剪寫Chinese chess,殘棋易,中局最難,因為太多步數,當時hardware最多5層。

煙民母親生賤種 2017-10-24 02:45 AM

[quote]原帖由 [i]xianrenb[/i] 於 2017-10-23 09:12 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469791288&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]

而設計算法,只需有頭腦,與財力無關。
所以即使無財力,普通人設計的系統也未必做不到大公司專家設計的系統的效能。
[/quote]假設你想了一個平行運算的演算法,你點都要測試下實際效果如何。而你個 scale 可能要一台 10 粒 gpu 的機器, 100 粒更好, 咁始終都係要呢 2 set 野實際 run 過做對比。然後才見那裏可改進。

xianrenb 2017-10-24 09:16 AM

[quote]原帖由 [i]煙民母親生賤種[/i] 於 2017-10-24 02:45 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469832274&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
假設你想了一個平行運算的演算法,你點都要測試下實際效果如何。而你個 scale 可能要一台 10 粒 gpu 的機器, 100 粒更好, 咁始終都係要呢 2 set 野實際 run 過做對比。然後才見那裏可改進。 [/quote]

同意。
有資源的話,可做到或可以試的方式當然更多。
錢多 d ,自然易 d 成事。
不過另一方面,我的意思是,財力不是唯一因素。

xianrenb 2017-10-24 09:26 AM

[quote]原帖由 [i]ncream[/i] 於 2017-10-23 11:34 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=469797302&ptid=27005168][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


我用過Alpha Beta 修剪寫Chinese chess,殘棋易,中局最難,因為太多步數,當時hardware最多5層。 [/quote]

如果無記錯,我有一段頗長時間寫算法時,用現代電腦單線程,只用 Alpha Beta Pruning ,一分鐘級數的時間都是能解 5 層開局/中局左右。
後來加入其他方法,才有突破。

到了最近,可說算法改良到有點變態:
[url=http://www.discuss.com.hk/viewthread.php?tid=26908496&extra=page%3D1]http://www.discuss.com.hk/viewthread.php?tid=26908496&extra=page%3D1[/url]
[url=http://www.discuss.com.hk/viewthread.php?tid=27007741&extra=page%3D1]http://www.discuss.com.hk/viewthread.php?tid=27007741&extra=page%3D1[/url]
[url=http://www.discuss.com.hk/viewthread.php?tid=27011169&extra=page%3D1]http://www.discuss.com.hk/viewthread.php?tid=27011169&extra=page%3D1[/url]
頁: [1]
查看完整版本: AlphaGo進化 自學3天勝人類3,000年