【学习笔记】斯坦福大学公开课(机器学习) 之生成学习算法:GDA

在之前的算法学习中,学到的都是通过建立 P(y|x;θ) (已知x的条件分布)模型来做算法学习。比如,现在要分辨两种动物,大象( y=1 )和狗( y=0 ),从之前的学习中,我们可以知道,需要从给定的训练数据集的特征 x 中,学习到通过特征值来判断结果的模型。
现在换种思路,我们分别建立模型来表示大象或狗,在分辨一个新动物时,把新动物按照这两种动物的模型分别做运算,看看这个动物更像哪一种模型。
以上就有两种学习算法,一种是通过一种模型直接学习到条件分布p(y|x),或者说是通过特征输入 x 预测出结果输出y的算法叫做判别学习算法(discriminative learning algorithms),而另一种算法,把各种分类对应的特征来建模,即建立条件分布 p(x|y) (和 p(y) ),就叫做生成学习算法 (generative learning algorithms),在本例中,就是建立两个模型一个是大象的特征分布 p(x|y=1) 和狗的特征分布 p(x|y=0)
当知道了 p(y) (类先验)和 p(x|y) ,我们的算法就能运用贝叶斯(Bayes)法则来推导出 y 的条件概率:

p(y|x)=p(x|y)p(y)p(x)

其中,分母 p(x)=p(x|y=1)p(y=1)+p(x|y=0)p(y=0)
如果为了计算y=1和0的概率谁更大一些,我们不需要计算分母:

argmaxy(p(y|x))=argmaxy(p(x|y)p(y)p(x))=argmaxy(p(x|y)p(y))

高斯判别分析 (GDA,Gaussian Discrimniant analysis)

多元正态分布

在这个模型中, p(x|y) 假设成为多元正态分布。
n维的多元正态分布,也叫做多元高斯分布,参数是均值向量(mean vector) μRn ,还有一个参数是协方差(covariance matrix)矩阵 Rnn ,其中 0 是对称的半正定矩阵。分布写成数学形式是 N(μ,) ,它的密度表示如下:

p(x;μ,)=1(2π)n/2||1/2exp(12(xμ)T 1(xμ))

其中 || 表示矩阵 的行列式。
任何属于该分布 N(μ,) 的随机变量 X 的均值和协方差分别是:
E[X]=xxp(x;μ,)dx=μ

Cov(X)=

与一般的普通正态分布一样,均值决定了分布的中心点的位置,而方差决定了分布的范围。

高斯判别分析模型

当我们遇到特征 x 是连续随机变量时,我们就能用GDA模型,这个模型中,主要是把p(x|y)构建成为多元正态分布。具体模型如下:

yBernoulli(ϕ)

x|y=0N(μ0,)

x|y=1N(μ1,)

写出他们的分布:
P(y)=ϕy(1ϕ)(1y)

P(x|y=0)=1(2π)n/2||1/2exp(12(xμ0)T 1(xμ0))

P(x|y=1)=1(2π)n/2||1/2exp(12(xμ1)T 1(xμ1))

在这里,模型中的参数是 ϕ,,μ0,μ1 (2个分布都用同一个协方差矩阵 ,分别用两个不同的均值)。对以上的数据采用对数似然函数:
l(ϕ,μ0,μ1,)=logi=1mp(x(i),y(i);ϕ,μ0,μ1,)=logi=1mp(x(i)|y(i);μ0,μ1,)p(y(i);ϕ)

最大化似然函数后,可以算出参数的值:
ϕμ0μ1=1mi=1m1{y(i)=1}=mi=11{y(i)=0}x(i)mi=11{y(i)=0}=mi=11{y(i)=1}x(i)mi=11{y(i)=1}=1mi=1m(x(i)μy(i))(x(i)μy(i))T

把模型用图形来表示的:
这里写图片描述
可以看到2个高斯分布图形,他们有同样的协方差,所以这两个圆的半径是一样的,但他们不同的均值,使得他们的中心有所区别。
中间的直线就是区分的界限,表示 p(y=1|x)=0.5

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值