1. 程式人生 > >機器學習面試常見題總結(持續更新)

機器學習面試常見題總結(持續更新)

1、邏輯迴歸(LR)損失函式為什麼使用最大似然估計而不用最小二乘法?

連結:https://www.zhihu.com/question/65350200/answer/266277291

首先,機器學習的損失函式是人為設計的,用於評判模型好壞(對未知的預測能力)的一個標準、尺子,就像去評判任何一件事物一樣,從不同角度看往往存在不同的評判標準,不同的標準往往各有優劣,並不衝突。唯一需要注意的就是最好選一個容易測量的標準,不然就難以評判了。

其次既然不同標準並不衝突,那使用最小二乘作為邏輯迴歸的損失函式當然是可以,那這裡為什麼不用最小二乘而用最大似然呢?請看一下最小二乘作為損失函式的函式曲線:

圖1 最小二乘作為邏輯迴歸模型的損失函式,theta為待優化引數

以及最大似然作為損失函式的函式曲線(最大似然損失函式後面給出):

圖2 最大似然作為邏輯迴歸模型的損失函式,theta為待優化引數

很顯然了,圖2比圖1展現的函式要簡單多了,很容易求到引數的最優解(凸函式),而圖1很容易陷入區域性最優解(非凸函式)。這就是前面說的選取的標準要容易測量,這就是邏輯迴歸損失函式為什麼使用最大似然而不用最小二乘的原因了。

以上是這個問題的答案,下面來推一下邏輯迴歸中最大損失函式到底是怎麼來的,因為我看到很多地方只是說了一下用到最大似然的方法,就直接給出了最終的形式,還看到有書裡面過程搞錯了,也給出了最終的正確形式。

既然是最大似然,我們的目標當然是要最大化似然概率了:

對於二分類問題有:

p_{1}=p(y=1|x,\theta)=\frac{e^{x\theta}}{1+e^{x\theta}},y=1

p_{0}=p(y=0|x,\theta)=\frac{1}{1+e^{x\theta}},y=0

用一個式子表示上面這個分段的函式為:(記得寫成相乘的形式)

p=p(y|x,\theta)=p_{1}^{y_{i}}\ast p_{0}^{1-y_{i}}

代入目標函式中,再對目標函式取對數,則目標函式變為:

max \sum_{i=1}^{m}({y_{i}log^{p_{1}}+(1-y_{i})log^{p_{0}})}

如果用 h_{\theta}(x_{i}) 來表示 p_{1} ,則可用 1-h_{\theta}(x_{i}) 來表示 p_{0} ,再將目標函式max換成min,則目標函式變為:

min -\frac{1}{m}\sum_{i=1}^{m}({y_{i}log^{h_{\theta}(x_{i})}+(1-y_{i})log^{1-h_{\theta}(x_{i})})}

這樣就得到最終的形式了!

2、L1正則項和L2正則項的區別以及L1正則項為什麼具有稀疏性?

首先,介紹L1和L2:
機器學習中通常都可以看到損失函式後面新增一個損失項。常用的有兩種L2和L1。L1正則化和L2正則化可以看做是損失函式的懲罰項。所謂『懲罰』是指對損失函式中的某些引數做一些限制。對於線性迴歸模型,使用L1正則化的模型建叫做Lasso迴歸,使用L2正則化的模型叫做Ridge迴歸(嶺迴歸)。

正則化項可以取不同的形式。例如迴歸問題中,損失函式是平方損失,正則化項可以是引數向量的L2範數: 

這裡寫圖片描述

這裡,||w||表示引數向量w的L2範數。正則化項也可以是引數向量的L1範數: 

這裡寫圖片描述

這裡||w||表示引數向量w的L1範數。

二者區別:

第一種解釋:

現在,我們考慮這樣一個問題:為什麼使用 L1L1-正則項,會傾向於使得引數稀疏化;而使用 L2L2-正則項,會傾向於使得引數稠密地接近於零?

這裡引用一張來自周志華老師的著作,《機器學習》(西瓜書)裡的插圖,嘗試解釋這個問題。


在圖中,我們有三組「等值線」。位於同一條等值線上的 w1與 w2,具有相同的值(平方誤差、L1-範數或L2-範數)。並且,對於三組等值線來說,當 (w1,w2)沿著等值線法線方向,像外擴張,則對應的值增大;反之,若沿著法線方向向內收縮,則對應的值減小。

因此,對於目標函式 Obj(F)來說,實際上是要在正則項的等值線與損失函式的等值線中尋找一個交點,使得二者的和最小

對於 L1-正則項來說,因為 L1-正則項的等值線是一組菱形,這些交點容易落在座標軸上。因此,另一個引數的值在這個交點上就是零,從而實現了稀疏化。

對於 L2-正則項來說,因為 L2-正則項的等值線是一組圓形。所以,這些交點可能落在整個平面的任意位置。所以它不能實現「稀疏化」。但是,另一方面,由於 (w1,w2) 落在圓上,所以它們的值會比較接近。這就是為什麼 L2-正則項可以使得引數在零附近稠密而平滑。

第二種解釋:

1、梯度下降速度

L1和L2的差別就在於這個“坡”不同,如下圖:L1就是按絕對值函式的“坡”下降的,而L2是按二次函式的“坡”下降。所以實際上在0附近,L1的下降速度比L2的下降速度要快。所以會非常快得降到0。

       L1在江湖上人稱Lasso,L2人稱Ridge。不過這兩個名字還挺讓人迷糊的,看上面的圖片,Lasso的圖看起來就像ridge,而ridge的圖看起來就像lasso。


2、模型空間的限制

       為了便於視覺化,我們考慮兩維的情況,在(w1, w2)平面上可以畫出目標函式的等高線,而約束條件則成為平面上半徑為C的一個 norm ball 。等高線與 norm ball 首次相交的地方就是最優解:

       可以看到,L1-ball 與L2-ball 的不同就在於L1在和每個座標軸相交的地方都有“角”出現,而目標函式的測地線除非位置擺得非常好,大部分時候都會在角的地方相交。注意到在角的位置就會產生稀疏性,例如圖中的相交點就有w1=0,而更高維的時候(想象一下三維的L1-ball 是什麼樣的?)除了角點以外,還有很多邊的輪廓也是既有很大的概率成為第一次相交的地方,又會產生稀疏性。

       相比之下,L2-ball 就沒有這樣的性質,因為沒有角,所以第一次相交的地方出現在具有稀疏性的位置的概率就變得非常小了。這就從直觀上來解釋了為什麼L1-regularization 能產生稀疏性,而L2-regularization 不行的原因了。

  •        因此,一句話總結就是:L1會趨向於產生少量的特徵,而其他的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。Lasso在特徵選擇時候非常有用,而Ridge就只是一種規則化而已。

最後附上不同正則項的輪廓線

3、偏差和方差的區別

參考連結1:https://www.zhihu.com/question/20448464/answer/20039077
來源:知乎
參考連結2:https://www.jianshu.com/p/23550b50b6c1

來源:簡書
偏差:描述的是預測值(估計值)的期望與真實值之間的差距。偏差越大,越偏離真實資料,如下圖第二行所示。
方差:描述的是預測值的變化範圍,離散程度,也就是離其期望值的距離。方差越大,資料的分佈越分散,如下圖右列所示。


另外參考《機器學習》(周志華一書),有: