背景:一直想要梳理一下自己對廣義線性模型的認識及思考,所有就有了這篇隨筆。
前提:
1、首先明確,介紹模型會按照模型的三要素來展開,即模型(模型的參數空間),策略(如何選擇最優模型,一般指代價函數/損失函數),算法(模型學習參數的方法,包括最優化方法等)
2、因為介紹的模型都是線性模型及其演化,有個概念必須要介紹
超平面:N維空間的N-1維子空間,比如當N=2時,超平面就是二維空間中的一條線
一、線性回歸
該算法主要擬合一個線性超平面,用於回歸任務(預測值為連續值)。舉個例子,房價預測任務,如果只考慮房屋面積,則訓練出的超平面及為二維空間關於面積和房價的直線。
模型:
若樣本用d維特征來表示,則有
使用向量的形式表示為
則模型的參數空間為w及b
策略:
最小化均方誤差
算法:
這里有兩種方法,
一種方法是算出參數的表達式,直接求解(該方法一般不使用,原因隨着特征或者樣本數量增長,計算的時間復雜度指數級增加),如下
另一種方法是最優化理論中的迭代方法,最常用的是梯度下降法,參數通過加上負梯度進行更新,
求梯度
使用梯度對參數進行更新(這里使用的是批梯度下降算法)
問題:當目標變量與特征之間為非線性關系,我們又該怎樣去擬合呢
二、多項式回歸
思路如下圖所示
模型整體和線性回歸相似,所以這里不展開討論
問題:線性回歸可以解決回歸問題,那針對分類問題,我們應該怎樣用線性模型去解決呢?
三、感知機
線性回歸在N維空間中找到了線性超平面去擬合數據,同時,該線性超平面也把特征空間划分成了兩份,據此,我們可以思考,這個超平面可以拿來進行分類嗎?當然可以,感知機就是這樣做的。
模型:
我們可以看到,感知機就是使用sign函數對線性回歸結果映射到了{-1,1}
策略:
算法:
問題:感知機可以用於分類,且能夠輸出預測樣本對應的類別,但清楚感知機原理的我們知道,雖然有可能N個樣本都被預測為A類,但實際他們屬於A類的可能性是不同的,具體表現在有的樣本點在特征空間中距離分類超平面比較近,有的則比較遠;鑒於此,我們能不能輸出某樣本屬於A類別的概率呢?
四、邏輯回歸(logistics regression)
模型:
感知機使用線性回歸模型作為分類超平面,將線性回歸結果映射到{-1,1}的離散集合上
其中紅框的值域為負無窮到正無窮,那我們能不能使用一個函數將其映射到[0,1]呢。邏輯回歸便是選擇了sigmoid函數進行映射,
該函數既可以實現區間映射,又具有單調可微的特性(方便使用迭代的最優化方法計算模型參數)
另外,對於“邏輯回歸”的名字,很多人覺得這是個“假名”,“誤導人”,認為它明明是分類算法卻叫做“回歸”
其實,他還真的和名字所述,是對“對數”進行了“回歸”
上一個公式可以變化為
定義y/1-y為事件發生的“幾率”,則邏輯回歸的是指是對幾率的對數進行回歸擬合。
策略:
采用極大似然估計
算法:
由於目標函數連續可導,根據凸優化理論,可以通過一階法(梯度下降等)或二階法(牛頓法)等進行參數迭代計算
問題:對於分類任務,感知機和邏輯回歸都只能處理線性可分的任務,那如何才能處理線性不可分的任務呢?而且按照之前感知機迭代求解分類超平面的方式,我們只是在眾多的符合條件的分類超平面中選擇了一個,那能否選擇一個相對更好一些的分類超平面呢?
五、支持向量機(SVM)
支持向量機通過以下思路解決了上述問題:
(1)針對分類超平面的選擇問題,SVM采用最大間隔的方法,使超平面距離兩側不同類別的點盡可能地遠
(2)針對在當前維度的特征空間下線性不可分的問題,我們對其進行維度擴張,在更高的維度對其進行線性划分。在當前維度線性不可分不代表在更高維度線性不可分。舉個例子,演員拍攝吻戲經常采用錯位的方式,在鏡頭所能看到的二維平面中,找不到一條直線將他們的嘴分割開來,但考慮三維空間,在一個現場工作人員看來,有大量的可選平面將他們兩人的嘴分開。再比如下圖中的異或問題
接下來又有另一個問題,我們已經用高維向量計算表示出了最大分類間隔,那怎樣去表示具體的高維向量呢,考慮到維度可能會很高,計算復雜度可能會很大,我們可以采用核函數來進行等價計算
支持向量機的核心就是以上兩點,更多細節可以看一下其他的博客或書籍,篇幅原因不再展開
問題:除了SVM之外,還有其他方法可以解決線性不可分問題嗎?
六、神經網絡
神經網絡通過特征之間的組合(多層),不僅能夠解決線性不可分問題,還能夠保留數據的時空結構(有位置關系的圖像數據和有時間先后關系的自然語言),再該類數據集上表現出強大的應用能力。
總之,當前kaggle上表現最好的兩類算法,梯度提升算法更加適合於表格類型結構的數據,需要進行特征工程,對少量樣本也能學習到較好的模型;神經網絡更加適合有時空結構的數據,不需要復雜的特征工程,是端對端的學習,但需要大量的訓練數據作為支撐。
個人認為神經網絡的強悍之處在於對時空數據的保留與學習能力+無處不在的特征組合。
神經網絡具體內容略多,不展開啦,本文重點梳理思路。
參考:
https://www.cnblogs.com/huangyc/p/9706575.html
https://blog.csdn.net/qq_36523839/article/details/82924804
李航-統計學習方法
周志華-機器學習