1. 程式人生 > >[面試筆記] 面試知識點準備-機器學習基礎

[面試筆記] 面試知識點準備-機器學習基礎

摘要

要找工作啦,心累,持續更新中。。。

以下內容大部分來自李航老師的《統計學習方法》,以及各大博主文章

面經

基礎知識點

  • 生成模型和判別模型
    這裡寫圖片描述

  • 二分類中的準確率與召回率
    這裡寫圖片描述

  • 正則化項

    經驗風險最小化是沒有加正則化的損失函式最小優化,
    結構風險最小化就是加了正則項的損失函式最小優化
    這裡寫圖片描述

    • L1範數對引數權值進行直接懲罰,所以會有部分引數趨向於0
    • L2範數對引數平方值進行懲罰,所以全體引數會整體趨向於0
  • 樸素貝葉斯(NB分類器)

    • 我們的目標是給定X(i)來計算以下條件概率:
      這裡寫圖片描述
    • 根據貝葉斯定理,可變換為如下形式:
      這裡寫圖片描述
    • 但是,條件概率分佈P(X = x | Y = ck)有指數級數量的引數:
      這裡寫圖片描述
    • 因此,NB做了一個合理的假設,即條件獨立性假設(假設事件之間發生的關聯性為0,事件之間互相獨立):
      這裡寫圖片描述
    • 因此,第二步的公式可以表示為:
      這裡寫圖片描述
    • 最後,得到NB分類器的公式:
      這裡寫圖片描述
    • 極大似然估計(假設先驗分佈概率就是期望的分佈概率)
    • 貝葉斯估計(用於解決概率值為0時,乘積為0的問題):
      這裡寫圖片描述
      當Lambda為1時,即為拉普拉斯平滑
      注意:新增Lambda後,需要保證概率之和為1
    • 拉普拉斯平滑的作用:
      問: 有兩隻球隊A和B,在過去的7場比賽中A獲勝7次,B獲勝0次,那麼下一次比賽A和B獲勝的概率各是多少?
      答:根據先驗概率,A獲勝的概率是7/7,B獲勝的概率為0/7,顯然這是不合理的,雖然B真的菜,但是下一場沒準真的能獲勝,因此,使用拉普拉斯平滑進行調整,得到A獲勝的概率為7/8,B獲勝的概率為1/8。不僅保留了概率上的特徵,同時保證了合理性。
  • 二項邏輯斯蒂迴歸模型

    • 概率分佈:
      這裡寫圖片描述
    • LR將線性函式值轉化為了事件發生的概率
      這裡寫圖片描述
    • 得到LR的損失函式為:
      這裡寫圖片描述
    • 將LR用於多分類:
      這裡寫圖片描述
    • 最大似然估計:MLE是通過概率去求引數,使得模型的分佈結果最大程度地與當前資料的分佈相接近
  • SVM模型

    • 核心思想:
      這裡寫圖片描述
    • 函式間隔和幾何間隔
      為了找到最大化間隔的超平面,我們需要一個合理的間隔度量來進行評價,首先想到的最簡單的就是函式間隔,即評價函式wx+b的值的絕對值大小
      這裡寫圖片描述
      但是,函式間隔無法作為最大化超平面間隔的度量,因為其會隨著w、b值的縮放而跟著縮放,顯然不好,因此引入幾何間隔
      這裡寫圖片描述
      幾何間隔引入了向量w,因此是實質上幾何空間的距離度量,而且不會被w、b影響,只與超平面的位置有關,完全可以作為超平面的度量方法
    • 非線性問題
      首先,我們在已知拉格朗日系數a的前提下,通過求偏導數可以得到權重係數w可以用如下公式得到:
      這裡寫圖片描述
      這裡寫圖片描述
      因此,分類函式可以表示為內積的形式( 這裡的形式的有趣之處在於,對於新點 x的預測,只需要計算它與訓練資料點的內積即可;此外,所謂 Supporting Vector 也在這裡顯示出來——事實上,所有非Supporting Vector 所對應的a係數都是等於零的,因此對於新點的內積計算實際上只要針對少量的“支援向量”而不是所有的訓練資料即可):
      這裡寫圖片描述
    • 對於非線性問題,可以使用一個對映函式將資料點投影到高維空間中:
      這裡寫圖片描述
      考慮我們可愛的內積形式:
      這裡寫圖片描述
  • EM演算法

    • 雖然很牛逼,但我看不懂
    • 簡單的說就是先猜,後調整,再猜,再調整,最後win
    • 用於混合高斯模型的時候,與K-means差不多,也是找類別中心,但是Km無法給出後驗概率,EM卻可以
  • 隱式馬爾科夫模型(HMM)

    • 三個基本問題
      這裡寫圖片描述
    • 概率計算問題
      • 直接計算:算出整體解空間 ,然後用條件解的個數除以整體解的個數。缺點是整體解空間太大,演算法太複雜
      • 前向演算法:對每一步的每一個狀態序列中的狀態進行概率計算,求和,然後進一步計算,最後累加出結果。避免了對非必要狀態的概率計算。
    • 預測問題
      • 直接計算:算出可能產生該序列的所有隱序列的數量,然後除一下即可,但是解空間依然很大
      • Viterbi 演算法:對每一步觀測狀態進行概率計算,取當前概率最大的作為下一步觀測狀態計算的前提,直到停止
    • HMM用於NLP的最簡單的應用:
      這裡寫圖片描述