這是一篇不太專業的算法工程師面經,但願能給非科班想要從事機器學習工做的同窗或學弟學妹一些建議,同時也回饋給予我很大幫助的咕泡學院。目前拿到的offer有:網易、三星、聯想、vivo、鬥魚、拼多多、獵聘等等。面經分爲兩個部分:虐心面試實錄和一點人生經驗。先上乾貨再BB,你們能夠針對性的選擇本身須要的部分,祝你們最後都能拿到心儀的offer啦。
虐心面試實錄java
- 網易郵件事業部 數據挖掘工程師 offer
整數翻轉,如何處理越界問題
C++多態,靜態聯編和動態聯編,虛函數表
GMM原理,增大數據量是否會更好
模型融合如何作
股票買賣問題,一次買賣和兩次買賣
提高樹的思想,隨機森林和提高樹的區別
EM算法數學原理
SVM推導,對偶性的做用,核函數有哪些,有什麼區別
分佈式計算框架了解哪些
- 百度商業平臺部 數據挖掘工程師 二面掛
python兩個每行都是數字的文件合併,去重。
shell編程,編輯文件。
進程與線程的區別
卷積神經網絡介紹
SVM的推導
大文件求交集,如何解決哈希以後小文件仍是放不進內存
堆排序代碼
連續和最大問題,如何證實?
3sum問題,時間複雜度
最短路問題,第K條最短路
- vivo 人工智能工程師 sp offer
bp算法介紹,梯度彌散問題。
svm介紹,優缺點是什麼,lr介紹,區別是什麼
lr與線性迴歸的區別
若是要預測房價,用什麼模型
若是要預測房價,而且知道一個房間的房型信息,如何構建模型
sigmoid 函數的應用有哪些,爲何?
列舉十種經常使用的神經網絡模型
語音識別模型有哪些
如何識別一我的在喝酒,須要幾個模型
- 蘇寧 算法工程師 備胎池涼了
卷積神經網絡中卷積如何實現,激活函數的意義,損失函數有哪些,初始化參數如何選擇
用過哪些深度學習框架,TensorFlow中的session是什麼,session和interactivesession的區別
如何實現卷積層權值共享
如何保存模型,讀取已有的模型
用過哪些深度學習模型,區別是什麼。
瞭解哪些尋優算法
softmax損失函數是什麼
c++ 的 const,static做用
new,delete原理
強制類型轉換cast之間的區別
- 騰訊IEG 應用研究 二面掛
svm推導,核函數的體現,經常使用的核函數有哪些
alexnet介紹
過擬合的緣由,有哪些避免過擬合的trick
1G的文本統計詞頻,輸出頻率最高的1000個詞
手寫topk的代碼,快排。代碼還能如何優化,若是要上線的話還須要作哪些處理
若是分類樣本的標籤只有必定的機率可信,如何處理
過擬合的緣由,有哪些防止過擬合的方法
mysql查詢一段時間中某個用戶的數據
- 三星電子中國研究院 機器學習研發工程師 offer
筆試:水管工之類的算法題,求最大深度
模型評價如何作,其中存在哪些問題
決策樹算法有哪些,隨機森林和GBDT的區別
降維方法,PCA原理
哈夫曼樹在機器學習中的應用
文本挖掘算法瞭解哪些
人流量預測系統如何設計
profession筆試:最優的進程調度算法,至少用多少個cpu
英語自我介紹,口語渣猝不及防
- 聯想研究院 模式識別研究員 offer
EM算法數學推導,如何證實算法收斂性
異常值的影響,如何消除
全部瞭解的機器學習算法有哪些,框架性講述
梯度降低算法瞭解哪些,優劣勢是什麼
二叉樹中序遍歷,遞歸和非遞歸
linux操做指令瞭解哪些,文本處理指令有哪些
一億個數的文件,如何分紅兩個文件a,b,使得a文件的數都小於b,同時文件大小要差很少。
- 拼多多 算法工程師 offer
均勻分佈如何生成正態分佈
SVM原理,支撐向量越多越好仍是越少越好
二叉樹深度遍歷,時間複雜度和空間複雜度
二維排序矩陣搜索
項目中的長時間推廣問題,如何考慮樣本之間非獨立的影響。
編程題,矩陣中的最短路,有門有鑰匙。動態規劃加狀態向量。
貝葉斯公式,實際如何計算,如何解決精度問題。
- 五八集團 算法工程師 二面掛
字符串轉數字
svm核函數有哪些,如何選取,手寫表達式
降維方法介紹
c的虛函數,虛函數指針和虛函數表存在哪兒
Linux 文件權限修改,參數介紹
模型的比較如何作
隨機森林和提高樹
卷積神經網絡原理
如何避免網絡的過擬合
如何網絡調優
- 獵聘 算法工程師 sp offer
Python 的數據結構有哪些
tuple 和set的區別,set的底層實現
hash表的算法有哪些
svm推導,一直到序列最小化求解。核函數如何體現,有哪些類型。
構建分類器的整個流程是什麼
數據清洗方法,缺失值處理方法,降維方法
pca原理推導
決策樹算法的介紹
二維排序數組搜索
如何構建欺詐交易識別的模型?
不均衡的數據如何分類
- 新浪移動 數據挖掘工程師 錄用排序
歸併排序,二維排序數組搜索,中序遍歷重構二叉樹
svm推導,爲何要用拉格朗日乘數法,對偶問題是什麼
KKT條件都有什麼,如何求解svm的最優化問題
數據不均衡如何解決,抽樣獲得的分類準確率如何轉換爲原準確率。
邏輯迴歸原理,推導求解方法。
爲何選用對數極大似然函數做爲優化目標,用平方損失有什麼問題。
邏輯迴歸對特徵有什麼要求,是否須要作離散化,離散化的好處與壞處。
邏輯迴歸的參數是否能夠分佈式求解,如何作分佈式。
有三輛車,到達時間隨機,a車五分鐘一趟,b車十分鐘一趟,c車十五分鐘一趟,求平均等待時間
一點人生經驗
我是一名文科類院校的碩士(面試的時候不止一次被問是否是學計算機教育的),本科是信息專業。碩士科研是模式識別方面的,其實說數據分析更貼切,基本屬於浪費青春(建議各位喜歡計算機的學弟學妹:珍愛生命,遠離文科院校)。同時也由於老闆的24小時貼心看護,毫無懸念的沒有實習機會,mmp。本身雖然很是喜歡機器學習,可是秋招以前的狀態是:編程基礎只會python,算法設計全靠調包,深度學習基本不會,分佈式框架徹底不懂。到七月份的時候,整我的喪到必定境界,感受基本要告別互聯網了。
笨鳥先飛,七月中旬就開始準備秋招了,主要是打比賽、看書和刷題。八月底投簡歷,投過的公司很是多,然而收到面試的不多。慶幸本身比較能吹,效率還比較高,最後也拿到了一些心儀的offer。過程很痛苦,可是還好有個好收穫。總結一下這三個月本身的一些經驗感悟,但願對你們有幫助。由於本身是非科班出身,從此也要瘋狂補習,早日跟上大佬步伐,也但願多跟大佬們交流呀。python
秋招準備mysql
硬實力:項目經驗,競賽,簡歷。
對於本身的項目,數學邏輯上必定不能有漏洞。多多反思,想一想本身模型的優點,以及換其餘模型會有啥問題,僞裝有面試官提問本身回答。基本上作到這些,項目上就不會有問題。由於我沒有過實習經驗,因此對企業關注的技術瞭解的不多。個人建議是,必定要參加競賽,不管名次。找工做以前,跟寢室的老鐵一塊兒參加了百度的機器學習競賽,雖然沒有名次可是真的是積累了不少經驗。也正是由於這個比賽,對圖像領域有了個概況的瞭解,動手能力也提升了很多。記住,企業要求的東西不會也不要緊,至少有個歸納性瞭解,同時展示本身的學習能力和思考深度就行啦。
簡歷方面,記住一條:本身作過什麼不重要,關鍵是企業想要什麼。建議你們都以一個面試官的角度看待本身的簡歷,或者找找師兄師姐。我如今回頭看本身的初版簡歷,感受像是要去考博士。。linux
- 軟實力:編程基礎,手撕代碼,機器學習。
從八月到如今,leetcode刷了185道題,基本是middle+少許hard,牛客上刷了劍指offer和一些基礎題。我本身的感受是,劍指offer用來入坑真的贊,leetcode真的要用心刷。邊刷題邊總結,基本刷到了150題的時候,就會進入一個百毒不侵的狀態。後期基本上就不怕筆試了,手撕代碼也很快。
機器學習方面,主要是刷小藍書《統計學習方法(李航)》和西瓜書《機器學習(周志華)》,經典的算法建議都手推一遍。重點關注損失函數,爲何這樣定義,有哪些優缺點,多思考方法間的比較。說實話,其實最後均可以總結出套路,後面有空我再總結下。。
面試c++
項目介紹
基本上每次面試開始都是項目介紹,建議事先準備一個項目介紹,聊的時候也不會慌亂錯過項目亮點。最好是準備兩個版本,一個是簡單介紹思想,一個是詳細介紹包括細節和公式。在講本身項目的時候,必定要突出技術難點以及本身的思考,最好有個清晰的框架性說明。針對項目能夠預先準備一些問題,而後再講述的時候能夠故意留幾個坑,挑起面試官興趣,趁火打劫讓其入坑,這樣也更能體現本身對項目瞭解的深度,豈不美哉。
對於競賽方面,其實我本身沒有啥名次,方法也沒有創新。這種狀況就儘可能突出本身對於領域的瞭解,對於經常使用基礎模型原理的掌握程度,以及本身在應用時遇到的問題。我在競賽中是用的只有inception和resnet的微調和融合,以及數據增廣。工做很淺顯,可是講述的時候結合實際把inception和resnet的trick原理和優點講清楚就行。面試
- 基礎知識
手撕代碼的時候,建議先講清楚思路再寫代碼,記得分析時間空間複雜度。若是有多種思路能夠分析比較一下。再就是,不要慌,慢慢寫,手不要抖。。
機器學習算法的介紹,我通常分爲兩步:第一步介紹算法基本思想,損失函數,適合於解決哪一類問題,有哪些缺點。若是面試官還有興趣,就開始第二步推公式。在明確每一步的目的的前提下,強烈建議把公式背下來直接寫答案,例如svm拉格朗日函數求導以後的結果,當場求導很浪費時間,不如用來多展示本身。在面試官提問的時候,能夠暗中總結一下面試官喜歡的類型,若是一直問數學推導方面的問題,就多講講算法原理,若是問了不少實現方面的問題,就多講講算法實現方面的trick。這樣更有針對性,也更能讓面試官霸霸開心。
- 開放性問題
對於設計類問題,其實多看看面經就能知道主要的類型,多看看他人的解題思路同時結合本身擅長的算法一塊兒思考,表述時邏輯清晰突出要點就行。我的建議:不要搶答,也不要邊想邊答。能夠先在紙上記下問題中的關鍵點,以及對應的解決方案。能夠提出多種方案,互相比較最後獲得最好。讓面試官看到你的思考,可是不要出現那種講到一半講不下去的尷尬狀況。
對於人格類問題,由於文科院校因此認識很多心理學大佬,投射之類的基本套路都naive。表現出對技術的熱誠和領導力就行。這種題說話越多越錯,你須要的只是熱愛技術的態度和堅決的眼神。
- offer的選擇
offer選擇無非就兩個方面的問題:1. 公司環境,行業前景,技術發展。2. 面向薪資的編程。我也不瞭解不少公司,渣渣就不bb了。建議你們與熟悉的師兄師姐聊,同一屆的同窗視野可能沒有那麼遠。我的以爲,技術發展雖然重要,錢也不是關鍵問題,有的時候也須要多關心身邊的人呀。人生還長,有些事情不用那麼着急的。
- 再BB兩句俗話說的好!找工做這種事情,三分靠打拼,七分靠錦鯉!非科班確實很難,因此心態很重要!不要被眼前的不幸擊倒,眼前的困難都不是困難!後面運氣差的時候還多得很呢。。 總之,必定要調整心態,心態爆炸的時候要多多放鬆,有妹子抱妹子,沒妹子抱舍友,不能被情緒左右。不管結果如何,都要冷靜總結。」那些沒法將你戰勝的,終會使你更強大。「做者:王非池java學習乾貨面試經驗,不按期分享+Q羣:282711949。若是你正在找工做或者剛剛學校出來,又或者已經工做可是常常以爲難點不少,以爲本身java方面學的不夠精想要繼續學習的,想轉行怕學不會的,+Q羣:282711949 瞭解諮詢java繼續學習。更有免費視頻等你來領取。