IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 浅谈生成式模型与辨别式模型,以naive Bayes和logistic regression为例 -> 正文阅读

[人工智能]浅谈生成式模型与辨别式模型,以naive Bayes和logistic regression为例

classification

我们以分类作为大背景,来看看生成式模型与辨别式模型的区别

假设你是大木博士,你有一个任务,是训练一个模型来对水属性宝可梦和一般属性宝可梦进行二分类
在这里插入图片描述
我们的类别集合为 C = { C 1 , C 2 } C=\{C_1,C_2\} C={C1?,C2?},其中 C 1 C_1 C1?为水系宝可梦, C 2 C_2 C2?为一般系宝可梦,我们已知的是样本集合 x ∈ X , x ∈ R n x∈X,x∈R^n xXxRn的数目为: C 1 = 79 C_1=79 C1?=79 C 2 = 61 C_2=61 C2?=61,如果我们现在只取每只宝可梦的攻击和防御两个特征,则 x ∈ R 2 x∈R^2 xR2

那么,我们要如何利用这组样本来对宝可梦们进行属性分类呢?

naive Bayes

首先我们来看看如何利用朴素贝叶斯模型来进行二分类

朴素贝叶斯满足假设:样本x的每个特征(攻击力,防御力)之间相互独立

我们先看看贝叶斯公式 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(xC1?)P(C1?)+P(xC2?)P(C2?)P(xC1?)P(C1?)?
其中

P ( C 1 ) , P ( C 2 ) P(C_1),P(C_2) P(C1?)P(C2?)为先验概率,我们可以通过 P ( C 1 ) = 79 79 + 61 , P ( C 1 ) = 61 79 + 61 P(C_1)=\frac{79}{79+61},P(C_1)=\frac{61}{79+61} P(C1?)=79+6179?,P(C1?)=79+6161?来进行计算

P ( x ∣ C 1 ) , P ( x ∣ C 2 ) P(x|C_1),P(x|C_2) P(xC1?)P(xC2?)为似然,即我们从样本集合中,随便抽一只宝可梦,这只宝可梦是水系/一般系的概率,通常我们根据样本的性质来假设样本的分布,这是朴素贝叶斯的核心,也是生成式模型的核心,就是样本的分布是我们假设出来的,可以理解为样本的分布是模型“脑补出来的”,我们在后面会仔细讲解

关于概率的先验,后验,如果不太熟悉话,可以看看我的这篇blog

如果我们知道以上四个概率的值,我们就可以直接通过贝叶斯公式计算出 P ( C ∣ x ) P(C|x) P(Cx)

