盤點當下大熱的7大Github機器學習創新項目
哪個平臺有最新的機器學習發展現狀和最先進的代碼?沒錯——Github!本文將會分享近期發布的七大GitHub機器學習項目。這些項目廣泛覆蓋了機器學習的各個領域,包括自然語言處理(NLP)、計算機視覺、大數據等。
頂尖的Github機器學習項目
1. PyTorch-Transformers(NLP)
傳送門:https://github.com/huggingface/pytorch-transformers
自然語言處理(NLP)的力量令人嘆服。NLP改變了文本的處理方式,幾乎到了無法用語言描述的程度。
在最先進的一系列NLP庫中,PyTorch-Transformers出現最晚,卻已打破各種NLP任務中已有的一切基準。它最吸引人的地方在于涵蓋了PyTorch實現、預訓練模型權重及其他重要元素,可以幫助用戶快速入門。
運行最先進的模型需要龐大的計算能力。PyTorch-Transformers在很大程度上解決了這個問題,它能夠幫助這類人群建立起最先進的NLP模型。
這里有幾篇深度剖析PyTorch-Transformers的文章,可以幫助用戶了解這一模型(及NLP中預訓練模型的概念):
- PyTorch-Transformers:一款可處理最先進NLP的驚人模型庫(使用Python):https://www.analyticsvidhya.com/blog/2019/07/pytorch-transformers-nlp-python/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
- 8個入門NLP最優秀的預訓練模型:https://www.analyticsvidhya.com/blog/2019/03/pretrained-models-get-started-nlp/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
- PyTorch——一個簡單而強大的深度學習庫:https://www.analyticsvidhya.com/blog/2018/02/pytorch-tutorial/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
2. NeuralClassifier (NLP)
傳送門:https://github.com/Tencent/NeuralNLP-NeuralClassifier
在現實世界中,文本數據的多標簽分類是一個巨大的挑戰。早期面對NLP問題時,我們通常處理的是單一標簽任務,但在真實生活中卻遠不是這么簡單。
在多標簽分類問題中,實例/記錄具備多個標簽,且每個實例的標簽數量并不固定。
NeuralClassifier使我們能夠在多層、多標簽分類任務中快速實現神經模型。我最喜歡的是NeuralClassifier,提供了各種大眾熟知的文本編碼器,例如FastText、RCNN、Transformer等等。
用NeuralClassifier可以執行以下分類任務:
- 雙層文本分類
- 多層文本分類
- 多標簽文本分類
- 多層(多標簽)文本分類
以下兩篇優秀的文章介紹了究竟什么是多標簽分類,以及如何在Python中執行多標簽分類:
- 使用NLP預測電影類型——多標簽分類的精彩介紹:https://www.analyticsvidhya.com/blog/2019/04/predicting-movie-genres-nlp-multi-label-classification/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
- 使用Python構建你的第一個多標簽圖像分類模型:https://www.analyticsvidhya.com/blog/2019/04/build-first-multi-label-image-classification-model-python/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
3. TDEngine (大數據)
傳送門:https://github.com/taosdata/TDengine
TDEngine數據庫在幾乎不到一個月的時間內就累積了近10,000個star。繼續往下讀,你立馬就能明白這是為何。
TDEngine是一個開源大數據平臺,針對:
- 物聯網(IoT)
- 車聯網
- 工業物聯網
- IT基礎架構等等
本質上,TDEngine提供了一整套與數據工程相關的任務,用戶可以用極快的速度完成所有這些工作(查詢處理速度將提高10倍,計算使用率將降低到1/5)。
目前有一點需要注意——TDEngine僅支持在Linux上執行。TDEngine數據庫包含完整的文件資料以及包含代碼的入門指南。
建議你閱讀這一篇針對數據工程師的綜合資源指南:
- 想成為數據工程師?這里列出了入門應看的綜合資源:https://www.analyticsvidhya.com/blog/2018/11/data-engineer-comprehensive-list-resources-get-started/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
4. Video Object Removal (計算機視覺)
傳送門:https://github.com/zllrunning/video-object-removal
你是否接觸過圖像數據?計算機視覺是一種十分先進的技術,用于操縱和處理圖像的。想要成為計算機視覺專家,圖像的目標檢測通常被認為是必經之路。
那么視頻呢?如果要對幾個視頻中的目標繪制邊界框,雖然看似簡單,實際難度卻遠不止如此,而且目標的動態性會使任務更加復雜。
所以Video Object Removal非常棒,只要在視頻中某一目標周圍繪制邊界框,即可將它刪除。就是這么簡單!以下是一個范例:
如果你在計算機視覺的世界里還是個小白,這里有兩篇能幫助你入門并快速上手的文章:
- 對基礎目標檢測算法的全面介紹:https://www.analyticsvidhya.com/blog/2018/10/a-step-by-step-introduction-to-the-basic-object-detection-algorithms-part-1/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
- 使用深度學習2.0掌握計算機視覺:https://courses.analyticsvidhya.com/courses/computer-vision-using-deep-learning-version2/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
5. Python Autocomplete (編程)
傳送門:https://github.com/vpj/python_autocomplete
你一定會愛上Python Autocomplete的。數據科學家的所有工作就是對各種算法進行試驗(至少是大多數人),而Python Autocomplete可以利用一個LSTM簡單模型自動寫完Python代碼。
下圖中,灰色的部分就是LSTM模型自動填寫的代碼(結果位于圖像底部):
開發人員如是描述:
首先清除Python代碼中的注釋、字符串和空行,然后進行訓練和預測。模型訓練的前提是對python代碼進行標記化,相比使用字節編碼來預測字節,這似乎更為有效。
如果你曾花費(浪費)時間編寫一行行單調的Python代碼,那么這一模型可能正是你所尋找的。不過它的開發還處于非常早期的階段,操作中不可避免會出現一些問題。
如果你想知道LSTM到底是什么,請閱讀這篇文章中的介紹:
- 深度學習的要點:長短時記憶(LSTM)入門:https://www.analyticsvidhya.com/blog/2017/12/fundamentals-of-deep-learning-introduction-to-lstm/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
6. tfpyth–從TensorFlow到PyTorch再到TensorFlow (編程)
傳送門:https://github.com/BlackHC/tfpyth
TensorFlow和PyTorch兩大模型都坐擁龐大的用戶群,但后者的使用率高得驚人,在未來一兩年內很可能超過前者。不過請注意:這并不會打擊Tensorflow,因為它的地位相當穩固。
所以如果你曾經在TensorFlow中寫了一串代碼,后來又在PyTorch中寫了另一串代碼,現在希望將兩者結合起來用以訓練模型——那么tfpyth框架會是一個好選擇。Tfpyth最大的優勢就在于用戶不需要重寫先前寫好的代碼。
這一項目對tfpyth的使用方法給出了結構嚴謹的示例,這無疑是對TensorFlow與PyTorch爭論的一種重新審視。
安裝tfpyth易如反掌:
- pip install tfpyth
以下是兩篇深度介紹TensorFlow和PyTorch如何運作的文章:
- 深度學習指南:使用Python中的TensorFlow實現神經網絡:https://www.analyticsvidhya.com/blog/2016/10/an-introduction-to-implementing-neural-networks-using-tensorflow/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
- PyTorch——一個簡單而強大的深度學習庫:https://www.analyticsvidhya.com/blog/2018/02/pytorch-tutorial/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python
7. MedicalNet
MedicalNet中包含了一個PyTorch項目,該項目將《Med3D:用遷移學習分析3D醫學圖像》(https://arxiv.org/abs/1904.00625)這篇論文中的想法付諸實踐。這一機器學習項目將醫學數據集與不同的模態、目標器官和病理結合起來,以構建規模較大的數據集。
眾所周知,深度學習模型(通常)需要大量訓練數據,而TenCent發布的MedicalNet是一個相當出色的開源項目,希望大家都能嘗試使用它。
MedicalNet的開發人員已經發布了四個預訓練模型,這些模型基于23個數據集。如果你需要,下文對遷移學習進行了直觀的介紹:
- 遷移學習及在深度學習中使用預訓練模型的藝術:https://www.analyticsvidhya.com/blog/2017/06/transfer-learning-the-art-of-fine-tuning-a-pre-trained-model/?utm_source=blog&utm_medium=7-innovative-machine-learning-github-projects-in-python