機器學習和深度學習中值得弄清楚的一些問題

CVer發表於2019-05-22

問題1

線性迴歸的損失函式是凸函式的證明

假設有l個訓練樣本,特徵向量為xi,標籤值為yi,這裡使用均方誤差(MSE),線性迴歸訓練時最佳化的目標為:

機器學習和深度學習中值得弄清楚的一些問題

損失函式對權重向量w的一階偏導數為:

機器學習和深度學習中值得弄清楚的一些問題

損失函式對權重向量w的二階偏導數為:

機器學習和深度學習中值得弄清楚的一些問題

因此目標函式的Hessian矩陣為:

機器學習和深度學習中值得弄清楚的一些問題

寫成矩陣形式為:

機器學習和深度學習中值得弄清楚的一些問題

其中X是所有樣本的特徵向量按照列構成的矩陣。對於任意不為0的向量x,有:

機器學習和深度學習中值得弄清楚的一些問題

因此Hessian矩陣半正定,目標函式是凸函式。

問題2

L1和L2正則化的選定標準?

這個問題沒有理論上的定論。在神經網路中我們一般選擇L2正則化。以線性迴歸為例,使用L2正則化的嶺迴歸和和使用L1正則化的LASSO迴歸都有應用。如果使用L2正則化,則正則化項的梯度值為w;如果是L1正則化,則正則化項的梯度值為sgn(w)。一般認為,L1正則化的結果更為稀疏。可以證明,兩種正則化項都是凸函式。

問題3

什麼時候用樸素貝葉斯,什麼時候用正態貝葉斯?

一般我們都用樸素貝葉斯,因為它計算簡單。除非特徵向量維數不高、特徵分量之間存在嚴重的相關性我們才用正態貝葉斯,如果特徵向量是n維的,正態貝葉斯在訓練時需要計算n階矩陣的逆矩陣和行列式,這非常耗時。


問題4

可否請雷老師講解一下discriminative classifier 和generative classifier的異同?

判別模型直接得到預測函式f(x),或者直接計算機率值p(y|x),比如SVM和logistic迴歸,softmax迴歸。SVM直接得到分類超平面的方程,logistic迴歸和softmax迴歸,以及最後一層是softmax層的神經網路,直接根據輸入向量x得到它屬於每一類的機率值p(y|x)。判別模型只關心決策面,而不管樣本的機率分佈。生成模型計算p(x, y)或者p(x|y) ,通俗來說,生成模型假設每個類的樣本服從某種機率分佈,對這個機率分佈進行建模。

機器學習和深度學習中值得弄清楚的一些問題


問題5

雷老師下回可以分享一下自己的學習方法嗎? 機器學習的內容又多又難,涉及理論與實踐,很容易碰到問題卡殼的情況。

首先要確定:卡殼在什麼地方?數學公式不理解?演算法的思想和原理不理解?還是演算法的實現細節不清楚?


如果是數學知識欠缺,或者不能理解,需要先去補數學。如果是對機器學習演算法本身使用的思想,思路不理解,則重點去推敲演算法的思路。如果是覺得演算法太抽象,則把演算法形象化,用生動的例子來理解,或者看直觀的實驗結果。配合實驗,實踐,能更清楚的理解演算法的效果,實現,細節問題。


問題6

流形學習,拉普拉斯特徵對映,證明拉普拉斯矩陣半正定

假設L是圖的拉普拉斯矩陣,D是加權度對角矩陣,W是鄰接矩陣。對於任意不為0的向量f,有:

機器學習和深度學習中值得弄清楚的一些問題

因此拉普拉斯矩陣半正定。這裡矩陣D的對角線元素是矩陣W的每一行元素的和。


問題7

線性判別分析:最佳化目標有冗餘,這個冗餘怎麼理解呢?

線性判別分析最佳化的目標函式為:

機器學習和深度學習中值得弄清楚的一些問題

如果向量w是最優解,則將其乘以不為0的係數k之後,向量kw仍然是最優解,證明如下:

機器學習和深度學習中值得弄清楚的一些問題

從幾何上看,w可kw這兩個向量表示的是一個方向,如果w是最佳投影方向,則kw還是這個方向:

機器學習和深度學習中值得弄清楚的一些問題


問題8

決策樹,如果是迴歸樹,在尋找最佳分裂時的標準

對於迴歸樹,尋找最佳分裂的標準是分裂之後的迴歸誤差最小化。這等價於讓分裂之前的迴歸誤差減去分裂之後的迴歸誤差最大化:

