獨家 | 博士學霸推薦:機器學習9種必備工具

2021-12-26 豐亨數大

本文約3500字,建議閱讀12分鐘

工欲善其事,必先利其器。本文的介紹機器學習中9種必須掌握的工具。

學術界儘管在推動技術進步方面發揮了巨大作用,但往往對工業成就一無所知。在我博士畢業時,我意識到有無數偉大的輔助工具,在學術界被忽視,而在工業界卻被廣泛採用。

以我的個人經驗看,學習和引入新工具可能會很枯燥,讓人沮喪並失去動力,尤其是當你對當前的設置非常熟悉且有效時。

要改變既有的習慣可能很困難。我不敢保重新學習新工具這種做事方式一定最優的。然而,在這一過程中,短期內看不到的結果可能會在稍後階段產生百倍的回報。

下面,我將介紹機器學習的一些工具。無論是您是一名學者還是一名人工智慧工程師,這些工具都會對您研究和構建機器學習應用程式非常有幫助。根據工具的用途,我將它們分為四類:環境隔離、實驗跟蹤、協作和可視化。

機器學習是一個發展極為迅速的領域,因此常用的軟體包經常更新。儘管開發人員做出了努力,但較新的版本通常與以前的版本不兼容。這確實會造成很多麻煩!

幸運的是,有工具可以解決這個問題!

NVIDIA驅動程序是否給您惹過N次麻煩?在我讀博士期間,有一臺學校管理的機器,在沒有任何通知前,一夜之間定期更新。想像一下,當更新後的第二天早上,我發現我的大部分工作現在與最新的驅動程序不兼容時,我會有多麼驚訝。但如果你有Docker,就不會產生緊張不安的情緒了。

Docker允許將軟體包裝在某種容器中。容器一個獨立單元,它具有自己的軟體、庫和配置文件。在簡化視圖中看,容器是一個獨立的虛擬作業系統,它有與外部世界通信的方法。

Docker有大量現成的容器供您使用。因此,您無需掌握如何關於容器配置的所有知識,只需學習一些簡單的基礎知識即可。

如果想快速入門,請查看教程:

https://docs.docker.com/get-started/

此外,對於為什麼以及如何使用Docker進行機器學習,亞馬遜AWS進行了詳細的解釋。

https://aws.amazon.com/blogs/opensource/why-use-docker-containers-for-machine-learning-development/

https://docs.conda.io/en/latest/

開源使得重用別人的代碼成為一種新的規範。有人在GitHub上創建了一個有用的存儲庫,您可以克隆代碼,安裝並獲取解決方案,無需自己編寫任何代碼。

不過有一點不便。當多個項目一起使用時,您會遇到宏包管理問題,不同的項目需要不同版本的宏包。

我很高興我在博士期間沒那麼晚就發現了Conda。它是一個宏包和環境管理系統。它允許創建多個環境並快速安裝、運行和更新宏包及其相關內容。您可以在隔離環境之間快速切換,並始終確保您的項目僅與您期望的宏包交互。

Conda主頁提供了如何創建第一個環境的教程:

https://conda.io/projects/conda/en/latest/user-guide/getting-started.html#starting-conda

嚴格性和一致性是取得應用領域博士學位不可或缺的兩大基本支柱。如果你曾經嘗試過使用機器學習模型,你可能知道對測試參數的跟蹤是多麼容易。這在以前,參數跟蹤是在實驗室筆記本上完成的,我相信這些在其他領域仍然非常有用。但在計算機科學中,我們現在有了比這更強大的工具。

一組簡單指標的wandb面板截圖:訓練損失、學習率和平均驗證損失。請注意,您還可以跟蹤系統參數!experiment_res_1.csv
experiment_res_1_v2.csv
experiment_res_learning_rate_pt_5_v1.csv
….

這些名稱看起來是否熟悉?如果是這樣,那麼您的模型跟蹤技能應該得到提高。記得在我博士的第一年,我用一個電子表格記錄每個實驗的細節和所有相關的文件。然而,它仍然非常複雜,參數記錄的每一次更改都不可避免地會影響後處理腳本。

Weights and biases(W&B/wandb)是我發現得很晚的一個工具,但現在在每個項目中都使用。它讓您只需幾行代碼就可以跟蹤、比較、可視化和優化機器學習實驗。它還允許您跟蹤數據集。儘管有很多選擇,我發現W&B易於設置和使用,具有非常友好的web界面。

如果您對此感興趣,請查看它的快速設置教程:

https://docs.wandb.ai/quickstart
MLflow

https://mlflow.org/

與W&B類似,MLflow提供了記錄代碼、模型和數據集的功能。儘管我使用它只是為了記錄數據、模型和代碼,但它提供的功能遠遠不止這些。它允許管理整機器學習的整個生命周期,包括實驗、重現和部署。

