我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

已经有人记了笔记(很用心,强烈推荐):
https://github.com/Sakura-gh/ML-notes

本节对应笔记:https://sakura-gh.github.io/ML-notes/ML-notes-html/6_Classification.html

本节内容综述
  1. 背景介绍,什么是“分类”问题。以宝可梦属性到种类的映射为例。
  2. 分类问题不能直接使用 linear regression 模型,因为回归模型会 penalize to the examples that are "too correct"(Bishop, P186) 。
  3. 对于分类模型,应该在 f ( x ) f(x) f(x) 内置去呗类别的函数,并且损失函数设为 L ( f ) = ∑ n δ ( f ( x n ) ≠ y ^ n ) L(f) = \sum_n \delta (f(x^n) \neq \hat{y}^n) L(f)=∑n​δ(f(xn)​=y^​n),但是没办法微分。SVM是一个解决方案,但是今天先不讲这个。
  4. 基于“盒子抽球”,从二元分类问题起,讨论一个贝叶斯/条件概率模型问题。
  5. 在神奇宝贝分类的例子中,进行首先基于数据进行一个高斯分布的拟合(使用极大似然法),这样就可以基于这个高斯分布计算出各个单个数据的采样的几率。
  6. 接着,基于 P ( C 1 ∣ x ) = P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) P(C_1|x) = \frac{P(x|C_1)P(C_1)}{P(x|C_1)P(C_1) + P(x|C_2)P(C_2)} P(C1​∣x)=P(x∣C1​)P(C1​)+P(x∣C2​)P(C2​)P(x∣C1​)P(C1​)​这个公式,可以进行分类的预测。如果 P ( C 1 ∣ x ) > 0.5 P(C_1|x)>0.5 P(C1​∣x)>0.5,则判断为 C 1 C_1 C1​类。
  7. 改进模型,我们可以为描述两种数据的高斯分布赋予相同的方差 Σ \Sigma Σ,这样参数减少;使用极大似然估计的话,则使用 m a x i m i n z i n g    t h e    l i k e l i h o o d    L ( μ 1 , μ 2 , Σ ) maximinzing\; the\; likelihood\; L(\mu^1, \mu^2, \Sigma) maximinzingthelikelihoodL(μ1,μ2,Σ)。 Σ \Sigma Σ是两个类别数据方差的加权。
  8. 公用方差后,准确率从 54% 提升到了 73% 。
  9. 总结了“几率模型”的三步走,见[小细节](#Three Steps of 几率模型)。
  10. 为什么用 高斯分布模型 作为几率模型?实际上,你可以选择你喜欢的、你认为合适的。
  11. 如果你假设各个维度都相互独立,那么你就是在使用朴素贝叶斯分类。
  12. 对于后验概率 posterior probability 进行了推导,将其与 Sigmoid 函数进行了联系。很巧妙,见[小细节](#Posterior Probability & Sigmoid Function)。我们将得出使用 wx+b 以及 Sigmoid 作为激活函数的合理性,很巧妙。
小细节

regression 的方法不适于 classification

【李宏毅2020 ML/DL】P10 Classification_1 | 简单的例子告诉你使用 wx+b 以及 Sigmoid 作为激活函数的合理性_概率模型

如上图,如果使用 regression 的模型来进行分类的话,对于一些远大于1的点,分类器则会去接近它们,进而产生偏差。这是因为在 regression 中,我们要求蓝色的点越接近 1 越好,而非“大于1就可以了”。

因此不可以使用简单的 regression 模型来做分类。

Three Steps of 几率模型

【李宏毅2020 ML/DL】P10 Classification_1 | 简单的例子告诉你使用 wx+b 以及 Sigmoid 作为激活函数的合理性_深度学习_02

Posterior Probability & Sigmoid Function

【李宏毅2020 ML/DL】P10 Classification_1 | 简单的例子告诉你使用 wx+b 以及 Sigmoid 作为激活函数的合理性_深度学习_03

有了如上声明,我们推导一下 z z z 的具体内容:

  • 数学证明具体略;
  • 思路为对 z = l n A B = l n A + l n B z=lnAB=lnA + lnB z=lnAB=lnA+lnB,并约因数,并展开;
  • 整理结束后,基于 ∑ 1 = ∑ 2 \sum_1 = \sum_2 ∑1​=∑2​ 进行大幅度简化;
  • 进行整理,最后得到如下公式。

z = w T x + b z = w^T x + b z=wTx+b

其中,

  • w T = ( μ 1 − μ 2 ) T ∑ − 1 x w^T = (\mu^1 - \mu^2)^T \sum^{-1}x wT=(μ1−μ2)T∑−1x
  • b = − 1 2 ( μ 1 ) T ( Σ 1 ) − 1 μ 1 + 1 2 ( μ 2 ) T ( Σ 2 ) − 1 μ 2 + ln ⁡ N 1 N 2 b=-\frac{1}{2}\left(\mu^{1}\right)^{T}\left(\Sigma^{1}\right)^{-1} \mu^{1}+\frac{1}{2}\left(\mu^{2}\right)^{T}\left(\Sigma^{2}\right)^{-1} \mu^{2}+\ln \frac{N_{1}}{N_{2}} b=−21​(μ1)T(Σ1)−1μ1+21​(μ2)T(Σ2)−1μ2+lnN2​N1​​

因此,可以将复杂的概率公式写为:

P ( C 1 ∣ x ) = σ ( w ⋅ x + b ) P(C_1|x) = \sigma(w \cdot x + b) P(C1​∣x)=σ(w⋅x+b)

我们得出了:

  • 一元线性函数的合理性;
  • 使用 Sigmoid 作为激活函数的合理性。

更多文章请关注《万象专栏》