華文網

阿爾法狗 3 天走完人類千年棋史,被反超的我們該如何絕地求生?

點擊上方“CSDN”關注

關鍵時刻,第一時間送達!

作者 | 蘇宓

2016 年 1 月 28 日,Google 公司 Deepmind 團隊在《Nature》雜誌上發表重磅學術論文,正式介紹在公平對局條件下以 5:0 成績擊敗歐洲圍棋冠軍樊麾的人工智慧程式——AlphaGo。

2016 年 3 月 9 日,AlphaGo 與韓國九段頂尖圍棋高手李世石進行“人機大戰”,最終以 4:1 戰績一戰成名。

2017 年 5 月,在中國烏鎮圍棋峰會上,AlphaGo 與世界排名第一的圍棋冠軍柯潔對戰,以 3:0 的比分獲勝。在橫掃了世界圍棋界之後,AlphaGo 就此宣佈退役。雖 AlphaGo 將不再參加圍棋比賽,但其開發團隊 DeepMind 公司並沒有停下研究的腳步。

三天自學成才的最強阿爾法狗——AlphaGo Zero

就在昨天,10 月 18 日,DeepMind 團隊再次帶著 AlphaGo 強勢歸來,於《Nature》雜誌上發佈一篇名為《Mastering the game of Go without human knowledge》的論文,正式宣佈最強版阿爾法狗誕生,命名——AlphaGo Zero。

對此 AlphaGo 專案首席研究員 大衛·席爾瓦表示:“AlphaGo Zero 是世界上最強大的圍棋程式,勝過以往所有的 AlphaGo 版本,尤其值得一提的是,它擊敗了曾經戰勝世界圍棋冠軍李世石的 AlphaGo 版本,成績為 100:0。”

過去所有版本的 AlphaGo,都是利用人類資料訓練開始,

它們被告知人類高手具體如何下棋。而最強版 AlphaGo Zero 不使用任何人類資料,獨門秘笈是從一張白紙到滿腹經綸,花費了三天的時間完全自學成才,它使用了更多原理和演算法,這樣提高了計算效率。而在 3 天內——也就是 AlphaGo Zero 在擊敗 AlphaGo Lee 之前,曾進行過 490 萬次自我對弈練習。 相比之下,AlphaGo Lee 的訓練時間長達數月之久。AlphaGo Zero 不僅發現了人類數千年來已有的許多圍棋策略,還設計了人類玩家以前未知的的策略。

AlphaGo-Zero 的訓練時間軸

之所以 AlphaGo Zero 比通過人類資料學習獲得更好的成績,是因為:

首先,AlphaGo Zero 僅用棋盤上的黑白子作為輸入,而前代則包括了小部分人工設計的特徵輸入。

其次,AlphaGo Zero 僅用了單一的神經網路。在此前的版本中,AlphaGo用到了“策略網路”來選擇下一步棋的走法,

以及使用“價值網路”來預測每一步棋後的贏家。而在新的版本中,這兩個神經網路合二為一,從而讓它能得到更高效的訓練和評估。

第三,AlphaGo Zero 並不使用快速、隨機的走子方法。在此前的版本中,AlphaGo用的是快速走子方法,來預測哪個玩家會從當前的局面中贏得比賽。相反,新版本依靠地是其高品質的神經網路來評估下棋的局勢。

AlphaGo 不同版本所需的 GPU/TPU 資源

AlphaGo 幾個版本的排名情況

上述差異均有主於提高系統的性能和通用性,但使最關鍵的仍是演算法上的改進。如今的 AlphaGo Zero 不再受人類知識限制,只用 4 個 TPU。

而此前的 AlphaGo 版本,結合了數百萬人類圍棋專家的棋譜,以及強化學習的監督學習進行了自我訓練。在戰勝人類圍棋職業高手之前,它經過了好幾個月的訓練,依靠的是多台機器和 48 個 TPU。

技術實現

新方法使用了一個具有參數θ的深層神經網路fθ。這個神經網路將棋子的位置和歷史狀態s作為輸入,並輸出下一步落子位置的概率,用, (p, v) = fθ(s)表示。落子位置概率向量p代表每一步棋(包括不應手)的概率,數值v是一個標量估值,代表棋手下在當前位置s的獲勝概率。

