锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

逻辑回归的推导及实现

时间:2022-12-16 00:00:00 y2p连接器8px连接器cn

公式推导

线性回归

线性回归的表达式为: 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)=wTx。在本文中默认使用这种简化的方式作为线性回归的公式。

逻辑回归

为了让模型能够处理分类问题,我们将线性回归的输出再做为输入送到sigmoid函数中 σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1,他的函数图像如下:
image.png
将线性回归的表达式带入即可得逻辑回归的表达式: y = σ ( f ( x ) ) = 1 1 + e − w T x y=\sigma(f(x))=\frac{1}{1+e^{-w^Tx}} y=σ(f(x))=1+ewTx1
从上图可以看出,逻辑回归在定义域大于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+ewTx1

逻辑回归的损失函数

有了概率表达式我们就可以来计算损失函数了。
由于 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(yx)={ p,1p,y=1y=0
上面的公式可以统一起来表示为:
P ( y ∣ x ) = p y ( 1 − p ) ( 1 − y ) P(y|x)=p^y(1-p)^{(1-y)} P(yx)=py(1p)(1y)
对于某个数据集,假设我们一共采集到 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(y1x1)P(y2x2)...P(yNxN) =n=1Npyn(1p)1yn

由于连乘比较复杂,我们对该表达式取对数,同时,这里的 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(1p)1yn)=n=1Nynlnp+(1yn)ln(1p)
这便是我们的损失函数。

梯度求解

为了使用梯度下降优化模型,还需要求出损失函数的梯度,下面我们来求解上述 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=1N(ynln(p)+(1yn)ln(1p)) =n=1N(ynp1

相关文章