2018 年度 GtiHub 開源項目 TOP 25

雷鋒網 AI 科技評論按:本文做者 Pranav Dar 是 Analytics Vidhya 的編輯,對數據科學和機器學習有較深刻的研究和簡介,致力於爲使用機器學習和人工智能推進人類進步找到新途徑。2018 這一年中,做者在每月都會發布一份開源項目月度推薦榜單,而本文則是對整年開源項目的盤點和總結。雷鋒網 AI 科技評論編譯以下。git

前沿github

關於託管代碼、與團隊成員合做以及充當展現我的寫代碼技能的「在線簡歷」,最好的平臺是哪一個?問及任何一位數據科學家,他們都會讓你去 GitHub。近年來,GitHub 做爲一個真正具備變革性的平臺,已經改變了咱們託管甚至寫代碼的方式。算法

但這還不是所有。此外,它仍是一個學習平臺。若是你問怎麼學習的話,我能夠給你一個暗示——開源項目!spring

世界領先的科技公司經過在 GitHub 上發佈其熱門算法的代碼,對項目進行開源。2018 年,在 Google 和 Facebook 等公司的帶領下,這類開源項目大幅增長。其中最好的那部分開源項目,寫代碼的研究者還提供了預訓練模型,從而讓你我這些人沒必要再浪費時間從頭開始建立高難度的模型。編程

同時,針對編碼者和開發者的熱門開源項目也不少——包括備忘單、視頻連接、電子書、研究論文連接以及其餘等資源。不管你在你的專業領域處於哪一個等級(初學者、中級以及高級),你總能夠在 GitHub 上找到能夠學習的新東西。瀏覽器

對於數據科學的不少子領域來講,2018 年是不一樣凡響的一年,這個我下面立刻就會講到。隨着 ULMFiT、BERT 等項目在 GitHub 上進行開源,天然語言處理(NLP)迅速成爲社區中談論最多的領域。我致力於將本身最大的努力貢獻給這麼棒的 GitHub 社區,在這一年中,我精心挑選了每位數據科學家都應該瞭解的 TOP 5 開源項目,並整理成了月度榜單系列。你能夠點擊下面的連接,前往查看完整榜單:網絡

一月份:https://www.analyticsvidhya.com/blog/2018/02/top-5-github-repositories-january-2018/二月份:https://www.analyticsvidhya.com/blog/2018/03/top-5-github-repositories-february-2018/三月份:https://www.analyticsvidhya.com/blog/2018/04/top-7-github-repositories-march-2018/四月份:https://www.analyticsvidhya.com/blog/2018/05/top-5-github-reddit-data-science-machine-learning-april-2018/五月份:https://www.analyticsvidhya.com/blog/2018/06/top-5-github-reddit-data-science-machine-learning-may-2018/六月份:https://www.analyticsvidhya.com/blog/2018/07/top-github-reddit-data-science-machine-learning-june-2018/七月份:https://www.analyticsvidhya.com/blog/2018/08/best-machine-learning-github-repositories-reddit-threads-july-2018/八月份:https://www.analyticsvidhya.com/blog/2018/09/best-machine-learning-github-repositories-reddit-threads-august-2018/九月份:https://www.analyticsvidhya.com/blog/2018/10/best-machine-learning-github-repositories-reddit-threads-september-2018/十月份:https://www.analyticsvidhya.com/blog/2018/11/best-machine-learning-github-repositories-reddit-threads-october-2018/十一月份:https://www.analyticsvidhya.com/blog/2018/12/best-machine-learning-github-repositories-reddit-threads-november-2018/app

這些文章的部份內容會和我盤點的 2018 年 AI 和 ML 領域最大突破文章有所重合,你們也能夠前往如下地址閱讀這篇文章——它從根本上來講是一份盤點了該領域主要進展的榜單,我認爲該領域的每一個人都應該有所瞭解。做爲額外福利,文中還有來自專家們的預測——你們應該都不想錯過吧。框架

https://www.analyticsvidhya.com/blog/2018/12/key-breakthroughs-ai-ml-2018-trends-2019/機器學習

