AlphaGo 的傳奇故事

文章目錄

  • 一、說明
  • 二、AlphaGo 傳奇(一):游戲規則
  • 三、AlphaGo 傳奇(二):它是如何運作的?
  • 四、AlphaGo 傳奇(三):史詩般的戰斗和人工智能的未來

一、說明

1997 年,IBM 的“深藍”系統擊敗了國際象棋世界冠軍加里·卡斯帕羅夫。當時,這場勝利被廣泛譽為人工智能的里程碑。但事實證明,“深藍”技術只對國際象棋有用,其他方面則無用。計算機科學并未經歷一場革命。AlphaGo 這個圍棋系統最近擊敗了歷史上最強大的圍棋選手之一,它會有什么不同嗎?

二、AlphaGo 傳奇(一):游戲規則

2016 年,AlphaGo 成為少數獲得最高排名的職業圍棋選手之一,一舉席卷全球。問題是?AlphaGo 不是一個人,而是一個由 Google DeepMind 研究人員設計的程序。超過 2 億人觀看了與李世石的比賽。具體來說,這大約是英國總人口的 3 倍。 隨后,參與該項目的研究人員獲得了馬文·明斯基獎章,并登上了《自然》雜志的封面(這些只是他們取得的成就中的一小部分)。自原版 AlphaGo 問世以來,已經經歷了幾代,分別是 Master、AlphaGo Zero、AlphaZero 和 MuZero。

但這到底是怎么回事?為什么它如此重要?在這個由 3 部分組成的系列文章中,我們將介紹圍棋游戲的規則,包括它為何具有挑戰性、AlphaGo到底是什么、它是如何工作的,以及接下來會發生什么……

第一部分:什么是“Go”?
圍棋是至今仍在玩的最古老的棋盤游戲之一。每局有 2 名玩家,每名玩家使用一組白色或黑色棋子。標準圍棋棋盤有 19×19 條網格線,有 361 個交叉點。游戲的目標是比對手包圍更多的領地,領地定義為被單一顏色的棋子包圍的空點數量。每位玩家輪流將棋子放在交叉點上。

主要有 4 條規則。1
) 一旦玩家將棋子放到棋盤上,除非被吃掉,否則棋子不能從原位置移動。2
) 如果玩家的棋子被對方的棋子包圍,則該棋子將被吃掉。3
) 玩家不能重復之前的玩法,以避免在吃掉對手的棋子時出現來回反復的情況。4
) 如果玩家不想移動,則允許其放棄,如果雙方連續放棄,游戲結束。最終得分為玩家領地的數量減去其被吃掉的棋子的數量。

當玩家級別不同時,會使用讓分制,即給級別較低的玩家某種形式的讓步。這可以是游戲結束時的額外分數,或有更多可用棋子。

第 IB 部分:圍棋難在何處?
編寫計算機程序來下圍棋非常困難,因為棋手的技能取決于位置判斷和人類的模式識別。人類棋手很早就能識別出模式(黑棋和白棋),并根據棋盤位置決定自己的棋子是否會被吃掉。由于目前的程序還不夠復雜,無法模擬棋手的視覺意識,因此算法解決方案是根據之前的合法打法對可能的走法進行詳盡的搜索。具體來說,游戲位置有大約 10 170 種,游戲狀態則有更多。每種狀態都包含玩家獨特的走法歷史。

相反,國際象棋等游戲本質上是組合游戲,因此計算機更容易評估可能的走法和組合,因為有許多算法技術可以加快搜索過程。人類玩家在國際象棋游戲中處理所有可能的組合的能力較弱。您可以在此處了解有關可解游戲的更多信息。

IC部分:什么是AlphaGo?
AlphaGo 是一個計算機程序,它使用 人工智能、深度學習、強化學習和監督學習中的多種概念來下圍棋。因此,您不是在線與人對戰,而是與一個已經學會如何采取最佳動作來取勝的計算機程序對戰。數據如何?AlphaGo 在與其他圍棋程序對戰的 495 場比賽中僅輸掉 1 場,并擊敗了 2 名世界冠軍。

AlphaGo 成功的關鍵概念之一是深度學習(DL)的使用。如上所述,計算機圍棋的主要難點之一是模式識別。眾所周知, DL擅長視覺領域的模式識別,因此產生了非常成功的圖像分類器。例如,區分 1-10 范圍內的手寫數字,或識別照片中的動物類型(貓、狗、青蛙、松鼠等)。DL 的算法和表達能力被用于模擬人類圍棋玩家,其中每個游戲玩法和位置都由二維圖像表示。

