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