今天我們來討論 AI 工程師和算法工程師在應聘方面的問題。一起來看看,作為 AI 工程師,在面試一家公司時,究竟應該怎么準備,有哪些信息是需要了解的。
希望今天的內容對正在思考進入這個行業的年輕學者、工程師有所幫助,從大的方向上為你的應聘提供一些可借鑒的內容。
1
AI 工程師應聘的“硬”實力
對于 AI 工程師來說,最核心的競爭力無疑是他們對人工智能、機器學習等技術的知識積累以及融會貫通的能力。
我們之前的一系列分享中已經提到了這些“硬”實力的大范疇,這里我做一個簡單的歸納。
首先,我們需要理解和掌握一些機器學習的基本概念和理論。 第一個重點無疑就是監督學習
什么是監督學習呢?監督學習就是指我們通過外部的響應變量(Response Variable)來指導模型學習我們關心的任務從而達到我們需要的目的這一過程。監督學習中需要徹底掌握三個最基礎的模型,包括線性回歸(Linear Regression)、對數幾率回歸(Logistic Regression)和決策樹(Decision Trees)。
怎么理解我說的“徹底掌握”呢?這里的徹底掌握有三層含義。
第一,需要了解這些模型的數學含義,能夠理解這些模型的假設和解法。比如,線性回歸或者對數幾率回歸的目標函數是什么;寫好了目標函數之后,如何求解最優解的過程。對于這些核心模型,必須能夠做到完全沒有差錯地理解。
第二,需要了解什么場景下使用這些模型是最合適的,以及怎樣把一個實際問題轉化成為這些模型的應用,如果不能直接轉換還有什么差距。
第三,能不能寫實際的代碼或者偽代碼來描述這些模型的算法,真正達到對這些算法的掌握。
監督學習當然不限于這三個算法,但是這三個算法是絕大多數機器學習任務在工業界應用的起點,也是學習其他算法模型的支點,可以按照這個思路去了解更多的算法。在面試中,能夠對這些基本算法的理解有扎實的基本功,這一點很重要。
了解機器學習的第二個重點就是無監督學習
無監督學習并沒有明顯的響應變量,其核心往往是希望發現數據內部潛在的結構和規律,從而為我們進行下一步決斷提供參考。
從面試角度來說,“K 均值算法”往往是考察數據科學家整個無監督學習能力的一個核心點。因此,對于這個算法有必要認真學習,做到真正的、徹底的理解。
怎么學習呢?和前面我們提到的監督學習一樣,也需要從編程實現和算法本身兩個方面入手對 K 均值進行把握。在掌握了 K 均值之后,還可以進一步去了解一些基于概率模型的聚類方法,擴寬視野,比如“高斯混合模型”(Gaussian Mixture Model)。
其次,雖然機器學習和統計學習有不少的重合部分,但是對于合格的數據科學家和人工智能工程師來說,一些機器學習方向不太容易覆蓋到的統計題目也是需要掌握的。
第一,我們必須去理解和掌握一些核心的概率分布,包括離散分布和連續分布。這里的重點不僅僅是能夠理解概念,而且是能夠使用這些概率分布去描述一個真實的場景,并且能夠去對這個場景進行抽象建模。
第二,那就是要理解假設檢驗。這往往是被 AI 工程師和算法工程師徹底遺忘的一個內容。我們要熟悉假設檢驗的基本設定和它們背后的假設,清楚這些假設在什么情況下可以使用,如果假設被違背了的話,又需要做哪些工作去彌補。
第三,那就是去學習和理解因果推斷(Casual Inference)。這雖然不是經典的統計內容,但是近年來受到越來越多的關注。很多學者和工程師正在利用因果推斷來研究機器學習模型所得結果的原因。
再次,還有一個很重要的“硬”技能,就是要對系統有一個基本了解。
第一,就是具備最基本的編程能力,對數據結構和基礎算法有一定的掌握。編程語言上,近年來,Python 可以說受到了諸多數據相關從業人員的青睞。因為其語言的自身特點,相對于其他語言而言,比如 C++ 或者 Java,Python 對于從業人員來說是降低了學習和掌握的難度。但另一方面,我們也要意識到,大多數人工智能產品是一個復雜的產品鏈路。整個鏈路上通常是需要對多個語言環境都有所了解的。因此,掌握 Python,再學習一兩個其他的語言,這時候選擇 Java 或者 C++,是十分必要的。另外,很多公司都采用大數據環境,比如 Hadoop、Spark 等來對數據進行整合和挖掘,了解這些技術對于應聘者來常常說是一個讓用人單位覺得不錯的“加分項”。
第二,就是對于搭建一個人工智能系統(比如搜索系統、人臉識別系統、圖像檢索系統、推薦系統等)有最基本的認識。機器學習算法能夠真正應用到現實的產品中去,必須要依靠一個完整的系統鏈路,這里面有數據鏈路的設計、整體系統的架構、甚至前后端的銜接等多方面的知識??疾旌蜻x人這方面的能力是查看候選人能否把算法落地的一個最簡單的方式。因此,從我們準備面試的角度來說,這部分的內容往往就是初學者需要花更多時間了解和進階的地方。
2
數據科學家應聘的“軟”實力
前面我們聊了數據科學家應聘的“硬”技能,下面,我們再來看看候選人還需要注意和培養哪些“軟”技能。
數據科學家的第一“軟”技能就是如何把一個業務需求轉化成機器學習設置的“翻譯”能力。什么意思呢?和純理論學習的情況有所不同,大多數真實的業務場景都是非常復雜的。當產品經理提到一個產品構思的時候,當設計人員想到一個業務創新的時候,沒有人能夠告訴你,作為一個數據科學家而言,這個問題是監督學習的問題還是無監督學習問題,這個問題是可以轉換成一個分類問題還是一個回歸問題。有時候,你會發現好像幾條路都走得通。因此,如何能夠從邏輯上,從這些不同的設置所依賴的假設上來對業務場景進行分析,就成了數據科學家必不可少的一個核心能力。
分析業務場景這個“軟”技能的確非常依賴工作經驗。這里不僅僅是一個機器學習問題的“翻譯”,還需要對整個系統搭建有所了解,因為真正合適的場景“翻譯”往往是機器學習的問題設置和系統局限性的一個平衡和結合。舉一個例子,一個推薦系統需要在百毫秒級給一個用戶進行推薦,那么相應的方案就必然有一個計算復雜度的限制。因此,場景的“翻譯”其實是考察數據科學家和人工智能工程師的一個非常重要的步驟,也是看候選人是否真正能夠學以致用的有效手段。
說到這里,你是不是會有疑問:如果我沒有相關的從業經驗,那如何來鍛煉這種“翻譯”能力呢?其實,現在豐富的互聯網產品已經為我們提供了一個無形的平臺。當你在現實中看到一個真實產品的時候,比如京東的產品搜索、科大訊飛的語音識別系統等等,你設想一下,如果你是設計者,如果你是需要實現這個產品功能的數據科學家,你會怎么做?實際上,很多面試問題,都是面試官直接詢問你對某一個現成產品的設計思路,比如谷歌的面試官可能會詢問你如何設計一個搜索查詢關鍵字拼寫檢查組件。這個方法一方面是幫助你“開腦洞”,另一方面也是一種非常好的思維鍛煉。
另外一個很重要的“軟”技能就是數據科學家的溝通表達能力。這可能會讓有一些人感到意外,因為大家也許認為數據科學家和人工智能工程師完全是技術崗位,并不需要與人打交道。其實,這個理解是片面的。就像剛才提到的,數據科學家的一個重要職責就是把現實的業務場景“翻譯”成機器學習的設置,那么在這個過程中,會和業務人員、其他工程師、科學家進行高頻的溝通和交流。如何把你的思路、方案清晰地表達給同事和團隊成員是非常重要的職責。實際上,數據科學家不僅在公司內部承載著的這樣的溝通任務,我們往往還需要在社區中做演講、參與講座等活動,成為社區中的一份子,都離不開溝通表達能力的磨練。
如何鍛煉溝通表達能力呢?這里,我給初學者一個簡單而實用的方法,那就是用一兩句話來總結你的方案。你嘗試用一小段話,但是不夾帶任何專業術語,把你的方案說給不懂機器學習的人聽。這個訓練方法可以讓你反復思考,直到找到一個最簡潔有力的表達。
-
工程師
+關注
關注
59文章
1571瀏覽量
68562 -
算法
+關注
關注
23文章
4622瀏覽量
93063 -
AI
+關注
關注
87文章
31155瀏覽量
269487
發布評論請先 登錄
相關推薦
評論