做機器學習相關工作,需要哪些技能 ?(附資源連結)

2021-02-14 AI數據派

來源:Python開發者(PythonCoder)

原文連結:http://blog.jobbole.com/113592/

本文共2650字,建議閱讀5分鐘
本文摘編了兩位網友的回答解讀機器學習有關工作所備的技能有哪些!

一、Jonathan A. Cox(機器學習和應用物理研究人員)的回答:


這裡有很多回復都提到了一些創業公司常用的工具。值得注意的是,在你 35 歲以上的職業生涯中,這些工具會變得完全不同。所以最好的辦法是熟悉基本概念和數學。

其次,機器學習領域太過繁雜,根本不可能真正深入理解幾十種不同的算法。我覺得你可以先深究幾個最有前景的算法。說是這麼說,你也要很了解一些基礎的東西才行,比如說樸素貝葉斯、支持向量機、感知器、決策樹。

最後,很多創業公司,或者非研究領域的人會告訴你要專注於那些快要老掉牙的算法(比如支持向量機 (SVM))和大數據的資料庫工具(比如說Hadoop)。考慮到你剛剛起步,我覺得你可以專注於那些很快會發展起來的架構:神經網絡,單指令流多數據流(SIMD)向量計算(比如說GPU)。神經網絡最近 10 年內開始革命性地顛覆自然語言處理、機器視覺、語音識別和其他領域。鑑於它的強大,這個影響還會繼續下去。

綜上,我會選擇諸如 GPU 加速這類算法來自學和實現,再加一些分布式資料庫的知識。以下是值得考慮的算法:

另外一個很有前景的領域是強化學習,尤其是 Deep Mind 的 Q-learning。當你用到延遲獎勵功能(比如玩 Atari 遊戲時的得分),並且不能在你的網絡中直接計算參數梯度時,你會用到強度學習。當你熟悉了上述的算法之後,你大約會想探索一下這個領域。這個領域跟機器人以及,更現實一點,關於人和動物是怎麼學習的模擬,很有關聯。

補充:我現在有這樣的想法:過去的一年中,結合不同的神經算法,得到一個「深度「系統的方法逐漸顯露出重大進步;因為這個方法的整體大於它的組成部分。鑑於奠基石已經鋪下,我預計最顯著的進步很可能會落在這個方向。一定程度上,細緻整頓整個系統之前訓練好個體模塊,以及更快的計算群讓這種進步成為了可能。(然而我們仍會在單個的算法中看到進展。)

換句話說,現在結合了卷積神經網絡和多層感知器(MLP)的 LSTM,可以做到用句子描述圖像之類的事情(來源:Goolge/Stanford)。類似地,已經有了具備強化學習能力的卷積神經網絡和 MLP 組成的 Atari 遊戲競技網絡。

往這個清單加上新東西同樣很容易:把通過 word2vec/GloVe/skip-gram 訓練出來的詞向量輸送給這樣的複合網絡,或者甚至是用遞歸神經網絡訓練的情感分析層。

有了神經網絡和反向傳播,在任意幾何體上結合/疊加層,以及把組合作為整體系統來訓練都變得容易了,它們可以擴展出強大的能力。

由許多不同種類的神經網絡組成,用各種技術連接在一起,單獨訓練,協同微調,這些混合系統將繼續向我們展示充滿戲劇性的新能力。

二、Joseph Misiti 的回答分享,4400+ 頂


個人認為,以下是部分必需技能:

更新:我在 Github 創建了一個 repo,裡面有上百的資源連結能夠幫你起步。

https://github.com/josephmisiti/awesome-machine-learning


Python/C++/R/Java


