Andrew Ng机器学习课程笔记(五)之监督学习之Generative Learning Algorithms

xiaoxiao2021-02-28  53

PrefaceGenerative Learning Algorithms 生成学习算法GLA与判别学习算法DLA: Gaussian Discriminant Analysis Multivariate Gaussian Distribution(多元高斯分布)Gaussian Discriminant Analysis modelGaussian Discriminant Analysis与Logistic Regression Naive Bayes Step1:构建字典。Step2:假设独立。Step3:模型参数。Step4:预测函数。 Laplace Smoothing 分子为零情况Laplace Smoothing 参考文献

Preface

主要内容: Generative Learning Algorithms(GLA,生成学习算法) Gaussian Discriminant Analysis(GDA,高斯判别分析) Naive Bayes(朴素贝叶斯) Laplace Smoothing(拉普拉斯平滑)

Generative Learning Algorithms

生成学习算法GLA与判别学习算法DLA:

判别学习算法DLA:我们在前面几篇文章中所讲述的算法模型大都属于判别学习算法DLA(Discriminative Learning Algorithm),它是通过对于已有的数据集直接学习其不同类别的特征得到 p(y|x;θ) p ( y | x ; θ ) 或者 假设预测函数 h(θ) h ( θ ) 直接输出0或1。生成学习算法GLA:对 p(x|y) p ( x | y ) (在给定所属的类别的情况下,对特征出现的概率建模)或者 p(y) p ( y ) ,其中 x x 表示某一个样本的特征, yy 表示类别标签。例子: 现在假设有 y=0 y = 0 表示类别一, y=1 y = 1 表示类别二, x x 表示某一个样本的特征。 根据贝叶斯公式有: p(y=1|x)=p(x|y=1)p(x)p(x)p(y=1|x)=p(x|y=1)p(x)p(x) or p(y=0|x)=p(x|y=0)p(x)p(x) p ( y = 0 | x ) = p ( x | y = 0 ) p ( x ) p ( x ) 根据全概率公式有: p(x)=p(x|y=1)p(y=1)+p(x|y=0)p(y=0) p ( x ) = p ( x | y = 1 ) p ( y = 1 ) + p ( x | y = 0 ) p ( y = 0 )

常见的生成模型有:隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA等。

Gaussian Discriminant Analysis

Multivariate Gaussian Distribution(多元高斯分布)

