從 Linear Regression 到 Logistic Regression
給定二維樣本資料集 \(D = \left\{ (\vec{x}_{1}, y_{1}), (\vec{x}_{2}, y_{2}), \ldots, (\vec{x}_{n}, y_{n}) \right\}\),其中 \(\vec{x}_{1}, \ldots, \vec{x}_{n} \in X\) 為 \(d\) 維向量(即 \(X\) 的size 為 \(n \times d\)), \(y_{1}, \ldots, y_{n} \in Y\),我們希望得到一條直線 \(Y = X\beta + \varepsilon\) 來刻畫 \(X\) 和 \(Y\) 之間的一般關系,由于真實資料集存在隨機項 \(\varepsilon_{i} \sim N(0, \sigma^{2})\),一般情況下這條直線不可能精準地穿過所有的資料點,因此我們希望它盡可能地貼近所有的資料點,如何定義這個 “盡可能地貼近”?數學上來說,我們通過求最小化均方誤差(MSE)來實作,即:
\[S = \mathop{\arg\min}_{\beta} || Y - \hat{Y}||^{2} = \mathop{\arg\min}_{\beta} || Y - X \beta ||^{2} \]
注意到運算式中的 \(X \beta\) 已經包含了直線的常數項,初學者可能會碰到的一個問題是,為什么上式中的最小化目標是 \(|| Y - X\beta ||^{2}\),而不是 \(|| Y - X\beta - \varepsilon||^{2}\)?原因是,直線 \(Y = X \beta + \varepsilon\) 是我們的 model ground truth,我們容忍隨機變數 \(\varepsilon \sim N(0, \sigma^{2})\) 作為誤差存在,而誤差作為隨機項無法消除,是資料集本身的特性,并非是模型的問題,我們通過解以上最優化問題,能夠得到一個最優引數 \(\beta^{*}\),反過來我們將 \(X\) 代入得到的模型 \(\hat{Y} = X \beta^{*}\),此時的 \(\hat{Y}\) 代表著預測值,它會與 ground truth \(Y\) 產生一個殘差 \(e = Y - \hat{Y}\),注意到 \(e\) 和 \(\varepsilon\) 在定義上是不同的,\(\varepsilon\) 是理論模型中的隨機變數,它是無法被描述為具體某個值的,而殘差 \(e\) 則是針對一系列已觀測的資料點根據線性回歸模型求出的具體值,
上述最優化問題的偏導求解如下:
\[\begin{align*} \frac{\partial S}{\partial \beta} & = \frac{\partial ||Y - X \beta||^{2}}{\partial \beta} \\ & = \frac{\partial (Y - X \beta)^{T} (Y - X \beta)}{\partial \beta} \\ & = -X^{T} (Y - X \beta) + \big[ (Y - X \beta)^{T} (-X) \big]^{T} \\ & = -2 X^{T}(Y - X \beta) \end{align*} \]
令 \(\frac{\partial S}{\partial \beta} = 0\),即:
\[\begin{align*} & \frac{\partial S}{\partial \beta}= -2 X^{T} (Y - X \beta) = 0 \\ & \implies X^{T} Y = X^{T} X \beta \\ & \implies \beta^{*} = (X^{T} X)^{-1} X^{T} Y \end{align*} \]
因此,我們擬合出的直線 \(\hat{Y} = X \beta\) 可以直接寫作:
\[\hat{Y} = X \beta = X (X^{T} X)^{-1} X^{T} Y \]
Logistic Regression
這和 Logistic Regression 有何聯系呢?Logistic Regression 是一個二分類模型,對于每一個 \(\vec{x} \in X\) 我們希望根據 \(\vec{x}\) 得到其對應的 label \(y \in \left\{ 0, 1 \right\}\),在離散空間上取值,一個思想是,我們設計一個中間函式 \(g(z) \in \left\{ 0, 1 \right\}\),例如:
\[g(z) = \begin{cases} 0, \qquad z \leq 0 \\ 1, \qquad z > 0 \end{cases} \]
如此,我們便將連續的 \(z\) 轉換為二元取值 \(g(z)\),再采取類似的方法優化 \(g\) 中的引數,使得預測結果貼近真實的 \(Y\),然而如上設計的 \(g\) 并不連續,故而不可微,這并不符合廣義線性模型(GLM)的條件,我們希望這么一個中間函式 \(g\),它的取值在 \((0, 1)\) 上,并且單調可微,因此便有了 sigmoid 函式的提出:
\[\sigma(z) = \frac{1}{1 + e^{-z}} \]
不難判斷出對于 \(\forall z \in \mathbb{R}: ~ \sigma(z) \in (0, 1)\),且 \(\sigma(z)\) 在 \(\mathbb{R}\) 上單調遞增且可微,我們令:
\[\begin{align*} & y = \sigma(z) = \frac{1}{1 + e^{-z}}\\ & z = \vec{w}^{T} \vec{x} + b \\ \implies & y = \frac{1}{1 + e^{-(\vec{w}^{T} \vec{x} + b)}} \end{align*} \]
我們發現,對于輸入任意的 \(\vec{x} \in X\),sigmoid 函式先將 \(\vec{x}\) 轉化為一個取值在 \((0, 1)\) 上的標量,除此之外還有:
\[\begin{align*} & \ln \frac{y}{1-y} = \ln \big( e^{\vec{w}^{T} \vec{x} + b} \big) = \vec{w}^{T}\vec{x} + b \\ \implies & \ln \frac{y}{1-y} = \vec{w}^{T}\vec{x} + b \end{align*} \]
這樣等式的右邊又回到 Linear Regression 的簡單結構,
Maximum Likelihood Estimation
我們會發現存在這么一個問題,即,資料集最終的 label 取值在 \(\left\{ 0, 1 \right\}\) 中,為離散值,而經由 sigmoid 計算得到的值卻在 \((0, 1)\) 間連續取值,這個問題的解決辦法是,我們不再將 sigmoid 函式生成的值(\(y\))視作 label,而是視作 “對于給定的 \(\vec{x}\),其 label 為 \(y=1\)” 的概率,即:
\[y = P(y=1 ~ | ~ \vec{x}) \\ \ln \frac{P(y=1 ~ | ~ \vec{x})}{1 - P(y=1 ~ | ~ \vec{x})} = \ln \frac{P(y=1 ~ | ~ \vec{x})}{P(y=0 ~ | ~ \vec{x})} = \vec{w}^{T} \vec{x} + b \]
注意到以上第一個式子中等式兩邊的 \(y\) 的含義并不相同,等式左側的 \(y\) 代表著 “對于給定的 \(\vec{x}\) 其 label 為 \(1\) 的概率”,而等式右邊的 \(y\) 為真實 label \(\in \left\{ 0, 1 \right\}\),
我們會發現,由 total probability:\(P(y=1 ~ | ~ \vec{x}) + P(y=0 ~ | ~ \vec{x}) = 1\),\(\frac{P(y=1 ~ | ~ \vec{x})}{P(y=0 ~ | ~ \vec{x})}\) 在 \(P(y=1 ~ | ~ \vec{x})\) 較大(\(P(y=0 ~ | ~ \vec{x})\) 較小)時較大,極端情況下將趨于正無窮,對數值也將趨于正無窮;相反,在 \(P(y = 1 ~ | ~ \vec{x})\) 較小(\(P(y=0 ~ | ~ \vec{x})\) 較小)時較小,極端情況下將趨于 \(0\),對數值將趨于負無窮,當模型無法判斷對于一個 \(\vec{x}\) 其 label 更偏向于 \(0\) 還是 \(1\) 時,此時 \(P(y=1 ~ | ~ \vec{x}) = P(y=0 ~ | ~ \vec{x}) = 0.5\),使得對數值為 \(0\),因此,在這種假設下,當訓練好的模型計算的 \(\vec{w}^{T} \vec{x} + b > 0\),模型將認為其 label 為 \(1\);相反,當 \(\vec{w}^{T} \vec{x} + b < 0\) 時模型認為其 label 為 \(0\),
在這種情況下,顯然:
\[\begin{align*} & P(y=1 ~ | ~ \vec{x}) = \frac{1}{1 + e^{-(\vec{w}^{T} \vec{x} + b)}} = \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} \\ & P(y=0 ~ | ~ \vec{x}) = 1 - P(y=1 ~ | ~ \vec{x}) = \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \\ \end{align*} \]
我們希望對于擁有真實 label \(y_{i} = 1\) 的所有 \(\vec{x}\),模型得到的 \(P(y = 1 ~ | ~ \vec{x}; \vec{w}, b)\) 越大越好,即:
\[\quad \prod\limits_{\vec{x_{i}} ~ s.t. ~ y_{i}=1} P(y = 1 ~ | ~ \vec{x_{i}}; \vec{w}, b) \]
同理,對于擁有真實 label \(y_{i} = 0\) 的所有 \(\vec{x}\),模型得到的 \(P(y=0 ~ | ~ \vec{x}; \vec{w}, b)\) 越大越好,即:
\[\prod\limits_{\vec{x_{i}} ~ s.t. ~ y_{i}=0} P(y=0 ~ | ~ \vec{x_{i}}; \vec{w}, b) = \prod\limits_{\vec{x_{i}} ~ s.t. ~ y_{i}=0} \Big(1 - P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) \Big) \]
如何將以上兩個目標統一起來(將兩個式子寫入一個式子中,使得該式擺脫對下標 \(y_{i}\) 的依賴)呢?即,我們希望建立一個式子 \(P(y = y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b)\),表示對于任意 \(\vec{x_{i}} \in X\) 以及真實 label \(y_{i} \in \left\{ 0, 1 \right\}\),模型預測成功(\(y = y_{i}\))的概率,當這個綜合運算式被建立后,我們便可以通過最大似然估計(MLE)求出在訓練集上最優的引數 \(\vec{w}, b\),即:
\[\max \quad \prod\limits_{i} P(y = y_{i} ~ | ~ \vec{x_{i}}, \vec{w}, b) \]
周志華的《機器學習》里提到這么一種構建方法:
\[P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b) = y_{i} P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) + (1 - y_{i}) P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b) \]
這樣構建能夠滿足我們的目標,即:當 \(y_{i} = 1\) 時,\(P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b) = P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b)\);當 \(y_{i} = 0\) 時,\(P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b) = P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b)\),但是,這樣會使得 MLE 求解變得復雜:
\[\begin{align*} \max\limits_{\vec{w}, b} L(\vec{w}, b) & = \max\limits_{\vec{w}, b} \quad \prod\limits_{i} \big( y_{i} P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) + (1 - y_{i}) P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b) \big) \\ & = \max\limits_{\vec{w}, b} \quad \prod\limits_{i} \big( y_{i} \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} + (1 - y_{i}) \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \big) \end{align*} \]
哪怕取對數似然:
\[\begin{align*} \max\limits_{\vec{w}, b} l(\vec{w}, b) & = \max\limits_{\vec{w}, b} \quad \ln \Big( \prod\limits_{i} \big( y_{i} P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) + (1 - y_{i}) P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b) \big) \Big) \\ & = \max\limits_{\vec{w}, b} \quad \ln \Big( \prod\limits_{i} \big( y_{i} \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} + (1 - y_{i}) \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \big) \Big) \\ & = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \ln \big( y_{i} \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} + (1 - y_{i}) \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \big) \\ & = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \ln \frac{y_{i} e^{\vec{w}^{T} \vec{x} + b} + 1 - y_{i}}{1 + e^{\vec{w}^{T} \vec{x} + b}} \\ & = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( \ln (y_{i} e^{\vec{w}^{T} \vec{x} + b} + 1 - y_{i}) - \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) \big) \end{align*} \]
并不能直接得到書中的目標結果:
\[\min\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( -y_{i} (\vec{w}^{T} \vec{x} + b) + \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) \big) \]
一個更好的 \(P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b)\) 設計方法是:
\[P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b) = P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{y_{i}} \cdot P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{1 - y_{i}} \]
這種形式也能滿足我們上述的要求,并且我們對引數求解 MLE:
\[\begin{align*} \max\limits_{\vec{w}, b} l(\vec{w}, b) & = \max\limits_{\vec{w}, b} \quad \ln \prod\limits_{i} \big( P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{y_{i}} \cdot P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{1 - y_{i}} \big) \\ & = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \ln \big( P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{y_{i}} \cdot P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{1 - y_{i}} \big) \\ & = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( y_{i} \ln P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) + (1 - y_{i}) \ln P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b) \big) \\ & = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( y_{i} \ln \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} + (1 - y_{i}) \ln \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \big) \\ & = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( y_{i} (\vec{w}^{T} \vec{x} + b) - y_{i} \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) + (y_{i} - 1) \ln (1 + e^{\vec{w}^{T}\vec{x} + b}) \big) \\ & = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( y_{i} (\vec{w}^{T} \vec{x} + b) - \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) \big) \\ & = \min\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( - y_{i} (\vec{w}^{T} \vec{x} + b) + \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) \big) \end{align*} \]
即為書中所求,
本文來自博客園,作者:車天健,轉載請注明原文鏈接:https://www.cnblogs.com/chetianjian/p/17532510.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/556710.html
標籤:其他
上一篇:【OpenAI】ChatGPT函式呼叫(Function Calling)實踐
下一篇:返回列表
