機器學習面試備忘

面經

機器學習算法一定要推導!
面試地點:字節跳動-北京

面試官是一個技術部的大牛,基本是半英文交流的。首先給了一張紙去寫一個遞歸,然后開始問算法相關的問題,如Xgboost和GBDT、以及欠擬合和過擬合的解決方法。當然截止目前,其實都還算是簡單的,最后,最傷心的事情來了,推導算法!從最簡單的決策樹C4.5開始,能推導出幾個,加幾分。心態直接崩了,好像只成功推導了C4.5,CART,HMM,LR,SVM,其他的都不成功。
面試官笑了笑,也沒問其他問題,也沒讓我問問題,心很忐忑。過了一周左右,我終于放心了,是真的涼了
面試官的問題:

問對于logistic regession問題:prob(t|x)=1/(1+exp(w*x+b))且label y=0或1,請給出loss function和權重w的更新公式及推導。
答這個題其實是BAT1000題中的一道,w的更新公式可以由最小化loss function得到,也可以用極大似然函數方法求解,過程略...大家可以直接搜BAT面試1000題。

面試知識點掌握

  1. 知識點梳理

https://github.com/shunliz/Machine-Learning

  1. 算法推導

https://shunliz.gitbooks.io/machine-learning/content/

附: 機器學習十大算法

http://panchuang.net/2018/09/17/%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%8D%81%E5%A4%A7%E7%AE%97%E6%B3%95/

  1. 如何選擇算法

微軟如何選擇 Azure 機器學習工作室算法:

https://docs.microsoft.com/zh-cn/azure/machine-learning/studio/algorithm-choice#algorithm-notes

機器學習算法優缺點對比及選擇(匯總篇):

https://ask.hellobi.com/blog/shuzhiwuyu/19008

盤點最實用的機器學習算法優缺點分析,沒有比這篇說得更好了:

https://cloud.tencent.com/developer/article/1111064

面試中常見問題

softmax loss在遇到樣本不均衡的情況下,能夠做出那些改進?
答focal loss, 加上temperature 或者 label smooth

算法相關的簡單問題(GBDT、Xgboost等
Logistic Regression優化方程的證明。

兩道算法題,手寫代碼。一道基于線性數據結構,一道基于樹形數據結構

gbdt:

  • gbdt原理
  • gbdt推導
    • 公式分布推導
    • 殘差如何計算
    • 損失函數形式
    • 基于常見損失函數的公式推導
  • boosting體現在哪里
  • 非mse損失時-\nabla_{F_{m-1}}L(y_i,F_{m-1}(x_i))作為殘差近似值的數學意義
  • gbdt的weak learner是什么,為什么用CART回歸樹而不是分類樹(分類樹殘差相減沒有意義)
  • CART回歸樹
    • 節點分裂規則,寫出公式
    • 公式中每個值在實際訓練中是怎么計算出來的,舉例子說明
    • 連續變量節點如何劃分
    • 離散變量節點如何劃分
  • gbdt的訓練過程
    • 做分類預測時如何訓練
    • 做回歸預測時怎么訓練
  • gbdt分類輸出
    • 輸出概率如何計算
    • 能否計算多分類, 是互斥多分類還是非互斥的?
    • 如果做互斥多分類,在哪一步改進?
  • gbdt調參
    • 調過哪些參數, 各有哪些作用
    • 重要參數為什么有這些作用?從原理出發講一下
    • gbdt里的subsample作用,為何可以提高泛化,和rf的采樣是否相同
    • rf里行采樣,列采樣解釋,作用
    • rf為什么要使得每棵樹不一樣,數學解釋
    • shrinkage作用
  • gbdt學習速率設置
    • 為什么設置學習速率可防止過擬合?
    • 深度學習中常見的學習速率設置方式有哪些? 數學公式
    • gbdt中學習速率是如何使用的?數學解釋
    • 通常合理設置學習速率模型會變好,原理是什么
  • gbdt+lr過程

lr:

  • 數學推導, 求導
  • sigmoid why?

svm:

  • svm原理
  • 對偶作用
  • 推導公式

dnn, cnn:

  • 畫網絡結構
  • 用到的激活函數, relu好處
  • 優化方法, 每種優化的過程, 參數更新公式
  • 動量
    • 可走出局部最小值原因? 數學解釋
    • 動量為啥比mini-batch好: 數學解釋

正則:

  • l1, l2的作用
  • 為什么l1稀疏,l2權重衰減? 不能畫圖, 數學解釋

不均衡樣本:

  • 上采樣, 下采樣
  • easy-enesmble

多模型對比:

  • gbdt, xgboost, rf
  • lr, 線性模型

特征工程及模型評估:

  • 模型效果評估方式, ROC
  • 模型性能下降的改進
  • 過擬合原因及改善
  • 特征篩選方式

關于GBDT重點關注一下:

  • Boosting算法Bagging算法介紹
  • GBDT基本原理
  • GBDT如何正則化
  • GBDT分裂規則
  • GBDT的“梯度提升”體現在那個階段
  • GBDT如何做特征選擇
  • GBDT為什么使用cart回歸樹而不是使用分類樹
  • 為什么GBDT的樹深度較RF通常都比較淺
  • GBDT那些部分可以并行
  • GBDT與RF的區別
  • GBDT與XGBoost的區別
  • xgboost/gbdt在調參時為什么樹的深度很少就能達到很高的精度?

這里有一份答案:
https://blog.csdn.net/xwl198937/article/details/79749048#gbdt%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%BF%E7%94%A8cart%E5%9B%9E%E5%BD%92%E6%A0%91%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BD%BF%E7%94%A8%E5%88%86%E7%B1%BB%E6%A0%91

工程算法:

  • 斐波那契數列非遞歸編程
  • 二叉樹遍歷
  • 中位數查找,不能對數組排序
  • 合并k個有序數組
  • 假設全球所有人都在一個矩形方格中,每個人有坐標(xi,yi),距離每個人半徑為r的范圍中的總人數為Ci,現在要求max(Ci),應當使用什么方法進行處理?
  • 如果一個國家發行的鈔票面值都是斐波那契里的數字,給s定一個物品價值n,問購買這個物品總共有多少種鈔票組合方式。
  • 這里重點關注回答里的算法問題: 如何準備機器學習工程師的面試 ? - 姚凱飛的文章 - 知乎
    https://zhuanlan.zhihu.com/p/29969587

面試總結:
https://www.cnblogs.com/ModifyRong/p/7744987.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容