當前位置:
首頁 > 科技 > AI工程師應聘要具備哪些能力?

AI工程師應聘要具備哪些能力?

作者|洪亮劼

出處|極客時間專欄《AI 技術內參》

洪亮劼,電子商務平台 Etsy 的數據科學主管(Head of Data Science),AICon 演講嘉賓,前雅虎研究院(Yahoo Research)科學家、資深科學家和高級研發經理職位。長期擔任多個國際著名會議及期刊的評審委員會成員和審稿人,並且組織過多個關於推薦、搜索、用戶體驗優化的國際研討會。他擁有 3 項美國專利。

今天我們來討論 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 等來對數據進行整合和挖掘,了解這些技術對於應聘者來常常說是一個讓用人單位覺得不錯的「加分項」。

第二,就是對於搭建一個人工智慧系統(比如搜索系統、人臉識別系統、圖像檢索系統、推薦系統等)有最基本的認識。機器學習演算法能夠真正應用到現實的產品中去,必須要依靠一個完整的系統鏈路,這裡面有數據鏈路的設計、整體系統的架構、甚至前後端的銜接等多方面的知識。考察候選人這方面的能力是查看候選人能否把演算法落地的一個最簡單的方式。因此,從我們準備面試的角度來說,這部分的內容往往就是初學者需要花更多時間了解和進階的地方。

2

數據科學家應聘的「軟」實力

前面我們聊了數據科學家應聘的「硬」技能,下面,我們再來看看候選人還需要注意和培養哪些「軟」技能。

數據科學家的第一「軟」技能就是如何把一個業務需求轉化成機器學習設置的「翻譯」能力。什麼意思呢?和純理論學習的情況有所不同,大多數真實的業務場景都是非常複雜的。當產品經理提到一個產品構思的時候,當設計人員想到一個業務創新的時候,沒有人能夠告訴你,作為一個數據科學家而言,這個問題是監督學習的問題還是無監督學習問題,這個問題是可以轉換成一個分類問題還是一個回歸問題。有時候,你會發現好像幾條路都走得通。因此,如何能夠從邏輯上,從這些不同的設置所依賴的假設上來對業務場景進行分析,就成了數據科學家必不可少的一個核心能力。

分析業務場景這個「軟」技能的確非常依賴工作經驗。這裡不僅僅是一個機器學習問題的「翻譯」,還需要對整個系統搭建有所了解,因為真正合適的場景「翻譯」往往是機器學習的問題設置和系統局限性的一個平衡和結合。舉一個例子,一個推薦系統需要在百毫秒級給一個用戶進行推薦,那麼相應的方案就必然有一個計算複雜度的限制。因此,場景的「翻譯」其實是考察數據科學家和人工智慧工程師的一個非常重要的步驟,也是看候選人是否真正能夠學以致用的有效手段。

說到這裡,你是不是會有疑問:如果我沒有相關的從業經驗,那如何來鍛煉這種「翻譯」能力呢?其實,現在豐富的互聯網產品已經為我們提供了一個無形的平台。當你在現實中看到一個真實產品的時候,比如京東的產品搜索、科大訊飛的語音識別系統等等,你設想一下,如果你是設計者,如果你是需要實現這個產品功能的數據科學家,你會怎麼做?實際上,很多面試問題,都是面試官直接詢問你對某一個現成產品的設計思路,比如谷歌的面試官可能會詢問你如何設計一個搜索查詢關鍵字拼寫檢查組件。這個方法一方面是幫助你「開腦洞」,另一方面也是一種非常好的思維鍛煉。

另外一個很重要的「軟」技能就是數據科學家的溝通表達能力。這可能會讓有一些人感到意外,因為大家也許認為數據科學家和人工智慧工程師完全是技術崗位,並不需要與人打交道。其實,這個理解是片面的。就像剛才提到的,數據科學家的一個重要職責就是把現實的業務場景「翻譯」成機器學習的設置,那麼在這個過程中,會和業務人員、其他工程師、科學家進行高頻的溝通和交流。如何把你的思路、方案清晰地表達給同事和團隊成員是非常重要的職責。實際上,數據科學家不僅在公司內部承載著的這樣的溝通任務,我們往往還需要在社區中做演講、參與講座等活動,成為社區中的一份子,都離不開溝通表達能力的磨練。

如何鍛煉溝通表達能力呢?這裡,我給初學者一個簡單而實用的方法,那就是用一兩句話來總結你的方案。你嘗試用一小段話,但是不夾帶任何專業術語,把你的方案說給不懂機器學習的人聽。這個訓練方法可以讓你反覆思考,直到找到一個最簡潔有力的表達。

***

以上內容,出自《AI 技術內參》。如果你關注 AI 領域,或希望在 AI 領域深入研究。這個專欄,正是你需要的。專欄共有四大模塊:

模塊一:人工智慧國際頂級學術會議深入解讀與技術展望

模塊二:人工智慧核心技術剖析

模塊三:人工智慧工程師、科學家的養成和人工智慧團隊的構建

模塊四:人工智慧業界熱點

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

人工智慧入門書單

TAG:InfoQ |