逻辑回归:我们期望得到值域在[0,1]之间的预测值。逻辑回归天然的是用来处理二分类的情况的,至于多分类的情况会要稍微处理一下。在逻辑回归中,我们通常将正例的标签标为1,负例的标签标为0。逻辑回归的输出值(即预测值),表示的是预测为正例(即标签为1)的概率。

目录

模型定义

损失函数

梯度下降法求解参数

多分类

多项逻辑回归

多元分类:一对多

逻辑回归 VS 线性回归


模型定义

若将y视为样本x作为正例的可能性,则1-y就是其反例的可能性,两者比值\frac{y}{1-y}称为“几率”,反映了x作为正例的相对可能性,对几率取对数则得到“对数几率” ln\frac{y}{1-y}  。我们用线性回归来拟合对数几率,即

ln\frac{y}{1-y} = w^Tx + b

ln\frac{p(y=1| x)}{p(y=0|x)} = w ^Tx +b,可以令:p(y=1|x)=\frac{e^{w^Tx + b}}{1 + e^{w^Tx + b}}, p(y=0|x)=\frac{1}{1 + e^{w^Tx + b}},此时p(y=1|x)又可以写成p(y=1|x)=\frac{1}{1 + e^{-(w^Tx + b)}}

h_{\theta}(x) = g(\theta^{T}x), \ g(z) = \frac{1}{1 + e^{-z}}, \ h_{\theta}(x) = \frac{1}{1 + e^{-\theta^{T}x}},其中g(z)又被称为sigmoid函数。

对该模型的解释,h_{\theta}(x)预测的是对每一个样本得到标签是1(即正例)的概率。

决策边界:是假设函数及其参数的属性,不是训练集的属性。用训练集拟合参数,参数一旦确定,决策边界即确定。

模型定义有了之后,我们要做的就是通过训练集来得到一组合适的参数\theta

损失函数

若在Logistic回归中采用线性回归的损失函数(平方和函数)作为损失函数,由于sigmoid函数是一个复杂的非线性函数,则会导致损失函数非凸,会产生很多局部最小值,这会使梯度下降法不易找到全局最小值。我们期待选择一个凸函数作为损失函数。同时我们期待标签与预测值相差较大时损失函数较大,当标签与预测值相近时,损失函数较小,即我们期待:

