盤點當(dāng)下大熱的7大Github機器學(xué)習(xí)創(chuàng)新項目
哪個平臺有最新的機器學(xué)習(xí)發(fā)展現(xiàn)狀和最先進(jìn)的代碼?沒錯——Github!本文將會分享近期發(fā)布的七大GitHub機器學(xué)習(xí)項目。這些項目廣泛覆蓋了機器學(xué)習(xí)的各個領(lǐng)域,包括自然語言處理(NLP)、計算機視覺、大數(shù)據(jù)等。
頂尖的Github機器學(xué)習(xí)項目
1. PyTorch-Transformers(NLP)
傳送門:https://github.com/huggingface/pytorch-transformers
自然語言處理(NLP)的力量令人嘆服。NLP改變了文本的處理方式,幾乎到了無法用語言描述的程度。
在最先進(jìn)的一系列NLP庫中,PyTorch-Transformers出現(xiàn)最晚,卻已打破各種NLP任務(wù)中已有的一切基準(zhǔn)。它最吸引人的地方在于涵蓋了PyTorch實現(xiàn)、預(yù)訓(xùn)練模型權(quán)重及其他重要元素,可以幫助用戶快速入門。
運行最先進(jìn)的模型需要龐大的計算能力。PyTorch-Transformers在很大程度上解決了這個問題,它能夠幫助這類人群建立起最先進(jìn)的NLP模型。
這里有幾篇深度剖析PyTorch-Transformers的文章,可以幫助用戶了解這一模型(及NLP中預(yù)訓(xùn)練模型的概念):
- PyTorch-Transformers:一款可處理最先進(jìn)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最優(yōu)秀的預(yù)訓(xùn)練模型: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——一個簡單而強大的深度學(xué)習(xí)庫: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
在現(xiàn)實世界中,文本數(shù)據(jù)的多標(biāo)簽分類是一個巨大的挑戰(zhàn)。早期面對NLP問題時,我們通常處理的是單一標(biāo)簽任務(wù),但在真實生活中卻遠(yuǎn)不是這么簡單。
在多標(biāo)簽分類問題中,實例/記錄具備多個標(biāo)簽,且每個實例的標(biāo)簽數(shù)量并不固定。
NeuralClassifier使我們能夠在多層、多標(biāo)簽分類任務(wù)中快速實現(xiàn)神經(jīng)模型。我最喜歡的是NeuralClassifier,提供了各種大眾熟知的文本編碼器,例如FastText、RCNN、Transformer等等。
用NeuralClassifier可以執(zhí)行以下分類任務(wù):
- 雙層文本分類
- 多層文本分類
- 多標(biāo)簽文本分類
- 多層(多標(biāo)簽)文本分類
以下兩篇優(yōu)秀的文章介紹了究竟什么是多標(biāo)簽分類,以及如何在Python中執(zhí)行多標(biāo)簽分類:
- 使用NLP預(yù)測電影類型——多標(biāo)簽分類的精彩介紹: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構(gòu)建你的第一個多標(biāo)簽圖像分類模型: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 (大數(shù)據(jù))
傳送門:https://github.com/taosdata/TDengine
TDEngine數(shù)據(jù)庫在幾乎不到一個月的時間內(nèi)就累積了近10,000個star。繼續(xù)往下讀,你立馬就能明白這是為何。
TDEngine是一個開源大數(shù)據(jù)平臺,針對:
- 物聯(lián)網(wǎng)(IoT)
- 車聯(lián)網(wǎng)
- 工業(yè)物聯(lián)網(wǎng)
- IT基礎(chǔ)架構(gòu)等等
本質(zhì)上,TDEngine提供了一整套與數(shù)據(jù)工程相關(guān)的任務(wù),用戶可以用極快的速度完成所有這些工作(查詢處理速度將提高10倍,計算使用率將降低到1/5)。
目前有一點需要注意——TDEngine僅支持在Linux上執(zhí)行。TDEngine數(shù)據(jù)庫包含完整的文件資料以及包含代碼的入門指南。
建議你閱讀這一篇針對數(shù)據(jù)工程師的綜合資源指南:
- 想成為數(shù)據(jù)工程師?這里列出了入門應(yīng)看的綜合資源: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
你是否接觸過圖像數(shù)據(jù)?計算機視覺是一種十分先進(jìn)的技術(shù),用于操縱和處理圖像的。想要成為計算機視覺專家,圖像的目標(biāo)檢測通常被認(rèn)為是必經(jīng)之路。
那么視頻呢?如果要對幾個視頻中的目標(biāo)繪制邊界框,雖然看似簡單,實際難度卻遠(yuǎn)不止如此,而且目標(biāo)的動態(tài)性會使任務(wù)更加復(fù)雜。
所以Video Object Removal非常棒,只要在視頻中某一目標(biāo)周圍繪制邊界框,即可將它刪除。就是這么簡單!以下是一個范例:
如果你在計算機視覺的世界里還是個小白,這里有兩篇能幫助你入門并快速上手的文章:
- 對基礎(chǔ)目標(biāo)檢測算法的全面介紹: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
- 使用深度學(xué)習(xí)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的。數(shù)據(jù)科學(xué)家的所有工作就是對各種算法進(jìn)行試驗(至少是大多數(shù)人),而Python Autocomplete可以利用一個LSTM簡單模型自動寫完P(guān)ython代碼。
下圖中,灰色的部分就是LSTM模型自動填寫的代碼(結(jié)果位于圖像底部):
開發(fā)人員如是描述:
首先清除Python代碼中的注釋、字符串和空行,然后進(jìn)行訓(xùn)練和預(yù)測。模型訓(xùn)練的前提是對python代碼進(jìn)行標(biāo)記化,相比使用字節(jié)編碼來預(yù)測字節(jié),這似乎更為有效。
如果你曾花費(浪費)時間編寫一行行單調(diào)的Python代碼,那么這一模型可能正是你所尋找的。不過它的開發(fā)還處于非常早期的階段,操作中不可避免會出現(xiàn)一些問題。
如果你想知道LSTM到底是什么,請閱讀這篇文章中的介紹:
- 深度學(xué)習(xí)的要點:長短時記憶(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兩大模型都坐擁龐大的用戶群,但后者的使用率高得驚人,在未來一兩年內(nèi)很可能超過前者。不過請注意:這并不會打擊Tensorflow,因為它的地位相當(dāng)穩(wěn)固。
所以如果你曾經(jīng)在TensorFlow中寫了一串代碼,后來又在PyTorch中寫了另一串代碼,現(xiàn)在希望將兩者結(jié)合起來用以訓(xùn)練模型——那么tfpyth框架會是一個好選擇。Tfpyth最大的優(yōu)勢就在于用戶不需要重寫先前寫好的代碼。
這一項目對tfpyth的使用方法給出了結(jié)構(gòu)嚴(yán)謹(jǐn)?shù)氖纠?,這無疑是對TensorFlow與PyTorch爭論的一種重新審視。
安裝tfpyth易如反掌:
- pip install tfpyth
以下是兩篇深度介紹TensorFlow和PyTorch如何運作的文章:
- 深度學(xué)習(xí)指南:使用Python中的TensorFlow實現(xiàn)神經(jīng)網(wǎng)絡(luò):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——一個簡單而強大的深度學(xué)習(xí)庫: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:用遷移學(xué)習(xí)分析3D醫(yī)學(xué)圖像》(https://arxiv.org/abs/1904.00625)這篇論文中的想法付諸實踐。這一機器學(xué)習(xí)項目將醫(yī)學(xué)數(shù)據(jù)集與不同的模態(tài)、目標(biāo)器官和病理結(jié)合起來,以構(gòu)建規(guī)模較大的數(shù)據(jù)集。
眾所周知,深度學(xué)習(xí)模型(通常)需要大量訓(xùn)練數(shù)據(jù),而TenCent發(fā)布的MedicalNet是一個相當(dāng)出色的開源項目,希望大家都能嘗試使用它。
MedicalNet的開發(fā)人員已經(jīng)發(fā)布了四個預(yù)訓(xùn)練模型,這些模型基于23個數(shù)據(jù)集。如果你需要,下文對遷移學(xué)習(xí)進(jìn)行了直觀的介紹:
- 遷移學(xué)習(xí)及在深度學(xué)習(xí)中使用預(yù)訓(xùn)練模型的藝術(shù):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