AlphaGo Zero 的神經網路通過新的自我對弈資料進行訓練,在每個位置s,神經網路fθ都會進行蒙特卡洛樹(MCTS)搜索,得出每一步落子的概率π。這一落子概率通常優於原始的落子概率向量p,在自我博弈過程中,程式通過基於蒙特卡洛樹的策略來選擇下一步,並使用獲勝者z作為價值樣本,這一過程可被視為一個強有力的評估策略操作。在這一過程中,神經網路參數不斷更新,落子概率和價值 (p,v)= fθ(s)也越來越接近改善後的搜索概率和自我對弈勝者 (π, z),這些新的參數也會被用於下一次的自我對弈反覆運算以增強搜索的結果,下圖即為自我訓練的流程圖。

AlphaGo Zero 強化學習下的自我對弈流程圖

成果

DeepMind 團隊在官方博客上稱,Zero 用更新後的神經網路和搜索演算法重組,隨著訓練地加深,系統的表現一點一點地在進步。自我博弈的成績也越來越好,同時,神經網路也變得更準確。

AlphaGo Zero 習得知識的過程

最後大衛·席爾瓦表示:對於希望利用人工智慧推動人類社會進步為使命的 DeepMind 來說,圍棋並不是 AlphaGo 的終極奧義,他們的目標始終是要利用 AlphaGo 打造通用的、探索宇宙的終極工具。

《Mastering the game of Go without human knowledge》的論文下載地址:https://deepmind.com/documents/119/agz_unformatted_nature.pdf

DeepMind 放出 AlphaGo Zero 的 80 局棋譜,下載地址:https://www.nature.com/nature/journal/v550/n7676/extref/nature24270-s2.zip

看到如此逆天的阿爾法狗,作為緊隨技術潮流的小姐姐再也坐不住了,是時候放出終極大招,幫助我們技術同行者共同學習 AlphaGo 的核心技術——機器學習。

首先結合擁有世界上最大的開來源資料集的 GitHub 開始我們的第一步。如今 GitHub 的資料科學團隊開始探索如何使用機器學習來使開發人員擁有更好的體驗。接下來,我們將與數學科學家 Omoju Miller 共同探索機器學習的基礎知識以及從開源的項目中學習。

什麼是機器學習?

機器學習是一門關於演算法的研究,使用資料去學習、推廣和預測。機器學習令人興奮之處在於,資料越多,演算法越能改進其預測。舉個例子,當我家人開始使用語音而不是以往的打字輸入進行搜索時,一開始機器需要一段時間來識別我們說的話,但使用語音搜索一個星期以後,演算法的語音檢測能力已經足夠好了,語音輸入至今都是我家的主要搜索形式。

機器學習從核心上來說不是一個新概念。機器學習是由 IBM 電腦科學家 Arthur Samuel 在 1959 年創造的,自 20 世紀 80 年代以來被廣泛應用於軟體。

隨著人們從物理領域轉移到數位領域,我們可以從他們留下的資料中學習。

舉個自己的例子,二十一世紀初我學術研究的一部分是建立神經網路。學習和構建這些演算法缺乏真正的商業應用,缺少取得大量資料的途徑。隨著人們從物理領域轉移到數位領域,他們留下的數字足跡可以讓我們從中學習。隨著全球約有 30 億人使用互聯網,這些足跡積累了驚人的資料量。

這些資料存儲就是我們所說的“大資料”。 隨著大資料的出現,機器學習演算法終於能夠從學術界轉向產業,助力于為消費者提供大量價值的產品。然而收集和獲取資料只是構建機器學習資料產品(如搜尋引擎和推薦系統)難題的一部分。直到最近,軟體程式師、資料科學家和統計師都缺乏利用、清理和打包這些大量資料集的工具,以便其他應用程式的使用。

現在通過 Amazon Web Services 和 Hadoop 等工具,我們可以更好更經濟有效地管理資訊。這些工具為從大資料集中獲得價值開闢了新的可能性。

Amazon Web Services:https://github.com/aws

apache / Hadoop(Mirror of Apache Hadoop鏡像):https://github.com/apache/hadoop

近年來,機器學習已經擴展到各種新的應用範圍。我們嘗試用演算法去做各種各樣的事情,從模式識別到玩遊戲甚至到“做夢”。

jbhuang0604 / awesome-computer-vision(電腦視覺資源清單):https://github.com/jbhuang0604/awesome-computer-vision

即使機器學習如今已經有了令人興奮的發展,目前只是在很多可能性的開始階段。

機器學習如何工作?

要想深入瞭解機器學習,可以將這一過程分為三個部分:輸入、演算法、輸出。

輸入:驅動機器學習的資料

