公式推导
线性回归
线性回归的表达式为: f ( x ) = w T x b f(x)=w^Tx b f(x)=wTx b 给定这类问题 X X X,模型可以输出预测(映射)值 y y y,为了统一参数,我们可以使用参数 b b b放到 w w w内部,即设 x ′ = [ 1 x ] T x^{'} = [1\quad x]^T x′=[1x]T,则 w ′ = [ b w ] T w^{'}=[b\quad w]^T w′=[bw]T,进而方程化简为 f ( x ′ ) = w ′ T x ′ f(x^{'})=w^{'T}x^{'} f(x′)=w′Tx′。在本文中默认使用这种简化的方式作为线性回归的公式。
逻辑回归
为了让模型能够处理分类问题,我们将线性回归的输出再做为输入送到sigmoid
函数中 σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e−x1,他的函数图像如下: 将线性回归的表达式带入即可得逻辑回归的表达式: y = σ ( f ( x ) ) = 1 1 + e − w T x y=\sigma(f(x))=\frac{1}{1+e^{-w^Tx}} y=σ(f(x))=1+e−wTx1 从上图可以看出,逻辑回归在定义域大于0时取值接近1,而在定义域小于0是取值接近0,我们可利用该特性来处理二分类问题(多分类的情况后文会介绍处理策略),对于某个二分类问题,也就是 y ∈ { 0 , 1 } y\in\{
{0,1}\} y∈{
0,1},我们把采集到的任何一个样本看作一个事件,事件发生的概率记为 p p p,则有: p = P y = 1 = 1 1 + e − w T x p=P_{y=1}=\frac{1}{1+e^{-w^Tx}} p=Py=1=1+e−wTx1
逻辑回归的损失函数
有了概率表达式我们就可以来计算损失函数了。 由于 y y y可取值只有 { 0 , 1 } \{ {0,\;1}\} { 0,1},因此: P ( y ∣ x ) = { p , y = 1 1 − p , y = 0 P(y|x)=\begin{cases}p, & y=1\\1-p, & y=0\end{cases} P(y∣x)={ p,1−p,y=1y=0 上面的公式可以统一起来表示为: P ( y ∣ x ) = p y ( 1 − p ) ( 1 − y ) P(y|x)=p^y(1-p)^{(1-y)} P(y∣x)=py(1−p)(1−y) 对于某个数据集,假设我们一共采集到 N N N个样本 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} { (x1,y1),(x2,y2),...,(xN,yN)},那么对于所有这些样本发生的概率为: P 总 = P ( y 1 ∣ x 1 ) ∗ P ( y 2 ∣ x 2 ) ∗ . . . ∗ P ( y N ∣ x N ) = ∏ n = 1 N p y n ( 1 − p ) 1 − y n P_总=P(y_1|x_1)*P(y_2|x_2)*...*P(y_N|x_N)\\ ~=\prod_{n=1}^Np^{y_n}(1-p)^{1-y_n} P总=P(y1∣x1)∗P(y2∣x2)∗...∗P(yN∣xN) =n=1∏Npyn(1−p)1−yn
由于连乘比较复杂,我们对该表达式取对数,同时,这里的 P 总 P_总 P总越接近1表示模型越准确,那么在前面加一个负号,就可以得到损失函数(损失越小越好): J ( w ) = − l n ( P 总 ) = − l n ( ∏ n = 1 N p y n ( 1 − p ) 1 − y n ) = − ∑ n = 1 N y n l n p + ( 1 − y n ) l n ( 1 − p ) J(w)=-ln(P_总)=-ln(\prod_{n=1}^Np^{y_n}(1-p)^{1-y_n})\\=-\sum_{n=1}^Ny_nlnp+(1-y_n)ln(1-p) J(w)=−ln(P总)=−ln(∏n=1Npyn(1−p)1−yn)=−∑n=1Nynlnp+(1−yn)ln(1−p) 这便是我们的损失函数。
梯度求解
为了使用梯度下降优化模型,还需要求出损失函数的梯度,下面我们来求解上述 J ( w ) J(w) J(w)函数对 w w w的梯度。 ▽ J ( w ) = − ∑ n = 1 N ( y n l n ′ ( p ) + ( 1 − y n ) l n ′ ( 1 − p ) ) = − ∑ n = 1 N ( y n 1 p p ′ + ( 1 − y n ) 1 1 − p ( 1 − p ) ′ ) = − ∑ n = 1 N ( y n ( 1 − p ) x n + ( 1 − y n ) p x n ) = − ∑ n = 1 N ( y n − p ) x n \bigtriangledown J(w)=-\sum_{n=1}^N(y_nln^{'}(p)+(1-y_n)ln^{'}(1-p)) \\ ~=-\sum_{n=1}^{N}(y_n\frac{1}{p}p^{'}+(1-y_n)\frac{1}{1-p}(1-p)^{'})\\ ~=-\sum_{n=1}^{N}(y_n(1-p)x_n+(1-y_n)px_n)\\ ~=-\sum_{n=1}^{N}(y_n-p)x_n ▽J(w)=−n=1∑N(ynln′(p)+(1−yn)ln′(1−p)) =−n=1∑N(ynp1