迴歸問題的前提:
1) 收集的資料
2) 假設的模型,即一個函式,這個函式裡含有未知的引數,通過學習,可以估計出引數。然後利用這個模型去預測/分類新的資料。
假設 特徵 和 結果 都滿足線性。即不大於一次方。這個是針對 收集的資料而言。
收集的資料中,每一個分量,就可以看做一個特徵資料。每個特徵至少對應一個未知的引數。這樣就形成了一個線性模型函式,向量表示形式:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/9508ccac0a19400d6aa6222350180e3c2332f963839b38ebc8fe7519f4e6df4c.png)
向量預設為列向量,此處的X表示一個列向量,其中內容為(x1,x2,x3.......,xn),用以表示收集的一個樣例。
向量內容為設定的係數(w1,w2.....,wn),也就是要通過學習得到的係數,轉置後成為行向量。兩者相乘後得到預測打分h。
這個就是一個組合問題,已知一些資料,如何求裡面的未知引數,給出一個最優解。 一個線性矩陣方程,直接求解,很可能無法直接求解。有唯一解的資料集基本是不存在的。基本上都是解不存在的超定方程組(未知數的個數小於方程的個數)。因此,需要退一步,將引數求解問題,轉化為求最小誤差問題,求出一個最接近的解,這就是一個鬆弛求解。
求一個最接近解,直觀上,就能想到,誤差最小的表達形式。仍然是一個含未知引數的線性模型,一堆觀測資料,其模型與資料的誤差最小的形式,模型與資料差的平方和最小:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/d9ff3ce147f2be10b24470c5a1a298a8a9ac05aefcf65ba1bdc5b7445be4fbe5.png)
這就是損失函式(cost function)的來源,文中之後我們稱之為目標函式。接下來,就是求解這個函式最小值的方法,有最小二乘法,梯度下降法等(利用這些方法使這個函式的值最小)。
**********最小二乘法:************
多元函式求極值的方法,對θ求偏導,讓偏導等於0,求出θ值。當θ為向量時,需要對各個θi求偏導計算。
為了便於理解,可以先看當資料集中的樣本只有一個特徵時的情況,參看之前的最小二乘法博文,可以直接得出theta的值(原先博文中表示為beta)。當含有多個特徵時,需要進行矩陣計算從而求出各個θi:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/d80d137dde06812e1202f326acd8fcfa326be0dfd1b62f0fad6ae3f8b35e984c.png)
如上圖中將目標函式拆解為兩個式子相乘的形式(
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/5d422c2453aa089bfa4d5418b9ddb3a1ec34de9f1ee0be43a09c541e372c1593.png)
)其中的X表示獲取的資料集轉換成的矩陣,與列向量
相乘後得到預測打分(列向量θ),與真實打分y向量想減後平方。上圖中的下半部分對於拆解後的目標函式進行求導,令求導後的式子=0,如下圖:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/c7bfbdf90e5cadf2911ad10fa9aa2788663036324f7e931911d97e1525386973.png)
由此可以得到向量θ的值。
其中補充說明:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/d5cf35e2c522bead0a94d288be8e995d44c12d56e03e43d03c895145b884c70b.png)
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/bdb704bc8e48c96c95fd59724979f97219e6216ced31d61bfbca637627338c47.png)
*****************梯度下降法:**************************
分別有梯度下降法,批梯度下降法,增量梯度下降。本質上,都是偏導數,步長/最佳學習率,更新,收斂的問題。這個演算法只是最優化原理中的一個普通的方法,可以結合最優化原理來學,就容易理解了。(梯度下降中用到的目標函式不一定是之前提到的那個距離最小函式,在之後的邏輯迴歸中,要用到梯度上升,在那裡細述)
******************極大似然法************************************
極大似然的核心思想為:
當從模型總體隨機抽取n組樣本觀測值後,最合理的引數估計量應該使得從模型中抽取該n組樣本觀測值的概率最大。打個比方:一個袋子中有20個球,只有黑白兩色,有放回的抽取十次,取出8個黑球和2個白球,計算袋子裡有白球黑球各幾個。那麼我會認為我所抽出的這個樣本是被抽取的事件中概率最大的。p(黑球=8)=p^8*(1-p)^2,讓這個值最大。極大似然法就是基於這種思想。
極大似然估計的定義如下:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/c90fa719aad20ddbf99ecbf9e107349c019f7cf7a12a4edfe0967b3f0b587ae5.jpg)
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/041e92b57f33160dd11362fb701f17ac2487cfad3ea886d0382d3cf044a5f1b0.jpg)
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/9ed21b993d268d3f66946a820aed8137f4b9c06b9e0d69c0811fe16f2e09a5f8.jpg)
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/13d96fb95bb63fa32fdd8524b0e0d1931fb4d2a60530fd0707c4f6f01b108987.jpg)
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/5b44b909e71ae06e52ae56c68f926b7915110aceb25f24fdd7153508600eb369.jpg)
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/ffe2e71c404d7baf84a8f2a8bd764572f62a23d18d661e783b71c107c312f2d4.jpg)
求解方法同樣採用多元函式求極值法。
2、邏輯迴歸
邏輯迴歸與線性迴歸的聯絡、異同?
邏輯迴歸的模型 是一個非線性模型,sigmoid函式,又稱邏輯迴歸函式。但是它本質上又是一個線性迴歸模型,因為除去sigmoid對映函式關係,其他的步驟,演算法都是線性迴歸的。可以說,邏輯迴歸,都是以線性迴歸為理論支援的。只不過,線性模型,無法做到sigmoid的非線性形式,sigmoid可以輕鬆處理0/1分類問題。
在另一篇博文(logistic)中有對邏輯迴歸的詳細說明。在邏輯迴歸中,重新定義了cost function,
另外它的推導含義:仍然與線性迴歸的最大似然估計推導相同,最大似然函式連續積(這裡的分佈,可以使伯努利分佈,或泊松分佈等其他分佈形式),求導,得損失函式。
(參看logistic那篇博文)
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/a79b5697b28f804f3ca2640e486eea424a6939dc511d3a7a5caef4b241abb311.png)
3、一般線性迴歸(這部分尚未做過多研究)
線性迴歸 是以 高斯分佈 為誤差分析模型; 邏輯迴歸 採用的是 伯努利分佈 分析誤差。
而高斯分佈、伯努利分佈、貝塔分佈、迪特里特分佈,都屬於指數分佈。
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/fafafb22a8352daa52725936657dce67828cb567db6fd8d2dc600329402d933a.png)
而一般線性迴歸,在x條件下,y的概率分佈 p(y|x) 就是指 指數分佈.
經歷最大似然估計的推導,就能匯出一般線性迴歸的 誤差分析模型(最小化誤差模型)。
softmax迴歸就是 一般線性迴歸的一個例子。
有監督學習迴歸,針對多類問題(邏輯迴歸,解決的是二類劃分問題),如數字字元的分類問題,0-9,10個數字,y值有10個可能性。
而這種可能的分佈,是一種指數分佈。而且所有可能的和 為1,則對於一個輸入的結果,其結果可表示為:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/f8d925625727a74e935326921d9376f0af60ea2139dd368205991151d866f4be.png)
引數是一個k維的向量。
而代價函式:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/d74a672720a7bbfc125f4329de053dd5ababd147e00eb3fd5eca6b0bcb6a649f.png)
是邏輯迴歸代價函式的推廣。
而對於softmax的求解,沒有閉式解法(高階多項方程組求解),仍用梯度下降法,或L-BFGS求解。
當k=2時,softmax退化為邏輯迴歸,這也能反映softmax迴歸是邏輯迴歸的推廣。
線性迴歸,邏輯迴歸,softmax迴歸 三者聯絡,需要反覆回味,想的多了,理解就能深入了。
4. 擬合:擬合模型/函式
由測量的資料,估計一個假定的模型/函式。如何擬合,擬合的模型是否合適?可分為以下三類
合適擬合
欠擬合
過擬合
看過一篇文章(附錄)的圖示,理解起來很不錯:
欠擬合:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/1aceff2a90b8acbc2d4cd20bde3ed83fa6c1491ccb4ae6cb3222edfdd85e3d2f.png)
合適的擬合
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/0c9892577aa4ad48cbcaf160a255139116fb6dfa0dedff1d525ef805d284abd0.png)
過擬合
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/e0e782f62d81ca6d65bb52bab648f168ae7d99ebb5a8492c0377d32d89289a70.png)
過擬合的問題如何解決?
問題起源?模型太複雜,引數過多,特徵數目過多。
方法: 1) 減少特徵的數量,有人工選擇,或者採用模型選擇演算法
http://www.cnblogs.com/heaad/archive/2011/01/02/1924088.html (特徵選擇演算法的綜述)
2) 正則化,即保留所有特徵,但降低引數的值的影響。正則化的優點是,特徵很多時,每個特徵都會有一個合適的影響因子。
7. 錯誤函式/代價函式/損失函式:
線性迴歸中採用平方和的形式,一般都是由模型條件概率的最大似然函式 概率積最大值,求導,推匯出來的。
統計學中,損失函式一般有以下幾種:
1) 0-1損失函式
L(Y,f(X))={1,0,Y≠f(X)Y=f(X)
2) 平方損失函式
L(Y,f(X))=(Y−f(X))2
3) 絕對損失函式
L(Y,f(X))=|Y−f(X)|
4) 對數損失函式
L(Y,P(Y|X))=−logP(Y|X)
損失函式越小,模型就越好,而且損失函式 儘量 是一個凸函式,便於收斂計算。
線性迴歸,採用的是平方損失函式。而邏輯迴歸採用的是 對數 損失函式。 這些僅僅是一些結果,沒有推導。
為防止過度擬合的模型出現(過於複雜的模型),在損失函式裡增加一個每個特徵的懲罰因子。這個就是正則化。如正則化的線性迴歸 的 損失函式:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/7f7087b0912c020b6d20a74160a94b43d0c39f08d754d68b6a63299459c9afbd.png)
lambda就是懲罰因子。
正則化是模型處理的典型方法。也是結構風險最小的策略。在經驗風險(誤差平方和)的基礎上,增加一個懲罰項/正則化項。
線性迴歸的解,也從
θ=(XTX)−1XTy
轉化為
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/d45a41a01f4b731991cede5c3dbbe26facf1d57eaba179432d481e0918db962b.png)
括號內的矩陣,即使在樣本數小於特徵數的情況下,也是可逆的。
邏輯迴歸的正則化:
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/3d5dc661eb0377751ffd4543cae3f3f224bd94a19b8f4f8cee6e20c2e336b978.png)
從貝葉斯估計來看,正則化項對應模型的先驗概率,複雜模型有較大先驗概率,簡單模型具有較小先驗概率。這個裡面又有幾個概念。
什麼是結構風險最小化?先驗概率?模型簡單與否與先驗概率的關係?
邏輯迴歸logicalistic regression 本質上仍為線性迴歸,為什麼被單獨列為一類?
其存在一個非線性的對映關係,處理的一般是二元結構的0,1問題,是線性迴歸的擴充套件,應用廣泛,被單獨列為一類。
而且如果直接應用線性迴歸來擬合邏輯迴歸資料,就會形成很多區域性最小值。是一個非凸集,而線性迴歸損失函式 是一個 凸函式,即最小極值點,即是全域性極小點。模型不符。
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/15b8d114bd75f019b436bb877ea2ca74200e5aa102c585e887dff4d0bb9e6670.png)
若採用 邏輯迴歸的 損失函式,損失函式就能形成一個 凸函式。
![線性迴歸,邏輯迴歸的學習(包含最小二乘法及極大似然函式等)](https://i.iter01.com/images/ec95337c6bc6bd456c86af83f98dada9d0ca3412b94956ba9119aa701307588e.png)
多項式樣條函式擬合
多項式擬合,模型是一個多項式形式;樣條函式,模型不僅連續,而且在邊界處,高階導數也是連續的。好處:是一條光滑的曲線,能避免邊界出現震盪的形式出現(龍格線性)
http://baike.baidu.com/view/301735.htm
以下是幾個需慢慢深入理解的概念:
無結構化預測模型
結構化預測模型
什麼是結構化問題?
三種演算法的分佈對應 exponential loss(指數 損失函式), hinge loss, log loss(對數損失函式), 無本質區別。應用凸上界取代0、1損失,即凸鬆弛技術。從組合優化到凸集優化問題。凸函式,比較容易計算極值點。