輸入是訓練和演算法需要的資料集。從原始程式碼到統計資料,資料集可以包含任何東西:

GSA / data(美國總務管理局資料):https://github.com/GSA/data

GoogleTrends / data(所有開來源資料的索引):https://github.com/GoogleTrends/data

nationalparkservice / data(美國國家公園管理局非官方資料存儲):https://github.com/nationalparkservice/data

fivethirtyeight / data(FiveThirtyEight上故事與互動背後的資料和代碼):https://github.com/fivethirtyeight/data

beamandrew / medical-data:https://github.com/beamandrew/medical-data

src-d / awesome-machine-learning-on-source-code(機器學習相關有趣的連結和研究論文應用於原始程式碼):https://github.com/src-d/awesome-machine-learning-on-source-code

我們需要這些輸入來訓練機器學習演算法,因此發現和生成高品質的資料集是當今機器學習面臨的最大挑戰之一。

演算法:如何處理和分析資料

演算法能將資料轉化為觀點。

機器學習演算法使用資料來執行特定任務。 最常見的演算法類型有:

1. 監督學習使用已經標注和結構化的訓練資料。通過指定一組輸入和所需的輸出,機器將學習如何成功識別並將其映射。

例如,在決策樹學習中,通過將一組決策規則應用於輸入資料來預測值:

igrigorik / decisiontree(基於ID3的機器學習決策樹演算法的實現):https://github.com/igrigorik/decisiontree

2. 無監督學習是使用非結構化資料來發現模式和結構的過程。監督學習可能使用excel表格作為其資料登錄,而無監督學習可能用來理解書籍或博客。

例如,無監督學習是自然語言處理(NLP)中的流行方法:

keon / awesome-nlp(NLP的專用資源列表):https://github.com/keon/awesome-nlp

3. 強化學習用演算法來實現目標。演算法朝著目標執行任務,通過獎勵和懲罰使之學習正確的方法。

例如,強化學習可能用於開發自動駕駛汽車或教機器人如何製造一件物品。

openai / gym(一種用於開發和比較強化學習演算法的工具包):https://github.com/openai/gym

aikorea / awesome-rl(強化學習資源):https://github.com/aikorea/awesome-rl

以下是實踐中的幾個演算法實例:

umutisik / Eigentechno(音樂迴圈主成分分析):https://github.com/umutisik/Eigentechno

jpmckinney / tf-idf-similarity(使用tf*idf(詞頻和逆向檔頻率)來計算文本之間相似度):https://github.com/jpmckinney/tf-idf-similarity

scikit-learn-contrib / lightning(Python中的規模線性分類、回歸和排序):https://github.com/scikit-learn-contrib/lightning

gwding / draw_convnet:https://github.com/gwding/draw_convnet

一些用於執行這些分析的庫和工具包括:

scikit-learn / scikit-learn(Python中的機器學習):https://github.com/scikit-learn/scikit-learn

tensorflow / tensorflow(使用可擴展機器學習的資料流程圖進行計算):https://github.com/tensorflow/tensorflow

Theano / Theano(Theano是一個Python庫,可讓你高效定義、優化、評估涉及多維陣列的數學運算式。它可以使用GPU並執行高效的符號):https://github.com/Theano/Theano

shogun-toolbox / shogun(將軍機器學習工具箱(原始程式碼)):https://github.com/shogun-toolbox/shogun

davisking / dlib(用於在C ++中進行真實世界機器學習和資料分析應用的工具包):https://github.com/davisking/dlib

apache / incubator-predictionio(PredictionIO是開發人員和機器學習工程師的機器學習伺服器,基於Apache Spark,HBase和Spray):https://github.com/apache/incubator-predictionio

什麼是深度學習?深度學習是機器學習的一個子集,使用神經網路來查找資料之間關係。深度學習通過監督學習、無監督學習或強化學習來實現其目標。

在這個連結,你可以直接在流覽器中體驗神經網路:https://github.com/collections/machine-learning

雖然深度學習已經存在了數十年,但由於2005年左右圖形處理單元(GPU)的創新,神經網路才成為可能。GPU最初是為了在3D遊戲環境中渲染圖元而開發的,但已經在訓練神經網路演算法中發現GPU的一個新作用。

輸出

輸出是最終結果。輸出可能是識別紅色符號的模式,可能是判斷網頁論調正面或負面的情感分析,或者是有置信區間的一個預測分數。

在機器學習中,輸出可以是任何事物。產生輸出的幾種方法包括:

