機器學習工程師:神話與現實
已發表: 2018-05-08機器學習為計算機提供了學習和迭代地更好地完成任務的能力。 它專注於開發動態算法,當暴露於一組新數據時可以改變(修改)自身。 簡單來說,機器學習讓 Facebook 變得“你想在這張照片中標記你的朋友嗎?” ,每次上傳合影。 在幕後工作以實現這一切的人被謙虛地稱為機器學習工程師。
現在,與數據科學大範圍內的所有其他領域一樣,機器學習也對它有很多誤解。 清除它們正是我們今天的目標。 但是,至關重要的是,我們首先要帶您了解機器學習工程師的生活,包括他們擁有的技能和工具。
首先,讓我們首先明確區分機器學習和數據科學。
目錄
機器學習工程師是數據科學家嗎?
數據科學是一個包羅萬象的術語,但機器學習的工作方式有一些根本不同。 數據科學和分析師本質上是探索數據並嘗試找到適合其業務需求的方法或模型。
另一方面,機器學習完全改變了這種模式。 機器學習工程師不直接處理數據。 他們知道他們想要的結果,但讓算法為他們完成工作。 機器學習構建了一台可以擊敗圍棋冠軍、標記照片或在語言之間進行翻譯的機器。 與數據分析不同,這些目標不是通過仔細探索數據來實現的。 有很多數據要探索,而且要處理的維度太多(例如,圍棋遊戲的維度是多少?或者,一種語言?)機器學習的承諾是它自己構建模型:它進行數據探索和調音。
數據科學、機器學習和大數據之間的區別!
因此,機器學習工程師不會像數據科學家或分析師那樣“探索”——至少不是真正意義上的。 他們的目標不是在他們的數據中找到意義——他們相信意義已經存在。 相反,他們的目標是建立一個可以分析數據並產生結果的模型/算法/機器/系統。 或者,創建一個有效的神經網絡——可以對其進行調整以在任何輸入數據集上產生可靠的結果。
讓我們看看圍繞機器學習工程師的一些關鍵點:
- 他們比典型的數據分析師/科學家擁有更強的軟件工程技能。 機器學習工程師與負責維護生產系統的工程師一起工作。 因此,他們需要了解軟件開發方法、敏捷實踐和最現代的軟件開發工具。 他們需要徹底了解從 Eclipse 或 IntelliJ 等 IDE 到軟件部署管道組件的所有內容。
- 機器學習工程師專注於讓數據產品在生產中發揮作用。 因此,他們的方法是全面的。 他們構成了任何軟件開發團隊的核心部分,因此知道什麼是 A/B 測試。 他們不僅“理解”它,還知道如何在生產系統上執行 A/B 測試。 他們了解日誌記錄和安全性對任何應用程序命運的重要性。
- 在監控生產中的數據產品時,他們處於警覺之中。 儘管有許多資源可以使應用程序監控過程自動化,但機器學習的要求更進一步。 數據管道、模型、算法甚至系統可能會過時,需要重新訓練。 機器學習系統很容易通過破壞為其提供數據的數據管道而被扭曲。 因此,機器學習工程師總是需要知道如何檢測這些妥協。
成功的機器學習工程師的一些必要技能:
- 計算機科學和編程的基礎知識
- 概率和統計
- 數據建模和評估
- 找到合適的 ML 庫來使用並在需要時對其進行調整
- 軟件工程和建模