\left\{\begin{matrix} if& truelable=1 & &\left\{\begin{matrix}if& prediction \rightarrow 1 & cost \rightarrow 0& \\ if & prediction \rightarrow 0 & cost\rightarrow +\infty \end{matrix}\right. \\if & truelable = 0 & &\left\{\begin{matrix}if& prediction \rightarrow 1 & cost \rightarrow +\infty & \\ if & prediction \rightarrow 0 & cost\rightarrow 0 \end{matrix}\right. \end{matrix}\right.

Logistic回归的损失函数

J(\theta)=\frac{1}{m}\sum_{i=1}^{m}Cost(h_{\theta}(x), y),其中

Cost(h_{\theta}(x), y)=\left\{\begin{matrix} -log(h_{\theta}(x))& & & if& y= 1\\ -log(1-h_{\theta}(x))& & & if& y = 0 \end{matrix}\right.

对该损失函数的直观解释如下,其中y是真实标签,h_{\theta}(x)是预测值。

  • 当样本是正例,即y=1时,此时代价函数为Cost(h_{\theta}(x), y)=-log(h_{\theta}(x))
    • 若预测值接近1,则Cost(h_{\theta}(x), y)\rightarrow 0
    • 若预测值接近0,则Cost(h_{\theta}(x), y)\rightarrow +\infty
  • 当样本时负例,即y=0时,,此时代价函数为Cost(h_{\theta}(x), y)=-log(1-h_{\theta}(x))
    • 若预测值接近1,则Cost(h_{\theta}(x), y)\rightarrow +\infty
    • 若预测值接近0,则Cost(h_{\theta}(x), y)\rightarrow 0

我们之前的代价函数是分正例和负例两种情况给出的,由于数据集中y非0即1,我们可以把代价函数直接用一个简化版的表达式表示,这样也方便后续实施梯度下降法,Logistic函数中的这个代价函数的理论依据是极大似然法,且这个代价函数是凸函数,可以放心使用。此时可以看出若y=1是下面表达式的第一部分,y=0是下面表达式的第二部分。

J(\theta) =\frac{1}{m}\sum_{i=1}^{m}Cost(h_{\theta}(x), y) = -\frac{1}{m}\sum_{i=1}^{m}[ylog(h_{\theta}x)+(1-y)log(1-h_{\theta}(x)))]

我们用极大似然估计来推导一下损失函数

1、由于模型定义中h_{\theta}(x),表示给定参数\theta和特征x的情况下,预测值为1(即正例)的概率,固有:

       \begin{aligned} P(y=1|x;\theta) &= h_{\theta}(x) \\ P(y=0|x;\theta) &= 1 - h_{\theta}(x) \end{aligned}

2、将上面两个公式写紧凑成为一个公式

       P(y|x;\theta)=(h_{\theta}(x)^{y})(1-h_{\theta}(x))^{1-y}

3、求其极大似然函数,需要寻找一组参数,使得给定样本的观测值的概率最大

       \begin{aligned} L(\theta) &=p(\vec{y}|X;\theta) \\ & =\prod_{i=1}^{m} p(y^{(i)}|x^{(i)};\theta)\\ &= \prod_{i=1}^{m}(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}}\end{aligned}  

4、求其对数似然函数

      \begin{aligned} l(\theta) &= log(L(\theta)) \\ &= \sum_{i=1}^{m}(y^{(i)}log(h_{\theta}(x^{(i)}))+(1-y^{(i)})log(1-h_{\theta}(x^{(i)})))\end{aligned}    

梯度下降法求解参数

h_{\theta}(x) = g(\theta^{T}x), g(z) = \frac{1}{1 + e^{-z}}

{g}'(z) = g(z)(1-g(z))

\begin{aligned} \frac{\partial J(\theta)} {\partial \theta_{j}} &= -\frac{1}{m} \sum_{i=1}^{m}[y^{(i)}\frac{1}{h_{\theta}(x^{(i)})}\frac{\partial h_{\theta}(x^{(i)})}{\partial \theta_{j}}-(1-y^{(i)})\frac{1}{1-h_{\theta}(x^{(i)}))}\frac{\partial h_{\theta}(x^{(i)})}{\partial \theta_{j}}] \\ &= -\frac{1}{m} \sum_{i=1}^{m}[y^{(i)}\frac{1}{g(\theta^{T}x^{(i)})}-(1-y^{(i)})\frac{1}{1-g(\theta^{T}x^{(i)})}]\cdot \frac{\partial g(\theta^{T}x^{(i)})}{\partial \theta_{j}} \\ &= -\frac{1}{m} \sum_{i=1}^{m}[y^{(i)}\frac{1}{g(\theta^{T}x^{(i)})}-(1-y^{(i)})\frac{1}{1-g(\theta^{T}x^{(i)})}]\cdot g(\theta^{T}x^{(i)})(1-g(\theta^{T}x^{(i)}))x_{j}^{(i)} \\ &= -\frac{1}{m} \sum_{i=1}^{m}[y^{(i)}(1-g(\theta^{T}x^{(i)}))-(1-y^{(i)})g(\theta^{T}x^{(i)}))]x_{j}^{(i)} \\ &= -\frac{1}{m} \sum_{i=1}^{m}[y^{(i)}-g(\theta^{T}x^{(i)}))]\cdot x_{j}^{(i)} \\ &=\frac{1}{m} \sum_{i=1}^{m}[h_{\theta}(x^{(i)})-y^{(i)}]\cdot x_{j}^{(i)} \end{aligned}

