文章目錄
9.Linear Regression
9.1 Linear Regression Problem
回顧銀行發放信用卡的問題,之前的課程中通過是否給用戶發放信用卡引出了二元分類問題;本節課程通過發放給用戶多大額度的信用卡引出迴歸(regression)問題,主要是線性迴歸(linear regression)問題。
迴歸與分類是機器學習兩類不同的算法。迴歸與二元分類的區別是輸出空間不同,二元分類的輸出空間爲 $ y \in {+1,1} $,而回歸問題的輸出空間是實數域,即 。線性分類與線性迴歸對比如下圖所示。
以銀行發放信用卡爲例,輸入集合依然是用戶的特徵空間,如年齡,年收入等,可以使用與二元分類一致的表示方式 ,特徵空間的維度爲 (特徵集爲 維的 ,加常數項 ),因爲輸出集合的轉變導致迴歸問題的假設函數與二元分類中的有所不同,但思想一致,仍需考慮對每個輸入樣本的各個分量進行加權求和,因此最終目標函數 (含有噪音,使用 表示)的表示如9-1式所示。特徵空間與權重 的線性組合即爲假設函數 Hypothesis,記爲 ,如式9-2所示。
從式9-2可以看出,與二元分類假設函數只差了一個取正負號的 函數。通過下圖可以更直觀的理解線性迴歸。
上圖中,左圖爲輸入空間爲1維的線性迴歸表示,其中圓圈○表示輸入樣本點,藍色直線表示假設函數 ,連接圓圈與藍色直線之間的紅色線段表示樣本點到假設函數的距離,稱爲殘留誤差(residuals),亦可簡稱爲殘差。右圖是二維輸入空間的情況,也有類似表示。而設計算法的核心思想是使樣本集中的點更接近它,即使得總體殘留物差最小。
最常用的錯誤測量方式是基於最小二乘法,其目標是計算誤差的最小平方和對應的權重 ,即上節課介紹的squared error,公式爲下圖中式9-3所示, 如公式9-4所示。
在線性迴歸問題中,假設函數 與權值向量 是一一對應的,因此公式9-4通常表示爲權值向量 的形式,如上圖中公式9-5所示。同理 表示如公式9-6所示。注意:這裏使用的是含有噪音的形式,因此 服從聯合概率分佈P。
VC-demention 的限制可以約束各種情況的學習模型,當然迴歸類型的模型也被也受此約束,想要學習到知識,只需要尋找 足夠小便可以滿足 夠小的需求。
注意:最小二乘法可以解決線性問題和非線性問題。線性最小二乘法的解是
閉式解(closed form solution),也叫解析解(analytical solution),即可以根據具體的公式求解。線性最小二乘法的解爲 ,而非線性最小二乘法沒有閉式解(解析解),通常用迭代法求解。
習題1:
9.2 Linear Regression Algorithm
樣本數據誤差 是權重 的函數,因爲訓練樣本 和樣本標籤 均已知。所以問題也就轉化爲如何尋找 使得 最小。
爲了表示方便,將 的9-5式求和的形式轉化成向量與矩陣的形式,如下圖中 式9-7所示。
我們最初的目標是尋找最小的 ,現在可表示爲式9-8:
要求解此問題,需要先弄清楚左式的意義,其一維(d=1時)示意圖如下圖所示。
可以看出該函數爲連續(continuous)、可微(differentiable)的凸(convex)函數,此處的凸函數其實就是我們學的凹函數,老師講的跟我們學的有差別。尋找的最小的 類似於尋找谷底,即梯度(gradient)爲 0 的點。梯度計算公式如式9-9所示。
現在需要尋找 使 得 $ \nabla_w E_{in}(W_{LIN}) = 0$,其中 表示線性(linear)。
那麼應該如何尋找?首先,進一步將公式9-7轉化爲9-10:
注意上式中 A、b、c所代表的的含義,關於對向量求梯度可以這麼理解:
線性代數的美妙之處就在於此,如此的相似。梯度公式可以用式9-11表示:
令式9-11求梯度結果爲0,即可使得 最小。在輸入空間 與輸出向量 都爲已知的情況下,求解最佳的假設函數 可分爲兩種情況,第一種是 可逆的情況,令式9-11等於0,即可求解,結果如式9-12所示。
其中 表示矩陣 的僞逆(pseudo-inverse)。矩陣 在 時纔是方陣,僞逆矩陣與方陣的逆矩陣具有很多相似的性質,因此而得名。注意: 在大部分的情況下是可逆的,原因是在機器學習中, 通常滿足 $ N \gg d+1$ ,即樣本數量 遠大於樣本的特徵數量 ,因此在 中存在足夠的自由度使其可以滿足可逆的條件。
第二種情況是 不可逆的情況。在這種情況下,實際上可以得到許多滿足條件的解,只需要通過其他的方式求解出 ,選擇其中一個滿足條件 條件的解即可。
線性迴歸算法的求解過程如下:
- 首先通過已知的數據集 ,構建輸入矩陣 (樣本)與輸出向量 (樣本標籤);
- 然後通過構造的輸入矩陣和輸出向量,求解僞逆;
- 最後通過僞逆求得假設函數 ;
習題2:
9.3 Generalization Issue
本小節提出問題:上一小節中求解最佳假設函數 的算法,是否爲機器學習?或者說這種方法是否有很好的泛化能力?
回答不是的理由:求解只一步就完成了,不像前面章節中提到的學習方法需要很多步的過程,即解析解(analytical solution)或稱爲封閉解、閉式解(closed-form solution)。因此不同於PLA等通過迭代法求解 最小解的算法。
回答是的理由:更看重結果,這種直接求解方式是數學推導中的精確解,因此求出的 一定是的 最小解,符合求解條件,而且求解僞逆算法(高斯消元法)並非如公式展示中顯示的那樣,一步就可以得出最終結果,而是需要幾次循環迭代。而判斷是否發生機器學習過程最主要標準是學習到的 是否夠好。
通過改進VC-bound,也可以證明在線性迴歸問題中VC起到了很好的約束作用,即找到了好的 就可以保證 還不錯。下面通過一種更簡單的方法,證明線性迴歸問題是可以通過線下最小二乘法方法計算得到好的 和 。
公式 中, 表示期望,不斷的從整體樣本空間中抽取樣本集,計算其平均值; 表示關於; 表示數據中的噪音, 爲每次抽樣的樣本數量, 爲權值向量 的維度。
根據平均誤差的思想,改寫上節提到的公式。新的公式 中, I 爲 的單位矩陣, 被稱爲帽子矩陣,可以使用 的 H矩陣(hat matrix)表示。
通過幾何圖形更具體的瞭解 H矩陣 的物理意義。
圖中, 是N維空間的一個向量,粉色區域表示輸入矩陣 乘以不同權值向量 所構成的空間,根據所有 的取值,預測輸出都被限定在粉色的空間中。向量 就是粉色空間中的一個向量,代表預測的一種。 是實際樣本數據輸出值。
機器學習的目的是在粉色空間中找到一個 ,使它最接近真實的 ,那麼我們只要將 在粉色空間上作垂直投影即可,投影得到的 即爲在粉色空間內最接近 的向量。這樣即使平均誤差 最小。
從圖中可以看出, 是 的投影,已知 ,那麼 H 表示的就是將 投影到 的一種操作。圖中綠色的箭頭表示的向量 垂直於粉色區域。已知 ,那麼 就表示將 投影到 ,即垂直於粉色區域。
稱爲 的跡,值爲 。一個矩陣的跡(trace)等於該矩陣的所有特徵值(Eigenvalues)之和。簡單證明如下:
轉換的物理意義:原來有N個自由度的向量y,投影到 維的空間(代表一列的自由度,即單一輸入樣本的參數,如圖中粉色區域),而餘數剩餘的自由度最大隻有 種。
在存在noise的情況下,上圖變爲:
圖中,粉色空間的紅色箭頭是目標函數 ,虛線箭頭是 ,可見,真實樣本輸出 由 和 相加得到。由上面推導,已知向量 經過 轉換爲 ,而 與 是線性變換關係,由此推導出 經過 也能轉換爲 。則對於樣本平均誤差,有下列推導成立:
即:
證明有點複雜,可以簡單理解: 與 形式上只差了 項,從哲學上來說, 是看得到的樣本的平均誤差,如果有noise,把預測往noise那邊偏一點,讓 好看一點點,所以減去 項。同時,新的樣本 是看不到的;如果noise在反方向,那麼 就應該加上 項。 由 與 得到學習曲線:
其中在N趨於無窮大時, 與 兩者都會趨近於 的值,即 。
泛化誤差之間的差距:。
至此可以表明在線性迴歸中可以尋找到很好的 ,因此線性迴歸可以學習。
習題3:
9.4 Linear Regression for Binary Classification
之前介紹的Linear Classification問題使用的Error Measure方法用的是0/1 error,那麼Linear Regression的squared error是否能夠應用到Linear Classification問題?
首先對比二元線性分類與線性迴歸之間的差異,分別在三個部分進行對比,輸出空間、假設函數和錯誤衡量函數,如圖9-7所示。
從求解問題的難度考慮,二元分類的求解是一個NP-hard問題,只能使用近似求解的方式,而線性迴歸通過求解析解,求解方便,程序編寫也簡單。
因此考慮能否通過求解線性迴歸的方式求二元分類問題,因爲二元分類的輸出空間 屬於線性迴歸的輸出空間,即 ,其中數據集的標記大於零的表示+1,小於零的表示-1,通過線性迴歸求得的解析解 ,直接得出最優假設 。但是這種推理只符合直覺,而如何使用數學知識去說明這種方式的合理性呢?
觀察兩種錯誤衡量方式:
觀察兩公式的共同特點都含有 這一向量內積的形式,如果將 作爲橫軸,將 err 作爲縱軸,可以畫出下圖。
從圖中可知有下式成立:
根據之前的VC理論, 的上界滿足
在實際運用中,一般都將通過線性迴歸求得的解析解 作爲PLA或者pocket的初始值 ,達到快速求解的目的 。
從圖中可以看出,用 代替 ,仍然有上界,只不過是上界變得寬鬆了。也就是說用線性迴歸方法仍然可以解決線性分類問題,效果不會太差。二元分類問題得到了一個更寬鬆的上界,但是也是一種更有效率的求解方式。
習題4:
參考:
https://www.cnblogs.com/ymingjingr/p/4306666.html
https://github.com/RedstoneWill/HsuanTienLin_MachineLearning