1 min read

【学习笔记·技术】📊 吴恩达 机器学习导论 生成学习算法 学习笔记

主要讲了GDA和NB。 还有laplace smoothing。 感觉三个模型都不是特别难啊。


Gaussian Discriminant Analysis.

之前讲了广义线性模型、牛顿的算法。

之前说的都是discriminant algorithm。 学习P(Y|X)或者 outputhθ(x){0,1}


generative learning algorithm.

P(x|y),P(y) 看特征的情况。 根据bayes,

P(y=1|x)=P(x|y=1)P(y=1)P(x)

并且 P(x)=P(y=0)P(x)+P(y=1)P(x)


举例。

Gaussian Discriminant Analysis.

多元高斯分布。

P(x|y) is Gaussian Distribution.

zN(μ,Σ)

Σ是协方差矩阵。

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

不是很懂这个公式,但是实际上正态分布函数是不需要算的。 这里可以看讲义。

注意这里就是做P(x|y=1)P(x|y=0)的二元高斯分布的投影,然后求交点连线。


定义式

P(y)=ϕy(1ϕ)1y 并且,

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

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

实际上我不太懂这里又不是P(ϵ)处于大事件,0,为什么要maxP(x(i),y(i)). 就是另外一种算法而已。

然而,逻辑回归是 maxP(y(i)|x(i))

就是这样,没说谁好。


它和logistic 的关系到底是什么样的?

假设点是正样本。

GDA是logistic,因为有更严格的假设。

所以这个计算是通过bayes出来的, 图中计算出,P(x|y=1),P(y=1) 然后,P(x)=P(x|y=1)P(y=1)+P(x|y=0)P(y=0)。 哈哈,原来是这样。 就得到了P(y|x)


这个多假设的条件是, x|yN P(y=1|x)是一个logistic函数。 但是不能反着来。

x|y=1Possion(λ1)x|y=0Possion(λ0) P(y=1|x)是一个logistic函数。

所以这又是个参数方程的锅啊。

但是呢,显然GDA不需要太多的数据,因为假设强啊。


第二个就是 Naive Bayes。 也是 generative learning algorithm. 为什么要说,因为GDA要求x都是连续变量。 但是NB可以是离散的。

y=1是垃圾邮件。

假设我们有个字典,按顺序,如果邮件中存在这个词,位于第i行,xi=1否则xi=0。 因此,x{0,1}n。 也就是说x2n种可能性。 因此每个xiB,那么就要联立那么多,显然是不可能的,要估计2n1个参数。

给一个强假设。 xi|y条件独立。 P(x1,,xn|y)=P(x1|y)P(x2|y,x1)P(xn|y,x1,,xn1)=P(x1|y)P(x2|y)P(xn|y)

P(x2|y,x1)=P(x2|y)说明,x1不影响x2。 虽然强到错,但是还是很有效。

假设一些参数,

ϕi|y=1=p(xi=1|y=1)=i=1mI{xj(i)=1,y(i)=1}i=1mI{y(i)=1}

ϕi|y=0=p(xi=1|y=0)

ϕy=p(y=1)=i=1m{y(i)=1}m

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

这个模型的假设,只在joint distribution上。


朴素贝叶斯这样写更容易理解,

p(y=1|x)=p(x|y=1)p(y=1)p(x|y=1)p(y=1)+p(x|y=0)p(y=0)

但是p(x|y)=0也就是说x对于y这个事件没有出现过,那么就出现了,

p(y=1|x)=0p(y=1)0

因此要修正。

就是laplace smoothing

laplace smoothing

P(y=1)=n1+1n1+1+n0+1

这样的话,即使训练组中,n1=0,也保留了一点可能性,预测y=1

一般地,

P(y=j)=j=1mI{y(i)=j}+1m+k


ϕi|y=1=p(xi=1|y=1)=i=1mI{xj(i)=1,y(i)=1}+1i=1mI{y(i)=1}+2