假如你想在機器學習領域裡找一份工作,你大概遲早要學會這些語言。Python 的 Numpy 和 Scipy 庫 [2] 非常有用,因為這些庫不僅有跟 MATLAB 相似的功能,而且將其整合進WebService,或者在 Hadoop(見下)裡使用的時候也十分簡單。在加快代碼運行速度的時候會用到C++。R [3] 在統計和畫圖的時候非常好用。Hadoop [4] 是用 Java寫的,所以當你實現 mappers 和 reducers 的時候可能需要用到 Java(雖然你也可以通過 Hadoop streaming  [5] 使用腳本語言)。

概率和統計


學習算法裡的很大一部分都基於概率和統計理論,比如說樸素貝葉斯 [6]、高斯混合模型 [7]、隱 Markov 模型 [8]。想要理解這些模型,就需要紮實的概率和統計功底。測度論 [9] 怎麼拼命學都不過分。把統計作為模型的評價指標,比方說混淆矩陣、ROC 曲線、p值等等。

應用數學和算法


對於 SVM [10] 這些判別模型,就需要算法理論的紮實基礎了。即便你不需要從頭開始實現SVM,學習算法理論也可以幫助你理解算法。需要學習的東西有凸優化 [11],梯度下降 [12],二次規劃 [13],拉格朗日 [14],偏微分方程等等。要習慣看求和符號 [16]。

分布式計算


如今大部分的機器學習工作都要求使用大型數據集(見《數據科學》)[17]。處理這些數據並不能憑藉一臺機器,而是需要把工作分派給整一個集群。像 ApacheHadoop [4] 這樣的項目和亞馬遜的 EC2 [18] 這樣的雲服務就能以合理的成本方便地處理這些數據。雖然 Hadoop 把很多硬核的分布式計算問題隱去了,對 map-reduce [22] 和分布式文件系統 [19] 等方面有透徹的理解還是十分必要的。Apache Mahout [20] 和 Apache Whirr [21] 也很值得一看。

精通 Unix/Linux 工具


除非你運氣好,不然你總是需要修改你數據集的格式來載入到 R、Hadoop、HBase 等。Python這些腳本語言(使用 python 裡的 re)也能用來完成這個事情,但是最好的方法大約還是掌握專門為此設計的 unix 工具:cat [24]、grep [25]、find [26]、awk [27]、sed [28]、sort [29]、cut [30]、tr [31]等。因為最有可能在基於 Linux 的機器上處理這些數據(我記得 Hadoop 並不能在 Windows 上運作),你一定可以用到這些工具。要學會熱愛並儘可能地使用這些工具。這些工具讓事情簡單多了,比如這個例子 [1]。

熟悉Hadoop的子項目


HBase、Zookeeper [32]、Hive [33]、Mahout 等。這些項目可以儲存或讀取數據,而且他們可擴展。

了解高級信號處理的技術


特徵提取是機器學習最重要的部分之一。如果你的特性提取得不好,那不論你使用什麼算法,性能都不會好。根據具體情況,你可能可以應用一些很酷炫的高級信號處理算法,比方說 wavelets[42]、shearlets [43]、curvelets[44]、contourlets [45]、bandlets [46]。了解並嘗試應用時間-頻率分析方法 [47]。如果你還沒有了解傅立葉分析和卷積的話,這些東西也值得學習。後面提到的這倆是信號處理的基礎知識。

最後,儘量多練習、多閱讀。有空的時候可以讀讀像 GoogleMap-Reduce [34]、Google File System [35]、Google Big Table [36]、The UnreasonableEffectiveness of Data [37] 上的論文。網上也有很多關於機器學習的好書的免費資源,這些也應該多讀。[38][39][40] 我找到了一個很好的課程,並且在轉發到Github了 [41]。與其直接使用開源的擴展包,不如自己寫一份並且對比結果。如果你能從頭寫一個支持向量機,你就會明白像支持向量、gamma、cost、hyperplanes 等的概念。載入數據並開始訓練並不難,難的是理解這所有的概念。


前文提到的參考連結:

[1] http://radar.oreilly.com/2011/04…

[2] http://numpy.scipy.org/

[3] http://www.r-project.org/

[4] http://hadoop.apache.org/