如今,準備好去探索新的項目,並努力成爲 2019 年的數據科學之星吧。繼續向下滾動,你們點擊每一個項目後面的連接就能夠前往 GitHub 的代碼庫了。

本文將覆蓋到的話題工具和框架計算機視覺生成式對抗網絡(GANs)其餘深度學習項目天然語言處理(NLP)自動的機器學習(AutoML)強化學習

工具和框架

讓咱們開始來看看工具、開發庫和框架方面的最佳開源項目。因爲咱們在討論的是一個軟件倉庫平臺,先講這部分彷佛纔是正確的打開方式。

科技正在快速發展,同時計算成本也比以前更低了,因此如今有一個接一個大量的開源項目可供咱們使用。如今,能夠被稱做機器學習編碼的黃金時代嗎?這是一個開放的問題,可是咱們都認同的一件事是,如今是作一個數據科學領域的編程員的好時期。在這個部分(以及整篇文章),我都在嘗試讓編程語言儘量地多樣化些,不過 Python 沒法避免地佔據主導地位。

ML.NET

開源地址:https://github.com/dotnet/machinelearning

打開百度App,看更多圖片

若是大家這些.NET 開發者們想要學一點機器學習知識來補充現有的技能,你會怎麼作?如今就有一個完美的開源項目能夠助你開始實施這一想法!這個完美的開源項目就是微軟的一個項目——ML.NET,它是一個開源的機器學習框架,讓你用 .NET 就能夠設計和開發模型。

你甚至能夠將現有的機器學習模型集成到你的應用程序中,而徹底不要求你切確地知道怎樣開發機器學習模型。ML.NET 實際上已被應用於多個微軟產品中,例如 Windows、 Bing 搜索、 MS Office 等等。

ML.NET 能夠在 Windows、Linux 以及 MacOS 上運行。

TensorFlow.js

開源地址:https://github.com/tensorflow/tfjs

在瀏覽器中實現機器學習!幾年前,這還只是一個幻想,而如今成爲了一個震撼人心的現實。這一領域的大多數人都與咱們最愛的 IDEs 牢不可分,而 TensorFlow.js 則有可能改變咱們的習慣。自今年早些時候發佈以來,它就成爲一個很是受歡迎的開源項目,而且它的靈活性還在繼續給人帶來驚喜。

正如開源項目所介紹的,TensorFlow.js 主要有三個重要特徵:

瀏覽器自身能夠開發機器學習和深度學習模型;能夠在瀏覽器中運行現有的 TensorFlow 模型;同時能夠對這些現有的模型進行從新訓練或者微調。

若是你熟悉 Keras,那你也會對它的高級層 API 很是熟悉。目前在 GitHub 的開源項目中,有大量對外開放的示例,你可前往社區查看,來活躍一下你的學習曲線。

PyTorch 1.0

開源地址:https://github.com/pytorch/pytorch

對於 PyTorch 來講,2018 年是很是精彩的一年。它贏得了全球數據科學家和機器學習研究者們的心,如今他們則不斷爲 PyTorch 貢獻項目。PyTorch 易於理解、靈活且被應用於衆多高知名度的研究中(本文接下來會講到)。PyTorch 最新版本(PyTorch 1.0)已經規模化地賦能了大量 Facebook 產品和服務,包括天天進行 6 百億次文本翻譯。若是你想知道何時開始涉足 PyTorch,那就是如今。

若是你是這一領域的初學者,能夠先去看看 Faizan Shaikh 寫的 PyTorch 入門指南:https://www.analyticsvidhya.com/blog/2018/02/pytorch-tutorial/

Papers with Code

開源地址:https://github.com/zziz/pwc

嚴格來講,Papers with Code 這個開源項目並非一個工具或框架,可是對於數據科學家來講,它就是一個「金礦」。咱們大多數人都在努力閱讀論文,而後對論文提出的方法進行實操(至少我是這樣作的)。大量的活動部件彷佛沒法在咱們的機器上工做。

這就是須要用到「Papers with Code」的地方。如名稱所示,它們對於在最近 6 年左右發佈的重要論文都有代碼實現。這一論文集網站使人興奮,你會發現本身都忍不住讚歎它。它們甚至將在 NIPS (NeurIPS) 2018 中展現的論文代碼也增長上去了。如今就去使用 Papers with Code 吧。

