聲明:本博客整理自博友@zhouyong計算廣告與機器學習-技術共享平臺,尊重原創,歡迎感興趣的博友查看原文。html
符號定義git
這裏定義《深刻淺出ML》系列中涉及到的公式符號,如無特殊說明,符號含義均按下述定義解釋:面試
符號 | 含義 |
---|---|
\(x_j\) | 第\(j\)維特徵 |
\(x\) | 一條樣本中的特徵向量,\(x=(1, x_1, x_2, \cdots, x_n)\) |
\(x^{(i)}\) | 第\(i\)條樣本 |
\(x_{j}^{(i)}\) | 第\(i\)條樣本的第\(j\)維特徵 |
\(y^{(i)}\) | 第\(i\)條樣本的結果(label) |
\(X\) | 全部樣本的特徵全集,即\(X=(x^{(1)},x^{(2)}, \cdots, x^{(m)})^T\) |
\(Y\) | 全部樣本的label全集,即\(Y=(y^{(1)},y^{(2)}, \cdots, y^{(m)})^T\) |
\(w\) | 參數向量,即\(w=(w_0, w_1, \cdots, w_n)\) |
\(w_j\) | 第\(j維\)參數 |
迴歸技術在整個數據科學體系中佔有很是重要的位置,迴歸分析是統計學中的相關分析知識體系中重要組成部分。在機器學習中,迴歸、分類和標註共同構成了監督學習技術。算法
監督學習(supervised learning)是機器學習在工業界應用最廣的一個領域分支。在學術界中也是研究最多的領域之一。你們都知道的數據挖掘十大經典算法中,監督學習技術佔據6席。框架
在介紹具體的迴歸技術以前,有必要探討下如下幾個問題。迴歸分析是什麼?爲何要使用迴歸分析呢?機器學習
什麼是迴歸分析?分佈式
迴歸分析是解決預測建模任務時的一種方法,用於研究自變量與因變量之間的關係。該方法主要用於預測、時間序列建模以及尋找變量之間的因果關係。 舉例,rash driving和number of road accidents by a driver經過迴歸技術能夠進行更好的研究。ide
迴歸分析是用於建模和數據分析的一個重要工具。這裏,咱們用曲線/直線去擬合數據點,但願全部數據點到曲線或直線的距離差別之和最小(後面會給出公式量化)。函數
上圖是某一階段的股票指數波動示意圖,用一條(紅色)曲線擬合真實數據。工具
爲何要使用迴歸分析?
正如上面描述,迴歸分析多用於創建兩個或多個變量之間的關係表達。咱們經過一個例子理解這個問題:
假如,你想根據當前的經濟環境預估企業的營收增加狀況。公司最近的財報代表營收增加大約是經濟增加的2.5倍。利用這個關係,就能夠根據當前和過去的營收和經濟數據,預測公司將來的營收增加狀況。
使用迴歸分析有諸多好處,好比:
還能夠代表多個自變量(特徵)對因變量(結果)的影響程度(根據feature對應權重大小).
同時,迴歸分析也能夠去比較兩個變量之間的影響,好比促銷活動的次數與價格波動的影響。這些有助於幫助市場研究人員/數據分析師/數據科學家去消除或評估最佳的一組變量用於創建預測模型。
迴歸技術分類
有不少種不一樣的迴歸技術可作預測。根據目標變量的個數、因變量的類型以及迴歸函數的形狀這三個維度對迴歸技術作一個歸類。咱們從迴歸家族中拿出兩個經典的迴歸技術——線性迴歸和邏輯斯蒂迴歸,詳細闡述其技術原理和應用場景。
一睹爲快,簡要的看下兩者在變量上的差別:
方法 | 自變量(特徵) | 因變量(結果) | 關係 |
---|---|---|---|
線性迴歸 | 連續或離散 | 連續實數 | 線性 |
Logistic迴歸 | 連續或離散 | (0,1)之間連續值 | 非線性 |
線性迴歸是最被普遍應用的建模技術之一。顧名思義,就是用一組變量(或特徵)的線性組合,來創建與結果的關係。即指望用一條最佳的直線(被稱爲迴歸線)來表示因變量(\(Y\))和一個或多個自變量(\(X\))之間的關係。
模型表達
$$
y(x, w) = w_0 + w_1 x_1 + \cdots + w_n x_n \qquad (ml.1.1.1)
$$
其中,\(x_1,x_2,\cdots,x_n\)表示自變量(集合);\(y\)是因變量;\(w\)爲參數向量;\(w_i\)表示對應自變量(特徵)的權重,\(w_0\)是偏倚項(又稱爲截距)。
關於參數\(w\):
- 在物理上能夠這樣解釋:在自變量(特徵)之間相互獨立的前提下,\(w_i\)反映自變量\(x_i\)對因變量\(y\)的影響程度,\(w_i\)越大,說明\(x_i\)對結果\(y\)的影響越大。
- 經過每一個自變量(特徵)前面的參數,能夠很直觀的看出哪些特徵份量對結果的影響比較大。
- 在統計中,\(w_1,w_2,\cdots,w_n\)稱爲偏回歸係數,\(w_0\)稱爲截距。
若是令\(x_0=1, y(x,w)=h_{w}(x)\), 能夠將公式\((ml.1.1.1)\)寫成向量形式,即:
$$
h_{w}(x) = \sum_{i=0}^{n} w_i x_i = w^T x \qquad(ml.1.1.2)
$$
其中,\(w=(w_0, w_1, \cdots, w_n)\),\(x=(1, x_1, x_2, \cdots, x_n)\) 均爲向量,\(w^T\)爲\(w\)的轉置。
公式\((ml.1.1.2)\)中,假設特徵空間與輸入空間\(x\)相同。
準確的講,模型表達式要創建的是特徵空間與結果之間的關係。在一些應用場景中,須要將輸入空間映射到特徵空間,而後建模. 定義映射函數爲\(\phi(x)\),所以咱們能夠把公式\((ml.1.1.2)\)寫成更通用的表達方式:
$$
h_w(x) = w^T \phi(x)
$$特徵映射相關技術,包括特徵哈希、特徵學習、Kernel等,在後面的章節中會詳細介紹。
參數學習準則
公式\((ml.1.1.2)\)中的參數向量\(w\)是\(n+1\)維,每一個參數的取值是實數集合,也就是說參數向量\(w\)在\(n+1\)維實數空間中取值結果有無窮種可能。
那麼,如何利用一個規則或機制幫助咱們評估求得的參數\(w\),而且使獲得的線性模型效果最佳?直觀地認爲,若是求得的參數\\(w\)線性求和後,獲得的結果\(h_{w}(x)\)與真實值\(y\)之差越小越好。
這是咱們須要引入一個函數用來衡量\(h_{w}(x)\)表示真實值\(y\)好壞的程度,該函數稱爲損失函數(loss function,也稱爲錯誤函數)。數學表示以下:
$$
\begin{align}
& J(w) = \frac{1}{2} \sum_{i=1}^{m} \left(h_{w}(x^{(i)}) - y^{(i)} \right)^2 \\\
& \min_{w} \quad J(w)
\end{align} \qquad (ml.1.1.3)
$$
這個損失函數用的是\(x^{(i)}\)的估計值\(h_{w}(x^{(i)})\)與真實值\(y^{(i)}\)之差的平方和。從優化的角度講,公式\((ml.1.1.3)\)是待優化的目標函數(Object Function)(若是不考慮其它問題,諸如過擬合等),可將其轉化爲最優化問題求參數。
如何調整參數\(w\)使得\(J(w)\)取得最小值?方法有不少,這裏先介紹兩種比較經典的方法,即最小二乘法和梯度降低法。
最小二乘法(Least Square)
最小二乘法是一種徹底數學描述的方法,直接給出閉式解結果。它用\(X\)表示觀測數據中的特徵矩陣,結果表示成\(Y\)向量,目標函數還是\((ml.1.1.3)\),那麼\(w\)可直接用下面公式表示:
$$
w = (X^T X)^{-1} X^T Y \qquad \qquad (ml.1.1.4)
$$
公式來源:
\(\qquad X^T X w = X^T Y \)
梯度降低法(Gradient Descent)
因爲最小二乘法直接進行矩陣運算(求逆等),儘管能夠獲得全局最優解。可是在互聯網海量數據背景下的迴歸分析或預測問題,其計算效率較低,甚至沒法完成(涉及超大矩陣的求逆運算)。
而基於梯度法求解參數是一個不錯的選擇,緣由主要有2點:
若是目標函數是凸函數,批梯度法可保證能獲得最優解,隨機梯度法也能近似獲得最優解。
基於梯度法求解迴歸問題的目標函數極值問題,將在《最優化算法》系列中詳細講解。
最小二乘法與梯度降低法求解異同
相同點
- 本質相同:兩種求解方法都是在給定已知數據(自變量\(x\),因變量\(y\))的前提下對因變量\(y\)算出一個估值函數(\(x與y\)關聯表達式),而後對給定的新輸入\(x\)經過估值函數得出\(y\)。
- 目標相同:都是在已知數據的框架下,使得估算值與真實值的之差的平方和儘量小。
不一樣點
實現方法與結果不一樣:最小二乘法直接經過創建等價關係找到全局最小,非迭代法。而梯度降低法做爲迭代法的一種,先給定一個參數向量初始值,而後向目標函數降低最快的方向調整(即梯度方向),在若干次迭代以後找到全局最小。
相比最小二乘法,隨機梯度降低法的一個缺點是:在接近極值時收斂速度變慢,而且該方法對初始值的選取比較敏感。
通常地,機器學習中不一樣的模型會有相應的目標函數。而回歸模型(尤爲是線性迴歸類)的目標函數一般用平方損失函數做爲優化的目標函數(即真實值與預測值之差的平方和)。爲何要選用偏差平方和做爲目標函數呢?答案能夠從機率論中的中心極限定理、高斯分佈等知識中找到。
中心極限定理
目標函數的機率解釋須要用到中心極限定理。中心極限定理自己就是研究獨立隨機變量和的極限分佈爲正態分佈的問題。
中心極限定理公式表示:
設\(n\)個隨機變量\(X_1, X_2, \cdots, X_n\)相互獨立,均具備相同的數學指望與方差,即\(E(X_i) = \mu\); \(D(X_i) = \sigma^2\)。令\(Y_n\)爲隨機變量之和,有
$$
Y_n = X_1 + X_2 + \cdots + X_n \qquad (n.ml.1.1.1)
$$$$
Z_n = \frac {Y_n - E(Y_n)} {\sqrt{D(Y_n)}} = \frac {Y_n - n \mu} {\sqrt{n} \sigma} \rightarrow \mathcal{N}(0,1) \qquad(n.ml.1.1.2)
$$稱隨機變量\(Z_n\)爲\(n\)個隨機變量\(X_1, X_2, \cdots, X_m\)的規範和。
中心極限定理定義:
設從均值爲\(\mu\)、方差爲\(\sigma^2\)(有限)的任意一個整體中抽取樣本量爲\(n\)的樣本,當\(n\)充分大時,樣本均值的抽樣分佈[\(\frac{1}{n} Y_n\)]近似服從於均值爲\(\mu\)、方差爲\(\sigma^2\)的正態分佈。
高斯分佈
假設給定一個輸入樣例\(x^{(i)}\)根據公式\((ml.1.1.1)\)獲得預測值\(w^{T}x^{(i)}\)與真實值\(y^{(i)}\)之間存在偏差,即爲\(\epsilon^{(i)}\)。那麼,它們之間的關係表示以下:
$$
y^{(i)} = w^T x^{(i)} + \epsilon^{(i)} \qquad (ml.1.1.5)
$$
而這裏假設偏差\(\epsilon^{(i)}\)服從標準高斯分佈是合理的。解釋以下:
迴歸模型的最終目標是創建自變量\(x\)與結果\(y\)之間的關係(經過函數表達式),但願經過\(x\)能較準確的表示結果\(y\)。
而在實際應用場景中,很難甚至不可能把致使\(y\)結果的全部變量(特徵)都找出來,並放到迴歸模型中。那麼模型中存在的\(x\)一般認爲是影響結果\(y\)最主要的變量集合(又稱因子, 在ML中叫作特徵集)。根據中心極限定理,把那些對結果影響比較小的變量(假設獨立同分布)之和認爲服從正態分佈是合理的。
示例說明偏差服從高斯分佈是合理的:
Andrew Ng《機器學習》課程第1節的線性迴歸例子中,根據訓練數據創建房屋的面積\(x\)與房屋的售價\(y\)之間的函數表達。
它的數據集中把房屋面積最爲主要的變量。除此以外咱們還知道房屋所在的地段(地鐵、學區、城區、郊區),周邊交通情況,當地房價,樓層,採光,綠化面積,… 等等諸多因素會影響房價。
在實際中,因數據收集問題可能拿不到全部影響房屋售價的因素(變量),能夠假設多個因素變量相互獨立,根據中心極限定理,認爲變量之和服從高斯分佈。即:
$$
\epsilon^{(i)} = y^{(i)} - w^T x^{(i)} \rightarrow \mathcal{N}(0,\sigma^2) \qquad(n.ml.1.1.3)
$$
那麼\(x\)和\(y\)的條件機率可表示爲:
$$
p(y^{(i)} | x^{(i)}; w) = \frac{1}{\sqrt{2\pi} \sigma} \exp {\left(- \frac{(y^{(i)} - w^T x^{(i)})^2}{2 \sigma^2}\right)} \qquad(ml.1.1.6)
$$
極大似然估計與損失函數極小化等價
根據公式\((ml.1.1.6)\)估計獲得一條樣本的結果機率,模型的最終目標是但願在所有樣本上預測最準,也就是機率積最大,這個機率積就是似然函數。優化的目標的函數即爲似然函數,表示以下:
$$
\max_{w} \quad L(w) = \prod_{i=1}^{m} \frac{1}{\sqrt{2\pi} \sigma} \exp \left(- \frac{(y^{(i)} - w^T x^{(i)})^2} {2 \sigma^2}\right) \qquad(ml.1.1.7)
$$
對\(L(x)\)取對數,可得:
$$ \max_{w} \; \mathcal{l}(w) = -m \cdot \log \sqrt{2\pi} \sigma - \frac{1}{2\sigma^2} \sum_{i=1}^{m} \left(y^{(i)} - w^T x^{(i)}\right)^2 \qquad(ml.1.1.8) $$
因爲\(n,\sigma\)變量爲常數,所以公式\((ml.1.1.8)\)等價於:
$$
\min_{w} \; \frac{1}{2} \sum_{i=1}^{m} \left(y^{(i)} - w^T x^{(i)}\right)^2 \qquad(ml.1.1.9)
$$
咱們能夠發現,通過最大似然估計推導出來的待優化的目標函數\((ml.1.1.9)\)與平方損失函數\((ml.1.1.3)\)是等價的。所以,能夠得出結論:
線性迴歸 偏差平方損失極小化與極大似然估計等價。其實在機率模型中,目標函數的原函數(或對偶函數)極小化(或極大化)與極大似然估計等價,這是一個帶有廣泛性的結論。
在本系列《第02章:深刻淺出ML之Entropy-Based家族》和李航老師的《統計學習方法》中,談到最大熵模型時,都給出了對偶函數極大化與極大似然估計等價的結論。
爲何是條件機率?
由於咱們但願預測值與真實值更接近,這就意味着但願求出來的參數\(w\),在給定輸入\(x\)的狀況下,獲得的預測值等於真實值的可能性越大越好。而\(w, x\)均是前提條件,所以用條件機率\(p(y|x; w)\)表示。即\(p(y|x; w)\)越大,越能說明估計的越準確。(固然也不能一味地只優化該條件機率,還要考慮擬合過分以及模型的泛化能力問題,這部分在《第07章:深刻淺出ML之統計學習理論》中詳細闡述。)
介紹邏輯斯蒂迴歸模型以前,首先看一個並不常見的機率分佈——邏輯斯蒂分佈。
邏輯斯蒂分佈
設\(X\)是連續隨機變量,若是隨機變量\(X\)對應的機率密度函數\(f(x)\)和累積分佈函數\(F(x)\)分別是:
$$
f(x) = \frac{e^{- \frac{x-\mu}{s}}} {s(1+e^{- \frac{x-\mu}{s}})^2} \qquad\quad(ml.1.1.10)
$$
$$
F(x) = P(X \leq x) = \int_{-\infty}^{x} f(x) dx = \frac {1} {1+e^{- \frac{x-\mu}{s}}} \qquad(ml.1.1.11)
$$
那麼,\(X\)服從邏輯斯蒂分佈。其中,\(\mu\)爲位置參數,\(s>0\)爲形狀參數。
累積分佈函數屬於邏輯斯蒂函數,其圖形是一條\(S\)型曲線(又稱爲Sigmoid曲線)。該曲線的特色是:以點\((\mu, \frac{1}{2})\)爲中心對稱,即知足:
$$
F(-x+\mu) - \frac{1}{2} = -F(x-\mu) + \frac{1}{2} \qquad(n.ml.1.1.4)
$$曲線在中心附近增加較快,在兩端增加速度較慢。從密度函數和分佈函數圖形都能看出,形狀參數\(s\)的值越小,曲線在中心附近增加的越快。
前面介紹的線性迴歸,其應用場景大可能是迴歸分析,通常不用在分類問題上。緣由能夠歸納爲如下兩個:
而本節要介紹的邏輯斯蒂迴歸模型(Logistic Regression Model,簡稱LR模型)是一種可用來分類的模型。在這裏,自變量\(X\)取值爲連續值或離散值,因變量\(Y\)取值爲1或0。
LR模型表達式
LR模型表達式爲參數化的邏輯斯蒂(累積)分佈函數(默認參數\(\mu=0,s=1\))即:
$$
h_w(x) = \frac{1}{1+e^{-w^T \cdot x}} \qquad(ml.1.1.12)
$$
\(h_w(x)\)做爲事件結果\(y=1\)的機率取值。這裏,\(x \in R^{n+1}, y \in \{1,0\}\),\(w \in R^{n+1}\)是權值向量。其中權值向量\(w\)中包含偏置項,即\(w=(w_0, w_1, \cdots, w_n)\), \(x=(1, x_1, \cdots, x_n)\)。
理解LR模型
對數概率
一個事件發生的概率(odds)是指該事件發生的機率與該事件不發生的機率的比值。若是事件發生的機率是\(p\),那麼該事件的概率爲\(\frac{p}{1-p}\),該事件的對數概率(log odds,用logit函數表示)是:
$$
logit(p) = \log \frac{p}{1-p} \qquad(ml.1.1.13)
$$
對LR而言,根據公式\((ml.1.1.12)\)和\((ml.1.1.13)\)可得:
$$
\log \frac{h_w(x)}{1-h_w(x)} = w^T x \qquad(ml.1.1.14)
$$
即在LR模型中,輸出\(y=1\)的對數概率是輸入實例\(x\)的線性函數。
函數映射
除了從對數概率的角度理解LR外,從函數映射也能夠理解LR模型:
考慮對輸入實例\(x\)進行分類的線性表達式\(w^Tx\),其值域爲實數域(\(x \in R^{n+1}\),\(w \in R^{n+1}\))。經過LR模型表達式\((ml.1.1.13)\)能夠將線性函數\(w^T x\)的結果映射到\((0,1)\)區間,取值表示爲結果爲1的機率(在二分類場景中)。
線性函數的值愈接近正無窮\(\infty\),機率值就越接近1;反之,其值越接近負無窮,機率值就越接近0。這樣的模型就是LR模型。
邏輯斯蒂迴歸本質上仍是線性迴歸,只是特徵到結果的映射過程當中加了一層函數映射(即sigmoid函數),即先把特徵/變量線性求和,而後使用sigmoid函數將線性和約束至\((0,1)\)之間,結果值用於二分或迴歸預測。
LR模型——機率解釋
LR模型多用於解決二分類問題,如廣告是否被點擊(是/否)、商品是否被購買(是/否)等互聯網領域中常見的應用場景。
可是實際場景中,咱們又不把它處理成「絕對的」分類問題,而是用其預測值做爲事件發生的機率。
這裏從事件、變量以及結果的角度給予解釋。
咱們所能拿到的訓練數據統稱爲觀測樣本。問題:樣本是如何生成的?
一個樣本能夠理解爲發生的一次事件,樣本生成的過程即事件發生的過程。對於0/1分類問題來說,產生的結果有兩種可能,符合伯努利試驗的機率假設。所以,咱們能夠說樣本的生成過程即爲伯努利試驗過程,產生的結果(0/1)服從伯努利分佈。這裏咱們假設結果爲1的機率爲\(h_{w}(x)\),結果爲0的機率爲\(1-h_{w}(x)\)。
那麼,對於第\(i\)個樣本,機率公式表示以下:
$$P(y^{(i)}=1|x^{(i)}; w) = h_{w}(x^{(i)}) \qquad (ml.1.1.15)$$
$$P(y^{(i)}=0|x^{(i)}; w) = 1 - h_{w}(x^{(i)}) \qquad (ml.1.1.16)$$
將公式\((ml.1.1.15)\)和\((ml.1.1.16)\)合併在一塊兒,可得第\(i\)個樣本正確預測的機率:
$$
P(y^{(i)}|x^{(i)}; w) = (h_{w}(x^{(i)}))^{y^{(i)}} \cdot (1 - h_{w}(x^{(i)}))^{1-y^{(i)}} \qquad (ml.1.1.17)
$$
上式是對一條樣本進行建模的數據表達。對於多條樣本,假設每條樣本生成過程獨立,在整個樣本空間中(\(m\)個樣本)的機率分佈爲:
$$P(Y|X; w) = \prod_{i=1}^{m} \left( (h_{w}(x^{(i)}))^{y^{(i)}} \cdot (1 - h_{w}(x^{(i)}))^{1-y^{(i)}} \right) \qquad(ml.1.1.18)$$
經過極大似然估計(Maximum Likelihood Evaluation,簡稱MLE)方法求機率參數。具體地,下面給出了經過隨機梯度降低法(Stochastic Gradient Descent,簡稱SGD)求參數。
參數學習算法
公式\((ml.1.1.18)\)不只能夠理解爲在已觀測的樣本空間中的機率分佈表達式。若是從統計學的角度能夠理解爲參數\(w\)似然性的函數表達式(即似然函數表達式)。參數在整個樣本空間中的似然函數可表示爲:
$$
\begin{align}
L(w) & = P(Y|X; w) \\\
& = \prod_{i=1}^{m} P(y^{(i)}|x^{(i)}; w) \\\
& = \prod_{i=1}^{m} \left( (h_{w}(x^{(i)}))^{y^{(i)}} \cdot (1 - h_{w}(x^{(i)}))^{1-y^{(i)}} \right)
\end{align} \quad\qquad (ml.1.1.19)
$$
爲了方便參數求解,對公式\((ml.1.1.19)\)取對數,可得:
$$
\begin{align}
l(w) & = logL(w) \\\
& = \sum_{i=1}^{m} \left( y^{(i)} \cdot \log (h_{w}(x^{(i)})) + (1-y^{(i)}) \cdot \log(1- h_{w}(x^{(i)})) \right)
\end{align} \qquad (ml.1.1.20)
$$
最大化log似然函數,就是最小化交叉熵偏差(Cross Entropy Error)。
先不考慮累加和\(\sum_{i=1}^{m}\),針對每一個參數\(w_j\)求偏導:
$$
\begin{align}
\frac{\partial}{\partial w_j} l(w) & = \left( y \frac{1}{h_{w}(x)} - (1-y) \frac{1}{1-h_{w}(x)}\right) \frac{\partial}{\partial w_j} h_{w}(x) \\\
& = \left( \frac{y-h_{w}(x)}{h_{w}(x) \cdot (1 - h_{w}(x))}\right) \cdot h_{w}(x) (1 - h_{w}(x)) \cdot \frac{\partial}{\partial w_j} w^T x \\\
& = \left( y-h_{w}(x) \right) \cdot \frac{\partial}{\partial w_j} w^T x \\\
& = \left( y-h_{w}(x) \right) \cdot x_{j}
\end{align} \qquad (ml.1.1.21)
$$
最後,經過掃描樣本,迭代下述公式可求得參數:
$$
w_{j+1} = w_j + \alpha \cdot (y^{(i)} - h_{w}(x^{(i)})) \cdot x_{j}^{(i)} \qquad (ml.1.1.22)
$$
公式\((ml.1.1.22)\)中的\(\alpha\)表示學習率(learning rete,又稱學習步長)。
除此以外,還有Batch GD,共軛梯度,擬牛頓法(LBFGS),ADMM分佈學習算法等均可用於求解參數,這些將在《最優化算法》系列中的對應章節中詳細介紹。
基於梯度法求目標函數極值,另外一種推導方式:
$$
\begin{align}
l(w) & = \log L(w) \\\
& = \sum_{i=1}^{m} \left( y^{(i)} \cdot \log (h_{w}(x^{(i)})) + (1-y^{(i)}) \cdot \log(1- h_{w}(x^{(i)})) \right) \\\
& = \sum_{i=1}^{m} \left( y^{(i)} \cdot \underline { \log {\frac {h_w(x^{(i)})}{ 1-h_w(x^{(i)})}} } + \log (1-h_w(x^{(i)}))\right) \\\
& = \sum_{i=1}^{m} \left(y^{(i)} \cdot w^T x^{(i)} - \log (1 + \exp(w^Tx^{(i)})) \right)
\end{align} \qquad(n.ml.1.1.5)
$$一樣的,對每一個參數求偏導,推導結果爲:
$$
\frac{\partial}{\partial w_j} l(w) = y^{(i)} x_j^{(i)} - \frac {\exp({w^Tx^{(i)}})} {1+\exp({w^Tx^{(i)}})} x_j^{(i)} = \left( y^{(i)} - h_{w}(x^{(i)}) \right) \cdot x_{j}^{(i)} \qquad(n.ml.1.1.6)
$$
進行模型參數估計以後,假設參數\(w\)的極大似然估計值是\(w^{*}\),那麼咱們學到的邏輯斯諦迴歸模型爲:
$$
P(Y=1 | x) = \frac{exp(w^{*} \cdot x)}{1+exp(w^{*} \cdot x)}
$$$$
P(Y=0 | x) = \frac{1}{1+exp(w^{*} \cdot x)}
$$上述的推導模型是二項分類模型,用於二類分類,能夠將其推廣爲多項邏輯斯蒂迴歸模型(multi-nominal logistic regression model),用於多分類,假設離散隨機變量\(Y\)的取值集合是\({1,2, \cdots ,K}\),那麼多項邏輯斯諦迴歸模型是
$$
P(Y=k | x) = \frac{exp(w_{k}^{*} \cdot x)}{1+\sum_{k=1}^{K}exp(w_k^{*} \cdot x)}
$$$$
P(Y=K | x) = \frac{1}{1+\sum_{k=1}^{K}exp(w_k^{*} \cdot x)}
$$
Sigmoid函數性質:
①. \(h_w(-x) = 1 - h_w(x)\)
②. \(h_w^{\prime}(x) = (1-h_w(x)) \cdot h_w(x)\)推導:
\(
\begin{align}
h^{\prime}(x) & = (\frac {1}{1+e^{-x}})^{\prime} = - \frac {1}{(1+e^{-x})^2} \cdot (e^{-x})^{\prime} \\\
& = \frac {e^{-x}} {(1+e^{-x})^2} = \frac {e^{-x}} {1+e^{-x}} \cdot \frac{1} {1+e^{-x}} \\\
& = (1-h(x)) \cdot h(x)
\end{align}
\)
重要考察點
注:這部分公式推導是LR模型的核心部分,在機器學習相關面試中,LR模型公式推導是多是考察頻次最高的一個點。打算尋求數據挖掘、機器學習等職位的朋友,建議能作到公式的熟練推導。
交叉熵偏差
其實從公式\((ml.1.1.20)\)中不難看出,LR模型的對數似然函數對應的就是交叉熵的表達式。在給定樣本空間下,對於條件機率\(P(y|x)=h_w(yx)\)來講,其似然函數表達式爲:
$$
\max_{h} likelihood(h) \propto \prod_{i=1}^{m} h_w(y^{(i)} x^{(i)}) \qquad (ml.1.1.23)
$$
上式表示函數\(h\)的可能性,即\(likelihood(h)\)。該式越大,說明\(h\)越逼近真實目標函數\(f\)。將其轉化爲求極小值問題(添加負號),並寫成\(\log\)形式爲:
$$
\begin{align}
& \min_w \quad \frac{1}{m} \sum_{i=1}^{m} - \log (h_w(y^{(i)} x^{(i)})) \qquad\qquad(1) \\\
\Longrightarrow \; & \min_w \quad \frac{1}{m} \sum_{i=1}^{m} \underline{ \log (1+\exp(-y^{(i)} w^T x^{(i)})) } \quad\;\,(2)\\\
\Longrightarrow \; & \min_w \quad \underbrace { \frac{1}{m} \sum_{i=1}^{m} \underline{err(w,y^{(i)},x^{(i)})} }_{E_{in}(w)} \qquad\qquad\quad\, (3) \\\
\end{align} \qquad (ml.1.1.24)
$$
公式\((1)\)添加了\(\frac{1}{m}\)是爲了寫成Loss Function的長相(對於給定數據來講,其做爲一個常數,對求解無妨);公式\((3)\)表達式又稱爲交叉熵損失(Cross-Entropy Error)。
值得說明的是:不止LR模型的損失函數是交叉熵損失,幾乎全部的條件機率模型對應的Loss Function都是交叉熵損失。
LR模型是廣義線性模型的特例
當目標值分佈服從伯努利分佈時
LR模型是最大熵模型的特例
最大熵模型是基於最大熵原理(見《第2章:深刻淺出ML之Entropy Methods家族》),優化條件機率\(p(y|x)\)熵,並經過對偶函數極大化或極大似然估計獲得的機率模型。當\(y\)知足二項分佈時,獲得的機率模型即爲\(P(y=1|x)\).
LR模型知足指數族分佈
LR模型與指數族分佈也存在密切的關係
指數族分佈的歸一化形式(Canonical Form):
$$
p(y|\eta) = h(y) \cdot g(\eta) \cdot \exp \{ \eta^T \mu(y) \} \qquad(n.ml.1.1.7)
$$前面說道,LR模型對應的結果只有兩種可能,屢次獨立同分布實驗服從二項分佈。LR模型是指數族分佈中\(y\)服從二項分佈的特例。
本節主要是想聊聊LR模型在工業界中的應用。絕不擴張地說,LR模型是工業界應用最多的模型之一,無論是在各類預估問題場景(如推薦、廣告系統中的點擊率預估,轉化率預估等),亦或是分類場景(如用戶畫像中的標籤預測,判斷內容是否具備商業價值,判斷點擊做弊等等),咱們發現都會出現LR的身影。
總結髮現,LR模型自身的特色具有了應用普遍性。總結以下:
但在工業界中典型的大規模學習任務-如廣告的CTR預估問題。除了預估模型自身外,還要考慮模型可否解決學習任務、業務場景中出現的問題。好比:
從模型的角度,過擬合和稀疏性問題能夠在優化求解中的LR損失函數基礎上加上正則項來解決:
loss function + \(\underline{ \lambda |w|_{2}^{2}}\):解決過擬合
loss function + \(\underline{ \lambda |w|_{1}}\):解決稀疏性,好比Google13年出的預估方法-FTRL模型,雖然是在線學算法,但主要是爲了解決預估時的稀疏性問題。
超大規模稀疏LR模型學習問題,LR模型自身是作不到的。這個時候須要咱們爲它選擇一個學習算法和分佈式系統。在分佈式環境下,約束優化求解理想方案之一-ADMM算法(交叉方向乘子法),可用於求解形式爲"loss function + 正則項"
目標函數極值問題。
關於ADMM,這裏給出簡單的歸納:
注:LR模型用於解決大規模預估問題仍是有不少挑戰的。好比上面提到的幾個問題,固然都不是預估模型的問題,而是一個大規模機器學習任務所面臨的問題:
- 特徵離散化表示後(尤爲是ID類特徵),特徵會很是稀疏,學習時須要考慮稀疏性問題;
- 訓練數據集相比樣本的高維度特徵向量表示來講,顯得「捉襟見肘」時,學習時要考慮過擬合問題;
- 如何在更多的訓練數據集和更高的數據特徵維度上,藉助
分佈式框架+優化求解算法框架
解決超大規模離散LR模型學習問題?上面列出了3個比較重要的問題。2016年Q2時,我會結合以前的研究、學習和工做經驗,整理出一個《廣告點擊率預估》這樣一個專題,重點討論裏面的核心問題、解決方案以及相關工具。
廣義線性迴歸
其實,迴歸家族的模型能夠統稱爲廣義上的線性迴歸。若是把\(w\)看做是參數,而\(x_i, x_i x_j, x^2_i\)等看做參數的常量(他們可直接從線性觀測數據中計算獲得),如此上面介紹的迴歸模型均可以看做是參數\(w\)的線性函數。
線性迴歸與線性關係
線性迴歸當然能夠表達線性關係,可是也能夠表達非線性關係。如<廣義線性迴歸>中解釋的那樣,若是先把每一個特徵變量映射到一個函數(如\(x_i \rightarrow x^2_i\)),而後再進行線性計算。如此,線性迴歸能夠表達特徵與結果之間的非線性關係。
廣義線性迴歸既能夠表達線性關係,也能夠表達非線性關係。
下一步將完善一下模型,並附上相關的指標結果。