誤區一:機器學習工程師讓系統像人類一樣思考。
雖然這是一個最終的最終目標,但目前還遠非事實。 簡單比較一下孩子的學習過程和機器的學習過程,你會發現機器學習還處於起步階段。 例如,嬰兒不需要觀察數百個人來做一些簡單的事情,比如走路或吃飯。 他們設定自己的目標,感知周圍的其他人,直觀地創建他們的學習策略,並通過反複試驗來完善它,直到他們成功。 即使沒有太多的外部干預或指導,嬰兒也可以成功地學習如何走路以及其他基本知識。
另一方面,機器在學習的每一步都需要監督。 此外,孩子可以毫不費力地全面有效地結合從多個感覺器官接收到的各種輸入。 例如,孩子將能夠在瞬間識別圖片,並且還可以理解寫在上面的任何文字。 但是,要教機器同樣的東西,我們需要單獨的複雜算法,每個算法都用於識別數據、識別噪音和理解文本。
誤區二:所有數據對機器學習工程師都有用。
毫無疑問,機器學習工程師也需要數據,但並非所有數據都與機器學習相關。 他們需要涵蓋系統需要處理的模式和結果的代表性數據。 數據不應包含不相關的模式,因為機器學習模型將反映那些不相關的模式並在將要使用的數據中查找它們。
您用於訓練的所有數據都需要進行良好的標記,並使用與您將要向機器學習系統提出的問題相匹配的特徵進行標記,這需要大量工作。 所有這些數據都需要用與您要向系統提出的問題相匹配的特徵進行很好的標記。 它也應該是原始的,沒有任何不一致或錯誤。 因此,所有數據對機器學習工程師來說都沒有價值——只有相關數據才是!
密切關注下一件大事:機器學習
誤區 3:機器學習工程師忽略了預先存在的知識。
許多領域的專家認為機器學習在他們的學習算法中採用了“白板”方法。 他們假設每個機器學習算法都是從零開始的——不知道預先存在的數據。 機器學習工程師更了解學習是一個需要持續監控的漫長過程。 僅僅將數據輸入算法是無法模仿的。 因此,並非所有的學習算法都是從一張白紙開始的。 有些人使用數據集來完善預先存在的知識庫。 歸根結底,這取決於組織的業務需求。
誤區四:更簡單的機器學習模型總是更準確。
這符合奧卡姆剃刀法則。 但是,讓我們告訴你,剃刀只說更簡單的解釋更可取,而不是為什麼。 它們是首選,因為它們更容易理解、記住和處理。 然而,在機器學習方面,有時與數據一致的最簡單假設在預測方面不如更複雜的假設準確。 一些最有效的學習算法輸出的模型看起來非常複雜——有時甚至在正確擬合數據後繼續添加——但這就是它們擊敗不那麼強大的模型的方式。

從世界頂級大學在線學習 ML 課程。 獲得碩士、Executive PGP 或高級證書課程以加快您的職業生涯。 由於機器學習是數據科學的一部分,是計算機科學和數學的結合,因此數學知識對於機器學習工程師來說是必須的。 您將需要線性代數、微積分、優化、概率和統計等數學概念的知識來製定和理解機器學習的算法。 更準確地說,您需要對有助於數據分析的數學運算有一個基本的了解。 但最好的部分是,您可以在學習機器學習的同時隨著時間的推移學習這些基本的數學概念,並且這些概念中的大多數都比較容易掌握。 我們知道數據科學和機器學習有著千絲萬縷的聯繫,所以機器學習的好壞取決於它所提供的數據和算法吸收數據的能力。 數據科學家需要對機器學習有基本的了解。 數據科學家從大量數據中提取有用的知識。 他們發現趨勢並協助開發解決方案以實現特定業務運營的自動化。 為了準確的預測和估計,數據科學家必須掌握機器學習。 這可以幫助機器人實時做出更好的判斷並採取更明智的行動,而無需人工交互。 機器學習正在改變數據挖掘和解釋。 傳統的統計程序已被更準確的自動化通用算法集所取代。 Python 是最常用的數據分析和機器學習語言。 大多數機器學習工程師選擇 Python 來應對 NLP 挑戰,R 或 Python 首選用於情感分析工作,Java 用於其他機器學習應用程序,例如安全和威脅檢測。 Python 已成為數據分析、機器學習和人工智能 (AI) 的首選語言,因為其廣泛的庫生態系統允許機器學習專業人員輕鬆訪問、管理、轉換和分析數據。 Python 因其平台獨立性、簡單性和可讀性而受到機器學習開發人員的歡迎。 數學對機器學習工程師來說是必須的嗎?
數據科學家需要機器學習嗎?
ML 工程師更喜歡哪種編碼語言?