吴恩达机器学习(四)逻辑回归(二分类与多分类)

目录

0. 前言

1. 假设函数(Hypothesis)

2. 决策边界(Decision Boundary)

3. 代价函数(Cost Funciton)

4. 梯度下降(Gradient Descent)

5. 逻辑回归实现多分类

6. 其他求解参数的方法


学习完吴恩达老师机器学习课程的逻辑回归,简单的做个笔记。文中部分描述属于个人消化后的理解,仅供参考。

如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~

0. 前言

逻辑回归(Logistic Regression),是一种用于二分类(binary classification)的算法。我们可假设:

  • y=1 --- 代表二分类中的正类
  • y=0 --- 代表二分类中的反类

1. 假设函数(Hypothesis)

首先给出一个函数,Sigmoid 函数,g(z)=\frac{1}{1+e^{-z}},它的函数图像如下所示:

吴恩达机器学习(四)逻辑回归(二分类与多分类)_第1张图片

我们知道,在线性回归算法中,假设函数被定义为 h_{\theta}(x)=\theta^{T}x,此时假设函数的取值范围可以为 (-\infty ,\infty)。在二分类中,输出 y 的取值只能为 0 或者 1,在 \theta^{T}x 之外包裹一层 Sigmoid 函数,使之取值范围属于 (0,1),所以给出如下定义:

\large h_{\theta}(x)=g(\theta^{T}x)=\frac{1}{1+e^{-\theta^{T}x}}=P(y=1 | x;\ \theta)

例如 h_{\theta}(x)=0.7,表示有 70\% 的概率 y=1,表示输入为 x 时,y=1 的概率。

2. 决策边界(Decision Boundary)

根据以上假设函数表示概率,我们可以推得:

  • if\ h_{\theta}(x)\geqslant 0.5\ \Rightarrow \ y=1
  • if\ h_{\theta}(x)< 0.5\ \Rightarrow \ y=0

令 h_{\theta}(x)=0.5\ \Rightarrow \ \theta^{T}x =0,则 \theta^{T}x =0 为决策边界。如果用图像表示,如下例子:

吴恩达机器学习(四)逻辑回归(二分类与多分类)_第2张图片

3. 代价函数(Cost Funciton)

在线性回归中,我们给出定义 J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2,由于它是一个凸函数,所以可用梯度下降直接求解,局部最小值即全局最小值。

但在逻辑回归中,h_{\theta}(x) 是一个复杂的非线性函数,属于非凸函数,直接使用梯度下降会陷入局部最小值中

根据极大似然估计(Maximum likelihood Estimate),可对代价函数作如下修改:

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

\large 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=1 时,我们对 Cost(h_{\theta}(x),y) 作图如下。易知当 h_{\theta}(x)\rightarrow 0(可判定 y=0)时,代价是接近无穷大的(因为此时判错),反之亦然。

吴恩达机器学习(四)逻辑回归(二分类与多分类)_第3张图片

我们亦可将代价函数写成如下形式:

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

此时的代价函数是凸函数,可用梯度下降法求全局最优解。

4. 梯度下降(Gradient Descent)

与线性回归一致,梯度下降仍然采用如下公式:

\large \theta_{j}:=\theta_{j}-\alpha \frac{\partial }{\partial \theta_{j} }J(\theta)

5. 逻辑回归实现多分类

多分类(multi-classification)是指分类的结果不只两类,而是有多个类别。

逻辑回归本质上是一种二分类的算法,但是可以通过搭建多个二分类器的思想,实现多分类。

  • 针对类别 A,设 A 为正类,非A 为反类,搭建二分类器 h_{\theta}^{(1)}(x)
  • 针对类别 B,设 B 为正类,非B 为反类,搭建二分类器 h_{\theta}^{(2)}(x)
  • 针对类别 C,设 C 为正类,非C 为反类,搭建二分类器 h_{\theta}^{(3)}(x)
  • ........

由于 h_{\theta}^{(i)}(x)=P(y=i | x;\ \theta),即求 max(h_{\theta}^{(i)}(x)) 时的 i 。

6. 其他求解参数的方法

除了梯度下降外,还有以下求解方法:

  • 共轭梯度法(Conjugate Gradient)
  • BFGS
  • L-BFGS

在这些方法中,相比梯度下降,有以下优点和缺点:

  • 不需要主观的选择学习率 \alpha,算法中的内循环会自动调节
  • 速度更快
  • 算法更复杂

如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~

 

 

 

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