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

招鑲?cè)胧?b class='flag-5'>工程師1個,硬件工程師一個,
電子發(fā)燒友工程師看!電子領(lǐng)域評職稱,技術(shù)之路更扎實


硬件工程師看了只會找個角落默默哭泣#硬件工程師 #MDD #MDD辰達半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師





硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達半導(dǎo)體

不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技



當(dāng)硬件工程師穿越到霸總?。?以他性格肯定忍不到第二集? #硬件工程師 #電路設(shè)計 #晶振 #揚興科技

評論