《神經網絡與PyTorch實戰》——1初識神經網絡
第 1 章初識神經網絡
本章將以在圍棋比賽中戰勝人類世界冠軍的AlphaGo為例,介紹什么是神經網絡,使你初步認識神經網絡的強大。本章還介紹人工智能、機器學習、神經網絡等熱門概念的區別和聯系。
1.1 例說神經網絡
1.1.1 從圍棋和AlphaGo說起
圍棋(Go)是一種歷史悠久的棋類游戲。如圖1-1所示,
圍棋的棋盤是一個的網格。下棋時,雙方選手輪流每人下一步棋。每下一步棋,棋手可以將一枚自己的棋子放在圍棋棋盤的某一個網格上。直接或間接占有最多棋盤網格的選手獲勝。長期以來,人們普遍認為在短期內計算機程序不可能在圍棋上戰勝人類職業選手,所以圍棋也被視為人類智慧的瑰寶。谷歌(Google)旗下產品阿爾法狗(AlphaGo)于2016年3月戰勝圍棋世界冠軍李世石,于2017年5月戰勝排名世界第一的圍棋世界冠軍柯潔,引起了全社會的關注。
在AlphaGo誕生之前,就出現過一些圍棋程序。最早的棋類程序是根據預定的固定策略來下棋的(如1914年L. Quevedo實現的自動下棋機)。在這類棋類程序的設計過程中,人類根據自己的對弈經驗,抽象出一系列明確的對弈策略,并將這些策略用程序實現。這類程序的邏輯是這樣的:首先判斷當前棋局是不是滿足第一種策略的適用條件。如果滿足第一種策略的適用條件,則根據第一種策略決定棋子的放置位置;如果不滿足,則判斷當前棋局是不是滿足第二種策略的適用條件。如果滿足第二種策略的適用條件,則根據第二種策略決定棋子的放置位置;以此類推,直到棋子的方法被確定。具體流程如圖1-2所示。
這種方法能夠利用人類已經知道的圍棋對弈知識,達到一定的效果。
但是,這些基于預定策略的圍棋程序明顯弱于人類職業棋手的圍棋水平。基于預定策略的圍棋程序無法戰勝人類職業棋手,主要原因是圍棋的最優決策非常復雜。圍棋的復雜性具體體現為以下幾點。
* 圍棋的棋盤網格上共有個交叉點。在圍棋進行的某個時刻,每個交叉點都可能有3種情況(交叉點上有黑棋、交叉點上有白棋或交叉點上沒有棋子)。這使得圍棋對弈中可能遇到的狀態非常多。宋代的沈括在《夢溪筆談》中稱:“大約連書萬字四十三個,即是局之大數”,即棋局的可能狀態數是要通過連續寫43個代表的“萬”字,即(這可以通過計算得到)。如果扣除一些不滿足圍棋規則的狀態,剩下的狀態(約占總狀態數的1%)也有約種。這比棋子數目有限的象棋、國際象棋等大得多。
* 在圍棋中,很難通過棋子的數量和棋子的絕對位置判斷形勢的好壞。這與象棋這樣的棋子有限的游戲不同。在象棋中,我們可以通過評估各類棋子的數目給出一個形勢的簡易判斷。但是在圍棋中,棋子的數量和形勢的好壞往往沒有特別明顯的關系。這會對計算機進行形勢判斷造成障礙。
* 在圍棋進行的過程中,雙方交替下棋,每一步可以在某一個網格交叉點上放置一顆自己的棋子,而這361個網格交叉點都有可能是放置的位置。即使在某步確定棋子位置的時候只考慮未來的8步,也大概有種可能組合。按照當今最快的超級計算機之一“天河二號”的理論峰值運算能力計算,也需要4個小時來窮舉來這些組合。
* 圍棋中的每一步都可能影響未來幾百步,在決策某一步時只評估未來的若干步遠遠不夠。而窮舉未來所有可能的計算量過大,其必勝記憶法超過。這個數字遠遠超過了可觀測宇宙的原子總數(約)。
圍棋程序經過數十年的改進,已經越來越強。目前,AlphaGo等圍棋程序已經超過人類頂尖職業高手的水平。那么,為什么AlphaGo能夠克服上述的種種困難,達到令人驚嘆的圍棋水平呢?這其中的關鍵在于,AlphaGo不再使用人工抽象的諸多規則,而使用了人工神經網絡來進行決策。人工神經網絡是受生物大腦運作機理的啟發而設計的一種數學模型。通過神經網絡,可以做出非常復雜的決策。在下面的章節中,我們將從生物的神經系統出發,介紹人工神經網絡的基本原理。
pytorch 神經網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。