好了,現在我們知道了規則和術語,下一篇文章將解釋 AlphaGo 的實際工作原理。到時候見!

分享這個:

2024 年 4 月 16 日湯姆洛克斯數學

三、AlphaGo 傳奇(二):它是如何運作的?

克萊爾·滕

在我們深入了解 AlphaGo 內部工作原理之前,讓我們首先定義第一部分中提到的一些術語,即深度學習(DL)、強化學習(RL)和監督學習(SL)。

深度學習 (DL) 是一種使用許多堆疊和連接的神經元或層的模型。為了說明其工作原理,讓我們看一個圖像分類器試圖區分狗和貓的例子。廣義上講,每一層都會學習不同的特征。例如,第一層學習耳朵形狀,第二層學習臉部形狀,第三層學習眼睛顏色。這些連接學習到的相關信息可能有助于區分狗和貓。更深的模型有更多的層,可以學習更多的特征。相反,淺層模型可能只有 1 或 2 層,其中用于分類的唯一信息是耳朵和臉部形狀。在某些應用中,淺層模型就足夠了,但 DL 模型更強大,表現力更強。

強化學習 (RL) 是 AI 的一個子領域,它創建了學習一系列動作以達到最佳解決方案的系統。一個簡單的理解強化學習的方法就是一個孩子學習如何騎沒有輔助輪的自行車。最初,孩子騎上車座后幾乎立刻就失去了平衡。摔倒后,他們會站起來,再試一次。隨著時間的推移,孩子會通過反復試驗學會如何保持平衡。在這里,一系列最佳動作可能如下所示:握住車把,一只腳踩在地上,另一只腳踩在踏板上。每個單獨的動作都會帶來獎勵,最終產生累積分數。效率較低的一系列動作可能會返回與平衡自行車相同的最終輸出,但會返回較低的分數。例如,如果孩子被附近的遛狗者分散了注意力,并花了一些動作來和狗玩耍。

相比之下,監督學習 (SL) 看起來略有不同。現在想象一下,孩子不再沒有任何經驗,而是有一些寫在抽認卡上的例子,如下圖所示。孩子不是從頭開始學習,而是已經知道一系列可以導致自行車平衡或不平衡的動作。由于輸入(抽認卡)和輸出(成功/失敗)已經定義,孩子通過研究給定抽認卡中的模式來學習預期的標簽(成功/失敗)。當孩子得到一輛不同類型的自行車并且他們仍然知道如何保持平衡時,就會實現最終的輸出。他們已經學會了如何概括和應用他們學到的技能在類似但新的場景中。

第一行有 3 張卡片,說明如何騎自行車,最后一張卡片根據操作標有成功或失敗的標簽。第一行給出成功的例子,而第二行給出失敗的例子。
總而言之,RL 專注于通過反復試驗來學習的最佳過程,而 SL 則通過使用訓練示例進行學習。兩者都達到了相同的最終目標,但 RL 關心實現目標的 過程,而 SL 則不關心。

好的,呼。現在我們已經完成了解決所有術語的艱苦工作,因此我們準備深入研究 AlphaGo 的不同組件,這些組件共同打造出一名圍棋大師。

成為大師需要三個主要步驟:
i)學徒向大師學習如何在圍棋中走獲勝棋步;
ii)學徒在圍棋桌上與自己對弈以提高自己的策略;
iii)學徒評估哪些棋步最有利于贏得最后的比賽。

簡而言之,這份清單告訴我們學徒首先需要學習如何玩游戲(i);然后他們需要改進他們的策略(ii);最后,他們需要評估哪些策略會在真正的游戲中取得成功(iii)。

第一部分:向專家學習。
AlphaGo 的第一部分構建了一個 SL 模型,該模型從專家走法數據庫(3000 萬種走法)中學習。繼續我們之前的 SL 示例,想象一個學徒收到了包含專家采取的一系列行動的抽認卡。但是,標簽不是成功/失敗(如我們的自行車示例),而是輸出為專家根據他們之前的步驟將采取的下一步行動。

現在,這個學徒要學習和吸收很多很多的抽認卡。因此,為了減輕他們的負擔,訓練了兩個不同的 SL 模型。這兩個模型具有相同的架構,即層的設計。不同之處在于更新和調整的參數數量,這與所需的訓練時間長度直接相關。參數越多,需要更多的計算能力和時間。第一個學徒預測結果的準確率為 55%,比之前的基準高出 10%。第二個學徒預測的準確率為 24%,但計算輸出的速度比前者快 3 倍。

