逻辑回归学习笔记
逻辑回归
线性回归不适合处理分类问题,因为用连续型函数逼近离散型函数不太靠谱。因此考虑如何修改线性回归方法使其适用于分类问题。
现在给出\((x_1,y_1),(x_2,y_2)...(x_n,y_n),x_i \in R^k,y_i\in \{0,1\}\):
对于\(w\in R^k,b\in R,f(x)=w^Tx+b\),那么怎么把它的值域限制在0和1呢?构造\(g:R\to (0,1)\),例如\(g(x)=\frac{e^x}{1+e^x}=\frac{1}{1+e^{-x}}\),复合函数\(h(x)=g(f(x))=\frac{1}{1+e^{-(w^Tx+b)}}\)。
引入概率论
如果把x和y都看作随机变量,那么就有了联合分布以及条件分布的概念。\((x_i,y_i)\)满足联合分布,现在想要学习的就是\(P(y|x)\)以及\(P(x,y)\)。
简化记号:\(x=(1,x),w = (b, w)\)。则有:
对于一个点而言,设其到超平面的距离为\(l\),则\(l=\frac{w^Tx}{||w||}\)。\(P(y=1|x)\)有三种取值:
极大似然估计,设\((x_i,y_i)\)独立同分布,\(P(x_i,y_i)=P(y_i|x_i)P(x_i)=P(y_i=1|x_i)^{y_i}P(y_i=0|x_i)^{1-y_i}P(x_i)\)。注意上面的前两项最终只会取一项。
似然函数可以写为:\(\Pi_{i=1}^nP(x_i,y_i)=\Pi_{i=1}^n[P(y_i=1|x_i)^{y_i}P(y_i=0|x_i)^{1-y_i}]·\Pi_{i=1}^nP(x_i)\)
变成求解\(argmax_w\Pi_{i=1}^n[P(y_i=1|x_i)^{y_i}P(y_i=0|x_i)^{1-y_i}]=argmax_w[\Pi_{y_i=1}\frac{1}{1+e^{-w^Tx_i}}][\Pi_{y_j=0}\frac{e^{-w^Tx_j}}{1+e^{-w^Tx_j}}]\)
取对数可以让乘积变成求和,等价于\(argmax_w\Sigma_{y_i=1}log(\frac{1}{1+e^{-w^Tx_i}})+\Sigma_{y_i=0}log(\frac{e^{-w^Tx_j}}{1+e^{-w^Tx_j}})=argmin_w -\Sigma_{y_i=1}log(\frac{1}{1+e^{-w^Tx_i}})-\Sigma_{y_i=0}log(\frac{e^{-w^Tx_j}}{1+e^{-w^Tx_j}})\)
损失函数:\(l(w)= -\Sigma_{y_i=1}log(\frac{1}{1+e^{-w^Tx_i}})-\Sigma_{y_i=0}log(\frac{e^{-w^Tx_j}}{1+e^{-w^Tx_j}})\)
此时闭形式解是不存在的,只能使用数值解法。
梯度下降
一般来说,\(f:R^k\to R,\nabla f\)
\(x_{n+1}=x_n-\eta \nabla f(x_n)\)
对于若干个点的二分类问题,如果其完全可分,则可以用感知机进行求解,如果不完全可分,则可以用线性规划。现在则可以使用逻辑回归。
如果对于\(w\in R^k,A=\{x_i|y_i(w^Tx_i)<0\},l(w)=|A|\),去找到\(w\)满足\(l(w)\)最小的话,最终结果可能非常不稳定。
推广
多元分类怎么办?
给出\((x_i,y_i),y_i\in \{0,1,...m-1\}\)
目标:\(w_1,w_2...w_{m-1}\)
\(P(y_i=k|x_i)=\frac{e^{w_k^Tx_i}}{1+\Sigma_{k=1}e^{w_k^Tx_i}},k\neq0\)
\(P(y_i=0|x_i)=\frac{1}{1+\Sigma_{k=1}e^{w_k^Tx_i}}\)
引入非线性
如果是二维空间中线性不可分,则可以尝试进行升维:
\((x_1,x_2)\to (x_1,x_2,x_1^2,x_2^2,x_1x_2)\in R^5\)
注意上面的参数都是线性的。
对于感知机、线性规划、线性回归、逻辑回归都可以引入非线性项。