演算法工程師面試總結
滴滴:
滴滴面試模式比較固定,每一面是先根據簡歷問項目和基礎知識,然後一道演算法題。
一面:
1.深度學習中防止過擬合的方法
2.dropout為什麼能防過擬合
3.介紹一下batch normalization
4.對GBDT了解嗎
5.情景題:假設你是ofo的一名演算法工程師,ofo有很多壞車,現在根據訂單信息,設計方法,幫助維修人員檢修壞車。先讓設計特徵,然後選擇分類器。
6.演算法題:一個整數數組,設計方法,讓所有奇數在前,所有偶數在後。擴展:假設不止奇數偶數,有三種數,第一种放前面,第二种放中間,第三种放最後,該怎麼辦。
二面:
1.演算法題:給定一個整數n,編寫函數算出有多少個每位都不相同的n位整數,要求儘可能考慮所有情況。
2.用代碼寫出Logistic regression的損失函數,並提問了這個損失函數如何推導出的。
3.介紹SVM
頭條:
頭條和滴滴類似,每一面先根據簡歷問項目和基礎知識,然後兩道演算法題。
一面:
1.演算法題:一個整數數組,設計方法,讓所有奇數在前,所有偶數在後。
2.給定一棵二叉樹,編寫代碼判斷這棵樹是否左右對稱。
3.聊項目,問了一個開放問題:深度學習中壓縮模型的方法
二面:
1.演算法題:給定一個整數數組,找出兩個下標,要求:後面下標所指的數減前面下標所指的數之差最大。
2.也算是演算法題:編寫函數計算softmax中的cross entropy loss
3.聊項目
三面:
全程聊項目,問得很細。
騰訊:
一面:
挑簡歷上的一個項目,讓你介紹,然後面試官從中問問題:
1.寫出離散傅里葉變換的公式(這個是我項目中自己給自己挖的坑,一般應該不會這麼問)
2.問ridge和lasso有什麼區別,l2範數為什麼能防止過擬合,l1範數為什麼能讓權重稀疏,(這裡我回答了因為l1範數更有可能在坐標軸上和loss相切,然後面試官追問相切是什麼意思,沒能答上來)
二面:
全程聊項目。
總結:
1.自我介紹最好提前準備好,然後自己背幾遍。這樣開場會比較順利。
2.簡歷上的東西一定要會。如果面試官問了你簡歷上沒有的東西,比如滴滴面試官問我GBDT,我確實不會,那就可以說明這個我沒用過,所以不太了解,面試官會覺得情有可原。但是如果問了你簡歷上的內容,還是答不出來,會讓面試官覺得你不靠譜。
3.對於演算法題,不一定一開始就給出最優的解法,最好是先把你能想到的解法說出來,然後面試官會讓你優化,再慢慢想。可以跟面試官說我思考一下,然後在草稿紙上推導或者寫寫思路,如果拖了太久還是沒有思路,就找面試官問能不能給點提示(當然過程要很有禮貌)。
摘自牛客網,作為自己檢測和努力的方向。
推薦閱讀:
※如何利用手機遠程調參
※scikit-learn實戰
※我的機器學習計算資源
※1-2 Welcome
※台灣李宏毅老師機器學習ML 第一課 回歸Regression