計算機視覺

得益於計算成本的降低和頂級研究者們所帶來的突破的激增(一些事件顯示這二者多是互相關聯的),如今愈來愈多人可使用深度學習進行研究了。而在深度學習這一領域,計算機視覺項目是最廣泛——在這一章節中所提到的大部分開源項目都包含了一種計算機視覺技術或另外一種計算機視覺技術。

如今,計算機視覺能夠說是深度學習最熱門的領域,而且在可見的將來依舊會這麼熱門。不管是目標檢測,仍是姿態估計,幾乎全部的計算機視覺任務都有相對應的開源項目。如今是瞭解這些進展的最佳時期—不久後,你或許就能夠得到大量的工做機會。

Facebook 的 Detectron

開源地址:https://github.com/facebookresearch/Detectron

在 2018 年初被髮布時,Detectron 就曾掀起千層浪。它由 Facebook 人工智能研究院(FAIR)開發,實現了最早進的目標檢測框架。Detectron 採用(驚喜,驚喜!)Python 語言編寫代碼,已經幫助實現了多個項目,包括 DensePose(以後咱們也會在文中提到)。

這個開源項目包括了代碼以及 70+個預訓練模型。與這麼好的機會失之交臂,就問你同不一樣意?

英偉達的 vid2vid 技術

開源地址:https://github.com/NVIDIA/vid2vid

圖像的目標檢測如今作得很不錯,那在視頻中進行目標檢測呢?不只如此,咱們可否能延展這一律念以及將某個視頻的樣式轉換爲另外一種呢?是的,咱們能夠!這是一個很是酷的概念而且英偉達已經很是慷慨地發佈了 PyTorch 實現,讓你們盡情嘗試。