[5] http://hadoop.apache.org/common/…

[6] http://en.wikipedia.org/wiki/Nai…

[7] http://en.wikipedia.org/wiki/Mix…

[8] http://en.wikipedia.org/wiki/Hid…

[9] http://en.wikipedia.org/wiki/Mea…

[10] http://en.wikipedia.org/wiki/Sup…

[11] http://en.wikipedia.org/wiki/Con…

[12] http://en.wikipedia.org/wiki/Gra…

[13] http://en.wikipedia.org/wiki/Qua…

[14] http://en.wikipedia.org/wiki/Lag…

[15] http://en.wikipedia.org/wiki/Par…

[16] http://en.wikipedia.org/wiki/Sum…

[17] http://radar.oreilly.com/2010/06…

[18] http://aws.amazon.com/ec2/

[19] http://en.wikipedia.org/wiki/Goo…

[20] http://mahout.apache.org/

[21] http://incubator.apache.org/whirr/

[22] http://en.wikipedia.org/wiki/Map…

[23] http://hbase.apache.org/

[24] http://en.wikipedia.org/wiki/Cat…

[25] http://en.wikipedia.org/wiki/Grep

[26] http://en.wikipedia.org/wiki/Find

[27] http://en.wikipedia.org/wiki/AWK

[28] http://en.wikipedia.org/wiki/Sed

[29] http://en.wikipedia.org/wiki/Sor…

[30] http://en.wikipedia.org/wiki/Cut…

[31] http://en.wikipedia.org/wiki/Tr_…

[32] http://zookeeper.apache.org/

[33] http://hive.apache.org/

[34] http://static.googleusercontent….

[35]http://static.googleusercontent….

[36]http://static.googleusercontent….

[37]http://static.googleusercontent….

[38] http://www.ics.uci.edu/~welling/…

[39] http://www.stanford.edu/~hastie/…

[40] http://infolab.stanford.edu/~ull…

[41] https://github.com/josephmisiti/…

[42] http://en.wikipedia.org/wiki/Wav…

[43] http://www.shearlet.uni-osnabrue…

[44] http://math.mit.edu/icg/papers/F…

[45] http://www.ifp.illinois.edu/~min…

[46] http://www.cmap.polytechnique.fr…

[47 ]http://en.wikipedia.org/wiki/Tim…

[48] http://en.wikipedia.org/wiki/Fou…

[49 ]http://en.wikipedia.org/wiki/Con…

