演算法工程師面試總結

滴滴:

滴滴面試模式比較固定,每一面是先根據簡歷問項目和基礎知識,然後一道演算法題。

一面:

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

TAG:演算法 | 機器學習 |