李宏毅 机器学习(2017)学习笔记——4-分类:概率生成模型

目录

1. 分类问题

2. 使用回归解决分类问题

3. 二分类

4. 朴素贝叶斯

4.1 先验概率

4.2 每一个类别的可能性

4.3 后验概率

5. 数学推导


1. 分类问题

    分类问题旨在找寻一个函数,其输入为一个物体x,输入为这个x属于哪个类别

    例如:金融上的信用评估,医疗诊断,手写文字识别,人脸识别等。

    本课程仍使用宝可梦的例子,已知宝可梦有18种属性,做一个分类问题,其输入为一只宝可梦,输出这个宝可梦的属性。

    如何把宝可梦作为输入传入函数中呢?我们需要用数字衡量这个宝可梦。如下图所示,一只皮卡丘可以用一个含有七个分量的向量来描述。

    

  • 如何完成分类任务呢?

    ① 收集分类问题的训练数据。

    

    ② 把分类问题当做回归硬解。

    以二分类为例,假设我们的输入为:输入x是属于类别1还是类别2。

    训练:类别1代表其目标为,即为1,类别2代表其目标为-1。(当做回归问题训练)

    测试:如果接近1->类别一;如果接近-1->类别2。(理解为以0为分界)

2. 使用回归解决分类问题

    如左图所示,模型,输入为两个特征,蓝色为类别1,红色为类别2。用回归的思想考虑,蓝色输入回归模型中,我们希望它越接近1越好;红色输入回归模型中,我们希望它越接近-1越好。类别1和类别2的分界线是=0。

    如右图所示,如果用绿色的线做模型时,它的输出很有可能是远大于1的。我们使用回归,希望蓝色的点越接近1越好。那么,这些远大于1的点对回归问题而言,是误差,是错误的。

    我们在做回归问题时,虽然绿色线直观而言是一个很好的边界线,但是我们通过模型训练得到的应该是紫色线。

    

    回归定义模型好坏的规则,对于分类问题而言,并不适用

    多分类更不适合用回归思想解决。

3. 二分类

    函数(模型):找一个函数,如下图:

    

    损失函数:(如果选择了函数f,那么在训练数据上,预测错误的次数为L(f))

    找到最好的方法:例如感知机和支持向量机SVM。

4. 朴素贝叶斯

    假设有两个盒子,如下图。假设从任意一个盒子中任选一球为蓝色,那么这个蓝色球从盒子1和盒子2中取出的几率各是多少呢?

    

    计算式子如下:

    

    如果我们把两个盒子换成两个类别,想要知道给定x属于哪一个类别,我们必须知道如下四个概率。

    

    有了这四个概率值,我们就可以计算x属于类别1的概率:

    

  •     那么,想要估测一个x的类别,就需要计算四个概率值,怎么计算这四个概率值呢?我们需要从训练数据中估测出这四个概率值。

    这一套操作,我们称作生成模型。我们可以使用生成模型来生成一个x,计算P(x).

4.1 先验概率

    被称为先验概率

    

    假设宝可梦有水系和一般系两种类别。把编号小于400的水系和一般系的作为训练集,其余的作为测试集。

    训练集中有79个水系,61个一般系。

    那么  =79/(79+61)=0.56,=61/(79+61)=0.44。