现,假设 xN(μ⃗ ,) x ∼ N ( μ → , ∑ ) XRn X ∈ R n 且连续,其中 μ⃗ Rn μ → ∈ R n 为均值向量, Rnn ∑ ∈ R n ∗ n 为协方差矩阵(关于协方差矩阵可以查看这篇博文https://www.cnblogs.com/terencezhou/p/6235974.html)。所以 z z 的概率密度函数为: P(x;μ,)=1(2π)n2(||)12e12(xμ)T1(xμ)(1)(1)P(x;μ,∑)=1(2π)n2(|∑|)12e−12(x−μ)T∑−1(x−μ)

μ=E[X](2) (2) μ = E [ X ] Cov(X)=E[(xμ)(xμ)T]=(3) (3) C o v ( X ) = E [ ( x − μ ) ( x − μ ) T ] = ∑ 协方差矩阵: Σ=E[(XE[X])(XE[X])T] Σ = E ⁡ [ ( X − E ⁡ [ X ] ) ( X − E ⁡ [ X ] ) T ] =cov(X1,X1)cov(X2,X1)cov(Xn,X1)cov(X1,X2)cov(X2,X2)cov(Xn,X2)cov(X1,Xn)cov(X2,Xn)cov(Xn,Xn) = [ cov ⁡ ( X 1 , X 1 ) cov ⁡ ( X 1 , X 2 ) ⋯ cov ⁡ ( X 1 , X n ) cov ⁡ ( X 2 , X 1 ) cov ⁡ ( X 2 , X 2 ) ⋯ cov ⁡ ( X 2 , X n ) ⋮ ⋮ ⋱ ⋮ cov ⁡ ( X n , X 1 ) cov ⁡ ( X n , X 2 ) ⋯ cov ⁡ ( X n , X n ) ] =E[(X1E[X1])(X1E[X1])]E[(X2E[X2])(X1E[X1])]E[(XnE[Xn])(X1E[X1])]E[(X1E[X1])(X2E[X2])]E[(X2E[X2])(X2E[X2])]E[(XnE[Xn])(X2E[X2])]E[(X1E[X1])(XnE[Xn])]E[(X2E[X2])(XnE[Xn])]E[(XnE[Xn])(XnE[Xn])] = [ E ⁡ [ ( X 1 − E ⁡ [ X 1 ] ) ( X 1 − E ⁡ [ X 1 ] ) ] E ⁡ [ ( X 1 − E ⁡ [ X 1 ] ) ( X 2 − E ⁡ [ X 2 ] ) ] ⋯ E ⁡ [ ( X 1 − E ⁡ [ X 1 ] ) ( X n − E ⁡ [ X n ] ) ] E ⁡ [ ( X 2 − E ⁡ [ X 2 ] ) ( X 1 − E ⁡ [ X 1 ] ) ] E ⁡ [ ( X 2 − E ⁡ [ X 2 ] ) ( X 2 − E ⁡ [ X 2 ] ) ] ⋯ E ⁡ [ ( X 2 − E ⁡ [ X 2 ] ) ( X n − E ⁡ [ X n ] ) ] ⋮ ⋮ ⋱ ⋮ E ⁡ [ ( X n − E ⁡ [ X n ] ) ( X 1 − E ⁡ [ X 1 ] ) ] E ⁡ [ ( X n − E ⁡ [ X n ] ) ( X 2 − E ⁡ [ X 2 ] ) ] ⋯ E ⁡ [ ( X n − E ⁡ [ X n ] ) ( X n − E ⁡ [ X n ] ) ] ] 多元高斯分布的参数分布效果: 1.观察 对于高斯曲面的影响。 我们可以得出结论(将 μ=0,=I μ = 0 , ∑ = I 当做标准形态): - 当增加矩阵的当减小主对角线的值时,高斯曲面变陡峭; - 当增加矩阵的当增大主对角线的值时,高斯曲面变扁平; - 当矩阵的副对角线向正无穷增大时,高斯曲面沿 y=x y = x 为对称轴变扁,变高; - 当矩阵的副对角线向负无穷增大时,高斯曲面沿 y=x y = − x 为对称轴变扁,变高;

我们可以通过等高线更形式化的观察:

2.观察 μ μ 对于高斯曲面的影响(中心偏移)( =I ∑ = I )。

Gaussian Discriminant Analysis model

现在,如果我们在遇到对于 01 0 − 1 问题的分类问题,我们就可以使用高斯判别分析模型直接对于 P(x|y) P ( x | y ) 建模来划分我们的类别。 例如下图: 在图中我们假设 : y{0,1}:yBernoulli(ϕ) y ∈ { 0 , 1 } : y ∼ B e r n o u l l i ( ϕ ) x|y=0N(μ0,) x | y = 0 ∼ N ( μ 0 , ∑ ) x|y=1N(μ1,) x | y = 1 ∼ N ( μ 1 , ∑ ) 。 所以概率密度函数为:

P(y,ϕ)=ϕy(1ϕ)(1y)(4) (4) P ( y , ϕ ) = ϕ y ( 1 − ϕ ) ( 1 − y ) P(x|y=0)=1(2π)n2(||)12e12(xμ0)T1(xμ0)(5) (5) P ( x | y = 0 ) = 1 ( 2 π ) n 2 ( | ∑ | ) 1 2 e − 1 2 ( x − μ 0 ) T ∑ − 1 ( x − μ 0 ) P(x|y=1)=1(2π)n2(||)12e12(xμ1)T1(xμ1)(6) (6) P ( x | y = 1 ) = 1 ( 2 π ) n 2 ( | ∑ | ) 1 2 e − 1 2 ( x − μ 1 ) T ∑ − 1 ( x − μ 1 ) 即,似然函数(这里,它有来一个新名字joint liklihood)为: 最后根据极大似然估计的结果: 其中, ϕ ϕ 是贝努利分布中 y=1 y = 1 的训练集中标签为1的样本所占的比例, μ0 μ 0 表示为 0x0 训 练 集 中 标 签 为 0 的 x 的 和 训 练 集 中 标 签 为 0 的 样 本 数 量 ,即训练集中标签为 0 的样本的x的均值。 μ1 μ 1 表示为 1x1 训 练 集 中 标 签 为 1 的 x 的 和 训 练 集 中 标 签 为 1 的 样 本 数 量 ,即训练集中标签为 1 的样本的x的均值。

最后根据下述公式进行预测:

Gaussian Discriminant Analysis与Logistic Regression

在上面的课程截图中我们看到如果我们对于样本中x与o分别假设其满足高斯分布,然后通过刚刚讲述的GDA模型,我们可以训练出 ϕ,μ1,μ2, ϕ , μ 1 , μ 2 , ∑ 参数,以及概率函数 p(x|y=0),p(x|y=1) p ( x | y = 0 ) , p ( x | y = 1 ) 。 继而,我们现在去求在特征 x x y=1y=1 的概率 p(x|y=1;ϕ,,μ1,μ2) p ( x | y = 1 ; ϕ , ∑ , μ 1 , μ 2 ) 。 既有, 找到了后验分布。(满足Logistic Regression)对于柏松分布(以及指数分布族)也有如上的性质。 总结: 所需要的数据更少,有着更好的健壮性。

高斯判别分析和逻辑回归最大的区别就是,高斯判别做了更强的假设,而逻辑回归没有。如果一个输入xx服从的是泊松分布,而你假设成了高斯分布,那么计算的结果就没有逻辑回归得到的好。但是如果你的输入就是严格服从高斯,或者近似服从高斯,相比于逻辑回归你只需要更少的训练就可以得到很好的效果。在实际中这就要求我们根据具体情况进行权衡。

Naive Bayes

朴素贝叶斯(NB)算法是第二个生成学习算法。典型特例是垃圾邮件识别。高斯判别分析中,x向量是一个连续值。在朴素贝叶斯中,x向量是不连续的。

我们以如何构建垃圾邮件识别的例子来讲述朴素贝叶斯(NB)算法:

Step1:构建字典。

我们首先对于近几个月的邮件(已知道哪些是垃圾邮件)的所有单词建立词典库(假设词典库包含50000个单词),并编号。 对于一封邮件,如果它含有词典库中的单词就将那一项的 xi x i 置1,否则置0。并用 y=0 y = 0 表示非垃圾邮件, y=1 y = 1 表示垃圾邮件。

Step2:假设独立。

假设 P(xi|y)P(xj|y) P ( x i | y ) 与 P ( x j | y ) 相互独立 , iji,j{1,50000} i ≠ j , 且 i , j ∈ { 1 , 50000 } 这是由于字典规模过于巨大。 对于一封邮件,如果它含有词典库中的单词就将那一项的 xi x i 置1,否则置0。但是,这会导致参数过于巨大化,不利于计算。

Step3:模型参数。

拟合模型参数,joint似然函数为: 极大似然估计:

Step4:预测函数。

Laplace Smoothing

分子为零情况

对于预测函数,在我们训练好NB模型后,来了全新的一封邮件,其中有一个单词NIPS在之前没有在字典中出现过,假如它出现的位置为35000处,因为之前没有在字典中出现过,故无法判断是否为垃圾邮件, x35000=0 x 3 5000 = 0 ,则得到的参数均为零: 所以有,

Laplace Smoothing

我们选择添加安全因子来避免分子为零情况

参考文献

https://www.cnblogs.com/terencezhou/p/6235974.html

转载请注明原文地址: https://www.6miu.com/read-2626770.html

最新回复(0)