如果要快速掌握MLflow,請查看教程:

https://www.mlflow.org/docs/latest/tutorials-and-examples/tutorial.html

此外,Databricks也分享了關於MLflow的一個說明。

https://databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html

Screen

https://linuxize.com/post/how-to-use-linux-screen/

讓實驗在一夜之間運行,並希望你的機器不會進入睡眠狀態,這是我在上半年攻讀博士學位時的選擇。當工作轉移到遠程時,我曾經擔心ssh會話會中斷,畢竟代碼運行了幾個小時,幾乎聚合在一起。

我很晚才知道Screen的功能,所以我無法避免第二天早上實驗結果半途而廢。但在這種情況下,學習使用Screen,遲做總比不做好。

Screen允許您從單個ssh會話啟動和使用多個shell會話。從Screen開始的進程可以從會話中分離,然後在以後重新連接。因此,您的實驗可以在後臺運行,而無需擔心會話關閉或終端崩潰。

這裡總結了Screen的功能:

https://www.geeksforgeeks.org/screen-command-in-linux-with-examples/

協作

學術界因沒有有效的團隊管理機制而效率不高。在某種程度上,對個人捐款的嚴格要求證明了這一點。然而,機器學習的發展速度促使我們需要共同協作。下面是兩個非常基本的工具,可以方便地進行有效的溝通,特別是在遠程工作的新領域。

GitHub

https://github.com/

是不是很基本?看到學術界的人們在跟蹤代碼時有多麼恐怖時,我不得不強調精通版本控制有多麼重要。不再需要名為code_v1、code_v2的文件夾。

GitHub為代碼跟蹤、合併和審查提供了一個非常有用的框架。每當團隊構建深層圖像質量的度量時,每個成員都可以有自己的代碼分支,並行工作。然後可以將解決方案的不同部分合併在一起。每當有人引入bug時,很容易恢復到工作版本。總的來說,我將GitHub列為我在本文中提到的所有工具中最重要的工具。

要開始上手GitHub,查看手把手教程:

https://guides.github.com/activities/hello-world/

Lucidchart

https://www.lucidchart.com/

