一文盤點近期熱門機器學習開源專案!(研究框架、AutoML庫、深度學習...)
[ 導讀 ]我們從過去一個月近 250 個有關機器學習的開源專案中,精心挑選出了最熱門的專案。在挑選過程中,我們始終在各個專案之間作比較。Mybridge AI 基於大量的因素來估量專案的專業水平,從而對其進行排名。
這些專案在 Github 上獲得的平均 star 數高達 728,涉及的話題包括:研究框架、AutoML 庫、深度學習、PyTorch、TSNE、演算法工具箱、Fairness-ai、DeepDetect、殭屍射擊遊戲。
對於程式員來說,開源專案是十分有幫助的。希望你能從中找到可以激發你靈感的有趣專案。最後祝大家節日快樂!
TransmogrifAI:用於建立機器學習工作流的 AutoML 庫
TransmogrifAI 是用 Scala 編寫的 AutoML 庫,執行在 Spark 上。該框架的開發初衷在於通過機器學習自動化技術,以及提升編譯速度與可重複利用性的 API,來提高機器學習開發者的開發效率。你可以在以下幾種場景使用該框架:
- 在幾小時內建立可投入使用的機器學習應用,無需幾個月的時間
- 輕鬆建立機器學習模型,即使你不是機器學習專業的 Ph.D
- 建立模組化的、可重複利用的機器學習工作流
專案連結:
https://github.com/salesforce/TransmogrifAI?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
YOLOv3:基於 PyTorch 的訓練與預測
YOLOv3 是當前最先進的實時檢測目標的系統,相比於前兩個版本,第三版針對小目標的精度有顯著提升。YOLOv3 的 Github 目錄包含了全部基於 PyTorch 的訓練和預測程式碼。要求 Python 3.6 或以上的版本,以及三個工具包:numpy、torch、opencv-python。
專案連結:
https://github.com/ultralytics/yolov3?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
FastTSNE:快速且可並行的 tSNE 演算法
該專案將 160,796 個來自老鼠的神經系統的細胞轉錄過程進行了視覺化,專案的初衷是在沒有外部 C 或 C++ 依賴的情況下,在本地快速實現 tSNE 演算法。該工具包提供了兩種快速實現 tSNE 的方法:
- Barnes-hut tsne:源於 Multicore tSNE,適用於小規模資料集,時間複雜度為 O(nlogn)。
- Fit-SNE:源於 Fit-SNE的 C++ 實現方法,適用於樣本量在 10,000 以上的大規模資料集,時間複雜度為 O(n)。
專案連結:
https://github.com/pavlin-policar/fastTSNE?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
AIF360:用於檢測並去除機器學習模型偏差的開源庫
這個 AI Fairness 360 Python 庫包含一整套用於測量偏差的資料集和模型的指標,全部指標的解釋,以及減小偏差的演算法。由於 AIF360 具備一整套功能,所以在面對一個用例時,很可能難以抉擇該使用什麼指標或演算法,為了解決這個問題,開發者為我們提供了可用於參考的使用指南。
專案連結:
https://github.com/IBM/AIF360?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
使用指南:
http://aif360.mybluemix.net/resources#guidance
殭屍射擊神經網路:讓 AI 學習如何射擊殭屍
開發者利用神經網路和強化學習來對 AI 進行訓練,使其學習如何射擊殭屍,從而存活下來。開發者還製作了一段小視訊,來展示其訓練過程。
專案連結:
https://github.com/Daporan/Zombie-Shooter-Neural-Network?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
原文連結:
https://medium.mybridge.co/machine-learning-open-source-of-the-month-v-sep-2018-d39e4082fd7c
工程 機器學習
相關資料
Neural Network
(人工)神經網路是一種起源於 20 世紀 50 年代的監督式機器學習模型,那時候研究者構想了「感知器(perceptron)」的想法。這一領域的研究者通常被稱為「聯結主義者(Connectionist)」,因為這種模型模擬了人腦的功能。神經網路模型通常是通過反向傳播演算法應用梯度下降訓練的。目前神經網路有兩大主要型別,它們都是前饋神經網路:卷積神經網路(CNN)和迴圈神經網路(RNN),其中 RNN 又包含長短期記憶(LSTM)、門控迴圈單元(GRU)等等。深度學習是一種主要應用於神經網路幫助其取得更好結果的技術。儘管神經網路主要用於監督學習,但也有一些為無監督學習設計的變體,比如自動編碼器和生成對抗網路(GAN)。
來源:機器之心
Machine Learning
機器學習是人工智慧的一個分支,是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、計算複雜性理論等多門學科。機器學習理論主要是設計和分析一些讓計算機可以自動“學習”的演算法。因為學習演算法中涉及了大量的統計學理論,機器學習與推斷統計學聯絡尤為密切,也被稱為統計學習理論。演算法設計方面,機器學習理論關注可以實現的,行之有效的學習演算法。
來源:Mitchell, T. (1997). Machine Learning. McGraw Hill.
Reinforcement learning
強化學習是一種試錯方法,其目標是讓軟體智慧體在特定環境中能夠採取回報最大化的行為。強化學習在馬爾可夫決策過程環境中主要使用的技術是動態規劃(Dynamic Programming)。流行的強化學習方法包括自適應動態規劃(ADP)、時間差分(TD)學習、狀態-動作-回報-狀態-動作(SARSA)演算法、Q 學習、深度強化學習(DQN);其應用包括下棋類遊戲、機器人控制和工作排程等。
來源:機器之心
time complexity
在電腦科學中,演算法的時間複雜度是一個函式,它定量描述了該演算法的執行時間。這是一個代表演算法輸入值的字串的長度的函式。時間複雜度常用大O符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,亦即考察輸入值大小趨近無窮時的情況。例如,如果一個演算法對於任何大小為 n (必須比 n0 大)的輸入,它至多需要 5n3 + 3n 的時間執行完畢,那麼它的漸近時間複雜度是 O(n3)。
來源: 維基百科
t-SNE
t分佈隨機鄰嵌入(t-SNE)是由Geoffrey Hinton和Laurens van der Maaten 開發的一種降維的機器學習演算法。 這是一種非線性降維技術,特別適合將高維資料嵌入到二維或三維空間,然後可以在散點圖中將其視覺化。 具體來說,它通過二維或三維點對每個高維物件進行建模,使得類似的物件由附近的點建模,不相似的物件由遠點建模。
來源: Wikipedia
Deep learning
深度學習(deep learning)是機器學習的分支,是一種試圖使用包含複雜結構或由多重非線性變換構成的多個處理層對資料進行高層抽象的演算法。 深度學習是機器學習中一種基於對資料進行表徵學習的演算法,至今已有數種深度學習框架,如卷積神經網路和深度置信網路和遞迴神經網路等已被應用在計算機視覺、語音識別、自然語言處理、音訊識別與生物資訊學等領域並獲取了極好的效果。
來源: LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. nature, 521(7553), 436.

THU資料派"基於清華,放眼世界",以紮實的理工功底闖蕩“資料江湖”。釋出全球大資料資訊,定期組織線下活動,分享前沿產業動態。瞭解清華大資料,敬請關注姐妹號“資料派THU”。

THU資料派"基於清華,放眼世界",以紮實的理工功底闖蕩“資料江湖”。釋出全球大資料資訊,定期組織線下活動,分享前沿產業動態。瞭解清華大資料,敬請關注姐妹號“資料派THU”。
推薦文章