成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

BetaMeow----利用機(jī)器學(xué)習(xí)做五子棋AI

bingchen / 1724人閱讀

摘要:簡言之,機(jī)器學(xué)習(xí)是內(nèi)功,而數(shù)據(jù)挖掘則是機(jī)器學(xué)習(xí)的一種用途。但本質(zhì)上是我在學(xué)習(xí)機(jī)器學(xué)習(xí)方面的實(shí)戰(zhàn)項(xiàng)目,所以我想辦法利用機(jī)器學(xué)習(xí)的方面的算法實(shí)現(xiàn)。

BetaMeow的起源

前段時間AlphaGo和李世石廣受關(guān)注,作為人工智能的腦殘粉,看完比賽后激動不已,因?yàn)橛幸欢ǖ臋C(jī)器學(xué)習(xí)的基礎(chǔ),便打算擼一個棋類的AI,但我還算有點(diǎn)自知之明,圍棋AI,甚至google打算做得通用AI是做不出的了,所以打算擼一個五子棋的AI。

選取五子棋作為試手項(xiàng)目主要是以下幾點(diǎn)原因:

規(guī)則簡單。為了簡單起見,BetaMeow只要有一方練成五子就可以判輸贏。

受眾多。因?yàn)槲遄悠宓囊?guī)則相對簡單,使得其受眾遠(yuǎn)比圍棋多,換句話來說,我把BetaMeow做出來了,那么可以測試的人也多。

機(jī)器學(xué)習(xí)的簡單介紹

近年機(jī)器學(xué)習(xí),數(shù)據(jù)挖掘,人工智能很火,但其實(shí)不少人對這些名詞其實(shí)是一頭霧水,我嘗試用我自己的語言解釋,如果有什么需要完善的地方,歡迎提出。

比如說,有一個模型能夠能夠根據(jù)一個人的社交動態(tài),推斷出他是喜歡蘋果還是香蕉,那么,我現(xiàn)在想知道某個社交平臺上市喜歡蘋果的人多,還是喜歡香蕉的人多。顯然,我把社交平臺的數(shù)據(jù)扔進(jìn)模型中跑一遍就可以了,但社交平臺數(shù)據(jù)肯定不是說一兩個txt文件這么簡單啊。這時就可能涉及網(wǎng)絡(luò)爬蟲(收集數(shù)據(jù)),分布式存儲(數(shù)據(jù)量巨大的時候),過濾無關(guān)的數(shù)據(jù)(數(shù)據(jù)清洗),修改模型使得符合當(dāng)前業(yè)務(wù)場景(花式調(diào)參),跑完數(shù)據(jù)獲得結(jié)果后決定采取什么商業(yè)措施等。(BI)

機(jī)器學(xué)習(xí)就是負(fù)責(zé)考慮如何建立模型,而數(shù)據(jù)挖掘則是負(fù)責(zé)其他地方,不過一般來說,數(shù)據(jù)挖掘部分的工作可能會分開幾個部門來做。

簡言之,機(jī)器學(xué)習(xí)是內(nèi)功,而數(shù)據(jù)挖掘則是機(jī)器學(xué)習(xí)的一種用途。而人工智能,就是更廣的概念了

五子棋AI

回到正題上,傳統(tǒng)的五子棋AI采用的搜索算法,這個方面其實(shí)已經(jīng)很完善,聽聞已經(jīng)出現(xiàn)了無解的結(jié)果(玩家無法取勝)。但BetaMeow本質(zhì)上是我在學(xué)習(xí)機(jī)器學(xué)習(xí)方面的實(shí)戰(zhàn)項(xiàng)目,所以我想辦法利用機(jī)器學(xué)習(xí)的方面的算法實(shí)現(xiàn)。

最后選擇決策樹算法。通過決策樹判斷該局的狀況,屬于對方(玩家)占優(yōu)還是己方(AI)占優(yōu)。

什么叫決策樹

至于什么叫決策樹,有時真的是一圖勝千言。

圖片來至于http://www.52analysis.com/shujuwajue/2441.html

簡單來說,通過一層層的篩選下來,你就能獲得相應(yīng)的結(jié)果。

如何構(gòu)建決策樹

關(guān)于如何構(gòu)建決策樹,如果需要了解文字說明,可以參考這里,如果需要參考python的代碼實(shí)現(xiàn),可以參考下文給出的github地址,這里只給出簡單總結(jié)。

簡單描述

在一個二維集合(可以看成矩陣)中,第二維代表每一個決策的實(shí)例,用某種方式(例如信息增益(首先要計(jì)算熵))在確定一個最佳分割點(diǎn)(p),然后以該點(diǎn)作為根節(jié)點(diǎn),此時剩下的子集有兩種情況,要么作為決策樹的結(jié)果,要么遞歸下去創(chuàng)建子樹。

選取特征

有句話叫好的數(shù)據(jù)勝過好的模型,經(jīng)過這番實(shí)踐我算是真正認(rèn)識到這句話的意思。機(jī)器學(xué)習(xí)的算法不是你隨便扔一個數(shù)據(jù)集下去,他都能訓(xùn)練出一個有效的模型。我曾經(jīng)把整個棋局扔給他它訓(xùn)練,然而并沒有什么亂用。幾番周折才角色以連子形式作為訓(xùn)練的內(nèi)容。