在了解Lucidchart之前,我曾使用draw.io(https://app.diagrams.net/),它具有一個創建圖表的非常簡單的界面。Lucidchart的功能比它強大上千倍,功能也更加多樣化。它的主要優勢在於共享協作空間和在圖表旁邊做筆記的能力。想像一下,一個巨大的在線白板上排列著一系列模框。

要快速入門,請查看Lucidchart的教程:

https://www.lucidchart.com/pages/tour

可視化

大量的論文提交,尤其是不成功的論文,讓我認識到陳述往往和結果一樣重要。如果審稿人因沒有太多時間而不理解論文,該論文將立即被拒絕。粗製濫造的圖像會給人很差的印象。有人曾經告訴我:「如果你不能製作圖表,我怎麼能相信你的結果?」。我不同意這種說法,但是,我確實同意可視化的重要性。

Inkscape

https://inkscape.org/

一張圖片勝過千言萬語(事實上,應該是84.1個字:https://www.cl.cam.ac.uk/~afb21/publications/Student-ESP.html)。

Inkscape是矢量圖形的免費軟體。事實上,在我的大學本科網絡開發課程中,學到了如何使用它。然而,只有在我攻讀博士學位期間,我才學會了如何充分享受它——為論文創作那些美麗的圖片。

Inkscape提供的所有功能中最有價值的是TexText擴展(https://inkscape.org/~jcwinkler/%E2%98%85textext)。使用此軟體包,您可以無縫地將LaTeX(https://www.latex-project.org/)集成到圖像中。

這裡有很多教程,但是對於基本功能,我推薦Inkscape團隊提供的教程:

https://inkscape.org/learn/tutorials/

Streamlit

https://streamlit.io/

您是否曾經需要創建一個簡單的網站來展示您的結果,或者創建一個簡單的機器學習應用程式?只需幾行python代碼,就可以使用Streamlit。

我發現它對於紙質補充材料很有用,而對於易於部署和向客戶展示項目演示,它甚至更有用。

要快速上手,請查看教程:

https://builtin.com/machine-learning/streamlit-tutorial

總結與展望

在攻讀博士學位的同時找到自己在行業中的定位並非易事。但在此過程中,我收穫了一些重要經驗。當然,我還希望我能早日獲得博士學位。

這些經驗中,最重要的一條是要保持好奇心,學習動力和改變習慣會極大地影響你的工作質量。

附本文提到的教程網址:

Docker

https://aws.amazon.com/blogs/opensource/why-use-docker-containers-for-machine-learning-development/

Conda

https://conda.io/projects/conda/en/latest/user-guide/getting-started.html

Weights and biases

https://docs.wandb.ai/quickstart

MLflow:

https://www.mlflow.org/docs/latest/tutorials-and-examples/tutorial.html

GitHub

https://guides.github.com/activities/hello-world/

Screen

https://www.geeksforgeeks.org/screen-command-in-linux-with-examples/

Inkscape

https://inkscape.org/learn/tutorials/

Streamlit

https://builtin.com/machine-learning/streamlit-tutorial

Lucidchart

https://www.lucidchart.com/pages/tour

https://towardsdatascience.com/nine-tools-i-wish-i-mastered-before-my-phd-in-machine-learning-708c6dcb2fb0

如需轉載,請在開篇顯著位置註明作者和出處(轉自:i數學i打卡ID:i-Math-i-Match),並在文章結尾放置i數學i打卡醒目二維碼。有原創標識文章,請發送【文章名稱-待授權公眾號名稱及ID】至聯繫郵箱,申請白名單授權並按要求編輯。

發布後請將連結反饋至聯繫郵箱(見下方)。未經許可的轉載以及改編者,我們將依法追究其法律責任。

相關焦點

  • 資源 | Parris:機器學習算法自動化訓練工具
    Parris 是一個自動化訓練機器學習算法的工具。
  • 自動機器學習工具全景圖:精選22種框架,解放煉丹師
    自動機器學習框架能幫助數據科學家減輕負擔,降低特徵工程和超參數調優的工作量,讓他們能花更多時間來嘗試模型架構。快速驗證可能的方案不僅能讓數據科學家很快地評估目標數據集,也能提供基準性能用以改進。本文儘可能全面地介紹現有的自動機器學習框架,也附上了對應的代碼地址。綜述我們對現有的自動機器學習開源框架展開了充分調研,它們一般作用於機器學習的單個或多個步驟。
  • 弱電工程遠程支持,幾種常見遠程工具的使用方法-弱電新人必備!
    這時候就需要技術人員會通過遠程協助的方式來處理相關問題,今天給大家帶來幾種常見的遠程工具的使用方法,讓我們一起來看看吧!正文1、Windows自帶的遠程桌面連接這種遠程桌面連接工具在網際網路或者內部區域網上都可以使用,但是網際網路環境下使用要求較高,內部區域網環境下使用比較方便,保證網絡通即可,推薦在內部區域網環境下使用該種遠程工具。
  • 機械學霸(2018年下)
    solidworks繪製四桿機構的教程含裝配動畫27種常見全責交通事故3D動態圖演示,開車必備!未來的智能交通,你敢想像嗎?數控加工:頂尖的那點事兒!機械動圖第50期|十四種閥門的工作原理,大飽眼福!機械動圖第51期|殿堂級機械工作結構動圖,看懂就是學霸!機械動圖第52期|機械工作原理動圖超牛,收藏慢慢看!機械動圖第53期|45張閥門結構動畫,種類、工作原理薈萃!
  • 北大學霸出的中文教程:簡單粗暴入門 TensorFlow 2.0
    來源:量子位TensorFlow 2.0已發布,現在,這裡有一份全中文教學的快速上手指南,基於Keras和Eager Execution(動態圖)模式,北大學霸出品
  • 中國獨家首發!zFrontier MYKB定製工具上線!
    zFrontier MYKB定製工具這樣的情況,因為zFrontier MYKB定製工具的出現而不再有。zFrontier MYKB定製工具由zFrontier和世界頂級機械鍵盤定製商WASD獨家合作推出。
  • 三款免費,純淨的PE工具,裝機必備!
    有備無患,用電腦必備的工具,還可以看這裡:啟動U盤到底是啥?可以做哪些電腦維護?必需嗎?很多常見的PE捆綁主頁,自動安裝推廣,雖然能關,有的比較麻煩或者比較隱蔽,所以今天給大家推薦下三款免費、純淨無推廣的PE。
  • 測試機器學習模型不用寫代碼!谷歌「what-if」工具輕鬆搞定
    新智元AI WORLD 2018世界人工智慧峰會倒計時8天新智元將於9月該工具提供交互式可視化界面,用戶可以探索並比較模型結果,可以快速地發現模型中的錯誤。構建高效的機器學習系統,需要提出並解決許多問題。僅僅訓練模型然後就放著不管是遠遠不夠的。優秀的機器學習從業者要像偵探一樣,時刻注意探索如何更好地理解構建的模型:數據點的變化將對模型的預測結果造成什麼影響?同一個模型對不同的群體會有哪些不同的表現?用來測試模型的數據集的多樣化程度如何等等。
  • Mac裝機必備的十款應用S02- 實用工具篇
    這款應用最大的一個特點就是支持語義化輸入,比如輸入「Buy a new mac AppStore tomorrow 10am」應用會自動創建一個明天早上10點在AppStore的購物事件,輸入非常的方便也非常的爽。1.0版本只有一個常駐系統頂部菜單欄的工具,更加偏重查看接下來的所有事件。前段時間Fantastical剛剛發布了2.0版本,增加了類似系統日曆的窗口應用。
  • 慕尼黑工業大學5個全額資助博士項目出爐,不限於理工科哦,社科背景也可以申請~
    一大波兒歐洲名校博士offer來襲~歐盟Erasmus+獎學金+2、牛津+1、魯汶+1、根特+1、柏林洪堡+1....留歐之星博士精選Offer分享,學霸小夥伴們看過來~北歐留學|博士篇:中山大學小哥哥的卡羅琳斯卡醫學院博士申請之旅,雖然一波三折,但最終金榜題名~重磅!
  • 【精品軟體】Dism++,也許是最強的實用工具,必備神器!
    今天給大家推薦一款windows系統最強實用工具——Dism++,說道這款軟體,懂得系統安裝或者系統封裝的朋友可能已經非常了解了。
  • 學霸是天生的?老教師坦言:初中班級的前10名,都來自3種家庭
    10年老教師坦言:初中前10名學霸,大多來自3種家庭所謂人各有命,富貴在天,降臨在什麼樣的家庭是無法選擇,所以家庭因素也歸為「天生因素」。曾有一位初三學霸公開表明學霸和學渣的區別:「主要在於學習上的意識,學霸更更是學習,把學習當做最主要的事。」
  • 機器學習項目
    AnimeGAN v2對照片進行卡通化始終是一個有趣的機器學習項目。是不是AnimeGANv2這個項目是AnimeGAN的改進版本。具體來說,它結合了神經風格轉移和生成對抗網絡(GAN)來完成任務,同時還確保了防止高頻偽像的產生。
  • 推薦8 款實用好工具,日常必備
    -ω-)zzz本文推薦的軟體,關注公眾號:高效率工具搜羅(ID:gongju006),後臺回覆:2026,獲取下載連結。 北鬥衛星地圖時間規劃局是一款特別棒特別驚豔的倒計時工具。本文推薦App,關注公眾號:高效率工具搜羅(ID:gongju006),後臺回覆:2026,獲取下載連結。
  • 這17 種方法讓 PyTorch 訓練速度更快!
    https://github.com/prigoyal/pytorch_memonger/blob/master/tutorial/Checkpointing_for_PyTorch_models.ipynb增加 batch 大小的另一種方法是在調用 optimizer.step() 之前在多個. backward() 傳遞中累積梯度。
  • 一款強大的機器學習可視化IDE
    本文,就來給大家介紹一款新型的機器學習可視化IDE,能夠讓人工智慧研發過程變得更加簡單明了。wandbwandb是Weights & Biases的縮寫,這款工具能夠幫助跟蹤你的機器學習項目。通過wandb,能夠給你的機器學習項目帶來強大的交互式可視化調試體驗,能夠自動化記錄Python腳本中的圖標,並且實時在網頁儀錶盤展示它的結果,例如,損失函數、準確率、召回率,它能夠讓你在最短的時間內完成機器學習項目可視化圖片的製作。
  • 「教程乾貨」9款工具,1朝速成:3ds Max高頻實用工具全攻略
    提供最快速製圖技能讓你的配圖一氣呵成模型繪製不猶豫工具調用穩準狠幫你排除「錯誤」選項一朝變身3d製圖專業選手更 更 更 重要的是這套科研小白必備的繪圖視頻教程>Wiley®和RSC®有著密切合作的機構我們從八千餘幅封面插圖作品中總結出讓編輯一見傾心的配圖設計規律幫助無數科研小白成功逆襲成為繪圖達人讓眾多數據驚人的學霸文章輕鬆
  • 美女學霸9年窮遊90國,她是這樣做到的!
    鄧深,27歲的美女學霸,土生土長的成都妹子。  她擁有中國加德國「環境工程」本科學位,即將獲得秘魯「環境科學」碩士學位。  從18歲起,鄧深背上行囊開始獨自窮遊中國各個省市。  在路上9年,鄧深的足跡已經遍布全球90多個國家和地區。如今,她已經熟練掌握西班牙語、德語、英語、日語4種外語,還會其他10種語言的基礎對話。  「如果說地球上再也找不到想要去的地方,我會搬到火星去。」
  • 博士招生丨美國康乃狄克大學UConn招收全獎博士生!文末附申請方式
    user=7hR0r_EAAAAJ&hl=en1.具有計算機、電子電氣、通信、數學或數理統計及相關學科本科或本科以上學歷;2.有良好編程背景或機器學習或 FPGA/GPU開發優先,具體包括但不限於:Machine Learning Theory; Systems; FPGA and GPU Programming.3.Programming