機器學習和深度學習中值得弄清楚的一些問題

展開之後為:

機器學習和深度學習中值得弄清楚的一些問題

由於前面的都是常數,因此這等價於將下面的值最大化:

機器學習和深度學習中值得弄清楚的一些問題



問題9

抽樣誤差是怎麼判定的?能否消除抽樣誤差?

只要抽樣的樣本不是整個樣本空間,理論上就會有抽樣誤差,只是是否嚴重而已。對於一個一般性的資料集,無法從理論上消除抽樣誤差。在機器學習中,我們無法得到所有可能的訓練樣本,只能從中抽取一部分,一般要讓樣本儘量有代表性、全面。

機器學習和深度學習中值得弄清楚的一些問題


問題10

卷積神經網路中的w到底是怎麼更新的,我知道利用梯度下降法和誤差函式可以更新w值,但是對具體更新的過程還不是很理解。比如每次怎麼調整,是一層一層調整還是整體調整,調整的結果是遵循最小化誤差函式,但是過程中怎麼能體現出來?

反向傳播時對每一層計算出引數梯度值之後立即更新;所有層都計算出梯度值之後一起更新,這兩種方式都是可以的。所有層的引數都按照梯度下降法更新完一輪,才算一次梯度下降法迭代。

機器學習和深度學習中值得弄清楚的一些問題


問題11

對於凸最佳化問題的理解,我自己感覺這個很難實現,首先實際問題中有許多問題是不知道約束問題和目標函式的,不知道是不是我做的影像識別的問題,我之前對於目標函式的認識就是使用softmax的交叉損失函式,這裡可能是我自己的理解不夠吧,還需要老師給點提示。

所有機器學習演算法的最佳化目標函式都是確定的,如果帶有約束條件,約束條件也是確定的,不會存在不知道目標函式和約束條件的演算法


問題12

如何選擇機器學習演算法是對映函式f(x)?

對映函式的選取沒有一個嚴格的理論。神經網路,決策樹可以擬合任意目標函式,但決策樹在高維空間容易過擬合,即遇到維數災難問題。神經網路的結構和啟用函式確定之後,透過調節權重和偏置項可以得到不同的函式。決策樹也是如此,不同的樹結構代表不同的函式,而在訓練開始的時候我們並不知道函式具體是什麼樣子的。其他的演算法,函式都是確定的,如logistic迴歸,SVM,我們能調節的只有它們的引數。每類問題我們都要考慮精度,速度來選擇適合它的函式。


問題13

梯度下降法的總結

1.為什麼需要學習率?保證泰勒展開在x的鄰域內進行,從而可以忽略高次項。

2.只要沒有到達駐點,每次迭代函式值一定能下降,前提是學習率設定合理。

3.迭代終止的判定規則。達到最大迭代次數,或者梯度充分接近於0。

4.只能保證找到梯度為0的點,不能保證找到極小值點,更不能保證找到全域性極小值點。


梯度下降法的改進型,本質上都只用了梯度即一階導數資訊,區別在於構造更新項的公式不同。


問題14

牛頓法的總結

1.不能保證每次迭代函式值下降。

2.不能保證收斂。

3.學習率的設定-直線搜尋。

4.迭代終止的判定規則。達到最大迭代次數,或者梯度充分接近於0。

5.只能保證找到梯度為0的點,不能保證找到極小值點,更不能保證找到全域性極小值點。


問題15

為什麼不能用斜率截距式的方程?

無法表達斜率為正無窮的情況-垂直的直線。直線方程兩邊同乘以一個不為0的數,還是同一條直線。

機器學習和深度學習中值得弄清楚的一些問題


問題16

神經網路的正則化項和動量項的比較。

正則化項的作用:緩解過擬合,迫使引數儘可能小。以L2正則化為例:

機器學習和深度學習中值得弄清楚的一些問題

動量項的作用:加速收斂,減少震盪。計算公式為:

機器學習和深度學習中值得弄清楚的一些問題

機器學習和深度學習中值得弄清楚的一些問題

這相當於累積了之前的梯度資訊,並且呈指數級衰減。實現時,先加正則化項,計算動量項。

CVer
CVer

一個專注於計算機視覺方向的平臺。涉及目標檢測,影像分割,目標跟蹤,人臉檢測&識別,姿態估計,GAN和醫療影像等。

相關文章