第二部分:學習如何成為一名更好的球員
現在學徒已經從第一部分學習了策略,是時候改進他們的游戲玩法了。最終目標是讓玩家為自己創造新的動作,而不是僅僅模仿專家。因此,玩家使用不太準確但更高效的模型作為起點。我們不再需要第一個專家動作數據庫。

為了提高水平,學徒現在要與自己對戰,用隨機選擇的學習策略與另一個策略對戰。這種自我對戰的形式就是強化學習。每場新游戲都允許玩家根據哪些策略有效、哪些策略無效來迭代和更新他們之前的策略。請記住,在強化學習中,實現目標的過程與最終目標本身同樣重要,這意味著玩家正在學習如何使用最佳解決方案贏得游戲,從而獲得最高分。

第三部分:評估他們的游戲玩法
好吧,我們有一位玩家先從專家那里學習游戲,然后通過反復與自己比賽來提高水平。最后要解決的問題是評估他們玩得有多好——哪一系列動作可以獲勝?

最基本的解決辦法是建立一個模型,使用第一部分中的專家數據庫來評估玩家的動作。由于數據庫的位置高度相關(代表整個游戲玩法而不是單個動作),最終的評估模型將記住整個游戲而不是概括新的位置。這種現象被稱為過度擬合。你可以把它想象成通過只記住過去的試卷來備考。如果期末考試與你的一次練習完全一樣,你就會取得很好的成績!但是,如果看起來不一樣,你將無法回答問題,因為你一開始就不知道它 為什么有效。

相反,為了進行評估,該模型使用第二部分中進行的游戲作為新數據庫。每場比賽僅使用 1 個位置進行訓練以緩解相關性問題,返回 3000 萬個獨特的游戲位置。

就這樣!第一、二和三部分——學習、改進和評估——不斷重復、改進,直到我們最終擁有一位圍棋大師。在本系列的第三部分也是最后一部分中,我們將首次看到 AlphaGo 與人類玩家進行對決,并探索接下來會發生什么……

關于人工智能的定義尚無統一意見 。廣義上講,人工智能程序是像人類一樣思考和行動的系統。

分享這個:

2024 年 4 月 29 日湯姆洛克斯數學

四、AlphaGo 傳奇(三):史詩般的戰斗和人工智能的未來

在前兩篇文章中,我們了解了什么是 AlphaGo(一種經過訓練可以下圍棋的人工智能)以及它的工作原理(深度學習),那么接下來是什么?敬請期待……

這可能并不明顯,但訓練這些模型需要大量的計算能力。在本系列的第 2 部分中,我們了解了 AlphaGo 如何利用 3000 萬個數據點通過監督學習 (SL) 從專家游戲中學習。僅這個模型就花費了 50 個圖形處理單元 (GPU) 和 3 周的時間進行訓練。為了評估玩家在通過自我對弈學習和改進后的動作,又花了一周時間。作為參考,個人計算機 (PC) 通常有 1 個中央處理器 (CPU),并且可能還有 1 個 GPU(如果安裝)。GPU 是功能更強大、速度更快的 CPU,因此 50 個 GPU 工作 4 周確實需要大量的計算能力!

經過 4 周的等待,AlphaGo終于準備好上場了。團隊首先讓 AlphaGo 與最先進的計算機圍棋程序 — — Crazy Stone、Zen 和 Pachi — — 進行對弈,495 場比賽中,AlphaGo 只輸了 1 場。勝率高達 99.8%。但它的勝率甚至更高。正如本系列第 1 部分所討論的那樣,游戲規則允許使用讓子來解釋玩家之間的技能水平差異。在與其他圍棋程序的第二場比賽中,AlphaGo 給了對手 4 顆讓子,即在棋盤上放置 4 顆額外的棋子。最終比分如何?AlphaGo 仍然贏得了 77% 以上的比賽。

好吧,那么人類選手呢?第一個對手是三屆歐洲圍棋冠軍樊麾。在五盤比賽中,AlphaGo 以 5-0 不讓分獲勝。AlphaGo 隨后與李世石對決,后者被認為是過去十年最偉大的圍棋選手……

2016 年 3 月,AlphaGo 贏得了 100 萬美元的大獎,在為期 6 天的比賽中,AlphaGo 以 4-1 獲勝,全球觀眾超過 2 億。AlphaGo 不僅贏得了比賽,還發明了全球圍棋專家從未見過的新招式。哇哦。

那么,接下來會怎樣?自 AlphaGo 以來,已經開發了許多其他迭代版本,包括 Master、AlphaGo Zero、AlphaZero 和 MuZero。每次迭代都在其前身的基礎上不斷改進,AlphaGo Zero 的訓練完全不需要任何專家知識!