舉個例子

[1,1,0,1,2]

這個訓(xùn)練集表明,玩家的連子形式已經(jīng)是1,1,0,1(0表示空位),如果玩家順利連成了4子,那么AI則徹底出于劣勢,因?yàn)槿绻?子是在棋盤中間的話,那么ai只能堵一邊,玩家還是可以在另一邊連成5子。

所以ai應(yīng)該下在2號位,阻止其連成4子。

我的代碼中有大量如此的數(shù)據(jù),用于教會ai決定是及時阻止對方,還是提高自己的連子數(shù)。(跑兩次不同的決策樹)

BetaMeow的未來與本文后話

BetaMeow現(xiàn)在顯然是不完善的。

首先是五子棋規(guī)則的本身,首先是五子棋棋盤應(yīng)該15x15,然后無知的我把它弄成了19x19,然后規(guī)先后手的規(guī)則好像也有不同的規(guī)定,但我沒有考慮太多這方面,畢竟我的主要目的是機(jī)器學(xué)習(xí)的實(shí)踐,并非做出一個五子棋游戲。五子棋只是一個載體。
同樣是因?yàn)槲业哪康脑谟谒惴ǎ越缑娌惶烙^,甚至在不同分辨率上可能有問題(使用的bootstrap應(yīng)該問題不大),所以如果有較為熟悉前端的朋友,歡迎修改修改后Pull Requese給我。

第二點(diǎn),算法本身也有不完善的地方。
因?yàn)槟壳暗姆桨甘潜闅v棋局,分析各店的形式,可能因?yàn)檠h(huán)的原因,會導(dǎo)致后面的選擇覆蓋掉前一個選擇,從而錯過了一些最好的選擇。

下一步會是給每一個選擇的結(jié)果加上權(quán)重,從而避免上述問題。

嗯,說了這么多,最后給出這個項(xiàng)目的github地址

my_github

重要的事情再說一遍。

前端真的做得很爛,如果有熟悉前端的朋友幫我修改一下,真的萬分感謝。

這個github地址會記錄下我學(xué)習(xí)機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的各種小項(xiàng)目(包括我之前的圖片識別的項(xiàng)目),將會持續(xù)更新很長一段時間,如果你對這個有興趣,歡迎關(guān)注和支持。

如果你也有機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘等相關(guān)的項(xiàng)目,歡迎推薦給我,大家互相學(xué)習(xí)的同時,我也會在我的項(xiàng)目的README中給出你項(xiàng)目的URL(你也要給出我項(xiàng)目的URL哦,親)

感謝關(guān)注和支持。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/37897.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.23 - AlphaGo 兩連勝柯潔:“狗” 來了!

    摘要:的前世今生去年月,橫空出世,戰(zhàn)勝了韓國棋手李世石,贏下了人機(jī)對弈的第一戰(zhàn)。當(dāng)然,隨著技術(shù)的不斷發(fā)展,人工智能有望在所有領(lǐng)域完全超越人類,成為超人類智能,為人類文明的發(fā)展做出更大的貢獻(xiàn)。 showImg(https://segmentfault.com/img/bVOgwC?w=900&h=385); AlphaGo 的前世今生 去年 3 月,AlphaGo 橫空出世,4:1 戰(zhàn)勝了韓國...

    anquan 評論0 收藏0
  • Python實(shí)現(xiàn)AI子棋

    摘要:可以說,每個評估函數(shù)就是一個選手,對不同的棋型每個選手自然有不同的看法和應(yīng)對措施,當(dāng)然他們的棋力也就因此各不相同了。方搜索最大值,人類方搜索最小值。了解了上述原理之后,就可以自己寫代碼實(shí)現(xiàn)了。 公眾號:Charles的皮卡丘作者:Charles 開發(fā)工具:Python版本:3.6.4相關(guān)模塊:graphics模塊。 環(huán)境搭建:安裝Python并添加到環(huán)境變量即可。 原理簡介:對于五子棋...

    Yangder 評論0 收藏0
  • AI智能子棋算法——假如我是計(jì)算機(jī)

    摘要:所有獲勝的數(shù)量和數(shù)量統(tǒng)計(jì)經(jīng)過通過棋盤上所有可能勝利的情況不過種而已計(jì)算最合適的落棋目標(biāo)如果我是計(jì)算機(jī),接下來我要做的就是當(dāng)聰明的人類下好棋之后,我怎樣下好自己的棋。 1.前言 記得讀大學(xué)時,有段時間特別喜歡和室友們下五子棋,由于腦子不是特別靈光,再加上室友確實(shí)經(jīng)驗(yàn)豐富,自己自然是屢屢戰(zhàn)敗。時光荏苒,一眨眼好多年過去了,很是懷念那時愜意的時光!大學(xué)畢業(yè)后,室友們都從事了不同行業(yè)的工作,我...

    CodeSheep 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<