Keywords
- Classification(分类)
- Generative Model(生成模型)
- Gaussian Distribution(高斯分布)
- Maximum Likelihood(极大似然估计)
Classification(分类)
- Input:目标 x
- Output:这个目标x属于n个Class中的哪个Class
Classification的应用
-
Credit Scoring(信用评分)
- Input:income(收入), savings(存款), profession(职业), age(年龄), past financial history(金融记录) …
- Output:accept or refuce(接受或者拒绝贷款)
-
Medical Diagnosis(医疗诊断)
- Input:current symptoms(当前症状), age(年龄), gender(性别), past medical history(医疗记录) …
- Output:which kind of diseases(哪种类型的疾病)
-
Handwritten character recognition(手写文字辨识)
- Input:手写字体
- Output:字体库中的哪个字
-
Face recognition(人脸识别)
- Input:image of a face(脸部图像)
- Output:person(人)
Example Application(应用举例)
- Input:某一只Pokemon精灵(数值化,一只Pokemon由以下七个数值表示)
- Total:总体强度
- HP:生命值
- Attack:攻击力
- Defence:防御力
- SP Atk:特殊攻击力
- SP Def:特殊防御力
- Speed:速度
- Output:这一只Pokemon精灵所属系
- 皮卡丘——雷
- 杰尼龟——水
- 妙蛙草——草
How to do Classification(如何做分类)
-
Training data for Calssification(分类所需的训练数据)
将已经收集的Pokemon精灵转化为元组训练数据(如下图)
-
Classification as Regression(用Regression的方法进行分类)
可能这时候你会想,我们可不可以用之前学过的《[Machine Learning] Regression(回归)》的方法来进行Classification(分类)呢?
假设我们现在只需要将Pokemon精灵分成两类,那么:
- 训练过程:将Class 1代表 y ^ = 1 \hat{y}=1 y^=1,Class 2代表 y ^ = 2 \hat{y}=2 y^=2的数据作为训练数据,然后对Model进行训练
- 测试过程:将测试数据代入训练好的Model,将最终Model输出值以0为分界点,Model输出值接近1即为Class 1,Model输出值接近-1即为Class 2
如果这样做我们会遇到什么问题呢?下面我们来探究一下!
如上图所示,假设我们现在的Model为 y = b + ω 1 x 1 + ω 2 x 2 y = b+\omega_1x_1+\omega_2x_2 y=b+ω1x1+ω2x2,蓝色点为Class 1( y ^ = 1 \hat{y}=1 y^=1),红色点为Class 2( y ^ = − 1 \hat{y}=-1 y^=−1),那么我们最终可以训练出一个类似图中绿色线( b + ω 1 x 1 + ω 2 x 2 = 0 b+\omega_1x_1+\omega_2x_2 = 0 b+ω1x1+ω2x2=0)的Model,Model输出值接近1(比如0.98)的点在线的一边,而Model输出值接近-1(比如-0.52)的点在线的另一边,这显然是个不错的结果。
但是!如果现在我们的训练数据像下图一样分布,然而我们依旧用Regression(回归)的方法的话,那么结果并不会这么完美。
可以发现,图中多出了一些蓝色点Class 1( y ^ = 1 \hat{y}=1 y^=1)的训练数据,它们距离绿色线( b + ω 1 x 1 + ω 2 x 2 = 0 b+\omega_1x_1+\omega_2x_2 = 0 b+ω1x1+ω2x2=0)很远,即 b + ω 1 x 1 + ω 2 x 2 > > 1 b+\omega_1x_1+\omega_2x_2 >> 1 b+ω1x1+ω2x2>>1,那么在训练过程中,机器就会认为它们是错误的点,因为这些点并不接近1,而是远大于1,这会使得Loss Funtion(损失函数)很大。
所以在用Model为 y = b + ω 1 x 1 + ω 2 x 2 y = b+\omega_1x_1+\omega_2x_2 y=b+ω1x1+ω2x2做Regularization(回归)的时候,最终的Model并不会得到向绿色那样的线,而是会向下倾斜,类似紫色线,机器认为这样的好处就是让那些远大于1的点接近1,使得Loss Funtion(损失函数)变小。
显然,现在出现了一种情况,对于Regularization(回归来说),紫色的线是一个好的Function;但是对于Classification(分类)来说,绿色的线才是一个好的Function。因此,用Regularization(回归)的方法来做Classification(分类)并不是一个好的办法!
现在还有一个问题!就是在做多分类问题的时候,训练数据会出现一种情况:将Class 1代表 y ^ = 1 \hat{y}=1 y^=1,Class 2代表 y ^ = 2 \hat{y}=2 y^=2,Class 3代表 y ^ = 3 \hat{y}=3 y