机器学习与深度学习——自用入门(2.4)

机器学习与深度学习——自用入门(2.4)

文章目录

  • 机器学习与深度学习——自用入门(2.4)
  • 前言
  • 一、Classification与Regression。
  • 二、Classification基本原理
  • 总结

前言

补充机器学习的classification应用实现。

一、Classification与Regression。

想到分类第一直觉是利用regerssion,将y与class对应即可。但是实际上,这种解法并不合理。并且还可能会导致因为在函数训练的过程中减少loss而导致产生分类类别错误的问题。因为regression的目的是尽可能拟合样本点,而classification是为了将样本点进行归类。
很明显,regerssion和classification由于目的不同和,对于loss的定义也不一样,所以不可以用regerssion解决classification的问题。

classification的loss定义如下,很明显,不能用gradient来计算loss,也不能用regerssion的函数来模拟classification。
在这里插入图片描述

二、Classification基本原理

根据机器学习的基本步骤,涉及到分类,就要明确三个问题:

  1. 如何根据样本定义类,并建立与类相关的数学模型?
    首先,通过对样本集设置feature与lable可以得到一种样本分布关系,而这种分布关系是可以进行定义的,比如由高斯分布(这个可以是任何Probablility Distribution,自己根据实际情况定义,这里以高斯为例),任何一个高斯分布都可以sample到我们的training set,且不同的高斯分布sample到的Likelihood是不同的。【Likelihood(μ,Σ):可以看作是所有样本点采样几率的乘积。】采用Maximum Likelihood(最大似然估计)找出使得Likelihood最大的μ与Σ,即得到一个最近似样本分布的高斯分布函数。
    也就是说,想定义一个类,就取同类的样本分布,通过上述方法,找到类对应的高斯分布函数。(参数为u和Σ)
    在这里插入图片描述

  2. 如何确定样本是否属于某类
    由此我们定义了一个类的高斯分布函数,将其样本作为参数带入,得到的值就是此样本在此类中取样的概率,即P(x|Ci)。但是,我们要求的是样本属于某类的概率,即P(Ci|x)。而根据贝叶斯定理,我们可以建立这两者之间的关系。即:
    注:P(Ci) 是class Ci的样本所占training set的几率,是已知量。
    在这里插入图片描述
    以上,可以得到P(Ci|x),根据即P(Ci|x)的值的大小,我们可以确定x属于哪一类,比如即P(Ci|x)>0.5时,我们就认为样本属于Ci。
    这样,整体的model就建立了起来。

  3. 如何将上述model变成一个可供计算的function?
    通过以上步骤得到的函数进行变形可以看到,原函数可以遍行成sigmoid函数,这就与我们之前所作的regression联系起来了。对于P(Ci|x)model的研究也就可以转化成对sigmoid函数z参数的研究。
    在这里插入图片描述
    对上述公式进一步变形,通过将不同类的Σ共用,避免overfitting,根据Σ对Z进行化简,复杂的Z可以准化成一个相对简单的线性关系。也就是说,P(Ci|x)可以写作下列sigmoid函数。(这里的w是个矩阵,而x是一个向量,由样本不同维度的feature构成)在这里插入图片描述
    注:通过公用,原来求最大似然估计的算式的参数就可以简化成不同的μ与一个通用的Σ。在这里插入图片描述

  4. 如何将上述function进行评估-找loss的计算方法?
    很明显,function越合理,样本属于样本类的可能性越大,换而言之就是,原函数可以取到Max Likelihood时,w与b是最佳参数。
    Likelihood的计算公式如下:
    在这里插入图片描述在这里插入图片描述
    将公式取对数化并加符号,求Max Likelihood的过程就变成了求最小的-ln(Likelihood)的过程。

再次进行变形,通过交叉熵代价函数(取值范围为0,1),让样本与每个类相关。这样,最大似然估计里样本属于某个类就可以简化成参数问题(0/1问题)。(information theory的知识)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
讲了这么多,其实就是为了建立loss与参数w b的关系,现在关于w b的最大似然估计的公式已经建立起来了。怎么去定义loss呢?

首先回忆下loss function的作用,就是:
计算神经网络每次迭代的前向计算结果与真实值的差距
指导下一步的训练向正确的方向进行。

那么很明显,loss的差值就是likelihood的差值,我们的更新方向也就是对这个函数进行gradient decent。
这个其实跟regression的根本原理是一样的,只是loss的衡量尺度不同,对于regression,是y的差值的变化,而对于classification,体现在最大似然估计上。
在这里插入图片描述
在这里插入图片描述
ok,接下来,我们需要对likelihood function进行w与b的求导以确定更新方向,还记得第一步用来替代fwb(x)的简化得到的sigmoid函数吗,非常神奇的是,可以用链式求导把likelihood的求导结果用sigmoid函数表示出来……
在这里插入图片描述
在这里插入图片描述
整理后,得到的g就是update的更新方向,乘上参数n就是更新的步长。
在这里插入图片描述

总结

其实可以看到,分类无非就是以下的三步:
在这里插入图片描述
classification用到了logistic regression,即通过样本x,w,b定义一个线性关系,再代入一个logistic函数来求得一个概率,通过这个概率的likelihood去进行w b的调整进行回归,这个logistic函数就是sigmoid。

  • 37
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值