【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】

飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记

致敬开源
附上课程链接

[https://aistudio.baidu.com/aistudio/course/introduce/1978]

1 为什么不用线性回归做分类预测

如果用线性回归去训练以离散值为标签的分类数据会出现问题
下图是一个二分类问题,标签为1和-1
如果样本分布不均匀或偏离b + w1x1 + w2x2=0这条真实分界线过远,回归模型就会被带偏

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第1张图片

用回归去预测多分类问题,是预设每个分类都会“聚”在一起,但实际可能不是这样

2 概率生成模型

如果我们想计算某一点是从C1抽样得到的概率,套用贝叶斯公式即可

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第2张图片

发现P(c1)其实非常好得到,重点在于如何计算P(x|c1),这个需要知道c1的分布

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第3张图片

为了求出P(x|c1),下面需要引入高斯分布的概念

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第4张图片

假设某一个类别的数据集是从某一个gaussian分布中sample出来的
为了得到这个gaussian分布,我们需要知道数据(是向量)的期望μ和协方差Σ
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第5张图片

可以通过最大似然估计去估计μ和Σ,得到的μ和Σ即为当前数据最有可能符合的gaussian分布
构造最大似然估计方程,即用每个点在μ和Σ下发生的概率进行累乘

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第6张图片
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第7张图片

通过微分求解后发现最优的μ**就是取均值,最优的Σ就是根据μ*算得协方差
根据上述推导结果,在二分类问题下可以直接求得两类数据分布的μ和Σ

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第8张图片

套用高斯分布的公式计算得到P(x|c1),P(x|c2),套用贝叶斯公式之后就可以得到x属于c1的概率
若x属于c1的概率大于50%,将其分为c1类

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第9张图片

利用上述方法我们发现其实准确率并不高,这是因为我们要分别估计两种类别的协方差矩阵
协方差矩阵随着feature size的增加会指数型增长,导致参数过多,容易过拟合
根据下图我们还发现边界是一个非线性的

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第10张图片

一种优化思路是在协方差矩阵上让不同类别的数据共用一个协方差矩阵Σ,可以减少参数
那就可以在固定μ1和μ2的情况下,重新用最大似然估计共用的Σ

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第11张图片

在已知μ1和μ2的情况下,我们利用最大似然估计共用的Σ

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第12张图片

经过求解后发现共用的Σ实际上是原协方差矩阵的加权求和,权重为P(c1)和P(c2)
优化后的分界线变为了直线,也就是优化后的model是一个linear model

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第13张图片

总结一下构建概率生成模型的三个步骤,如下图所示

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第14张图片

上述过程中由于是feature是连续型变量,我们假设它们的分布是Gaussian
实际中feature可以是binary的变量,这时候可以假设它们服从Bernoulli(伯努利)分布
若假设所有feature都是independent(独立),则概率可以累乘如下图
且可以假设它们的分布是服从Naive Bayes Classifier,但这个假设很强

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第15张图片

下面是对概率生成模型的展开推导

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第16张图片
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第17张图片
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第18张图片
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第19张图片

最后化简得到属于C1的概率实际上就是对wx+b做sigmoid,那么是否可以有一种方法来使得w和b直接求得而不需要之前的很多估算步骤呢?实际上通过Logistic Regression 就可以了(哈哈)
这样的话从输入到输出就变为了加了一个sigmoid函数的过程

3 逻辑回归

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第20张图片

我们优化的初衷是为了拟合出一个function,使得其产生的数据分布最贴近训练的数据
通过最大似然函数可以表示成下图
其中f(x)统一表示为是C1类别的概率,那么是C2类别的概率就是1-f(x)

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第21张图片

为了刻画一个统一的目标函数,我们可以引入信号控制量
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第22张图片

发现最终化成了交叉熵的计算方式
假设两个分布都是伯努利分布,通过公式可以计算出这两个分布的近似程度

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第23张图片
得到了目标函数之后,下面要求梯度
对目标函数取ln,并分别对两个式子运用链式法则求梯度
其中∂σ(z)/∂z = σ(z)(1-σ(z))是固定格式
求得单个w的偏导后惊讶的发现它竟然和线性回归的梯度公式是一样的
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第24张图片

【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第25张图片

那么为什么不能直接用均方误差作为目标函数来进行优化呢?
若以均方误差作为目标函数,计算梯度可以发现问题
当x的某项为0的话,该项的w的偏微分一定是0,这样无法继续优化
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第26张图片

4 比较概率生成模型和逻辑回归

由于在概率生成模型中,我们假设数据分布是属于高斯分布,而逻辑回归则无此假设
所以这两种方法算出来的参数是不一样的【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第27张图片
从预测的效果上来看,逻辑回归更胜一筹
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第28张图片
Generative的模型有三个好处
① 它不需要很多的数据
② 它的假设有助于它抵抗噪声的影响
③ Priors probabilities(先验概率,即条件概率)和 class-dependent(属于某类概率) 可以被分别估计
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第29张图片

5 逻辑回归的局限

逻辑回归本质上仍然是一个线性模型,解决不了线性不可分的问题
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第30张图片
为了解决这个问题,我们需要对特征做变换,使其线性可分,比如人为的做特征工程
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第31张图片
但这对转换的方式有讲究,而且这个问题就转化为人工问题而非自动化的问题了
另一种思路是拼接多个logistic regression,自动化完成了feature transform,并且分类
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第32张图片
通过上述转换从而使得新的特征是线性可分的
【飞桨-PaddlePaddle-李宏毅机器学习特训营-逻辑回归笔记】_第33张图片

你可能感兴趣的:(机器学习,python)