作者——Kimberly Cook
如果你對進入人工智能領域感興趣,但又不知道從哪里開始,那么這篇文章你一定要看,它將會為你詳細的講解一些火爆的編程語言和技能以及面試問題,薪水等多方面內容。
隨著越來越多的公司采用人工智能技術,機器學習工程師——即開發人工智能(AI)機器和能夠學習并應用知識的高級程序員的需求量增大。 這些專業人員需要進行編程以應對復雜的數據集/算法,進而訓練人工智能機器。
雖然很多人擔心人工智能會取代他們的工作崗位。但在當前這個階段,他們大可不必擔心。相反,人工智能的發展帶動著機器學習工程師等一系列崗位增加。一部分原因是公司需要高技工程師來開發和維護他們的產品。
為了幫助那些對這個領域感興趣的人更好地理解如何進入機器學習的職業生涯,我們匯編了最重要的細節和資源放入這篇文章。我相信,它一定會成為你機器學習生涯中不可缺少的東西。
什么是機器學習?
根據 TechRepublic 的作者 Hope Reese 和 Brandon Vigliarolo 的說法,機器學習是人工智能的一個分支,它賦予計算機系統從經驗中自動學習和提高的能力,而不是被明確地編程所限制。在機器學習中,計算機使用大量的數據集,并應用算法進行訓練和預測。
機器學習系統能夠快速應用來自大型數據集的知識和訓練來執行人臉識別、語音識別、物體識別、翻譯和許多其他任務。
為什么機器學習工程師的需求會增加?
求職網站 Indeed 的一份報告顯示,2015年6月至2018年6月間,包括機器學習工程師在內的人工智能人才招聘數量增長了近100% 。 報告發現,在同一時間段內,Indeed 上搜索這些關鍵詞的比例也增加了182%。
Indeed 產品高級副總裁拉吉·穆克吉(Raj Mukherjee)對 TechRepublic 表示:'雇主對人工智能人才的需求越來越大。' '隨著企業繼續采用現有的解決方案或開發自己的內部技術,雇主對這些技能的需求可能會繼續上升。'
報告發現,就具體職位而言,94%包含人工智能或機器學習術語的招聘廣告都是針對機器學習工程師的。41%的機器學習工程師的職位在發布60天后仍然空缺。
Salesforce Einstein 的數據科學和軟件工程副總裁 Vitaly Gordon 告訴 TechRepublic,'軟件正在吞噬世界,機器學習正在吞噬軟件。機器學習工程是一門需要高質量編碼、博士級機器學習工程師和具有商業智慧負責人的一門學科。找到這些稀有的人才,可以將一家公司從追隨者提升為所在領域的領導者,每個公司都在尋找這樣的人才。'
機器學習工程師可能會做什么?
機器學習工程師可以選擇許多不同的職業道路。以下是該領域的一些職位,以及他們所需要的技能,相關信息來自Udacity。
軟件工程師: 你需要掌握計算機科學基礎和編程、軟件工程和系統設計。
應用型機器學習工程師: 你需要掌握計算機科學基礎和編程,應用機器學習算法和庫。
核心機器學習工程師: 你需要掌握計算機科學基礎和編程,應用機器學習算法和庫、數據建模和評估。
要成為一個機器學習工程師,最好學習哪些編程語言?
Python和R是機器學習、數據科學和分析領域最流行的編程語言。在2018年使用 Python進行工作的工程師占比66%,比2017年增加了11% 。與此同時,R在2018年的市場份額為49% ,比2017年下降了14%。仍然不可忽視。
根據IBM的報道,在機器學習中,Python、Java 和R是眾多工程師首選的語言。其次是 c 、c、JavaScript、Scala和Julia。
在開發機器學習應用程序時,算法的訓練和操作階段是不同的,正如ZDNet 所報道的那樣。 因此,有些人在訓練階段使用一種語言,在操作階段使用另一種語言。
'對于'普通的機器學習'來說,使用什么語言并不重要,'斯通公司的數據科學負責人路易斯·愛德華多·勒·馬森告訴 ZDNet。'但是,當你需要為數以百萬計的并發集群提供真正的在線學習算法和實時推理,并在不到500毫秒的時間內做出響應時,這個話題不僅涉及到語言,還涉及到架構、設計、流控制、容錯性和彈性。'
成為一名機器學習工程師還需要什么其他技能?
一般來說,機器學習工程師必須熟練掌握計算機科學和編程、數學和統計、數據科學、深度學習和解決問題。 下面是 Udacity 提供的一些所需技能的分類:
計算機科學基礎與程序設計:數據結構(堆棧、隊列、多維數組、樹、圖)、算法(搜索、排序、優化、動態編程)、可計算性和復雜性,以及計算機體系結構(內存、緩存、分布式處理等等)。
概率與統計:概率相關內容(條件概率、貝葉斯規則,獨立性)和由此衍生的技術(貝葉斯網、馬爾可夫決策過程、隱馬爾可夫模型)。 統計測量(均值、中位數、方差) ,分布(均勻、正態、二項式) ,分析方法(方差分析、假設檢驗)。
數據建模和評估:尋找模式(相關性、聚類、特征向量) ,預測性質(分類、回歸、異常檢測) ,并確定正確的準確性 / 誤差度量(例如,分類的對數損失或回歸的平方誤差之和)和評估策略(順序與隨機交叉驗證等等)。
應用機器學習算法和庫:機器學習算法的標準實現可以通過庫、包和 api (如 scikit-learn、 Theano、 Spark MLlib、 H2O 和 TensorFlow)獲得。 有效地應用它們意味著選擇正確的模型(決策樹、神經網絡、支持向量機、多模型集合)和適合數據的學習過程(線性回歸、梯度下降法、遺傳算法、袋裝法、增強和其他特定模型的方法),以及理解超參數如何影響學習。
軟件工程和系統設計:機器工程師通常致力于開發適合于更大的產品和服務生態系統的軟件。這意味著他們需要了解不同部分如何協同工作,以及與各部分進行通信(使用庫調用、 REST api 和數據庫查詢),并為你的部分構建其他人可以使用的接口。這包括了解系統設計和軟件工程最佳實踐(包括需求分析、系統設計、模塊化、版本控制、測試和文檔)。
機器學習工程師的平均工資是多少?
美國機器學習工程師的平均工資是134,449美元。根據來自 Indeed 的數據,就人工智能相關工作而言,它在薪水方面排在第三位,僅次于分析總監($140,837)和首席科學家($138,271)。
人工智能和機器學習工程師工作最熱門的市場在哪里?
根據Indeed(http://blog.indeed.com/2018/08/23/artificial-intelligence-report/)的數據,幾乎12%的人工智能工作崗位都是在紐約找到的。紐約也是美國所有大都市中數據工程師、數據科學家和分析師職位需求最集中的城市,為位于那里的媒體、時尚和銀行業中心提供技術支持。
在人工智能工作集中度方面,紐約市排在舊金山(10%)、圣何塞(9%)、華盛頓(8%)、波士頓(6%)和西雅圖(6%)之后。 圣何塞的機器學習工程師職位最多,算法工程師、計算機視覺工程師和研究工程師的職位也最多。
有哪些典型的機器學習工程師面試問題?
那些申請機器學習工作的人在面試中可能會遇到許多不同類型的問題,測試他們在數學和統計學、數據科學、深度學習、編程和解決問題方面的技能。
一些機器學習工程師在面試中可能會被問到的問題包括:
在過去的幾年里你在做什么?
你熟悉哪些人工智能和機器學習工具?你對它們的熟練程度如何?
你是怎樣做到緊跟不斷變化的技術?
如何清理和準備數據以確保其質量和相關性?
如何處理數據集中丟失或損壞的數據?
使用機器學習的倫理含義是什么?
Capital One負責機器學習的常務副總裁戴夫卡斯蒂略(Dave Castillo)告訴TechRepublic,求職者在面試時向招聘經理提出問題也很重要。
'面試是一種雙向對話,'卡斯蒂略說,'候選人問我們的問題和我們問的問題同樣重要。'我們不僅要確保候選人是公司的正確選擇,而且公司也是候選人的正確選擇。
我在哪里可以找到從事機器學習的資源?
機器學習工程師有不同的職業道路。學習Python、R或Java等編程語言是一個很好的起點。對于機器學習的細節,有大量的在線開放課程(mooc),包括Coursera(https://www.coursera.org/learn/machine-learning);edX(https://www.edx.org/learn/machine-learning)上的課程
以及Udacity上(https://www.udacity.com/course/machine-learning-engineer-nanodegree%E2%80%94nd009t)提供的學位。
你還可以通過在真實數據上(如Kaggle)進行實踐來獲得實踐經驗。加入當地組織,向該領域的其他人學習也會有所幫助。