關(guān)于機(jī)器學(xué)習(xí)面試的經(jīng)典題目(面試經(jīng)驗(yàn)和建議)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
今年年初以來(lái),作者一直在印度找數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)以及深度學(xué)習(xí)領(lǐng)域的工作。在找工作的這三十四天里,他面試了8到10家公司,其中也包括初創(chuàng)公司、基于服務(wù)的公司以及基于產(chǎn)品的公司。作者希望他的面試經(jīng)驗(yàn)?zāi)軌驗(yàn)榍舐氄咛峁┮恍┯杏玫男畔ⅲ蚨珜?xiě)了此文。希望你讀后能夠有所收獲!
首先自我介紹一下:
我在機(jī)器學(xué)習(xí)(語(yǔ)音分析、文本分析和圖像分析領(lǐng)域應(yīng)用)領(lǐng)域有4年以上的從業(yè)經(jīng)驗(yàn)??偟膩?lái)說(shuō),我認(rèn)為這個(gè)領(lǐng)域的大多數(shù)工作職位主要包括文本分析(自然語(yǔ)言處理)和圖像分析(計(jì)算機(jī)視覺(jué))。很少有公司招聘語(yǔ)音或音頻分析的人才。我現(xiàn)在的目標(biāo)是應(yīng)聘一個(gè)中高級(jí)職位,可以帶領(lǐng)一個(gè)深度學(xué)習(xí)或機(jī)器學(xué)習(xí)團(tuán)隊(duì)做一些有趣的項(xiàng)目。
下面是我在應(yīng)聘過(guò)程中被問(wèn)到的問(wèn)題,希望能夠?qū)δ阌兴鶐椭?/p>
公司一:基于全球性服務(wù)的某公司(面試時(shí)長(zhǎng):20-25min)
你在簡(jiǎn)歷中提到曾經(jīng)構(gòu)建過(guò)一個(gè)文檔挖掘系統(tǒng),你都做了哪些工作?能否在主題建模(topic modeling)中使用LDA技術(shù)實(shí)現(xiàn)文檔聚類(lèi)?
假設(shè)你有數(shù)百兆字節(jié)的數(shù)據(jù)文件,這其中包括PDF文件、文本文件、圖像、掃描的PDF文件等等,請(qǐng)你給出一個(gè)分類(lèi)方案。
你如何閱讀掃描版pdf文件或圖像格式的書(shū)面文件的內(nèi)容?
樸素貝葉斯為什么被稱(chēng)為“樸素”?
請(qǐng)?jiān)敿?xì)介紹一下樸素貝葉斯分類(lèi)器。
什么是深度學(xué)習(xí)?深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的區(qū)別是什么?
體驗(yàn):除此之外面試官還問(wèn)了一些問(wèn)題,但是都把我問(wèn)懵了,我完全不知道他想聽(tīng)到什么答案。我一直都想深入的聊一些技術(shù)層面的問(wèn)題,比如訓(xùn)練一個(gè) tesseract(一款由HP實(shí)驗(yàn)室開(kāi)發(fā)由Google維護(hù)的開(kāi)源OCR引擎)或語(yǔ)言模型,但是他似乎并不感興趣?;蛟S他只是想聽(tīng)到一些已經(jīng)實(shí)現(xiàn)的成果或者是一個(gè)好的解釋?zhuān)只蛘呤且恍└玫姆桨浮N腋杏X(jué)他們面試一個(gè)新手和面試一個(gè)有經(jīng)驗(yàn)的專(zhuān)業(yè)人員之間并沒(méi)有什么區(qū)別。
公司二:基于全球性服務(wù)的某公司(面試時(shí)長(zhǎng):40-45min)在無(wú)監(jiān)督學(xué)習(xí)中,如何進(jìn)行文件聚類(lèi)?
如何找到與某些查詢(xún)語(yǔ)句/搜索相關(guān)的文件?
解釋下TF-IDF技術(shù)。
根據(jù)我的經(jīng)驗(yàn)來(lái)看,TF-IDF技術(shù)在文件分類(lèi)或聚類(lèi)上效果并不好,你將如何改進(jìn)?
什么是長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)?解釋下其工作原理。
什么是word2vec模型?
解釋下python中的可變對(duì)象和不可變對(duì)象。
你在python中使用過(guò)什么數(shù)據(jù)結(jié)構(gòu)?
體驗(yàn):整個(gè)面試過(guò)程都是圍繞著文本相似度提問(wèn)的,我都順利通過(guò)了。但是這次仍舊沒(méi)有更深層次的技術(shù)探討?;蛟S是公司在文本分析領(lǐng)域有幾個(gè)小項(xiàng)目,最終我拿到了公司的offer。
公司三:基于全球性產(chǎn)品和服務(wù)的某公司(面試時(shí)長(zhǎng):40min)如何使用不平衡數(shù)據(jù)集( unbalanced dataset)處理多類(lèi)別的分類(lèi)問(wèn)題?
你如何從一個(gè)文本語(yǔ)句中進(jìn)行語(yǔ)言識(shí)別?
如何表示中文或日文中的象形字符?
如何設(shè)計(jì)一個(gè)聊天機(jī)器人?(我沒(méi)什么想法,但我嘗試用基于TF-IDF相似性的意圖和反饋來(lái)回答這個(gè)問(wèn)題。 )
能否使用循環(huán)神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)一個(gè)聊天機(jī)器人來(lái)對(duì)輸入的問(wèn)題進(jìn)行意圖和回答響應(yīng)。
假設(shè)你在Reddit數(shù)據(jù)集上使用循環(huán)神經(jīng)網(wǎng)絡(luò)或長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)了一個(gè)聊天機(jī)器人,它能夠提供10種可能的回復(fù),如何選擇最佳回復(fù),或者說(shuō)如何刪除其他的回復(fù)?
解釋一下支持向量機(jī)(SVM)如何學(xué)習(xí)非線(xiàn)性邊界。
體驗(yàn):還有幾個(gè)問(wèn)題我已經(jīng)記不清了,這是我第一次在面試中深入談?wù)摷夹g(shù)細(xì)節(jié),隨后我也拿到了這家公司的offer。
公司四:成立一年的醫(yī)療初創(chuàng)公司(面試時(shí)長(zhǎng):50min)什么是精確率(precision)和召回率(recall)?在醫(yī)療診斷中,你認(rèn)為哪個(gè)更重要?
解釋一下精確率和召回率。
如何繪制受試者工作特征曲線(xiàn) (ROC曲線(xiàn))?ROC曲線(xiàn)下面積是什么意思?
如何為多類(lèi)別分類(lèi)任務(wù)繪制ROC曲線(xiàn)?
列舉多類(lèi)別分類(lèi)任務(wù)其他的度量標(biāo)準(zhǔn)。
什么是靈敏度(sensiTIvity)和特異度(specificity)?
隨機(jī)森林中的“隨機(jī)”指什么?
如何進(jìn)行文本分類(lèi)?
如何確定已經(jīng)學(xué)會(huì)了一個(gè)文本?沒(méi)有TF-IDF技術(shù)是不是不可能實(shí)現(xiàn)?(我回答說(shuō)使用n-gram模型(n=1,2,3,4),并使用TF-IDF技術(shù)創(chuàng)建一個(gè)長(zhǎng)的計(jì)數(shù)向量)
你還能利用機(jī)器學(xué)習(xí)做些什么?(我建議將長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)和word2vec結(jié)合起來(lái),或者是一維循環(huán)神經(jīng)網(wǎng)絡(luò)與word2vec結(jié)合起來(lái),進(jìn)行分類(lèi)。但面試官希望改進(jìn)基于機(jī)器學(xué)習(xí)的算法。)
當(dāng)神經(jīng)網(wǎng)絡(luò)由線(xiàn)性節(jié)點(diǎn)構(gòu)成時(shí),神經(jīng)網(wǎng)絡(luò)如何學(xué)習(xí)非線(xiàn)性形狀?它學(xué)習(xí)非線(xiàn)性邊界的原因是什么?
體驗(yàn):還有幾個(gè)很好的問(wèn)題我沒(méi)有記住。盡管整個(gè)面試過(guò)程很不錯(cuò),但是我們?cè)谝恍﹩?wèn)題上看法并不一致。并且在面試期間,我發(fā)現(xiàn)作為一個(gè)初創(chuàng)公司,目前只有2-3個(gè)人在做ML、DL和DS。最后我沒(méi)有面試成功。
公司五:亞馬遜公司(面試時(shí)長(zhǎng):50-55min)訓(xùn)練決策樹(shù)時(shí),其參數(shù)是什么?
在決策樹(shù)的某個(gè)節(jié)點(diǎn)處進(jìn)行分割,其分割標(biāo)準(zhǔn)是什么?
基尼系數(shù)的計(jì)算公式是什么?
熵的計(jì)算公式是什么?
決策樹(shù)如何決定在哪個(gè)特征處必須進(jìn)行分割?
如何利用數(shù)學(xué)計(jì)算收集來(lái)的信息?
簡(jiǎn)述隨機(jī)森林的優(yōu)點(diǎn)。
簡(jiǎn)述boosTIng算法。
梯度提升算法(gradient boosTIng)是怎樣工作的?
簡(jiǎn)述AdaBoost算法工作原理。
SVM中用到了哪些內(nèi)核?SVM的優(yōu)化技術(shù)有哪些?
SVM如何學(xué)習(xí)超平面?論述下其數(shù)學(xué)運(yùn)算細(xì)節(jié)。
談一談無(wú)監(jiān)督學(xué)習(xí)?都有哪些算法?
如何定義K-Means聚類(lèi)算法中K的值?
列舉至少3中定義K-Means聚類(lèi)算法中K的方法。
除此之外你還知道哪些聚類(lèi)算法?
介紹一下DB-SCAM算法。
簡(jiǎn)述下分層凝聚聚類(lèi)(Hierarchical AgglomeraTIveclustering)的工作原理。
解釋一下主成分分析算法(PCA),簡(jiǎn)述下使用PCA算法的數(shù)學(xué)步驟。
20.使用 PCA算法有哪些缺點(diǎn)?
談?wù)劸矸e神經(jīng)網(wǎng)絡(luò)的工作原理?詳細(xì)說(shuō)明其實(shí)現(xiàn)細(xì)節(jié)。
解釋一下卷積神經(jīng)網(wǎng)絡(luò)中的反向傳播。
你如何部署機(jī)器學(xué)習(xí)模型?
我們大部分情況下都要用C++從零開(kāi)始搭建一個(gè)機(jī)器學(xué)習(xí)模型,這一點(diǎn)你能做到嗎?
體驗(yàn):我面試的是亞馬遜level 6的職位。他們的主要關(guān)注點(diǎn)是在算法和數(shù)學(xué)上。但是我并沒(méi)有準(zhǔn)備數(shù)學(xué)方面的知識(shí),我只是談?wù)摿宋宜私獾臇|西,并沒(méi)有在數(shù)學(xué)的細(xì)節(jié)上做更為詳細(xì)的探討,因此面試官認(rèn)為我并不適合level 6的工作。我相信如果你能記住機(jī)器學(xué)習(xí)算法在數(shù)學(xué)上的通用表示,就可以很輕松的通過(guò)亞馬遜技術(shù)面試。
公司六:某全球服務(wù)巨頭(面試時(shí)長(zhǎng):50-55min)Sigmoid 函數(shù)的范圍是什么?
說(shuō)出scikit-learn能夠?qū)崿F(xiàn)邏輯回歸的包的名稱(chēng)。
標(biāo)準(zhǔn)正態(tài)分布的均值和方差分別是多少?
你在Python中都使用什么數(shù)據(jù)結(jié)構(gòu)?
文本分類(lèi)的方法有哪些?你會(huì)怎么做分類(lèi)?
解釋TF-IDF技術(shù)及其缺點(diǎn),如何克服TF-IDF的缺點(diǎn)?
什么是雙詞搭配(Bigrams)和三詞搭配(Trigrams)?用一個(gè)文本語(yǔ)句解釋一下雙詞搭配和三詞搭配的TF-IDF技術(shù)。
舉例說(shuō)明word2vec有哪些應(yīng)用。
如何設(shè)計(jì)一個(gè)神經(jīng)網(wǎng)絡(luò)?如何做到“深度”?這是一個(gè)基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)問(wèn)題。
簡(jiǎn)述LSTM的工作原理。它是如何記住文本的?
什么是樸素貝葉斯分類(lèi)器?
拋10次硬幣,4次是正面的概率是多少?
如何獲取Python列表中元素的索引?
如果合并兩個(gè)pandas數(shù)據(jù)集?
從用戶(hù)行為來(lái)看,你需要模擬一個(gè)欺詐活動(dòng),你會(huì)如何解決這個(gè)問(wèn)題?這是可能是一個(gè)異常檢測(cè)問(wèn)題或分類(lèi)問(wèn)題!
決策樹(shù)和隨機(jī)森林,你更喜歡哪一個(gè)?
邏輯回歸和隨機(jī)森林有什么區(qū)別?
你會(huì)用決策樹(shù)還是隨機(jī)森林來(lái)解決分類(lèi)問(wèn)題?隨機(jī)森林有什么優(yōu)點(diǎn)?
體驗(yàn):我也拿到了這家公司的offer。事實(shí)上,我很喜歡這次技術(shù)交流。或許你會(huì)覺(jué)著這些問(wèn)題是機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)領(lǐng)域最基礎(chǔ)的問(wèn)題,但是我感覺(jué)面試官可能不是這一領(lǐng)域的,或者是對(duì)這個(gè)領(lǐng)域的發(fā)展了解的并不多。
公司七:全球性商業(yè)管理公司(面試時(shí)長(zhǎng):25-30min)在不平衡數(shù)據(jù)集中,你會(huì)選擇什么模型:隨機(jī)森林還是Boosting?為什么?
你所了解的Boosting技術(shù)有哪些?
采用監(jiān)督學(xué)習(xí)解決分類(lèi)問(wèn)題,你會(huì)選擇哪個(gè)模型?假設(shè)有 40-50個(gè)分類(lèi)!
你怎樣使用合奏(Ensemble)技術(shù)?
簡(jiǎn)述支持向量機(jī)(SVM)的工作原理。
什么是Kernel?簡(jiǎn)單介紹一下。
如何實(shí)現(xiàn)非線(xiàn)性回歸?
什么是Lasso回歸和Ridge回歸?
體驗(yàn):說(shuō)實(shí)話(huà),這次面試有點(diǎn)水,以至于我沒(méi)有認(rèn)真對(duì)待。但是問(wèn)題問(wèn)的很不錯(cuò)。我面試的職位是要帶領(lǐng)一個(gè)十五六人的團(tuán)隊(duì)做項(xiàng)目,在這之后是經(jīng)理面試和HR面試。最終他們給我提供了崗位咨詢(xún)以及不錯(cuò)的薪資。
公司八:成立4年的生產(chǎn)和服務(wù)型公司(60分鐘)你在簡(jiǎn)歷上提到曾經(jīng)做過(guò)演講中的發(fā)音識(shí)別,具體來(lái)講講你的實(shí)現(xiàn)方法是什么?
什么是梅爾頻率倒譜(MFCCs)?
什么是高斯混合模型,它是如何完成聚類(lèi)的?
如何實(shí)現(xiàn)期望最大化?講講其實(shí)現(xiàn)步驟。
GMM模型中的概率如何計(jì)算?
在進(jìn)行發(fā)音識(shí)別時(shí),你是如何為GMM-UBM技術(shù)執(zhí)行MAP調(diào)整的?
談?wù)勀闼玫腎-vector技術(shù) 。
在分析語(yǔ)境時(shí),主要因素是什么?
JFA和I-vector的區(qū)別是什么?為什么選擇I-vector而不是JFA?
你有沒(méi)有用過(guò)PLDA I-vector技術(shù)嗎?
有沒(méi)有讀過(guò)百度的Deep Speaker論文?
如果有兩個(gè)模型可供你選擇,你選擇的依據(jù)是什么?(考察模型選擇的技術(shù))
簡(jiǎn)述下貝葉斯信息度量(BIC)和赤池信息量(AIC)的數(shù)學(xué)工作原理。
貝葉斯信息度量和赤池信息量的工作原理是什么?
如果MFCC特征向量矩陣中的數(shù)據(jù)發(fā)生丟失,應(yīng)該怎么辦?
如何進(jìn)行語(yǔ)音辨識(shí)?有什么特點(diǎn)?
你的分類(lèi)器是語(yǔ)音和音樂(lè)的分類(lèi)器,還是語(yǔ)音和非語(yǔ)音的分類(lèi)器?
深度神經(jīng)網(wǎng)絡(luò)是如何應(yīng)用在語(yǔ)音分析中的?
體驗(yàn):是的,你可能會(huì)驚訝這都是些什么問(wèn)題。巧合的是,我們兩個(gè)人的研究領(lǐng)域都是語(yǔ)音分析(尤其是發(fā)音識(shí)別)。所以整個(gè)面試過(guò)程一直在圍繞語(yǔ)音分析進(jìn)行提問(wèn)。很顯然,面試官很專(zhuān)業(yè),并且給了我一個(gè)正面反饋。之后,這家公司給我提供了AI解決方案架構(gòu)師的工作。
一些建議在這整個(gè)求職過(guò)程中,我大概和25-30位專(zhuān)業(yè)人士有過(guò)交流,下面是我為讀者以及求職者提出的建議:
簡(jiǎn)歷很重要。一定要在簡(jiǎn)歷中寫(xiě)清楚你參加過(guò)的項(xiàng)目、Kaggle競(jìng)賽、獲得的MOOC課程證書(shū)或者論文。我就是在沒(méi)有任何推薦人推薦的情況下接到了亞馬遜的面試電話(huà)。你的簡(jiǎn)歷是打動(dòng)HR和面試官的利器。
自信心和熱情是成功的一半。參加面試時(shí)一定要自信,并且向面試官展示出你的熱情(這一點(diǎn)在面試創(chuàng)業(yè)公司和基于服務(wù)的公司時(shí)尤為重要)。
不要過(guò)于急著回答面試官提出的問(wèn)題?;ㄐr(shí)間組織好答案再回答,如果對(duì)問(wèn)題有不理解的地方,一定要請(qǐng)教面試官。還有就是在面試時(shí)一定要冷靜!
在解釋概念時(shí)一定要恰當(dāng)?shù)谋憩F(xiàn)自己。舉幾個(gè)你已經(jīng)實(shí)現(xiàn)過(guò)的項(xiàng)目,并且一定要熟悉簡(jiǎn)歷中提到的熟練技能和做過(guò)的項(xiàng)目。
大多數(shù)情況下,面試官都是在尋找這個(gè)領(lǐng)域內(nèi)有經(jīng)驗(yàn)的技術(shù)人才。如果你在這個(gè)領(lǐng)域還是一個(gè)新手,在創(chuàng)建簡(jiǎn)歷時(shí)可以從自己做過(guò)的項(xiàng)目開(kāi)始。你的GitHub賬號(hào)也很有說(shuō)服力。除此之外,還可以多參加Kaggle競(jìng)賽和MOOC課程。
面對(duì)面試官的時(shí)候,一定要謙虛,注意傾聽(tīng)面試官的意見(jiàn),否則你就會(huì)被拒之門(mén)外。有的時(shí)候,使用R語(yǔ)言和Python語(yǔ)言的人會(huì)相互鄙視,你最好不要陷入這種爭(zhēng)論當(dāng)中,否則也容易被拒。我個(gè)人認(rèn)為R語(yǔ)言和Python語(yǔ)言都是實(shí)現(xiàn)邏輯和概念的工具。
最后,祝大家面試成功!