毫無疑問,發展將會繼續,而 ChatGPT 等聊天引擎的引入只會加速增長,但潛在的限制和挑戰是什么?

好吧,正如上面提到的——以及在本系列第 2 部分中討論的——AI 模型需要大量的訓練數據才能很好地概括。而且正如前面所討論的,在非常強大的 GPU 上訓練這些模型需要很長時間。與 AI 模型相比,在第 2 部分中學習如何騎自行車的孩子很可能花費更少的精力和時間學習!圍棋的規則定義得非常明確(棋盤游戲通常如此),但現實生活環境卻很混亂。這意味著建立一個涉及使用真實場景進行學習的強化學習 (RL) 模型極其困難。運行“學會下棋”模擬的成本與人類在復雜環境中的學習能力無法相比,它要大幾個數量級。

AlphaGo 向我們展示了建立一個能夠完全從環境線索中學習的模型是可能的,盡管它有明確的規則和運行數百萬次模擬的能力。從那時起,強化學習取得了多項進展,尤其是在自動駕駛汽車領域。與預期的需要數百萬次迭代才能達到合理的能力水平不同,最近的算法能夠在短短 20 分鐘內學會車道跟??蹤。這里的重點是能夠通過智能反復試驗來解決給定的任務,而不僅僅是查看數百萬個看似隨機的數據點。

在這個由 3 部分組成的 AlphaGo 系列文章中,我希望能夠讓您了解 AlphaGo 在人工智能領域的重要性,并簡要概述算法的工作原理,以及將強化學習算法推廣到當今研究人員面臨的現實世界的挑戰。感謝您的閱讀!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43739.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43739.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43739.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

卷積神經網絡之ResNet50遷移學習

數據準備 下載狗與狼分類數據集,數據來自ImageNet,每個分類有大約120張訓練圖像與30張驗證圖像。使用download接口下載數據集,并自動解壓到當前目錄。 全是小狗的圖片 另一邊全是狼的圖片 加載數據集 狼狗數據集提取自ImageNet分類數據集&a…

2-3個月的幼貓能吃主食凍干嗎?第一次吃哪款主食凍干比較好

2-3個月的幼貓能吃凍干嗎?一般來說,幼貓在2-3個月左右的離乳期就可以吃凍干了。需要注意的,一個是要認準主食凍干,零食凍干會讓貓貓從小就挑食,以后就更不好糾正了。而且離乳期的貓貓沒有了母乳的保護,免疫…

Open3D 點對面的ICP算法配準(精配準)

目錄 一、概述 1.1核心思想 1.2實現步驟 二、代碼實現 2.1關鍵函數 2.2完整代碼 三、實現效果 3.1原始點云 3.2配準后點云 3.3計算數據 一、概述 基于點對面的ICP(Iterative Closest Point)配準算法是ICP的一種變體,它通過最小化源…

【Ty CLI】一個開箱即用的前端腳手架

目錄 資源鏈接基礎命令模板創建命令幫助選擇模板開始創建開發模板 開發背景npm 發布流程問題記錄模板創建超時 更新日志 資源鏈接 文檔:https://ty.cli.vrteam.top/ 源碼:https://github.com/bosombaby/ty-cli 基礎命令 1. npm 全局安裝 npm i ty-cli…

Zabbix Sia Zabbix 邏輯漏洞(CVE-2022-23134)

前言 CVE-2022-23134是一個中等嚴重度的漏洞,影響Zabbix Web前端。這個漏洞允許未經身份驗證的用戶訪問setup.php文件的某些步驟,這些步驟通常只對超級管理員開放。利用這個漏洞,攻擊者可以通過跳過某些步驟來重新配置Zabbix前端&#xff0c…

gazebo仿真環境中加入livox mid360

https://github.com/Livox-SDK/livox_laser_simulation 功能包適用于ubuntu18.04 gazebo9的可以直接編譯運行。在ubutun20.04 的系統下gazebo是11版本,需要做一些修改 CMakeLists.txt文件中的 add_compile_options(-std=c++11) 改為 add_compile_options(-std=c++17)fatal er…

二一、搭建自已的語言大模型

1. 配置langchain環境 使用conda創建一個虛擬環境,基于 Python3.10,并在虛擬環境內安裝項目的依賴。注意,大模型對gpu有一定的要求,否則速度會奇慢無比。 conda create -n langchain python=3.10 conda env list conda activate langchain # 拉取倉庫 $ git clone ht…

Redis-Jedis連接池\RedisTemplate\StringRedisTemplate

