吴恩达机器学习课程 | 02 分类

二分类

让计算机对一张猫的图片进行分辨,判断图片中的是否为猫,这类问题属于分类 classification 问题中的二分类问题。二分类问题的结果只有两种。将结果分为 3 类及 3 类以上的问题,称为多分类问题。

对于二分类问题,一般在计算机中用数字来表示结果,即 y={0,1}y=\{0,1\}00 表示负类 negative class11 表示正类 positive class

对于回归问题,我们可以使用线性回归模型或者多项式回归模型。对于分类问题,我们可以使用的一种模型就是 logistic regression


logistic regression

  • 注意,虽然 logistic regression 中有 regression 一词,但它是个分类算法。
  • logistic regression 与 sigmoid function 是同一回事。

表达式为:g(z)=11+ezg(z)=\frac{1}{1+e^{-z}}

图像

吴恩达机器学习课程 | 02 分类


对于二分类问题,假设函数的表达式为:hθ(x)=g(θTx)=11+eθTxh_{\theta}(x)=g(\theta^{T}x)=\frac{1}{1+e^{-\theta^{T}x}}

有必要解释一下 hypothesis representation 这个概念。对于一个问题,我们会提出一个假设,而假设的具体形式,也就是表达式,就是 hypothesis representation 。如,对于二分类问题,表达式为 hθ(x)=g(θTx)=11+eθTxh_{\theta}(x)=g(\theta^{T}x)=\frac{1}{1+e^{-\theta^{T}x}}

hθ(x)h_{\theta}(x) 的值为得到某一结果的概率:

  • 得到 y=1y=1 的这个结果的可能性表示为 hθ(x)=P(y=1x;θ)h_{\theta}(x)=P(y=1|x;\theta)。表达式的意思为 probability that y=1y = 1, given xx, parameterized by θ\theta 。如 hθ(x)=0.7h_{\theta}(x)=0.7 表示 y=1y=1 的概率为 0.70.7
  • 相对的,得到 y=0y=0 这个结果的可能性为 hθ(x)=1P(y=0x;θ)h_{\theta}(x)=1-P(y=0|x;\theta)

决策边界 decision boundary

若假定,y=1y=1 的判定条件为 hθ(X)0.5h_{\theta}(X) \geq 0.5y=0y=0 的判定条件为 hθ(X)<0.5h_{\theta}(X) < 0.5

则 上述条件等价为:y=1y=1 的判定条件为 X0X \geq 0y=0y=0 的判定条件为 X<0X<0

X=θTxX=\theta^Tx,假定 θTx=θ0+θ1x1\theta^Tx = \theta_0+\theta_1x_1

则可得 y=1y=1 的判定条件为 θ0+θ1x10\theta_0+\theta_1x_1 \geq 0y=0y=0 的判定条件为 θ0+θ1x1<0\theta_0+\theta_1x_1<0

θ0+θ1x10\theta_0+\theta_1x_1 \geq 0θ0+θ1x1<0\theta_0+\theta_1x_1<0 一样,反映的是坐标系中的一块区域,这块区域的边界就称为决策边界。通过这个决策边界,可以实现分类。


对于二分类问题,如何拟合 θ\theta

吴恩达机器学习课程 | 02 分类

J(θ)=1mi=1mCost(hθ(x(i)),y(i))J(\theta)=\frac{1}{m} \sum_{i=1}^{m} \operatorname{Cost}\left(h_{\theta}\left(x^{(i)}\right), y^{(i)}\right)

Cost(hθ(x),y)={log(hθ(x)) if y=1log(1hθ(x)) if y=0\operatorname{Cost}\left(h_{\theta}(x), y\right)=\left\{\begin{aligned}-\log \left(h_{\theta}(x)\right) & \quad \text { if } y=1 \\-\log \left(1-h_{\theta}(x)\right) & \quad \text { if } y=0 \end{aligned}\right.

这里的log是以e为底的。

合并两式得代价函数:

J(θ)=1mi=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]J(\theta)=-\frac{1}{m}\sum_{i=1}^{m} \left[y^{(i)} \log h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right]

  • 该 logistic regression 的代价函数由统计学中的极大似然法得来。
  • 如果将之前回归问题所使用的代价函数用于二分类问题,会得到一个非凸函数。但我们希望得到是一个凸函数。

代价函数的图像:
吴恩达机器学习课程 | 02 分类

可见,当 hθ(x)h_{\theta}(x) 对一个样本点 (x,y)(x,y) (其中 yy 为标签值)的预测值越接近 yy ,代价函数的值就越小。

二分类问题的梯度下降算法

Repeat{θj:=θjαθjJ(θ)( simultaneously update for all θj)}\text{Repeat} \{ \\ \qquad\theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta\right) \quad(\text { simultaneously update for all } \theta_j) \\ \}

即,

Repeat{θj:=θjαi=1m(hθ(x(i))y(i))xj(i)( simultaneously update for all θj)}\text{Repeat} \{ \\ \qquad\theta_{j}:=\theta_{j}-\alpha \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)} \quad(\text { simultaneously update for all } \theta_j) \\ \}

可以发现分类问题的梯度下降算法与回归问题的梯度下降算法是一样的。

多分类

对于多分类问题,会使用到称为一对多分类 one-vs-all classification(或称 one-vs-rest)的算法。这个算法本质上仍是将多分类问题当作二分类问题来处理。

(一图胜千言):

吴恩达机器学习课程 | 02 分类

Summary:

吴恩达机器学习课程 | 02 分类