甲乙小朋友的房子

甲乙小朋友很笨,但甲乙小朋友不会放弃

0%

机器学习算法-LR

在说LR之前,我们先回顾一下logistic分布。

logistic分布

如果连续随机变量\(X\)服从logistic分布,则\(X\)具有下列分布函数和密度函数

\[ F(x)=P(X<=x)=\frac{1}{1+e^{-(x-u)/r}} \]

\[ f(x)=F'(x)=\frac{e^{-(x-u)/r}}{r(1+e^{-(x-u)/r})^2} \]

其中

\(u\)为位置参数

\(r>0\)为形状参数

其中,密度函数与分布函数的形状如图所示

备注:分布密度函数与分布函数

概率密度函数\(f(x)\):表示瞬时值落在某区间的概率,是幅值的概率。++用来描述连续型随机变量取值的密集程度的。++\(f(x)\)表示X=x的概率是\(\int_0^1f(x)\)

\(P(X=x|x \in (0,1))=\int_0^1f(x)\)

分布函数\(F(x)\):描述随机变量落在任一区间的概率。

\(F(x)=P(X<=x)\)

关系:

分布函数\(F(x)\)是概率密度函数\(f(x)\)从负无穷到正无穷上的积分;

在坐标轴上,概率密度函数的函数值y表示落在x点上的概率为y;分布函数的函数值y则表示x落在区间(-∞上的概率。

二项logistic回归模型

用途:估计某个值的为哪一类的概率

logistic回归是分类问题。前面我们讲的分类问题的输出都是 “yes”或者“no”。但是在现实生活中,我们并不是总是希望结果那么肯定,而是概率(发生的可能性)。比如,我们希望知道这个房子在第三个星期被卖出去的概率。那么以前的分类算法就无法使用了,这时logistic 回归就派上了用场。

定义

二项logistic回归模型是如下的条件概率分布:

\[ P(Y=1|x)=\frac{exp(wx+b)}{1+exp(wx+b)} \]

\[ P(Y=0|x)=\frac{1}{1+exp(wx+b)} \]

其中: \(x \in R^n\) :输入

\(Y \in (0,1)\) :输出

给定\(x\),可以求得\(P(Y=1|x)\)\(P(Y=0|x)\)

logistic回归模型的特点

几率(odds)= 该事件发生的概率/该事件不该发生的概率,则对数几率:

\[ log(odds)=log(\frac{p}{1-p})=log(\frac{P(Y=1|x)}{1-P(Y=1|x)})=wx \]

则:输出Y=1的对数几率=输入x的线性函数

模型参数估计

输入: 一堆(x,y)

目标:估计参数w,b

方法:极大似然法

总结

  1. 逻辑回归是一种预测y的各类别的概率的模型,即计算P(Y=1|x)或者P(Y=0|x)
  2. 与机器学习过程类似,即 通过已知的大量(x,y),拟合计算参数w,b;再用y=wx+b来计算新的x下的y;把y输入sigmoid函数中,得到y为1的概率。

LR推导(sigmoid,损失函数,梯度,参数更新公式)

这篇文章非常详细地介绍了逻辑回归的推导。非常有用。我在此处进行了转载。

声明

  1. $ x(1),x(2),...,x(m) $ 表示 n 维空间的一个样本,\(x(i)\) 表示第i个样本,\(x(i)_j\) 表示第i个样本的第j维的数据(因为\(x\)是一个n维向量)。
  2. \(y(1),y(2),...,y(m)\) 表示 k 维空间的一个观测结果,记k从1,2,...,k变化,即分类问题中的k个类别,也可以0为下标开始,不影响推导。
  3. \(\pi()\)是我们学习到的概率函数,实现样本数据到预测结果的映射:\(R^n\rightarrow R^k\),(其实就是样本经过函数 \(\pi()\)计算后得到各个类别的预测概率,即一个k维向量), \(\pi(x)_u​\)表示数据样本x属于类别u的概率,我们希望\(\pi()​\)具有如下性质:
  1. \(\pi(x)_v>0\) (样本x属于类别v的概率大于0,显然概率必须大于0)
  2. \(\sum_{v=1}^k\pi(x)_v = 1\),样本x属于各个类别的概率和为1
  3. \(\pi(x(i))_{y(i)}在所有类别概率中最大\)
  1. \(A(u,v)\)是一个指示函数,\(当u=v时A(u,v)=1,当u\neq v时A(u,v)=0,如A(u,y(i))\)表示第i个观测结果是否为u

逻辑回归求解分类问题过程

对于二分类问题有k=2,对线性回归函数\(\lambda x\)进行非线性映射得到:

\[ \pi(x)_1 = \frac{\rm e^{\lambda \cdot x}}{\rm e^{\lambda \cdot x}+1}\tag{1} \] \[ \pi(x)_2 = 1-\pi(x)_1= \frac{1}{\rm e^{\lambda \cdot x}+1}\tag{2} \] 对于多分类问题有: \[ \pi(x) = \frac{\rm e^{\lambda _v\cdot x}}{\sum_{u=1}^m\rm e^{\lambda_u \cdot x}}\tag{3} \]\(\lambda\)求偏导可得:

\[ \begin{aligned} u = v 时, \frac {\partial\,\pi (x)_v}{\lambda_{v,j}} &= \frac{x_j\rm e^{\lambda _{v,j}\cdot x}\cdot \sum_{u=1}^m\rm e^{\lambda_{u,j} \cdot x}-x_j\rm e^{\lambda _{v,j}\cdot x}\rm e^{\lambda _{v,j}\cdot x}}{(\sum_{u=1}^m\rm e^{\lambda_{u,j} \cdot x})^2}\\ & = \frac{x_j\rm e^{\lambda _{v,j}\cdot x}}{\sum_{u=1}^m\rm e^{\lambda_{u,j} \cdot x}} \cdot \frac{\sum_{u=1}^m\rm e^{\lambda_{u,j} \cdot x}-\rm e^{\lambda_{v,j}\cdot x}}{\sum_{u=1}^m\rm e^{\lambda_{u,j} \cdot x}}\\& = x_j \pi(x)_v(1-\pi(x)_v)\end{aligned}\tag{4} \]

\[ \begin{aligned} u \neq v 时 \frac {\partial\,\pi (x)_v}{\lambda_{u,j}}&=-\frac{\rm e^{\lambda_{v,j} \cdot x} \cdot (x_j\rm e^{\lambda_{u,j} \cdot x})}{(\sum_{u=1}^m\rm e^{\lambda_{u,j} \cdot x})^2} \\ &= -x_j \pi(x)_v\pi(x)_u, u\neq v时 \end{aligned} \tag{5} \] 该分类问题的最大似然函数为: \[ L(\lambda)=\prod_{i=1}^m \pi(x(i))_{y(i)}\tag{6} \] 取对数得: \[ f(\lambda)=\log L(\lambda)=\sum_{i=1}^m \log(\pi(x(i))_{y(i)})\tag{7} \] 求似然函数最大值,令: \[ \begin{aligned} \frac{\partial\,f(\lambda)}{\partial \,\lambda_{u,j}} &=\frac{\partial}{\partial \,\lambda_{u,j}}\sum_{i=1}^m \log(\pi(x(i))_{y(i)}) \\ &= \sum_{i=1}^m \frac{1}{\pi(x(i))_{y(i)}}\frac{\partial}{\partial \,\lambda_{u,j}}\pi(x(i))_{y(i)} \\ &= \sum_{\begin{array}{c}i=1,\\y(i)=u\end{array}}^m \frac{1}{\pi(x(i))_{y(i)}}\frac{\partial}{\partial \,\lambda_{u,j}}\pi(x(i))_{u} + \sum_{\begin{array}{c}i=1,\\y(i)\neq u\end{array}}^m \frac{1}{\pi(x(i))_{y(i)}}\frac{\partial}{\partial \,\lambda_{u,j}}\pi(x(i))_{y(i)}\\ &= \sum_{\begin{array}{c}i=1,\\y(i)=u\end{array}}^m \frac{1}{\pi(x(i))_{y(i)}}x(i)_j\pi(x(i))_u(1-\pi(x(i))_u) \\ &\quad - \sum_{\begin{array}{c}i=1,\\y(i)\neq u\end{array}}^m \frac{1}{\pi(x(i))_{y(i)}}x(i)_j\pi(x(i))_{y(i)} \pi(x(i))_u\\ &= \sum_{\begin{array}{c}i=1,\\y(i)=u\end{array}}^m x(i)_j(1-\pi(x(i))_u)-\sum_{\begin{array}{c}i=1,\\y(i)\neq u\end{array}}^m x(i)_j \pi(x(i))_u \\ &= \sum_{\begin{array}{c}i=1,\\y(i)=u\end{array}}^m x(i)_j - \sum_{i=1}^m x(i)_j\pi(x(i))_u \\ &= 0 \end{aligned} \tag{8} \] 得: \[ \sum_{\begin{array}{c}i=1,\\y(i)=u\end{array}}^m x(i)_j = \sum_{i=1}^m x(i)_j\pi(x(i))_u\tag{9} \] 代入\(A(u,y(i))=1\)得: \[ \sum_{i=1}^m x(i)_j\pi(x(i))_u = \sum_{i=1}^m x(i)_jA(u,y(i))\tag{10} \] 综上有: \[ \frac{\partial\,f(\lambda)}{\partial \,\lambda_{u,j}}=\sum_{i=1}^m x(i)_j(A(u,y(i))-\pi(x(i))_u)\tag{11} \] 则参数更新公式为:

\[ \begin{aligned}\lambda_{u,j} &= \lambda_{u,j} - \alpha \cdot \frac{\partial\,f(\lambda)}{\partial \,\lambda_{u,j}} \\&= \lambda_{u,j} - \alpha \cdot \sum_{i=1}^m x(i)_j(A(u,y(i))-\pi(x(i))_u)\end{aligned}\tag{12} \]

sigmoid函数的由来(最大熵)

由上文已知\(\pi()\)具应有如下性质:

  1. 样本x属于类别v的概率大于0,显然概率必须大于0\(\pi(x)_v>0\tag{13}\)
  2. 样本x属于各个类别的概率和为1 \(\sum_{v=1}^k\pi(x)_v = 1\tag{14}\)
  3. \(\pi(x(i))_{y(i)}在所有类别概率中最大\)

其中对最后一个条件等价于尽可能的让\(\pi(x(i))\rightarrow y(i)\)\(\pi(x(i))\rightarrow A(u,y(i))\),理想情况为\(\pi(x(i))= A(u,y(i))\)固有: \[ \sum_{i=1}^m x(i)_j\pi(x(i))_u = \sum_{i=1}^m x(i)_jA(u,y(i))\tag{15},对所有的u,j都成立 \]

对所有类别及所有样本取\(\pi()\)的熵,得: \[ f(v,i)=-\sum_{v=1}^k\sum_{i=1}^m\pi(x(i))_v \log(\pi(x(i))_v)\tag{16} \] 得到一个优化问题:

\[\left\{ \begin{aligned} max f(v,i)=max (-\sum_{v=1}^k \sum_{i=1}^m pi(x(i))_v log(π(x(i))_v))\\ \pi(x)_v>0\\ \sum_{v=1}^k π(x)_v = 1\\ \sum_{i=1}^m x(i)_j π(x(i))_u = \sum_{i=1}^m x(i)_j A(u,y(i)) \end{aligned} \right. \tag{17}\] 利用拉格朗日对偶性求这个优化问题的对偶问题,首先引入拉格朗日函数:

\[ \begin{aligned}L &= \sum_{j=1}^n\sum_{v=1}^k\lambda_{v,j} \left( \sum_{i=1}^m\pi(x(i))_vx(i)_j-A(v,y(i))x(i)_j \right)\\&+ \sum_{v=1}^k\sum_{i=1}^m\beta_i(\pi(x(i))_v-1)\\&- \sum_{v=1}^k\sum_{i=1}^m\pi(x(i))_v\log(\pi(x(i))_v)\end{aligned}\tag{18} \] 其中 \[ \beta<0 \] ,由KKT条件有: \[ \frac{\partial\,L}{\partial \,\pi(x(i))_u} = \lambda_u\cdot x(i)+\beta_i-\log(\pi(x(i))_u) - 1 = 0 \quad对所有i,u \tag{19}\]

\[则:\pi(x(i))_u = e^{\lambda_u \cdot x(i)+\beta_i-1} \tag{20}\]

则: \[\pi(x(i))_u = e^{\lambda_u \cdot x(i)+\beta_i-1} \tag{20}\] 由(14)式得到: \[ \sum_{v=1}^k e^{\lambda_u \cdot x(i)+\beta_i-1} = 1\\ \] 即: \[e^\beta=\frac{1}{\sum_{v=1}^ke^{\lambda_u \cdot x(i)-1}} \tag{21} \] 代入(21)式消去常数项得: \[ \pi(x(i))_u=\frac{e^{\lambda_u \cdot x}}{\sum_{v=1}^ke^{\lambda_u \cdot x}}\tag{22} \] 即多分类问题对应的sigmoid函数

其它文献

  1. Logistic Regression 的前世今生(理论篇)