Redis-Jedis連接池\RedisTemplate\StringRedisTemplate 1. Jedis連接池1.1 通過工具類1.1.1 連接池:JedisConnectionFactory:1.1.2 test:(代碼其實只有連接池那里改變了) 2. SpringDataRedis(lettuce&#…

終于弄明白了什么是EI!

EI是Engineering Index的縮寫,中文意為“工程索引”,是由美國工程信息公司(Engineering Information, Inc.)編輯出版的著名檢索工具。它始創于1884年,擁有超過一個世紀的歷史,是全球工程界最權威的文獻檢索系統之一。EI雖然名為“…

十五、小型電腦沒有數字鍵及insert,怎么解決IDEA快速插入getset構造這些方法

🌻🌻目錄 一、小型電腦沒有數字鍵及insert,怎么解決IDEA快速插入getset構造這些方法 一、小型電腦沒有數字鍵及insert,怎么解決IDEA快速插入getset構造這些方法 解決: 1.winR打開搜索 2.osk回車 屏幕就出現了這樣的一…

CC7利用鏈分析

分析版本 Commons Collections 3.2.1 JDK 8u65 環境配置參考JAVA安全初探(三):CC1鏈全分析 分析過程 CC7,6,5都是在CC1 LazyMap利用鏈(引用)的基礎上。 只是進入到LazyMap鏈的入口鏈不同。 CC7這個鏈有點繞,下面順著分析一下利用鏈。 入口類是Hashtable&…

前端入門知識分享:如何在HTML或CSS文件中引用CSS文件。

閱讀提示:本文僅僅僅適用于剛剛接觸HTML和CSS的小白從業者,新人愛好者。自覺身份不符的老鳥們,盡快繞行吧! 什么是CSS?什么是CSS文件。 CSS,全稱為Cascading Style Sheets(層疊樣式表&#xff…

分布式IO模塊軟件配置

組態接口模塊 1、打開網絡視圖 2、拖拽出ET200SP 3、雙擊ET200SP的圖片,進入從站配置 總線適配器的組態更換 關于IO地址分配,需要建立好子網通信后,在主機上配置。 可以看到IP 和設備名 設備與控制器的Profinet連接 先找到設備名稱再找…

HarmonyOS鴻蒙DevEco Studio無法連接本地模擬器

使用DevEcoStudio 5.0.3.403版本 發現無法選擇模擬器 解決方法: 1、打開模擬器 2、關閉DevEco Studio,(不要關閉模擬器) 3、重新打開DevEco Studio。

EXCEL VBA發郵件,實現自動化批量發送

EXCEL VBA發郵件,實現自動化批量發送 以GET方式上傳數據 Public Function uploadData_GET(ByVal url As String)Dim httpSet http CreateObject("Microsoft.XMLHTTP")http.Open "GET", url, Falsehttp.sendDebug.Print http.getAllResponseHea…

四道經典算法JAVA

1.爬樓地 爬20個臺階的爬法:f(19)f(18) 經典斐波拉契數列問題 public class demo4 {//爬樓梯問題public static void main(String[] args) {System.out.println(getSum(20));}public static int getSum(int n) {if (n 1)return 1;if (n 2)return 2;return getSum(n - 1) …

SpringBoot:SpringBoot中如何實現對Http接口進行監控

一、前言 Spring Boot Actuator是Spring Boot提供的一個模塊,用于監控和管理Spring Boot應用程序的運行時信息。它提供了一組監控端點(endpoints),用于獲取應用程序的健康狀態、性能指標、配置信息等,并支持通過 HTTP …

jdk1.8 ConcurrentHashMap 源碼分析

ConcurrentHashMap 1.8 使用synchronized 和CAS 實現 記住:1.8沒有分段鎖不要混淆了,分段鎖是1.7中的 final V putVal(K key, V value, boolean onlyIfAbsent) {if (key null || value null) throw new NullPointerException();//計算hashint hash…

關于Python的類的一些理解

才發現python的類對象只能調用類方法 我想使用對類對象a使用系統調用的len方法就會報錯 2.類對象a是什么? 答:是所有的帶有self的成員變量 舉例說明:紅色的就是a里面的東西 class A:def __init__(self,data):self.datadataself.b1self.d{a…

發表EI會議論文-對考研生和研究生都有好處!

EI論文對考研和保研的幫助主要體現在以下幾個方面: 對考研的幫助 1.復試加分:在考研過程中,復試階段是關鍵,擁有EI論文可以證明考生具備一定的科研能力,給考官留下深刻印象,有助于提高復試通過率。 2.學…