1. 程式人生 > >機器學習演算法工程師面試問題

機器學習演算法工程師面試問題

一、OPPO提前批(崗位:機器學習演算法工程師)

1.1 一面(通過)  2018.07.21

  1. 手寫二叉樹前序遍歷
  2. 劍指offer青蛙跳臺階問題:一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法?    我:採用遞迴的方式做,f(n) = f(n-1) + f(n-2)  n>=3;  f(1) = 1;   f(2) = 2; 面試官:如果不利用遞迴方式怎麼做? 我:構建一個vector向量,[1, 2, 3, 5 ...]  當前數等於前兩個數字的和。面試官:這樣做空間複雜度多少?我:O(N) 面試官:有沒有更好的方法。我:用兩個變數代替f(n-1), 和f(n-2), 每次計算完後更新他們的值。這樣做空間複雜度為O(1).
  3. 簡述一下XGBoost?  boosting的思想是每一個基分類器糾正前一個基分類器的錯誤,至於糾正的方式不同所以有不同的boosting演算法,比如通過調整樣本權值分佈訓練基分類器對應的AdaBoost,通過擬合前一個基分類器與目標值的誤差的負梯度(也不能說是殘差,只有在損失函式是平方損失時才能叫殘差,一般的損失函式是近似殘差)來學習下一個基分類器的方法是gradient boosting
  4. 單例設計模式
  5. 決策樹分裂條件?
  6. 資訊增益怎麼計算?
  7. 給你兩個向量,它們之間的距離計算方式有幾種,分別怎麼計算,寫出計算公式
  8. 分類問題的損失函式

1.2 二面(掛)  2018.07.21

  1. auc和f-score的區別
  2. SVM的工作原理
  3. 未來三年的的規劃
  4. 你收穫最大的一門課程,分別站在自己的角度和別人的角度說一下為什麼你的收穫大,比別人收穫多
  5. 你關注時事熱點嗎?說一下你最近關注的熱點,你對此有什麼看法
  6. 最滿意的一個專案,詳細介紹一下
  7. f-score的表示式
  8. 最難過的一件事,怎麼解決的
  9. 寫程式碼是如何調優的
  10. 對於寫程式碼如何看待
  11. 說一下你的優勢

二、多益網路(崗位:人工智慧及大資料研發工程師)

2.1  一面  2018.08.16

  1. 介紹一下自己
  2. 談一下你的覺得不錯的專案
  3. 深度學習中的正則化
  4. 線性迴歸與邏輯迴歸的區別
  5. 連結串列與陣列的儲存區別
  6. QN與DQN的區別
  7. 你有offer嗎
  8. 你如何看待加班
  9. 假如你有一千萬的資訊文字,你如何找出重複最多的前十條
  10. 氣泡排序

三、阿里巴巴(崗位:機器學習演算法崗)

3.1  面試前的瞭解  2018.08.20

  1. 卷積核的作用?在影象中或者文字中?(提取特徵)
  2. Pooling層的作用?(擴大感受野,降低引數規模)
  3. 有沒有關注神經網路的可解釋性?哪些方法?
  4. 有沒有想過利用RNN結構去處理自動駕駛中關於時間連續的問題?
  5. CBDT屬於整合學習中的哪種結構?損失函式是什麼?
  6. CART的基本結構?
  7. RELU的正半軸是線性的,怎麼實現非線性的呢?(解答

四、網易網際網路(崗位:機器學習演算法崗)

4.1  一面  2018.08.29

  1. 自我介紹
  2. 程式設計:給定兩個有序連結串列如L1:{1,3,5}, L2:{2,4,6},輸出{6,5,4,3,2,1}
  3. 專案介紹:基於模仿學習的自動駕駛(負責工作及實現流程);天池工業AI大賽(特徵工程、XGBOOST詳細介紹:一定看透論文!!!);
  4. 樹結構:當特徵值為連續的如0.001,0.0011,0.0011...如何進行分裂
  5. 模型結構:ResNet50的網路結構
  6. 介紹一下遷移學習,如何Finetune

五、招銀網路(崗位:機器學習演算法崗)

5.1  簡歷面  2018.09.12

  1. 缺失值如何處理
  2. 特徵工程的處理
  3. 介紹如何做的模型融合
  4. 說一下XGBoost與GBDT的區別,是否瞭解lightgbm, catboost
  5. 智力題:一條線段隨機分成三段,能拼成三角形的概率是多少?
  6. 如何實現一個連結串列的逆序
  7. Python中如何用pandas讀取一個很大的檔案,這個檔案超過了計算機的記憶體
  8. 解釋一下Python的裝飾器