這個開源項目包括介紹這一技術的視頻、完整的研究論文以及代碼。英偉達的示例中,應用了可公開註冊下載的 Cityscapes dataset(下載地址:https://www.cityscapes-dataset.com/)。這是我自 2018 年以來我的最喜歡的開源項目。

用 18 秒在 ImageNet 數據集上訓練出一個模型

開源地址:https://github.com/diux-dev/imagenet18

用 18 秒時間訓練一個深度學習模型?與此同時還不使用高端的計算資源?相信我,如今能夠實現了。Fast.ai 公司的 Jeremy Howard 和他的學生團隊在熱門的 ImageNet 數據集上建立了一個模型,表現甚至超過了 Google 的方法。

我建議你至少過一下這個開源項目,瞭解一下這些研究者是怎樣構建代碼的。並不是每一個人都擁有多個 GPU(有的人甚至一個也沒有),所以對於「小蝦米」來講,這個開源項目意義重大。

目標檢測論文的完整集

開源地址:https://github.com/hoya012/deep_learning_object_detection

這是另外一個研究論文集開源項目,它每每能幫助你瞭解所選擇的研究課題在多年時間跨度裏發生了怎樣的演變,同時這個一站式歷史記錄正好能夠幫助你瞭解目標檢測在多年時間裏經歷的變化。它完整地收集了 2014 年至今的論文,甚至也儘量地收集了每篇論文對應的代碼。

上圖代表了目標檢測框架在過去五年時間裏經歷了怎樣的演變和轉變。很神奇,不是嗎?圖中甚至包括了 2019 年的工做,因此你有的忙了。

Facebook 的 DensePose

開源地址:https://github.com/facebookresearch/DensePose

 

讓咱們將注意力轉向姿態檢測領域。我在今年瞭解到這一律念自己,而且今後之後深爲着迷。上面的圖像抓住了這個開源項目的精華——戶外場景下的密集人體姿式評估。

該開源項目包含了訓練和評估 DensePose-RCNN 模型的代碼,以及可用於可視化 DensePose COCO 數據集的筆記。這是一個開啓姿態評估學習的好地方。

Everybody Dance Now—姿態評估

開源地址:https://github.com/nyoki-mtl/pytorch-EverybodyDanceNow

上圖(截取自視頻)實在是激起了個人興趣。我在八月份的盤點文章中就寫到了該研究論文的開源項目,並繼續佩服這項技術。這項技術將不一樣視頻中人體目標間的動做進行轉移。我提到的這個視頻也能夠在開源項目中看到——它的效果超越你的想象!

這個開源項目進一步包含了這一方法的 PyTorch 實現。這一方法可以獲取和複製的複雜細節的數量是驚人的。

生成式對抗網絡(GANs)

我肯定大家大多數人必定接觸過 GAN 的應用(即便大家當時可能並無意識到是它)。GAN,或者說生成式對抗網絡由 Ian Goodfellow 於 2014 年提出,從那之後就變得熱門。它們專用於執行創造性的任務,尤爲是藝術性的任務。你們可前往 https://www.analyticsvidhya.com/blog/2017/06/introductory-generative-adversarial-networks-gans/ 查看 Faizan Shaikh 所寫的介紹指南,文中還包括了使用 Python 語言的實現方法。

在 2018 年,咱們看到了太多基於 GAN 的項目,所以我也想用一個獨立章節來介紹 GAN 相關的開源項目。

Deep Painterly Harmonization

開源地址:https://github.com/luanfujun/deep-painterly-harmonization

首先從我最喜好的一個開源項目講起。我但願你花點時間僅僅來欣賞一下上面的圖像。你能分辨出哪張是由人類作的,哪張是由機器生成的嗎?我肯定你不能。這裏,第一個畫面是輸入圖像(原始的),而第三個畫面是由這項技術所生成的。

很驚訝,是嗎?這個算法將你選擇的外部物體添加到了任意一張圖像上,併成功讓它看上去好像原本就應該在那裏同樣。你不妨查看這個代碼,而後嘗試親自到一系列不一樣的圖像上去操做這項技術。

Image Outpainting

開源地址:https://github.com/bendangnuksung/Image-OutPainting

若是我給你一張圖像,並讓你經過想象圖像在圖中完整場景呈現時的樣子,來擴展它的畫面邊界,你會怎麼辦?正常來講,你可能會把這個圖導入到某個圖像編輯軟件裏進行操做。可是如今有了一個很是棒的新軟件——你能夠用幾行代碼就實現這項操做。

這個項目是斯坦福大學「Image Outpainting」論文(論文地址:https://cs230.stanford.edu/projects_spring_2018/posters/8265861.pdf,這是一篇無比驚豔並配有示例說明的論文——這就是大多數研究論文所應有的樣子!)的 Keras 實現。你或者能夠從頭開始建立模型,或者也可使用這個開源項目做者所提供的模型。深度學習歷來不會中止給人們帶來驚喜。

可視化和理解 GANs

開源地址:https://github.com/CSAILVision/gandissect

若是你至今尚未掌握 GANs,不妨嘗試一下這個開源項目。這個項目由麻省理工人工智能實驗室(MIT CSAIL)提出,能夠幫助研究者可視化和理解 GANs。你能夠經過觀察或者操做 GAN 模型的神經,來探究它學到了什麼。

我建議你能夠去查看一下 MIT 項目的官方主頁(https://gandissect.csail.mit.edu/),上面有大量的資源(包括視頻 demo),可讓你對這個概念更加熟悉。

GANimation

開源地址:https://github.com/albertpumarola/GANimation

這個算法可讓你改變圖像中任何一我的的面部表情,讓人歡喜也讓人愁。上面在綠框中的圖像是原始圖像,其他的都是由 GANimation 生成的圖像。

開源項目連接中包含了入門指南、數據準備資源、預備知識以及 Python 代碼。正如論文做者所提到的,不要將它用於不道德的目的。

英偉達的 FastPhotoStyle

開源地址:https://github.com/NVIDIA/FastPhotoStyle

FastPhotoStyle 這個開源項目跟前面提到的 Deep Painterly Harmonization 很是像。但值得一提的是,它來源於英偉達自己。正如你在上圖中所看到的,FastPhotoStyle 算法須要兩項輸入——一個樣式圖片和一個內容圖片。這個算法以後會在這兩項輸入的其中一條路徑上運行,來產生輸出——它或者使用逼真的圖像格式化代碼,或者使用語義標記地圖(semantic label maps)。

其餘深度學習開源項目

計算機視覺領域可能讓深度學習的其餘工做都黯然失色,可是我仍是想列出計算機視覺以外的幾個有表明性的開源項目。

英偉達的 WaveGlow

開源地址:https://github.com/NVIDIA/waveglow

音頻處理是深度學習開始作出成績的另外一領域。不侷限於生成音樂,你也能夠完成音頻分類、指紋識別、分割、標註等任務。如今該領域還有不少能夠探索的空間,誰知道呢,也許你可使用這些開源項目來走上人生巔峯。

這裏有兩篇很是直觀的文章,能夠幫助你熟悉這項開源工做:

《使用深度學習開始進行音頻數據分析(附案例研究)》,Getting Started with Audio Data Analysis using Deep Learning (with case study):https://www.analyticsvidhya.com/blog/2017/08/audio-voice-processing-deep-learning/《10 個音頻處理任務讓你開始深度學習應用(附案例研究)》,10 Audio Processing Tasks to get you started with Deep Learning Applications (with Case Studies):https://www.analyticsvidhya.com/blog/2018/01/10-audio-processing-projects-applications/

從新回到英偉達這裏。WaveGlow 是一個基於流的網絡,可以生成高質量的音頻。本質上,它是一個面向語音合成的單網絡。

這個開源項目包括 WaveGlow 的 PyTorch 實現,以及可供下載的預訓練模型。同時,研究者也在上面了列下了使用步驟。若是你想從頭開始訓練本身的模型,能夠遵守使用步驟。

AstroNet

開源地址:https://github.com/google-research/exoplanet-ml

想要發現你本身的行星?AstroNet 這個開源項目也許被高估了些,可是確實能讓你離夢想更近。2017 年 12 月,「谷歌大腦」團隊就經過應用 AstroNet 發現了兩個新的行星。AstroNet 是一個專門用來處理天文數據的深度神經網絡,它體現了深度學習更普遍的應用,同時也是一個真正的里程碑式的進展。

如今,這項技術的研發團隊已經對運行 AstroNet 的整個代碼進行了開源(提示:這個模型基於 CNNs!)。

VisualDL – 可視化深度學習模型

開源地址:https://github.com/PaddlePaddle/VisualDL

誰不喜歡可視化?可是想象深度學習模型怎麼運行,卻是有點嚇人。不過 VisualDL 經過設計特定的深度學習任務,能夠較好地減輕這些挑戰。

針對可視化任務,VisualDL 目前支持如下幾個部分:

數量柱狀圖圖像音頻圖表高維的

天然語言處理(NLP)

很驚訝看到 NLP 排在榜單這麼後的位置?這主要是由於我想在本文對幾乎全部重要的開源項目盤點一番。在 NLP 以前的那些開源項目,我都大力推薦你們前往查看。在 NLP 部分,我提到的框架包括 ULMFiT、谷歌的 BERT、 ELMo 以及 Facebook 的 PyText。我會簡要提一下 BERT 以及幾個其餘的開源項目,由於我發現它們很是有用。

谷歌的 BERT

開源地址:https://github.com/google-research/bert

NLP 這部分,我就不得不提 BERT 了。谷歌 AI 的這個開源項目爲 NLP 領域帶來了突破,贏得了 NLP 愛好者以及專家等人的強烈關注。繼 ULMFiT 和 ELMo 以後,BERT 以它的性能打敗了比賽,在 11 項 NLP 任務中得到最佳成績。

除了我在上面附上的谷歌開源項目的官方連接,BERT 的 PyTorch 實現(查看地址:https://github.com/huggingface/pytorch-pretrained-BERT)也值得前往一看。至於它是否讓 NLP 步入了一個新時代,咱們不久後就會知曉了。

MatchZoo

開源項目:https://github.com/NTMC-Community/MatchZoo

MatchZoo 能幫助你知道模型在某個基準上表現得怎麼樣。對於 NLP,尤爲是深度文本匹配模型,我發現 MatchZoo 工具包很是靠譜。MatchZoo 可應用的其餘相關任務包括:

對話問答文本蘊涵信息檢索釋義識別

MatchZoo 2,0 版本目前還在開發中,所以不妨期待一下這個已經頗有用的工具箱再增長更多新的功能。

NLP Progress

開源地址:https://github.com/sebastianruder/NLP-progress

這個開源項目是由 Sebastian Ruder 一人開發的,其目標是追蹤 NLP 領域的最新進展,它包含了數據集和最早進的模型。

任何一項你曾經想進行更過了解的 NLP 技術——如今就有一個擺在你面前的好機會。這個開源項目涵蓋了閱讀理解以及詞性標註等傳統和核心的 NLP 任務。即便你只是隱約對這個領域感興趣,也必定要標星/標記好這個開源項目。

自動的機器學習(AutoML)

2018 年,也是 AutoML 輝煌的一年。隨着工業界將機器學習集成到它們的核心工做中,其對數據科學專家的需求也在持續上升。目前,供給和需求間也存在着較大的差距,而 AutoML 工具則有可能填補這個差距。

這些工具爲那些缺少數據科學專業知識的人所設計。雖然這些工具以外還有一些其餘很好的工具,可是它們大部分的價格都要高得多——大多數我的負擔不起。所以,2018 年,咱們這個很棒的開源社區前來支援你們,同時還帶來了兩個熱門的開源項目。

Auto Keras

開源地址:https://github.com/jhfjhfj1/autokeras

幾個月前,Auto Keras 一經發布就引發了轟動。而且它必然會引發轟動。長期以來,深度學習被視爲一個專業性很是強的領域,因此一個可以自動完成大部分任務的開發庫天然頗受歡迎。引用他們官網上的話:「Auto Keras 的最終目標是爲僅擁有必定數據科學知識或機器學習背景的行業專家提供可輕鬆應用的深度學習工具」。

你能夠經過下方的種子來安裝這個開發庫:

這個開源項目還包含了一些簡單的示例,可讓你瞭解 Auto Keras 的整個工做流程。

谷歌的 AdaNet

開源地址:https://github.com/tensorflow/adanet

AdaNet 是一個自動學習高質量模型的框架,對編程專業知識沒有要求。因爲 AdaNet 由谷歌開發,所以這一框架基於 TensorFlow。你可使用 AdaNet 建立全部的模型,同時能夠擴展它的應用去訓練神經網絡。

強化學習

由於我在 2018 年的綜述文章中盤點過一些強化學習開源項目,所以這一章節的介紹會至關簡單。我但願在包括 RL 在內的這些章節中,可以促進你們對咱們這個社區的討論,也但願能過加速這一領域的研究進程。

首先,你能夠先去看一下 OpenAI 的 Spinning Up 開源項目(項目地址:https://github.com/openai/spinningup),它是一個針對初學者的徹底教育型的開源項目。而後能夠去看看谷歌的 dopamine 開源項目(項目地址:https://github.com/google/dopamine),它是一個研究框架,用來加速這一仍舊處於初步發展階段的領域的研究。接下來,讓咱們也瞭解一下其餘的開源項目。

DeepMimic

開源地址:https://github.com/xbpeng/DeepMimic

若是你在社交媒體上關注了一些研究者,你必定在視頻中看到過上面的圖像。一個棍形人在地面上奔跑,或者嘗試站起來,或者其餘一些動做。親愛的讀者,這些就是(人體)動做中的強化學習。

這裏有一個強化學習的標誌性示例——訓練仿真人形來模仿多個動做技能。上面開源項目的連接頁面包括代碼、示例以及按部就班的練習指南。

Reinforcement Learning Notebooks

開源地址:https://github.com/Pulkit-Khandelwal/Reinforcement-Learning-Notebooks

這個開源項目是一個強化學習算法集,這些算法來自 Richard Sutton 和 Andrew Barto 所寫的書以及其餘研究論文,它們在開源項目中以 Python notebooks 的格式呈現。

正如該開源項目的開發者所提到的,若是你在學習的過程當中同時進行實操練習,你就能真正學會它。這個項目比較複雜,若是不進行實操或者僅僅像讀小說同樣去閱讀資源內容,你將一無所得。

via:https://www.analyticsvidhya.com/blog/2018/12/best-data-science-machine-learning-projects-github/ 雷鋒網 AI 科技評論編譯

相關文章
相關標籤/搜索