相關焦點

  • 機器學習應該準備哪些數學預備知識?
    也特地學過線性代數、微積分等,但是然並卵,還是看不懂大段的公式以及那些神奇的矩陣計算~機器學習新手,想前來問下,有沒有哪些數學知識是可以彌補這一類缺陷的?能否具體的說一些知識點或者相關的文章和書籍?回答:利益相關:樓主@Robin Shen以本科應用數學和碩士運籌學、優化理論的背景轉到德國海德堡大學讀博,主要從事機器學習、計算機視覺的研究,希望自己的一些經驗可以對想入門機器學習的朋友們有點借鑑作用。此回答的部分答案摘自我另外一個相關回答:Robin Shen:想轉專業機器學習(人工智慧)需要學哪些課程?
  • 【機器視覺】學習機器視覺需要哪些知識?
    要回答這個問題,我們可以分解一下機器視覺系統,來逐個分析。一套最簡單的機器視覺系統包括1.
  • 數據科學技能中,哪些是核心技能,哪些是熱門/新興技能?
    最新的 KDnuggets 投票調查問了如下兩個問題: 你目前擁有哪些技能 / 知識領域(在工作或研究中可以使用的水平)?你想增加或提高哪些技能?我們根據 KDnuggets 之前的一些文章和投票調查,選出了 30 項技能。
  • 業界| 數據科學家最需要什麼技能?
    數據科學家需要涉獵很多——機器學習、計算機科學、統計學、數學、數據可視化、通信和深度學習。這些領域中有幾十種語言、框架和技術可供數據科學家學習。那麼要想成為僱主需要的數據科學家,他們應該如何安排學習內容呢?
  • 2017年做外貿需要掌握哪些技能
    其實當時我們做這個公眾號就是希望幫助咱們有想轉行做外貿或者已經在做外貿的親們,在我們這裡有更多外貿的資訊,不管是睡前看一眼,還是蹲坑看一眼能對大夥日常做外貿有些幫助。今天考慮到大部分我們服務的親們可能都還沒嘗試做外貿,所以小智特意給大家整理了一篇「做外貿需要具備哪些技能」,來幫助大家更好地判斷自己是否適合做外貿?
  • 保險獵頭尋訪高端人才都需要哪些技能?
    保險獵頭尋訪高端人才都需要哪些技能?1、學會沉澱保險獵頭需要學習哪些尋訪高端人才的技能?其實,在獵頭行業裡,並不是所有獵頭的經驗和能力都比候選人的厲害,候選人也在職場工作了很多年,實戰經驗都非常的豐富,看待問題可以直接切入要點。
  • ui設計師需要學習什麼軟體?(內附下載連結)
    今天給大家介紹下UI設計工作中會用到哪些軟體,現在學習UI設計需要會哪些軟體。
  • 用Python 做機器學習不得不收藏的重要庫
    : https://medium.freecodecamp.org/essential-libraries-for-machine-learning-in-python-82a9ada57aeb 用 Python 做機器學習不得不收藏的重要庫
  • 開奶茶店需要哪些機器設備,奶茶機器設備該如何保養?新手需看!
    那麼,創業開一家奶茶店需要哪些機器設備呢?奶茶機器設備保養的技巧有哪些?今天小編為大家介紹一下,希望對開店的小夥伴們有幫助。因為操作臺是最工作區域重要的部分,不管是製作奶茶飲品還是服務顧客都需要在操作臺完成。
  • 需要掌握和學習哪些技能
    由於是新職業,所以百分之八九十的小夥伴還不清楚全媒體運營師需要掌握哪些技能。那麼,想要從事全媒體運營師這一職業到底需要學習和掌握哪些技能呢?隨著5G時代的到來網際網路信息技術發生了巨大的變革。全媒體運營師,是破除傳統類型媒介邊界的「全能媒體」人才它的工作內容聚合了新媒體運營、短視頻運營、社群運營、內容運營、文案、視覺技術、用戶運營活動策劃、數據技術等,從全媒體內容生產、信息分發、數據分析到傳播矩陣的建設,全媒體運營師都需要掌握和學習,而且在未來還會出現更多形態。可以說,全媒體運營師的基礎要求很高,但從目前新媒體運營人員或自媒體工作者的能力來看,還無法勝任全媒體運營師這個新職業。
  • 開奶茶店需要哪些機器設備,奶茶店必備機器設備!
    開一家奶茶店我們需要哪些設備呢?隨著時代的變遷,奶茶店也在隨著時代一起變得高大上了,奶茶店裡的機器設備也變得越來越健全,今天我們就來看看我們奶茶店必備的幾樣奶茶店機器設備。所以現在市場上存在手動擋與自動擋兩種封口機提供給各位選擇,如果想讓店鋪裡的工作效率更好、更快那麼就選擇自動擋的;如果自己開店的資金有限那麼可以暫時先選擇手動擋的先代替用著。
  • 作為一個合格的外貿人需要掌握哪些知識和技能?
    首先要掌握語言 作為外貿人,在漢語的基礎上,最需要掌握的外貿語言是英語,如果開始做外貿了,你還要自學英語,那你就在基礎上比別人慢了一步,當然,如果你在英語的基礎上還能掌握一些小語種語言,不需要多精通,能夠簡單的交流一下也是一個不錯的技能。 2.
  • 從事IT行業需要哪些職業技能?
    如今,IT行業正在蓬勃發展,許多朋友都想轉向IT行業,因此,最近很多人問我:從事IT行業需要哪些職業技能?IT行業一直都是一個較熱門的一個行業,因為它的薪資高,發展好,不像很多職業可能一輩子都沒有太多的升職加薪的空間,IT行業的薪酬雖然高,但不是什麼人都可以拿到的,你需要具備一些專業技能,才能在IT行業持續發展,下面編輯來帶大家一起認識一下,從事IT行業需要哪些專業技能?
  • 一個人做淘寶需要具備哪些技能?
    現在越來越多的人選擇在電商平臺開店創業,但是大家都知道,電商行業越來越飽和,越來越正規,很多店鋪都是團隊在操作,那個一個人做淘寶的話需要具備哪些技能呢?今天也來給大家分享下。第二個:了解平臺規則我們在一個電商平臺賣貨,一定要清楚它的規則,清楚他有哪些紅線,有哪些規則會導致我們店鋪被扣分,被降權,有哪些類目不可以做,哪些類目需要什麼資質,這些都要清楚的知道,防止我們在運營的過程中踩到這些坑。
  • 大學生需要學習的必備技能有哪些?
    大學可以說完全靠自覺,需要有自立的能力。沒有什麼人來約束,所以易走向墮落,直至迷茫。因此我們要有自己的目標和規劃。四年時間晃眼而逝,首先最重要的是先把專業知識學好。除了學習時間,我們還有很大的自主空間,這時候可以選擇自己感興趣的東西,比如你喜歡拍照,學習下有關拍照的知識,學習多多益善,還可以去認識一些志同道合的同學。另外大學多去擴展自己的視野,圖書館就是一個很好的選擇,比如去看看一些英文類的書籍,試著去翻譯和閱讀;比如看看一些實用類的書,這些對以後的幫助都很大。
  • 只需十四步:從零開始掌握Python機器學習(附資源)
    本教程的目的是幫助幾乎沒有 Python 機器學習背景的新手成長為知識淵博的實踐者,而且這個過程中僅需要使用免費的材料和資源即可。這個大綱的主要目標是帶你了解那些數量繁多的可用資源。毫無疑問,資源確實有很多,但哪些才是最好的呢?哪些是互補的呢?以怎樣的順序學習這些資源才是最合適的呢?
  • 機器喵大作戰 | 解剖人工智慧、機器學習和深度學習
    ,有高中數學基礎即可看懂,同時結合大量案例與漫畫,將高度抽象的數學、算法與應用,與現實生活中的案例和事件一一做了關聯,將源自生活的抽象還原出來,幫助讀者理解後,又帶領大家將這些抽象的規律與算法應用於實踐,貼合讀者需求。
  • 什麼是機器學習?看完就明白了
    機器學習分類我們了解了機器學習的概念,通過建立模型進行自我學習,那麼學習方法有哪些呢?關於深度學習深度學習是目前關注度很高的一類算法,深度學習(DeepLearning,DL)屬於機器學習的子類。它的靈感來源於人類大腦的工作方式,是利用深度神經網絡來解決特徵表達的一種學習過程。
  • 要成為一個合格的外貿人需要掌握哪些知識和技能?
    首先要掌握語言作為外貿人,在漢語的基礎上,最需要掌握的外貿語言是英語,如果開始做外貿了,你還要自學英語,那你就在基礎上比別人慢了一步,當然,如果你在英語的基礎上還能掌握一些小語種語言,不需要多精通,能夠簡單的交流一下也是一個不錯的技能。2.
  • 一份數據工程師必備的學習資源,乾貨滿滿(附連結)
    作者:PRANAV DAR翻譯:張玲 校對:車前子本文轉自公眾號 數據派THU本文首先詳細介紹了數據工程的職責、與數據科學家之間的差別以及其不同的工作角色,然後重點列出了很多與核心技能相關的的優秀學習資源