作者课堂笔记整理,[email protected]
Preview
两种学习方法
分类输入的数据x,成两个类别
y∈{0,1}
判别学习算法
该算法学习条件概率
p(y∣x)或者直接学习函数映射。
举例:线性回归,Logistic回归,K近邻…
生成学习算法
该学习算法学习联合概率
p(x,y)。
- 生成算法学习
p(x∣y),p(y)。
-
p(y)称为先验概率。
- 使用Bayes规则,转变
p(y∣x)。
贝叶斯法则
p(y∣x)=p(x)p(x∣y)p(y)
argmaxyp(y∣x)=argmaxyp(x)p(x∣y)p(y)=argmaxyp(x∣y)p(y)
没有必要计算p(x).
1 生成模型
生成分类算法:
1.1 多元高斯分布
N(μ,Σ)
-
μ∈Rn是平均算法
-
Σ∈Rn×n是协方差矩阵,
Σ是对称的和SPD。
p(x;μ,Σ)=(2π)n/2∣Σ∣1/21e21(x−μ)TΣ−1(x−μ)
E[X]=μ,Cov(x)=E[(X−E(X))(X−E[X])T]=Σ
1.2 高斯判别分析(GDA)
给定参数
ϕ,μ0,μ1,Σ
y∼Bernoulli(ϕ)x∣y=0∼N(μ0,Σ)x∣y=1∼N(μ1,Σ)
p(y)=ϕy(1−ϕ)1−y
p(x∣y=0)=(2π)n/2∣Σ∣1/21e21(x−μ0)TΣ−1(x−μ0)
p(x∣y=1)=(2π)n/2∣Σ∣1/21e21(x−μ1)TΣ−1(x−μ1)
Log 数据似然函数:
I(ϕ,μ0,μ1,Σ)=logi=1∏mp(x(i),y(i);ϕ,μ0,μ1,Σ)=logi=1∏mp(x(i)∣y(i));μ0,μ1,Σ)p(y(i);ϕ)
最大似然函数估计:
l(ϕ,μ0,μ1,Σ)=logi=1∏mp(x(i),y(i))=logi=1∏mp(x(i)∣y(i))p(y(i))=i=1∑mlogp(x(i)∣y(i))+i=1∑mlogp(y(i))=i=1∑mlog(p(x(i)∣y(i)=0)1−y(i)∗p(x(i)∣y(i)=1)y(i))+i=1∑mlogp(y(i))=i=1∑m(1−y(i))logp(x(i)∣y(i)=0)+i=1∑my(i)logp(x(i)∣y(i)=1)+i=1∑mlogp(y(i))
对
ϕ求导:
∂ϕ∂l(ϕ,μ0,μ1,Σ)=∂ϕ∑i=1mlogp(y(i))=∂ϕ∂∑i=1mlogϕy(i)(1−ϕ)1−y(i))=∂ϕ∂∑i=1my(i)logϕ+(1−y(i))log(1−ϕ)=i=1∑m(y(i)ϕ1−(1−y(i))1−ϕ1)=i=1∑m(I(y(i)=1)ϕ1−I(y(i)=0)1−ϕ1)
上式等于0,可得:
ϕ=I(y(i)=0)+I(y(i)=1)I(y(i)=1)=m∑i=1mI(y(i)=1)
对
μ0求导:
∂μ0∂l(ϕ,μ0,μ1,Σ)=∂μ0∂∑i=1m(1−y(i))logp(x(i)∣y(i)=0)=∂μ0∂∑i=1m(1−y(i))(log(2π)n∣Σ∣
1−21(x(i)−μ0)TΣ−1(x(i)−μ0))=i=1∑m(1−y(i))(Σ−1(x(i)−μ0))=i=1∑mI(y(i)=0)Σ−1(x(i)−μ0)
上式等于0:
μ0=∑i=1mI(y(i)=0)∑i=1mI(y(i)=0)x(i)
μ1=∑i=1mI(y(i)=1)∑i=1mI(y(i)=1)x(i)
i=1∑m(1−y(i))logp(x(i)∣y(i)=0)+i=1∑my(i)logp(x(i)∣y(i)=1)=i=1∑m(1−y(i))(log(2π)n∣Σ∣
1−21(x(i)−μ0)TΣ−1(x(i)−μ0))+i=1∑my(i)(log(2π)n∣Σ∣
1−21(x(i)−μ1)TΣ−1(x(i)−μ1))=i=1∑mlog(2π)n∣Σ∣
1−21i=1∑m(x(i)−μy(i))TΣ−1(x(i)−μy(i))=i=1∑m(−2nlog(2π)−21log(∣Σ∣))−21i=1∑m(x(i)−μy(i))TΣ−1(x(i)−μy(i))
进而对
Σ求导:
∂Σ∂l(ϕ,μ0,μ1,Σ))=−21i=1∑m(∣Σ∣1∣Σ∣Σ−1)−21i=1∑m(x(i)−μy(i))(x(i)−μy(i))T∂Σ∂Σ−1=−2mΣ−1−21i=1∑m(x(i)−μy(i))(x(i)−μy(i))T(−Σ−2))
∂Σ∂∣Σ∣=∣Σ∣Σ−1
∂Σ∂Σ−1=−Σ−2
上式为0求得:
Σ=m1i=1∑m(x(i)−μy(i))(x(i)−μy(i))T
1.3 高斯判别模型和Logistic回归
p(y=1∣x;μ0,μ1,Σ)可以被写成:
p(y=1∣x;ϕ,Σ,μ0,μ1)=1+e−θTx1
θ=[logϕ1−ϕ−21(μ0TΣ−1μ0−μ1TΣ−1μ1)Σ−1(μ0−μ1)]
GDA:
- 最大化联合似然函数:
∏i=1mp(x(i),y(i))
- 模型假设:
x∣y=b∼N(μb,Σ),y∼Bernoulli(ϕ)
- 当假设正确时,GDA渐进有效,数据有效。
Logistic:
扫描二维码关注公众号,回复:
4124275 查看本文章
- 最大化条件概率
∏i=1mp(y(i)∣x(i))。
- 模型假设:
p(y∣x)是Logistic函数。
- 对不太正确的建模假设更加稳健和不太敏感。
1.4 朴素贝叶斯
是一种针对离散输入的一个简单的生成学习算法。
实战:垃圾邮件分类
项目源代码:
给出每封信x,判断是否属于垃圾邮件(y=0或者y=1)
每封信的词由一个字典维度大小的向量代表,
xi=1表示第i个词在这封信中,反之则不在。
朴素贝叶斯模型
朴素贝叶斯假设:
p(x1,x2,...xn∣y)=i=1∏np(xi∣y)
参数学习:
多变量伯努利事件模型:
p(x,y)=p(y)i=1∏np(xi∣y)
- 假设垃圾邮件和非垃圾邮件是随机的,
p(y)=ϕy
- 给出y,每封信中的单词可以表示成
p(xi=1∣y)=ϕi∣y
最大似然:
L=i=1∏np(x(i),y(i))
由此可以求出最大似然估计的各个参数值。
进行预测
给一个新的样本,计算
p(y=1∣x):
p(y=1∣x)=p(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=1)p(y=1)
...=∏i=1np(xi∣y=1)p(y=1)+∏i=1np(xi∣y=0)p(y=0)∏i=1np(xi∣y=1)p(y=1)
如果
p(y=1∣x)>0.5,y=1.
拉普拉斯平滑
- 如果一个新的单词没有出现在训练集中,所以导致
ϕi∣y=1=ϕi∣y=0,导致不能计算
p(y=1∣x)=00
定义符号:
n1 :在所有垃圾邮件中单词
x1出现的次数。如果
x1 没有出现过,则
n1=0。
n:属于
c1类的所有文档的出现过的单词总数目。
得到公式
p(x1∣c1)=n1/n
而拉普拉斯平滑就是将上式修改为:
p(x1∣c1)=(n1+1)/(n+N)
p(x2∣c1)=(n2+1)/(n+N)
其中,N是所有单词的数目。修正分母是为了保证概率和为1。
2 练习二次判别分析
源代码:https://github.com/Miraclemin/Quadratic-Discriminant-Analysis