1. 程式人生 > >2018百度金融技術部機器學習工程師提前批面試

2018百度金融技術部機器學習工程師提前批面試

一面:
講SVM模型(從線性分類到近似線性分類再到線性不可分)
其中問了鬆弛變數的作用,常用的核函式

講一下GMM模型(EM演算法)
生成模型,判別模型適用場景,優缺點

Precision,Recall計算方法
講樸素貝葉斯

二叉樹後序遍歷
找兩份日誌檔案中的重複出現的ID(海量資料處理)
找出一份日誌中出現次數最多的10個ID
堆實現(堆調整)
子矩陣的最大和/最大子陣列和

二面:
講KMeans
其中問了常見的聚類方法,kmeans在k未知時如何處理,kmeans適用於什麼樣的資料分佈
文字word2Vec(不懂)
講決策樹,選擇分裂節點的規則,主要講了資訊增益的計算;決策樹的問題,決策樹的剪枝。
交叉驗證/k-fold交叉驗證為什麼能防止過擬合(模型選擇?)
CNN在影象相關任務上為什麼能成功?
1. 卷積是因為輸入資料的區域性相關性;
2. 權值共享是因為輸入資料的區域性特徵具有平移不變性,即在不同位置具有共性的區域性特徵。這樣,經過多層次堆疊,低層區域性特徵可以抽取成高層全域性特徵。
3. 權值共享能夠降低計算量,而且降低了網路的訓練難度。
note: 如果權值不共享,那就是區域性連線層了。在某些應用,如人臉在不同的區域存在不同的特徵(眼睛/鼻子/嘴的分佈位置相對固定),當不存在全域性的區域性特徵分佈時,區域性連線層更適合特徵的提取。
講了一下OCR(銀行卡號識別),LSTM+CTC
計算字串equation(我用了逆波蘭表示式,不過沒能bug-free)

三面:
volatile:提醒編譯器它後面所定義的變數隨時都有可能改變,因此編譯後的程式每次需要儲存或讀取這個變數的時候,都會直接從變數地址中讀取資料。如果沒有volatile關鍵字,則編譯器可能優化讀取和儲存,可能暫時使用暫存器中的值,如果這個變數由別的程式更新了的話,將出現不一致的現象。
left_join,outer_join
程序執行緒,程序通訊,執行緒同步
聊天