【机器学习基础】深入理解Logistic Loss与回归树
Logistic Function
Logistic Function最常見的定義形式如下:
其中,,實際上這個公式起源于伯努利分布,代表概率,關于其起源在此暫不贅述。
公式有一個重要的性質,即:
并且公式的形式在邏輯回歸二分類中被廣泛應用,其中通常代表預測樣本屬于正例的概率。假設代表由多個特征組成的樣本向量,代表由每個特征的系數構成的向量,代表樣本的類別標記,代表正例,代表反例,則
如果反例標記用表示,則預測正例樣本的公式和預測反例樣本的公式可以集成為一個公式:
其中g = 1代表正例,代表反例。
二進制交叉熵與Logistic Loss
假設是hypothesis function,而L是loss function,訓練有監督學習器的時候實際上都是如下的優化問題:
我們已經知道如果是二分類器的話,且輸出是概率形式,那么我們可以選擇二進制交叉熵來作為loss function,比如假設就是logistic function
用二進制交叉熵作為loss function,正例標記為,反例標記為,則
假設是另外一個hypothesis function,且,把帶入式可以得到
顯然式和式是等價的,即
式的Loss形式叫作針對的Logistic Loss,也就是說針對的二進制交叉熵損失等價于針對的Logistic損失,而實際上是通過Logistic function的映射,即
也就是說不論這個hypothesis function是什么形式,針對使用Logistic Loss就可以用于二分類問題,因為針對使用Logistic Loss就等價于針對使用二進制交叉熵損失。
如果是用于二分類的深層神經網絡,這里的則可以看成是神經網絡的最后一個Sigmoid輸出神經元,如果仍然看作是原始輸入樣本的話,則可以看成是從輸入層到最后一個隱層整體構成的復合函數。
著名的梯度提升機(GBM, Gradient Boosting Machine)實際上可以對任何學習器進行Boosting操作,Boosting是一種集成學習方法,已經證明任何弱學習器都有提升為強學習器的潛能,因此Boosting通常指把弱學習器提升為強學習器的提升方法。另外,這里的Gradient是指Gradient Descent,不是中文字面意思的“梯度值提升”,“提升”是指Boosting這種集成學習范式。
GBM最常見的是GBDT(Gradient Boosting Decision Tree),因為GBDT實際上用的是基于CART中的回歸樹的加性模型,所以GBDT也常叫作GBRT(Gradient Boosting Regression Tree),也就是說GBDT中的弱學習器是經典的Breiman的CART中的Regression Tree,我們知道GBDT既可以用于回歸也可以用于分類,那么回歸樹是如何用于分類的呢?
這里只討論二分類的情況,多分類情況暫不贅述。由式知道如果就是回歸樹的hypothesis function,也就是說就是回歸樹的葉子結點的輸出,那么通過Logistic function映射成后再對使用二進制交叉熵損失就可以做二分類任務了,由式知道也就是說直接對回歸樹使用Logistic Loss就可以做二分類任務了。
回歸樹回歸分類原理
CART(Classification and Regression Tree)是最早由Breiman等人提出的一類決策樹算法,其中Classification Tree使用基尼系數作為分裂準則,在此暫不贅述分類樹細節,Regression Tree采用啟發式算法尋找最優分裂節點,這里推導一下Loss function分別采用Squared Loss和Logistic Loss的回歸和分類的數學原理。
采用Squared Loss的回歸樹回歸
關于CART回歸樹的原理推導可以參考李航的《統計學習方法》,我這里試圖用更通俗易懂,更詳細嚴謹的方式進行解讀和推導。
首先假設hypothesis function為,也即回歸樹為,樣本向量為,是樣本的真實target值,則回歸樹的回歸預測公式為
其中為樣本編號,為回歸樹第個樣本的估計值。
Squared Loss形式記為
其中為樣本編號為的真實target值。
CART回歸樹為二叉樹,其關鍵在于如何在特征空間中選擇最優分裂節點進行多次二分叉分裂。用表格的形式更容易進行通俗易懂的解釋,為了嚴謹這里先對張量的概念做一個通俗易懂的理解。
通俗理解張量:向量是一維張量,矩陣(表格)是二維張量,而像魔方那樣每個小方塊代表一個數據,所有數據存儲在一個“三維”空間中的是三維張量(比如三通道的RGB彩色圖片),當然還有更高維的張量,在各種編程語言中就對應著高維數組,實際上在物理學中對張量有嚴格的定義,由于其概念過于抽象,這里暫不贅述。
現在假設訓練數據都存放在一張二維表格中,這里的“二維”指張量的二維。假設表格有列,行,前列為特征,最后一列為target ,每一行的前列構成維樣本向量,前列所有數據叫作特征空間(輸入空間),最后一列叫作輸出空間。回歸樹用啟發式方法在特征空間中尋找最優分裂節點對表格進行多次劃分,意思就是遍歷每個特征的取值,根據每個特征的取值作為判斷依據(分裂節點)把表格一分為二,一分為二后的兩份表格的這個特征的所有取值要么都大于等于這個判斷依據(分裂節點),要么都小于等于這個判斷依據(分裂節點)。第一次把原始表格進行一分為二劃分的節點叫作根(root)節點,后面用同樣的方法把“子表格”進行劃分的節點都叫中間節點。那么如何判斷哪個特征的哪個值是當前的最優分裂節點?
我們知道原始表格最終一定會被劃分成多個子表格,每個子表格實際上是由多個判據值(分裂節點)所構成的規則下的樣本的集合,這些樣本同屬一類,高度相似,因此可以假設每個子表格里(也就是符合這套規則的所有樣本)的所有樣本對應同一個估計值,假設最終總子表格數為,用代表相應的子表格(樣本集合),相應的估計值就為,也即
也就是說回歸樹的hypothesis function為
其中
根據式最小化Squared Loss
令式等于,有
由式知道在Squared Loss下每個內部的最優估計值就是內部所有樣本對應的平均值。那么每一次分裂要如何選擇最優分裂節點并一步步迭代呢?
我們已經知道每一次分裂相當于把表格一分為二,并且已經知道了在Squared Loss下分裂之后每個子表格對應的估計值取子表格內部所有樣本對應的target值的平均值就可以使得子表格內部的Squared Loss最小,也就是說只要每次分裂后的兩個子表格的最小Squared Loss值相加最小即可,采用的方法就是遍歷每個特征及其每一個取值,嘗試把每一個特征下的具體的值作為分裂節點,分裂成兩個子表格后計算兩個子表格的最小Squared Loss的和,如果這個和在遍歷了所有可能的分裂節點后是最小的,那么這一次分裂就選當前的分裂節點。
具體地,假設是第個特征,是特征的某個取值,把和分別作為切分變量和切分點,則可以把當前表格切分成如下兩個表格:
和
計算下式尋找最優切分變量和最優切分點,
由(21)式可以知道和時可以使得式在當前分裂點最小,也就是說只要遍歷所有可能的分裂點(j,s),找到全局最小的即可。后續每一次表格的一分為二都采取同樣的方法,直到滿足停止條件。采用Squared Loss的回歸樹也叫最小二乘回歸樹。
采用Logistic Loss的回歸樹二分類
由式已經知道了Logistic Loss由Logistic function和Binary Entropy Loss推導而來,而Logistic function也叫Sigmoid function,所以Logistic Loss也叫Sigmoid Binary Entropy Loss,它可以把回歸模型用于二分類任務。
Logistic Loss最常用的形式是式的label 的形式,如果label ,則其形態為
在式中已經知道了回歸樹的hypothesis function,這里嘗試采用Logistic Loss作為loss function來推導其訓練過程。以下推導Logistic Loss采用式的形態,所以取label 。那么訓練分類器也就是如下的優化問題
令(27)式等于0,則
分裂思想與前述的最小二乘回歸樹一樣,只不過Loss采用Logistic loss,采用(31)式的計算值。實際上由(30)式已經可以看出回歸樹的每個葉節點的權值都輸入Logistic function把輸出值映射到(0,1)后的值就是里面的均值。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 本站qq群704220115,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【机器学习基础】深入理解Logistic Loss与回归树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10 edge默认浏览器设置更改教
- 下一篇: Win10系统如何退出桌面磁贴功能