11月份最熱門的機器學習開源項目及Reddit討論TOP 5
介 紹
當數據科學家最棒的事情之一就是編程。很多時候,我發現自己沉浸在為某個項目從零開始的編程時光中。當你看到你的努力孕育了一個成功的模型時,那是多么的令人興奮!
但是作為一名數據科學家(或者程序員),在不同階段創建代碼檢查點同樣重要。了解上一次開始的位置非常有幫助。這樣一來,如果你需要查看歷史代碼或者將代碼分支到不同的路徑,總會有回退的余地。這也是為什么 GitHub 是一個***的代碼平臺。
該系列的前幾篇文章已經闡述了為什么每個數據科學家都應該有一個活躍的 GitHub 賬戶。無論是為了合作、重新開始或組合代碼,或者為了教育目的,這都是增強代碼能力和知識的***平臺。
現在讓我們進入文章的核心——機器學習代碼!我挑選了一些很有意思的項目,我覺得每個數據科學家都應該嘗試一下。
除了編程之外,還有許多方面與數據科學家有關。我們需要了解社區中的所有***發展,其他的機器學習專家和思想先鋒在談論什么,在一個有爭議的項目中工作的道德含義是什么,等等。這也是為什么我在文章中加入了 Reddit 的討論內容。
GitHub 熱門項目
Open AI 深度強化學習資源
項目地址:https://github.com/openai/spinningup
在這個系列中我們要繼續補充強化學習的資源,這里有一個迄今為止***的——OpenAI 的資源大放送!這是一個開源的教育資源,目的是讓大家更容易學習深度強化學習。考慮到強化學習對大多數人來說過于復雜,這是一個對新人很友好的知識庫。
這個代碼庫包含了一些便利的資源:
- RL 術語介紹、各種算法和基本理論
- 一篇關于如何成長為 RL 研究人員的論文
- 一份按主題分類的重要論文列表
- 簡短的、獨立實現的關鍵算法的代碼庫
- 一些練手的小練習
NVIDIA 的 WaveGlow
項目地址:https://github.com/NVIDIA/waveglow
這一份是為音頻、語音處理領域的人們準備的。WaveGlow 是一個基于流的生成網絡,用于語音合成。換句話說,它是一個可以從梅爾譜圖中生成高質量語音的網絡(沒錯,一個單獨的網絡!)
這個項目包含 WaveGlow 的 PyTorch 實現,以及一個預訓練模型。這真的是一個不錯的框架,如果你想再深入研究,可以點擊下面的鏈接:
BERT 作為服務
項目地址:https://github.com/hanxiao/bert-as-service
我們在上個月的文章中介紹了 BERT 的 PyTorch 實現,這里是另一個版本。對于那些剛剛接觸 BERT 的人,它代表轉換器的雙向編碼器表示(Bidirectional Encoder Representations from Transformers)。它是一種預訓練語言表示的方法。
BERT 的結果讓 NLP 世界為之一亮,Google 的研究人員也非常友好地發布了一些 預訓練模型 以方便研究。
這個代碼庫使用 BERT 作為語句編碼器,并且作為一種可以通過 ZeroMQ 訪問的服務,你只需要兩行代碼就可將語句映射成固定長度的特征表示。BERT 使用簡單、速度極快、并且擴展性好。試試吧!
谷歌 Quick Draw 游戲 Python 實現
項目地址:https://github.com/1991viet/QuickDraw
Quick Draw 是谷歌開發的一個流行的在線游戲,神經網絡會猜測你在畫什么。神經網絡從每幅圖畫中學習,提高正確猜測涂鴉內容的能力。開發人員從用戶先前繪制的涂鴉中建立了一個龐大的數據集。這是一個開源的數據集,這里是數據集地址:https://github.com/googlecreativelab/quickdraw-dataset。
你現在可以基于這個倉庫,用 Python 構建自己的 Quick Draw 游戲。有一個詳細教程。使用這個代碼,你可以運行一個應用程序,可以在計算機的攝像頭前繪制,也可以在畫布上繪制。
GAN 理解和可視化
項目地址:https://github.com/CSAILVision/gandissect
GAN 分解是由麻省理工學院的計算機科學和人工智能實驗室的研究人員開創的方法,是一種獨特的可視化和理解生成對抗網絡(GAN)神經元的方法。但這并不僅限于此——研究人員還創建了 GANPaint 來展示 GAN 分解是如何工作的。
GAN 分解通過檢查和操縱特定 GAN 模型的內部神經元,探索 GAN 模型學習到了什么。可以先看看研究論文和 視頻演示,然后直接進入 GitHub 倉庫,直接進入代碼!
Reddit 討論
為什么一開始就需要梯度下降?
在學習基本的機器學習概念時,你的腦海中是否出現過這個問題?梯度下降是我們在初期學習時一定會遇到的基本算法之一,并且已經證明該方法在 ML 中是非常有效的。但是一旦你開始閱讀這篇文章,你會對之前學習的內容產生疑問。
起初這個問題直截了當,后來變成了 Reddit 高層人士之間的大討論。我非常喜歡瀏覽這些評論,我相信如果你對這個領域感興趣,對數學抱著嚴謹的態度,也一定會覺得它很有用的。
大規模神經網絡的逆向工程
當復雜龐大的神經網絡的開發人員突然消失,而沒有留下任何理解網絡所需的文檔時,你該怎么做?這可不是憑白無故的虛構,而是實實在在會發生的一個常見情況,提問者本人就遇到過。
這種情況經常發生在開發人員身上,但是當涉及到深度學習時,完全是一種新的境況。這篇文章介紹了幾種方法,科學家可以用于還原深度模型最初的設計思路。有些回答很實際,而有些則很荒謬,但每種回答都增加了一種視角。或許某天當你也遇到這種情況時,它們會幫到你。
關于 TensorFlow2.0 API 的爭論
https://www.reddit.com/r/MachineLearning/comments/9ysmtn/d_debate_on_tensorflow_20_api/
這個話題下大量的評論吸引了我的注意力(撰寫本文時有 110 條評論),世界上有什么話題能引起如此大的爭議呢?但是,當你接著閱讀時,辯論者之間完全不同的意見讓人難以置信。除了 TensorFlow 被嘲笑“不是***的框架”之外,還有很多人在點贊 PyTorch(如果你使用過 PyTorch 就會明白這并不奇怪)。
這一切開始于 Francois Chollet 將自己的想法發布到 GitHub 上,在機器學習社區點了一把火。
基于預測獎勵的強化學習
這篇文章中另一個 OpenAI 的項目,是他們的又一個巨大突破。標題看上去沒那么特別,但是你要理解 OpenAI 團隊做出了什么。正如一位 Reddit 用戶所指出的,OpenAI 的工作讓我們向模仿人類行為的機器更近了一步。
它耗費了大約一年的訓練時間,以超越人類的水平通關了蒙提祖馬的復仇游戲,這給人留下了十分深刻的印象!
找到***份數據科學家工作
https://www.reddit.com/r/datascience/comments/9xxm3w/landed_my_first_job_as_a_data_scientist/
這是為那些有抱負的數據科學家提供的文章。文章的作者闡述了他是如何得到這份令人垂涎的工作,他的背景,他從哪里學習的數據科學等。回答了這些標準問題之后,他寫了一篇非常好的文章,關于處于類似情況的人們可以做些什么來實現他們的抱負。
文章后面還給出了一些有用的意見。當然,你也可以向作者提出你自己的問題。
結束語
這個月的收藏不少。我個人認為 GAN 分析的代碼庫相當吸引人。我目前正在嘗試在自己的設備上復制它,這應該會很順利。我也在密切關注“大規模神經網絡逆向工程”這個主題,因為如果我發現我自己也處在同樣的困境中,那么這個帖子給出的想法會真的很有幫助。
你最喜歡哪個 GitHub 項目?你認為哪個 Reddit 的主題能夠脫穎而出?可以留言告訴我們。