1. 程式人生 > >機器學習演算法崗的常見面試問題及準備

機器學習演算法崗的常見面試問題及準備

機器學習常見問題

1) 幾種模型( SVM,LR,GBDT,EM )的原理以及公式推導;2) RF,GBDT 的區別; GBDT,XgBoost的區別(爛大街的問題最好從底層原理去分析回答); 3) 決策樹處理連續值的方法; 4) 特徵選擇的方法; 5) 過擬合的解決方法; 6) K-means 的原理,優缺點以及改進; 7) 常見分類模型( SVM ,決策樹,貝葉斯等)的優缺點,適用場景以及如何選型; 8) SVM 為啥要引入拉格朗日的優化方法; 9) 假設面試官什麼都不懂,詳細解釋 CNN 的原理; 10) 梯度下降的優缺點 11) EM與K-means的關係; 12) L1與L2的作用,區別以及如何解決L1求導困難; 

13) 如何用盡可能少的樣本訓練模型同時又保證模型的效能; 14) ID3和C4.5的優缺點,樹的融合(RF和GBDT) 15) 特徵提取方法,如何判斷特徵是否重要 16) BP神經網路以及推導 17) HMM模型狀態推導 18) 過擬合原因以及解決辦法(深度學習同) 19) 常見損失函式 20)機器學習效能評價,準確率,召回率,ROC 22)降取樣,PCA,LDA

深度學習常見問題

1)四種啟用函式區別和作用2)過擬合解決方法 3)(CNN)卷及神經網路各層作用 4)(RNN)迴圈神經網路 5)LSTM 6)梯度彌散 7)優化演算法 adam,SGD等 8)分析Alexnet,VGG的網路結構以及各層作用 

9)XgBoost(好像很多公司也面到了) 10)梯度下降的優化 12)卷積核引數計算

演算法工程師面試必備

1. 成為演算法工程師,應該學習哪些東西

首先說演算法工程師有幾個方向:NLP,推薦,CV,深度學習,然後結合公司業務做得內容各不相同

傳統機器學習演算法:感知機,SVM,LR,softmax,Kmeans,DBSCAN,決策樹(CART,ID3,C45),GBDT,RF,Adaboost,xgboost,EM,BP神經網路,樸素貝葉斯,LDA,PCA,核函式,最大熵等

深度學習:CNN,RNN,LSTM,常用啟用函式,Adam等優化演算法,梯度消失(爆炸)等

推薦系統:itemBasedCF,userBasedCF,冷啟動,SVD(各種變形),FM,LFM等

NLP:TF-IDF,textrank,word2vec(能推導,看過原始碼),LCA,simhash

常見概念:最大似然估計,最小二乘法,模型融合方法,L1L2正則(Lasso,elestic net),判別式模型與生成式模型,熵-交叉熵-KL散度,資料歸一化,最優化方法(梯度下降,牛頓法,共軛梯度法),無偏估計,F1(ROC,recall,precision等),交叉驗證,bias-variance-tradeoff,皮爾遜係數,

概率論,高數,線性代數(像我一樣懶的人,就可以遇到哪裡複習哪裡,:D)

常見問題(具體答案去搜知乎或者百度,最好能在實際專案中總結出來):

常見損失函式

SGD與BGD

如何處理樣本非均衡問題

過擬合原因,以及解決辦法

如何處理資料缺失問題

如何選擇特徵

L1為什麼能讓引數稀疏,L2為什麼會讓引數趨於較小值,L1優化方法

各模型的優缺點,以及適用場景

學明白上述所有內容你需要多長時間?反正我這麼笨的人用了不到一年時間(我本科完全沒接觸過演算法相關,完全是研一學的)

2. 推薦書籍

C++:《C++primer5》《STL原始碼分析》《深度探索C++物件模型》《Effective C++》《Effective STL》 (雖然有些書有點老,不過開卷有益吧)(其他語言就不管了哈)

python:《python學習手冊》《python原始碼分析》《改善python程式的91個建議》(Python必須要會)

刷題:《程式設計之美》《劍指offer》《程式設計師程式碼面試指南》《leetcode》

演算法相關:《統計學習方法》(這本多看)《資料探勘導論》《數學之美》《田林軒視訊》《吳恩達視訊》《西瓜書》

參考文獻:機器學習面試總結(具體的問題我很早之前在簡書上寫過)