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