4.2 每一个类别的可能性

    如何计算的几率呢?

    例如:我们求

    首先,属于水系的神奇宝贝共有79只,海龟并不属于训练数据。

    每一只宝可梦都使用一个向量来描述,向量中的分量是这个宝可梦的特征值

    然后,我们把训练数据中水系宝可梦的防御力和特殊防御力的散点图画出来。

    

    我们考虑从已有的数值中估测海龟属于水系的概率。假设这79个点是从一个高斯分布中采样的。

  •     高斯分布

    

    这个函数的输入是一个向量x,输出是这一只宝可梦从这一个分布中被采样出来的几率。

    这个几率的分布由均值μ和磁热是那个协方差Σ决定。不同的μ和Σ的几率分布不同。

    

    回到之前宝可梦的例子,假设我们从一个高斯分布中采样79次画出79个点。假设我们可以根据这79个点估测出这个高斯分布的μ和Σ。

    给出一个新的点x,它并不属于这79个点,在我们知道μ和Σ的情况下,我们可以写出高斯分布函数,把x带入这个函数,算出这个x从这个高斯分布中取样的几率有多大。

    x越接近μ,取样的几率越大。

    

  •     那么如何找出μ和Σ呢?

    最大似然估计

    虽然每一个高斯分布都能取样79个点,但是他们取样出79个点的可能性不同。如图,右下角的高斯分布可能性较高。

    

    给出一个高斯分布的μ和Σ,就可以算出这个高斯分布取样79个样本的几率。

    这个可能性,我们可以写作:(即几率相乘)

    我们要做的事情是找到一个取样出79个样本点几率最大的高斯分布,这个高斯分布我们将其作为取样出这79个点的高斯分布,写作

    最大似然公式为:

    然后我们要穷举所有的μ和Σ,看哪一个能让上面的式子最大,就是我们要找的μ和Σ。

    我们可以这样求:    

    返回到宝可梦的例子中,水系和一般系的宝可梦的μ和Σ如下图所示。

    

    求出上图的μ和Σ之后,我们就可以解决分类问题。如果求出>0.5,则认定x属于类别1(即水系)。

    

    P(C1)和P(C2)都很容易求出。

    

  •     经计算结果是怎样的呢?

    如左图,蓝色点代表水系,红色点代表一般系。在这个二维平面上,每一个点都能当做是一个x,计算它是水系的几率,红色区域表示是水系的几率较大,蓝色区域表示是一般系的几率较大,如右图,红色区域中蓝色点较多,蓝色区域中红色点较多。

    

    随后观察测试数据,从图中观察,分类效果交叉,正确率仅有47%。

    

    事实上,每个宝可梦有7个特征,二维空间无法准确区别,可能在七维空间中可以正确区别。我们依旧要计算,计算后准确率同样不高,我们在后面的章节中解答。

    我们可以将不同类别的协方差设为相同的Σ,为什么这么设置呢?由于一个协方差矩阵的参数是x²个,如果设置不同的话,就会造成参数过多。

    现在有79只水系宝可梦,均值为,协方差为Σ,61只一般系宝可梦,均值为,协方差与水系的相同,为Σ

    

    那么如何计算极大似然呢?

    共用协方差矩阵以后,边界线就变成了直线,分类准确率提高了很多,这样的模型也称为线性模型

    

    考虑所有的特征,正确率从54%提高到73%。

  •     概率模型的三个步骤

    ① 函数集合(模型)

    ② 评估每一个函数的好坏。(最大似然估计求出均值μ和协方差Σ)

    ③ 找出最好的参数。

  •     为什么要用高斯分布而不用其他分布呢?

    事实上,可以使用任何喜欢的分布。

    假设x的每一个维度产生的几率是独立的,每一个维度产生的几率都是一维高斯分布,此时协方差成为了对角矩阵。假设是二分布,除了假设是高斯模型以外,还可以假设是其它模型,如伯努利分布(特征是0或者1)。

    假设所有的维度都是独立的,所以可以使用朴素贝叶斯分类器

    

4.3 后验概率

    对式子分子分母同时除以,设,那么后验概率得到一个σ(z),图像如下图右图

    

5. 数学推导

   我们已知后验概率是一个关于z的sigmoid函数 ,

    

    

    代入上式后得到:

    

    

    若共用协方差,则

    

    所以,我们可以把后验概率写作

    这也就解释了为什么在共用协方差之后,变成了线性模型。

    在生成模型是,我们找到,就可以算出w和b。

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值