AI面試題(持續更新)

林_胖發表於2020-11-09

加入了個開課吧9.9元的AI面試題交流群,純當筆記記錄及分析。

1. 為什麼要對特徵歸一化?

歸一化可以消除因特徵量綱差異導致對模型收斂帶來的影響,可以加快收斂,便於使用預設的引數。如果不歸一化,會導致特徵值相差大的特徵佔主導作用,而忽略特徵值相差小的特徵。
對連續數值進行歸一化可以將特徵統一到一個大致相同的資料區間內。
常用方法有min-max scaling,z-score normalization.通常在計算歐氏距離或者使用梯度下降優化的場景下需要對特徵進行歸一化處理,例如線性迴歸、邏輯迴歸、SVM、神經網路等。

2. 什麼是組合特徵?如何處理高維組合特徵?

有時候為了提高模型的擬合能力,在特徵工程階段常會把一階離散特徵兩兩組合,構成高階組合特徵。比如推薦系統排序模型FM就使用了二階組合特徵。高維的特徵組合往往帶來龐大的可訓練引數,為了解決這一問題可以採用隱向量點積降維的方式來減少高維特徵組合後需要學習的引數。很多場景下,簡單的兩兩組合會存在過擬合問題,而且並不是所有的兩兩組合都有現實意義,因此也可以考慮基於決策樹的方式尋求特徵組合。
高維組合特徵的處理方式為矩陣分解。

3. 請比較歐式距離和曼哈頓距離

歐氏距離(又稱歐幾里得距離)是指N維空間中兩點的直線距離,公式
d ( x , y ) = ∑ i = 1 n ( x i − y i ) 2 d(x,y)=\sqrt{\sum_{i=1}^n(x_i-y_i)^2} d(x,y)=i=1n(xiyi)2
曼哈頓距離用以標明兩個點在標準座標系上的絕對軸距總和。
A ( x 1 , y 1 ) A(x_1,y_1) A(x1,y1) B ( x 2 , y 2 ) B(x_2,y_2) B(x2,y2)為例
AB間歐氏距離: ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 \sqrt{(x_1-x_2)^2+(y_1-y_2)^2} (x1x2)2+(y1y2)2
AB間曼哈頓距離: ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ |x_1-x_2|+|y_1-y_2| x1x2+y1y2

上圖綠色線即為歐氏距離,紅黃色線都可作為曼哈頓距離。
曼哈頓距離只需要計算加減法,在大量的計算中代價更低,消除了開放過程中取近似值而帶來的近似誤差。這兩種距離計算方法都對異常資料敏感,並且將各個維度的差異同等對待。

4. 為什麼一些場景中使用餘弦相似度而不是歐式距離?

餘弦相似度是通過計算兩個向量的的夾角餘弦值來評估他們的相似度,體現的是方向上的相對差異,而歐氏距離體現的是兩向量距離樹枝上的絕對差異。
餘弦相似度無論在幾維空間,取值範圍都為[-1,1],兩向量方向相同為1,正交為0,相反為-1,而歐氏距離取值範圍不固定,含義較模糊。
餘弦距離=1-餘弦相似度,取值範圍[0,2]
兩個向量之間的餘弦值可以通過使用歐幾里得點積公式求出: a ⋅ b = ∣ ∣ a ∣ ∣ ∣ ∣ b ∣ ∣ c o s θ a\cdot b=||a||||b||cos\theta ab=abcosθ
給定兩個屬性向量,A和B,其餘弦相似性由點積和向量長度給出:
s i m i l a r i t y = c o s ( θ ) = A ⋅ B ∣ ∣ A ∣ ∣ ∣ ∣ B ∣ ∣ = ∑ i = 1 n A i × B i ∑ i = 1 n ( A i ) 2 × ∑ i = 1 n ( B i ) 2 similarity=cos(\theta)=\frac{A\cdot B}{||A||||B||}=\frac{\sum_{i=1}^{n}A_i\times B_i}{\sqrt{\sum_{i=1}^n(A_i)^2}\times \sqrt{\sum_{i=1}^n(B_i)^2}} similarity=cos(θ)=ABAB=i=1n(Ai)2 ×i=1n(Bi)2 i=1nAi×Bi
在計算文字、句子之間的相似度時常餘弦相似度而不是歐氏距離。

5. one-hot的作用是什麼?為什麼不直接使用數字作為表示?

ont-hot編碼將類別變數轉為二值化變數,通常用來處理類別變數間不具有大小關係的特徵。
如果直接使用數字表示,預設為連續變數,將原本不具有大小關係的變數轉換為數字後會影響同一特徵在樣本中的權重,數字編碼更適合類別間具有大小關係的資料。

相關文章