分類:為資料集中的每一項生成輸出值

回歸:通過已有資料來預測所考慮變數的最可能值

聚類:將資料分組成相似模式

以下是機器學習的一些實際例子:

deepmind / pysc2(星際爭霸II學習環境):https://github.com/deepmind/pysc2

計算生物學家利用深度學習來理解 DNA:

gokceneraslan / awesome-deepbio(計算生物學領域深度學習應用清單):https://github.com/gokceneraslan/awesome-deepbio

使用Tensorflow進行法語到英語翻譯:

buriburisuri / ByteNet(使用DeepMind的ByteNet進行法語到英語機器翻譯):https://github.com/buriburisuri/ByteNet

萬事俱備,你準備好開始了嗎?

GitHub 上網友整理的機器學習資源供你選擇,你也可以將自己的資源添加到這些列表中。

機器學習:

josephmisiti / awesome-machine-learning(機器學習框架、庫和軟體清單):https://github.com/josephmisiti/awesome-machine-learning

ujjwalkarn / Machine-Learning-Tutorials(機器學習和深度學習教程、文章等資源):https://github.com/ujjwalkarn/Machine-Learning-Tutorials

深度學習:

ChristosChristofidis / awesome-deep-learning(深度學習教程、項目和社區列表):https://github.com/ChristosChristofidis/awesome-deep-learning

fastai / courses(fast.ai課程):https://github.com/fastai/courses

Tensorflow:

