传统机器学习-Logistic回归(吴恩达机器学习笔记)

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

模型定义

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函数。

传统机器学习-Logistic回归(吴恩达机器学习笔记)_第1张图片

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

传统机器学习-Logistic回归(吴恩达机器学习笔记)_第2张图片传统机器学习-Logistic回归(吴恩达机器学习笔记)_第3张图片

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

传统机器学习-Logistic回归(吴恩达机器学习笔记)_第4张图片传统机器学习-Logistic回归(吴恩达机器学习笔记)_第5张图片

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

损失函数

传统机器学习-Logistic回归(吴恩达机器学习笔记)_第6张图片

若在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回归(吴恩达机器学习笔记)_第7张图片

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

传统机器学习-Logistic回归(吴恩达机器学习笔记)_第8张图片传统机器学习-Logistic回归(吴恩达机器学习笔记)_第9张图片

我们之前的代价函数是分正例和负例两种情况给出的,由于数据集中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}})

多元分类:一对多

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

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

传统机器学习-Logistic回归(吴恩达机器学习笔记)_第10张图片

你可能感兴趣的:(机器学习)