\frac{\partial J(\theta)} {\partial \theta_{j}}=\frac{1}{m} \sum_{i=1}^{m}[h_{\theta}(x^{(i)})-y^{(i)}]\cdot x_{j}^{(i)}

Grad_{\theta}J =\frac{1}{m}X^{T}(X\theta-y)

 

目标:min_{\theta}J(\theta)

梯度下降法的执行过程

Gradient descent

   Repeat{

   \theta_{j} (=\theta_{j} - \alpha \frac{\partial J(\theta)}{\partial \theta_{j}})= \theta_{j} - \alpha\frac{1}{m}\sum_{i=0}^{m}(h_{\theta}(x^{(i)})-y^{(i)}))\cdot x_{j}^{(i)}

   }(同时更新j = 0, 1, \cdots, n )

我们会发现Logistic回归跟线性回归中使用梯度下降算法得到的参数迭代方程形式上是一样的。但是假设函数却不一样!

线性回归:h_{\theta }(x) = \theta^{T}x,logistic回归h_{\theta}(x) = {1} / ({1 + e^{-\theta^{T}x}})

多分类

多项逻辑回归

假设每个样本属于不同标签的概率服从几何分布,使用多项逻辑回归(softmax Regression)来进行分类

h_\theta(x) = \begin{bmatrix} p(y=1|x;\theta)\\ p(y=2|x;\theta)\\ \vdots \\ p(y=k|x;\theta) \end{bmatrix} =\frac{1}{\sum_{j=1}^k e^{\theta_j^Tx}} \begin{bmatrix} e^{\theta_1^Tx} \\ e^{\theta_2^Tx} \\ \vdots \\ e^{\theta_k^Tx} \\ \end{bmatrix},其中\theta_1, \theta_2,\cdots,\theta_k \in \mathbb{R}^n为模型的参数,而\frac{1}{\sum_{j=1}^ke^{\theta_j^Tx}}可以看做是对概率的归一化。一般来说,多项逻辑回归具有参数冗余的特点,即将\{\theta_1, \theta_2,\cdots,\theta_k \}同时加减一个向量后预测结果不变,特别的当类别参数为2时,

h_\theta(x) = \frac{1}{e^{\theta_1^Tx} + e^{\theta_2^Tx}} \begin{bmatrix} e^{\theta_1^Tx} \\ e^{\theta_2^Tx} \end{bmatrix},利用冗余特性,我们将所有参数减去\theta_1则变为

h_\theta(x) = \frac{1}{e^{\theta_1^Tx} + e^{\theta_2^Tx}} \begin{bmatrix} e^{0 \cdot x} \\ e^{(\theta_2^T - \theta_1^T )x} \end{bmatrix} = \begin{bmatrix} \frac{1}{1 + e^{\theta^Tx}}\\ 1 - \frac{1}{1 + e^{\theta^Tx}} \end{bmatrix},其中\theta=\theta_2 - \theta_1,整理后的式子与逻辑回归一致。

多元分类:一对多

我们可以将一个多分类问题,转换成多个独立的二分类问题,则对于每个独立的二分类问题我们均可以使用逻辑回归。我们为每一个类别i都训练一个逻辑回归分类器h_{\theta}^{(i)}(x),用来预测y=i的概率,在面对一个新样本时,我们取\max_{i}h_{\theta}^{(i)}(x)作为最后的输出。

例如:可以将如下的三分类问题,看成三个独立的二分类问题,从而拟合出三个分类器,来尝试估计给定x\thetay=i的概率。

逻辑回归 VS 线性回归

  • 二者都使用了极大似然估计来对训练样本进行建模
    • 线性回归使用最小二乘法,实际上就是在自变量x与超参数\theta确定,因变量y服从正态分布的假设下,使用极大似然估计的一个化简
    • 逻辑回归通过对似然函数的学习得到最佳参数\theta

 

参考:吴恩达的机器学习视频

           周志华:机器学习

           百面机器学习

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