jtoy / awesome-tensorflow(http://tensorflow.org專用資源):https://github.com/jtoy/awesome-tensorflow

nlintz / TensorFlow-Tutorials(使用Google TensorFlow框架的簡單教程):https://github.com/nlintz/TensorFlow-Tutorials

pkmital / tensorflow_tutorials(從基礎到更有趣的Tensorflow應用):https://github.com/pkmital/tensorflow_tutorials

注:封面圖為視覺中國付費下載。

它經過了好幾個月的訓練,依靠的是多台機器和 48 個 TPU。

技術實現

新方法使用了一個具有參數θ的深層神經網路fθ。這個神經網路將棋子的位置和歷史狀態s作為輸入,並輸出下一步落子位置的概率,用, (p, v) = fθ(s)表示。落子位置概率向量p代表每一步棋(包括不應手)的概率,數值v是一個標量估值,代表棋手下在當前位置s的獲勝概率。

AlphaGo Zero 的神經網路通過新的自我對弈資料進行訓練,在每個位置s,神經網路fθ都會進行蒙特卡洛樹(MCTS)搜索,得出每一步落子的概率π。這一落子概率通常優於原始的落子概率向量p,在自我博弈過程中,程式通過基於蒙特卡洛樹的策略來選擇下一步,並使用獲勝者z作為價值樣本,這一過程可被視為一個強有力的評估策略操作。在這一過程中,神經網路參數不斷更新,落子概率和價值 (p,v)= fθ(s)也越來越接近改善後的搜索概率和自我對弈勝者 (π, z),這些新的參數也會被用於下一次的自我對弈反覆運算以增強搜索的結果,下圖即為自我訓練的流程圖。

AlphaGo Zero 強化學習下的自我對弈流程圖

成果

DeepMind 團隊在官方博客上稱,Zero 用更新後的神經網路和搜索演算法重組,隨著訓練地加深,系統的表現一點一點地在進步。自我博弈的成績也越來越好,同時,神經網路也變得更準確。

AlphaGo Zero 習得知識的過程

最後大衛·席爾瓦表示:對於希望利用人工智慧推動人類社會進步為使命的 DeepMind 來說,圍棋並不是 AlphaGo 的終極奧義,他們的目標始終是要利用 AlphaGo 打造通用的、探索宇宙的終極工具。

《Mastering the game of Go without human knowledge》的論文下載地址:https://deepmind.com/documents/119/agz_unformatted_nature.pdf

DeepMind 放出 AlphaGo Zero 的 80 局棋譜,下載地址:https://www.nature.com/nature/journal/v550/n7676/extref/nature24270-s2.zip

看到如此逆天的阿爾法狗,作為緊隨技術潮流的小姐姐再也坐不住了,是時候放出終極大招,幫助我們技術同行者共同學習 AlphaGo 的核心技術——機器學習。

首先結合擁有世界上最大的開來源資料集的 GitHub 開始我們的第一步。如今 GitHub 的資料科學團隊開始探索如何使用機器學習來使開發人員擁有更好的體驗。接下來,我們將與數學科學家 Omoju Miller 共同探索機器學習的基礎知識以及從開源的項目中學習。

什麼是機器學習?

機器學習是一門關於演算法的研究,使用資料去學習、推廣和預測。機器學習令人興奮之處在於,資料越多,演算法越能改進其預測。舉個例子,當我家人開始使用語音而不是以往的打字輸入進行搜索時,一開始機器需要一段時間來識別我們說的話,但使用語音搜索一個星期以後,演算法的語音檢測能力已經足夠好了,語音輸入至今都是我家的主要搜索形式。

機器學習從核心上來說不是一個新概念。機器學習是由 IBM 電腦科學家 Arthur Samuel 在 1959 年創造的,自 20 世紀 80 年代以來被廣泛應用於軟體。

隨著人們從物理領域轉移到數位領域,我們可以從他們留下的資料中學習。

舉個自己的例子,二十一世紀初我學術研究的一部分是建立神經網路。學習和構建這些演算法缺乏真正的商業應用,缺少取得大量資料的途徑。隨著人們從物理領域轉移到數位領域,他們留下的數字足跡可以讓我們從中學習。隨著全球約有 30 億人使用互聯網,這些足跡積累了驚人的資料量。

這些資料存儲就是我們所說的“大資料”。 隨著大資料的出現,機器學習演算法終於能夠從學術界轉向產業,助力于為消費者提供大量價值的產品。然而收集和獲取資料只是構建機器學習資料產品(如搜尋引擎和推薦系統)難題的一部分。直到最近,軟體程式師、資料科學家和統計師都缺乏利用、清理和打包這些大量資料集的工具,以便其他應用程式的使用。

現在通過 Amazon Web Services 和 Hadoop 等工具,我們可以更好更經濟有效地管理資訊。這些工具為從大資料集中獲得價值開闢了新的可能性。

Amazon Web Services:https://github.com/aws

apache / Hadoop(Mirror of Apache Hadoop鏡像):https://github.com/apache/hadoop

近年來,機器學習已經擴展到各種新的應用範圍。我們嘗試用演算法去做各種各樣的事情,從模式識別到玩遊戲甚至到“做夢”。

jbhuang0604 / awesome-computer-vision(電腦視覺資源清單):https://github.com/jbhuang0604/awesome-computer-vision

即使機器學習如今已經有了令人興奮的發展,目前只是在很多可能性的開始階段。

機器學習如何工作?

要想深入瞭解機器學習,可以將這一過程分為三個部分:輸入、演算法、輸出。

輸入:驅動機器學習的資料

輸入是訓練和演算法需要的資料集。從原始程式碼到統計資料,資料集可以包含任何東西:

GSA / data(美國總務管理局資料):https://github.com/GSA/data

GoogleTrends / data(所有開來源資料的索引):https://github.com/GoogleTrends/data

nationalparkservice / data(美國國家公園管理局非官方資料存儲):https://github.com/nationalparkservice/data

fivethirtyeight / data(FiveThirtyEight上故事與互動背後的資料和代碼):https://github.com/fivethirtyeight/data

beamandrew / medical-data:https://github.com/beamandrew/medical-data

src-d / awesome-machine-learning-on-source-code(機器學習相關有趣的連結和研究論文應用於原始程式碼):https://github.com/src-d/awesome-machine-learning-on-source-code

我們需要這些輸入來訓練機器學習演算法,因此發現和生成高品質的資料集是當今機器學習面臨的最大挑戰之一。

演算法:如何處理和分析資料

演算法能將資料轉化為觀點。

機器學習演算法使用資料來執行特定任務。 最常見的演算法類型有:

1. 監督學習使用已經標注和結構化的訓練資料。通過指定一組輸入和所需的輸出,機器將學習如何成功識別並將其映射。

例如,在決策樹學習中,通過將一組決策規則應用於輸入資料來預測值:

igrigorik / decisiontree(基於ID3的機器學習決策樹演算法的實現):https://github.com/igrigorik/decisiontree

2. 無監督學習是使用非結構化資料來發現模式和結構的過程。監督學習可能使用excel表格作為其資料登錄,而無監督學習可能用來理解書籍或博客。

例如,無監督學習是自然語言處理(NLP)中的流行方法:

keon / awesome-nlp(NLP的專用資源列表):https://github.com/keon/awesome-nlp

3. 強化學習用演算法來實現目標。演算法朝著目標執行任務,通過獎勵和懲罰使之學習正確的方法。

例如,強化學習可能用於開發自動駕駛汽車或教機器人如何製造一件物品。

openai / gym(一種用於開發和比較強化學習演算法的工具包):https://github.com/openai/gym

aikorea / awesome-rl(強化學習資源):https://github.com/aikorea/awesome-rl

以下是實踐中的幾個演算法實例:

umutisik / Eigentechno(音樂迴圈主成分分析):https://github.com/umutisik/Eigentechno

jpmckinney / tf-idf-similarity(使用tf*idf(詞頻和逆向檔頻率)來計算文本之間相似度):https://github.com/jpmckinney/tf-idf-similarity

scikit-learn-contrib / lightning(Python中的規模線性分類、回歸和排序):https://github.com/scikit-learn-contrib/lightning

gwding / draw_convnet:https://github.com/gwding/draw_convnet

一些用於執行這些分析的庫和工具包括:

scikit-learn / scikit-learn(Python中的機器學習):https://github.com/scikit-learn/scikit-learn

tensorflow / tensorflow(使用可擴展機器學習的資料流程圖進行計算):https://github.com/tensorflow/tensorflow

Theano / Theano(Theano是一個Python庫,可讓你高效定義、優化、評估涉及多維陣列的數學運算式。它可以使用GPU並執行高效的符號):https://github.com/Theano/Theano

shogun-toolbox / shogun(將軍機器學習工具箱(原始程式碼)):https://github.com/shogun-toolbox/shogun

davisking / dlib(用於在C ++中進行真實世界機器學習和資料分析應用的工具包):https://github.com/davisking/dlib

apache / incubator-predictionio(PredictionIO是開發人員和機器學習工程師的機器學習伺服器,基於Apache Spark,HBase和Spray):https://github.com/apache/incubator-predictionio

什麼是深度學習?深度學習是機器學習的一個子集,使用神經網路來查找資料之間關係。深度學習通過監督學習、無監督學習或強化學習來實現其目標。

在這個連結,你可以直接在流覽器中體驗神經網路:https://github.com/collections/machine-learning

雖然深度學習已經存在了數十年,但由於2005年左右圖形處理單元(GPU)的創新,神經網路才成為可能。GPU最初是為了在3D遊戲環境中渲染圖元而開發的,但已經在訓練神經網路演算法中發現GPU的一個新作用。

輸出

輸出是最終結果。輸出可能是識別紅色符號的模式,可能是判斷網頁論調正面或負面的情感分析,或者是有置信區間的一個預測分數。

在機器學習中,輸出可以是任何事物。產生輸出的幾種方法包括:

分類:為資料集中的每一項生成輸出值

回歸:通過已有資料來預測所考慮變數的最可能值

聚類:將資料分組成相似模式

以下是機器學習的一些實際例子:

deepmind / pysc2(星際爭霸II學習環境):https://github.com/deepmind/pysc2

計算生物學家利用深度學習來理解 DNA:

gokceneraslan / awesome-deepbio(計算生物學領域深度學習應用清單):https://github.com/gokceneraslan/awesome-deepbio

使用Tensorflow進行法語到英語翻譯:

buriburisuri / ByteNet(使用DeepMind的ByteNet進行法語到英語機器翻譯):https://github.com/buriburisuri/ByteNet

萬事俱備,你準備好開始了嗎?

GitHub 上網友整理的機器學習資源供你選擇,你也可以將自己的資源添加到這些列表中。

機器學習:

josephmisiti / awesome-machine-learning(機器學習框架、庫和軟體清單):https://github.com/josephmisiti/awesome-machine-learning

ujjwalkarn / Machine-Learning-Tutorials(機器學習和深度學習教程、文章等資源):https://github.com/ujjwalkarn/Machine-Learning-Tutorials

深度學習:

ChristosChristofidis / awesome-deep-learning(深度學習教程、項目和社區列表):https://github.com/ChristosChristofidis/awesome-deep-learning

fastai / courses(fast.ai課程):https://github.com/fastai/courses

Tensorflow:

jtoy / awesome-tensorflow(http://tensorflow.org專用資源):https://github.com/jtoy/awesome-tensorflow

nlintz / TensorFlow-Tutorials(使用Google TensorFlow框架的簡單教程):https://github.com/nlintz/TensorFlow-Tutorials

pkmital / tensorflow_tutorials(從基礎到更有趣的Tensorflow應用):https://github.com/pkmital/tensorflow_tutorials

注:封面圖為視覺中國付費下載。