機器學習演算法工程師面試問題
阿新 • • 發佈:2019-01-11
一、OPPO提前批(崗位:機器學習演算法工程師)
1.1 一面(通過) 2018.07.21
- 手寫二叉樹前序遍歷
- 劍指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).
- 簡述一下XGBoost? boosting的思想是每一個基分類器糾正前一個基分類器的錯誤,至於糾正的方式不同所以有不同的boosting演算法,比如通過調整樣本權值分佈訓練基分類器對應的AdaBoost,通過擬合前一個基分類器與目標值的誤差的負梯度(也不能說是殘差,只有在損失函式是平方損失時才能叫殘差,一般的損失函式是近似殘差)來學習下一個基分類器的方法是gradient boosting
- 單例設計模式
- 決策樹分裂條件?
- 資訊增益怎麼計算?
- 給你兩個向量,它們之間的距離計算方式有幾種,分別怎麼計算,寫出計算公式
- 分類問題的損失函式
1.2 二面(掛) 2018.07.21
- auc和f-score的區別
- SVM的工作原理
- 未來三年的的規劃
- 你收穫最大的一門課程,分別站在自己的角度和別人的角度說一下為什麼你的收穫大,比別人收穫多
- 你關注時事熱點嗎?說一下你最近關注的熱點,你對此有什麼看法
- 最滿意的一個專案,詳細介紹一下
- f-score的表示式
- 最難過的一件事,怎麼解決的
- 寫程式碼是如何調優的
- 對於寫程式碼如何看待
- 說一下你的優勢
二、多益網路(崗位:人工智慧及大資料研發工程師)
2.1 一面 2018.08.16
- 介紹一下自己
- 談一下你的覺得不錯的專案
- 深度學習中的正則化
- 線性迴歸與邏輯迴歸的區別
- 連結串列與陣列的儲存區別
- QN與DQN的區別
- 你有offer嗎
- 你如何看待加班
- 假如你有一千萬的資訊文字,你如何找出重複最多的前十條
- 氣泡排序
三、阿里巴巴(崗位:機器學習演算法崗)
3.1 面試前的瞭解 2018.08.20
- 卷積核的作用?在影象中或者文字中?(提取特徵)
- Pooling層的作用?(擴大感受野,降低引數規模)
- 有沒有關注神經網路的可解釋性?哪些方法?
- 有沒有想過利用RNN結構去處理自動駕駛中關於時間連續的問題?
- CBDT屬於整合學習中的哪種結構?損失函式是什麼?
- CART的基本結構?
- RELU的正半軸是線性的,怎麼實現非線性的呢?(解答)
四、網易網際網路(崗位:機器學習演算法崗)
4.1 一面 2018.08.29
- 自我介紹
- 程式設計:給定兩個有序連結串列如L1:{1,3,5}, L2:{2,4,6},輸出{6,5,4,3,2,1}
- 專案介紹:基於模仿學習的自動駕駛(負責工作及實現流程);天池工業AI大賽(特徵工程、XGBOOST詳細介紹:一定看透論文!!!);
- 樹結構:當特徵值為連續的如0.001,0.0011,0.0011...如何進行分裂
- 模型結構:ResNet50的網路結構
- 介紹一下遷移學習,如何Finetune
五、招銀網路(崗位:機器學習演算法崗)
5.1 簡歷面 2018.09.12
- 缺失值如何處理
- 特徵工程的處理
- 介紹如何做的模型融合
- 說一下XGBoost與GBDT的區別,是否瞭解lightgbm, catboost
- 智力題:一條線段隨機分成三段,能拼成三角形的概率是多少?
- 如何實現一個連結串列的逆序
- Python中如何用pandas讀取一個很大的檔案,這個檔案超過了計算機的記憶體
- 解釋一下Python的裝飾器