x = { 水 属 性 P ( C 1 ∣ x ) > 0.5 一 般 属 性 e l s e x=\begin{cases} 水属性&P(C_1|x)>0.5\\ 一般属性&else \end{cases} x={?P(C1?x)>0.5else?

至于似然要取什么样的分布,是取决于x的性质的

  • x是连续的,取高斯分布
  • x是稀疏离散的,即x=1或x=0,取伯努利分布

在这里我们取高斯分布作为似然 P ( C ∣ x ) P(C|x) P(Cx)的分布
在这里插入图片描述
ok,既然已经确定了似然,那我们该如何求解贝叶斯公式呢?我们还有什么未知的参数吗?

对了,高斯分布的似然的参数 μ 1 , μ 2 , Σ 1 , Σ 2 \mu_1,\mu_2,\Sigma_1,\Sigma_2 μ1?,μ2?,Σ1?,Σ2?我们还不知道呢?

由于贝叶斯假设,样本x的各个特征相互独立,假设x只有两个特征,我们可以用两个一维高斯分布来作为 x 1 , x 2 x_1,x_2 x1?,x2?的似然分布

我们采用极大似然法来求以上的参数 μ 1 , μ 2 , Σ 1 , Σ 2 \mu_1,\mu_2,\Sigma_1,\Sigma_2 μ1?,μ2?,Σ1?,Σ2?

似然函数的形式十分简单,下式为 P ( C 1 ∣ x ) P(C_1|x) P(C1?x)的似然函数
在这里插入图片描述
具体求解过程这里就不展开了 ,感兴趣的可以参考我关于naive Bayes的公式推导

ok,如下图所示,我们很轻易的得到了两种属性的高斯分布的参数,对于输入x,我们可以使用朴素贝叶斯模型对其进行分类了
在这里插入图片描述
在这里插入图片描述
如下图所示,红点为水属性宝可梦,蓝点为一般系宝可梦,我们根据output的 P ( C 1 ∣ x ) = 0 P(C_1|x)=0 P(C1?x)=0画出决策界限,最后发现准确率相当糟糕 ,我艹了
在这里插入图片描述

一开始我觉得是因为特征太少,如果在高维空间说不定能把样本分开,后面尝试了一下发现准确率并没有提升太多

后面我考虑让x的两个特征的高斯分布共用同一个协方差矩阵,这样可以减少参数的个数,现在的参数列表为 μ 1 , μ 2 , Σ \mu_1,\mu_2,\Sigma μ1?,μ2?,Σ,这样可以有效防止过拟合

当然,此时还是满足贝叶斯假设,尽管这两个高斯分布共用同一个协方差矩阵,但它们的均值不同,还是两个独立的分布

在这里插入图片描述
此时我们求解的最大似然函数为
在这里插入图片描述
改进后的模型一下子就变的强劲了许多,准确率得到了提升

诶,但是决策界限怎么变成了直线呢? 埋个坑,和logistic regression有关哦

在这里插入图片描述

logistic regression

我们的朴素贝叶斯模型的后验概率,即 P ( C 1 ∣ x ) P(C_1|x) P(C1?x),可以经过一系列的数学推导,转换为 P ( C 1 ∣ x ) = σ ( z ) , z = l n P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 2 ) P ( C 2 ) P(C_1|x)=\sigma(z),z=ln\frac{P(x|C_1)P(C_1)}{P(x|C_2)P(C_2)} P(C1?x)=σ(z),z=lnP(xC2?)P(C2?)P(xC1?)P(C1?)?

在这里插入图片描述
下面为一些数学推导,不喜勿入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后的结论就是 z = w T x + b z=w^Tx+b z=wTx+b
在这里插入图片描述
所以 P ( C 1 ∣ x ) = σ ( z ) , z = w T x + b P(C_1|x)=\sigma(z),z=w^Tx+b P(C1?x)=σ(z),z=wTx+b

龟龟,那我们干嘛还求 μ 1 , μ 2 , Σ \mu_1,\mu_2,\Sigma μ1?,μ2?,Σ,直接求 w , b w,b w,b不就完事了

这样想法就是辨别式模型

logistic regression
f w , b ( x ) = P w , b ( C 1 ∣ x ) f_{w,b}(x)=P_{w,b}(C_1|x) fw,b?(x)=Pw,b?(C1?x)
在这里插入图片描述

logistic regression和linear regression的异同

首先是开门见山,下图为两者的对比
在这里插入图片描述
我们可以发现,logistic和linear大致相同,就是它们的loss fuction不同

  • logistic L ( f ) = ∑ n C ( f ( x n ) , y ^ n ) L(f)=\sum_{n}C(f(x^n),\hat y^n) L(f)=n?C(f(xn),y^?n)cross entropy
  • linear ( f ( x n ) ? y ^ n ) 2 (f(x^n)-\hat y^n)^2 (f(xn)?y^?n)2square error

在这里插入图片描述
logistic regression的loss function推导

这是我们的训练样本
在这里插入图片描述
假设我们的样本都是 C 1 C_1 C1?的高斯分布生成的
f w , b ( x ) = P w , b ( C 1 ∣ x ) f_{w,b}(x)=P_{w,b}(C_1|x) fw,b?(x)=Pw,b?(C1?x)
则它们的似然函数为
在这里插入图片描述
我们要找到 w ? , b ? w^*,b^* w?,b?,使得似然函数最大
在这里插入图片描述

在这里插入图片描述
经过一系列的推导与转化,我们得到了logistic的loss function,为
L ( f ) = ∑ n C ( f ( x n ) , y ^ n ) L(f)=\sum_{n}C(f(x^n),\hat y^n) L(f)=n?C(f(xn),y^?n)
在这里插入图片描述

在这里插入图片描述

cross entropy表示的是两个分布之间的相似程度

有了loss function,我们就可以计算梯度并进行迭代更新

在这里插入图片描述

从下图我们可以看到,logistic的下降速度,也就是梯度的大小,取决于分布 f w , b ( x n ) f_{w,b}(x^n) fw,b?(xn) y ^ n \hat y^n y^?n的相似程度,它们越不相似,梯度就越大,下降的速度也就越快,反之同理

在这里插入图片描述

我们最后会惊奇的发现,logistic和linear的迭代方程是一模一样的

那么,为什么logistic不用square error作为loss fuction,而是要用cross entropy呢?

通过下面两张图的推导,我们发现
当logistic使用square error作为loss function时,梯度很小,几乎为0

在这里插入图片描述
在这里插入图片描述

从下图可以很清除的看出差别
在这里插入图片描述

生成式vs辨别式

下图为辨别式模型与生成式模型的参数选择上的区别,另外,即使使用相同的数据,相同的模型,但是生成式模型和辨别式模型生成的假设函数的参数式不同的
在这里插入图片描述
从下图我们可以看出辨别式模型的准确率要高于生成式模型,但这并不意味着辨别式模型就一定要比生成式模型要好
在这里插入图片描述

  • 由于生成式模型会自己“脑补”(有假设分布),故生成式模型所需的训练数据会较少
  • 由于生成式模型会假设分布,所以它对抗噪声干扰的能力会更强
  • 生成式模型的计算可以拆为prior(先验)和class-dependent probabilities(似然),而先验和似然可以来自不同的源(例如语音识别)

多分类

这个以后回来填坑
在这里插入图片描述

softmax可以拉大z之间的差距,并且会把它们限制到0-1

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-09 17:32:00  更:2021-07-09 17:32:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/19 18:18:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码