Fit
简单拟合
最小二乘法: Least Square
计算
-
Input: XT=(X1,X2,⋯,Xp),
-
predict output via the model: Y^=β0^+∑j=1pXjβ^j
β^j: bias or intercept, 偏差
而βj^和β0^都是需要求解的参数,
-
Include the constant variable 1 in X: 在向量X中包含常数1: Y^=XTβ^
可令X0=[1], 则XT=(X0,X1,⋯,Xp), 那么β^=β^0β^1⋮β^p. 相当于是把最开头的那个β^0收到了参数向量β^里面
-
这里的Y^可以是标量, 可以是向量. 如果Y^是k维向量, 那么就有β^是一个p×K的参数矩阵(多元回归)
-
在(p+1)维的输入输出空间中, (X,Y^)代表一个超空间. 如果β^o在β^中, 那么这个超空间就经过原点.
ground-truth: f(X)=XTβ, it’s gradient(梯度): f′(X)=β 是一个指向最陡的上升方向的向量.
补充: 矩阵导数:
∂β∂fθ(X)=X1X2⋮Xp=X
∂β∂βTAβ=(A+AT)β
∂β∂βTXTXβ=(XTX+XXT)β
其中, X是一个向量, A是一个二次型系数矩阵.
残差
- N: # observations 观测量(样本空间)
- minimize the residual sum of squares:
RSS(β)=i=1∑N(yi−xiT)2
向量(矩阵):
RSS(β)=(y−Xβ)T(y−Xβ)=∣∣y−Xβ∣∣22
∣∣y−Bβ∣∣是范数, 关于β的函数, 是一个抛物面.
范数: $
要找到最小值点, 需要求导数:
RSS(β)=(y−Xβ)T(y−Xβ)=yTy−XTβTy−yTXβ+βTXTXβ
RSS′(β)=XT(y−Xβ)
如果X不是奇异矩阵, 那么β^=(XTX)−1XTy
最近邻项: Nearest Neighbor
分类.
回归方程:f^(x)=Ave(yi∣xi∈Nk(x))
Nk表示前k个最近的元素。
需要极大样本量,才能够保证有均值与期望相接近。当k→∞的时候,才会有Nk→0⇒f^(x)=E(Y∣X=x)
如果当每一个样本点的维数增多的时候(即特征维度增多),所需要的N的数量会急速增加。
条件概率公式展开
期望: E[x]=∑xxP(X=x), 当x是非连续变量;E(x)=∫xP(X=x)dx ,当x是连续变量
损失函数:L(X,f(X))=(Y−f(X))2,也写作L2。还有一个L1=∣Y−f(X)∣也是损失函数。第一类损失函数比第二类的优点:第一类鲁棒性更好,面对误差或者错误标注的数据能更好的抵抗
EPE, Excepted prediction error, 描述y与y^之间的差异:
EPE(f)=E(Y−F(X))2=∫(y−f(x))2Pr(dx,dy)
Since Pr(X,Y)=Pr(Y∣X)Pr(X),EPE can also be written as
EPE(f)=EXEY∣X([Y−f(X)]2∣X)
所以说,可以通过找EPE的最小值来进行寻找合适的参数,如:
f(x)=argcminEY∣X([Y−c]2∣X=x)
回归方程: f(x)=E(Y∣X=x)
Linear Regression
f(x)≈xTβ,是一个有模型预测的回归模型。这里我们假设了线性模型。
由于有了对回归模型的假设,我们对样本量的需求比kNN算法小了很多。这里的EPE为:
EPE(f)=E(Y−f(X))2=E((Y−XTβ)T(Y−XTβ))=E(∣∣Y−XTβ∣∣22)
∂β∂((Y−XTβ)T(Y−XTβ))′=∂β∂(YTY−βTXY−YTXTβ+βTXXTβ)′
=0−XY−YTXT+(XXT+XTX)β=0
∴β=[E(XXT)]−1E(XY)
而根据残差平方和,
RSS(β)=i=1∑N(yi−xiTβ)2
当残差平方和最小的时候,有β=(XTX)−1XTy
协方差
Covariance,Cov(X,Y)=E[(X−E[X])TT(Y−E[Y])]=Var+Bias2,是方差加上偏差的平方。
方差Var(X)=Cov(X,X)
kNN
分类输出变量G 的程序,其值来自g。损失函数是一个K×K的矩阵L,而K=card(g)
- L(k,l)是错误把gk里的内容估计成gl中内容所付出的代价。
所以,我们有了一个0-1损失方程:L(k,l)=1−δkl,δkl=1 if and only if k == l
EPE=EXk=1∑KL[gk,G^(X)]Pr(gk∣X)
G^(X)=argming∈Gk=1∑KL(gk,g)Pr(gk∣X=x)
Or simply, G^(x)=argmaxg∈GPr(g∣X=x)
Cross Validation
交叉验证
把一个数据集分成n份,验证m个k的取值,那么对于每一次循环,把n份中的一份作为测试集,循环m次,计算k
循环n次之后去计算每一个k的取值的平均准确度,找到准确度最大的一个
高维中的本地模型(local model)
- 随着维度的上升,本地模型逐渐演化成广域模型(global model)
- 如:在一个边长为1的p维的立方体中,取一个覆盖了r%的数据(体积),那么设小立方体的边长为ep(r)=rp1.
- 那么有:e10(0.01)=0.63,e10(0.1)=0.80,e1(0,01)=0.01,e2(0.01)=0.1
- 高维空间中,数据去向样本空间的边缘。
- 假设有N个数据点,p维的空间,假设数据空间是一个单位球体(r=1)。那么中位距离(所有数据到样本空间中心点的距离的中位数)是d(p,N)=(1−21N1)p1。那么就有d(10,500)≈0.52
对于一个p维的球体样本空间,有以下推论:
i=1∏nPr(∣∣xi∣∣>r)=21
Pr(∣∣xi∣∣>r)=1−Pr(∣∣xi∣∣≤2)=1−Vp(r)=1−Γ(2p+1)π2prp≈1−rp(当p极大时)
(1−rp)N=21
可以得出中位距离的公式
函数拟合
- 数据集:(xi,yi)的数值对,在(p+1)维中。有以下函数(ground-truth): yi=f(xi)+εi,f:Rp→R
- 目标:找到一个对于f(x)的好的逼近。给定训练样本集τ
text{给定参数集合θ,那么对于线性模型,有}f(x)=x^T\beta$$
而θ=β,其中这两个可以是scalar,也可以是vector或matrix
fθ(x)=k=1∑Khk(x)θk
hk:一个函数,可以将非线性的输入转换成线性的输入
如:有x1,x2两个轴,组成的样本集的分界线是一个圆。那么可以令
hk(x1,x2)=x12+x22转换成一个线性的问题
hk的例子:
hk(x)=x1x22(Polynomial expansion),hk(x)=cos(x1)(Trigonometric expansion)
hk(x)=1+exp(−xTβk)1(Sigmoid expansion)
然后利用RSS进行拟合θ:
RSS(θ)=i=1∑N(yi−fθ(xi))2
最大似然估计 MLE
使用Prθ(y)(预测值)去估计Pr(y)(真实值)
Lamma:KL散度:
KL(p∣∣q)=∫p(x)logq(x)p(x)dx=∫p(x)logp(x)dx−∫p(x)logq(x)dx=−H[x]−E[logq(x)]
推导MLE:
θminKL(p(y)∣∣pθ(y))=∫p(y)logp(y)dy−∫p(y)logpθ(y)dy=C−∫p(y)logpθ(y)dy
由于∫p(y)logp(y)dy是对y的焓,所以是一个常数。考虑Monte Carlo方法抽样:
E[x]=∫xp(x)dx=K1k=1∑Kxk,xk∼p(x)
即在p(x)中抽样。当K足够大,可以认为与期望是相等的。那么有:
θminKL(p(y)∣∣pθ(y))=C−N1i=1∑Nlogpθ(yi)
去掉常数(因为是对θ求最小),有:
θmaxl(θ)=i=1∑NlogPrθ(yi)
注意求最小,但是有个负号,所以是对这个求最大。
对于高斯分布的概率密度函数求MLE:
l(θ)=i=1∑NlogPrθ(X)=−2Nlog(2π)−Nlogσ−2σ21i=1∑N(yi−fθ(xi))2
求最大值那么对l求偏导,因为θ包含了两个参数,μ,σ
对训练数据集τ,那么
l(θ∣τ)=i=1∑NlogPrθ(xi,yi)=i=1∑NlogPrθ(yi∣xi)Prθ(xi)=i=1∑NlogPrθ(yi∣xi)
注意这里省去了Prθ(xi)是因为这个不是我们需要估计的,是给定的随机变量x
简单线性估计
最小二乘法
单变量的求解:
β^0,β^=argminβ0,βi=1∑N(yi−β0−βxi)2
β^=∑i=1N(xi−xˉ)2∑i=1N(xi−xˉ)(yi−yˉ)
β^0=yˉ−β^xˉ
但是求解单变量的时候,尽量是从β0入手,为了以后求解正则化项作保障。正则化项不能包含β0,因为β0只是斜率,与自变量没有任何关系,惩罚这个项没有任何意义。
对于多变量,X=(X1,X2,⋯,Xp)T
f(X)=β0+j=1∑pXjβj
RSS(β)=i=1∑N(yi−f(xi))2=i=1∑N(yi−β0−j=1∑pxijβj)=(y−Xβ)T(y−Xβ)
∂β∂RSS(β)=−2XT(y−Xβ)=0
⇒β^=(XTX)−1XTy
需要满足:XTX是可逆的。
y^=Xβ^=X(XTX)−1XTy=Hy
其中,H是一个投影矩阵。相当于是从x空间向y空间的投影
对于多输出:
Yk=βok+j=1∑pXjβjk+εk=fk(X)+εk
Y=XB+E
RSS(B)=k=1∑Ki=1∑N(yik−fk(xi))2=∣∣Y−XB∣∣F2
∣∣A∣∣F2=tr(ATA)=ij∑aij2
RSS(B)=tr((Y−XB)T(Y−XB))=tr(YTY)−2tr(BTXTY)+tr(BTXTXB)
∂B∂RSS(B)=−2XTY+2XTXB=0⇒B^=(XTX)−1XTY
tr(A)是迹,是对角线上的元素相加
关于奇异性
假设有一个矩阵,p维,训练样本集有N个数据⇒输入样本集X是一个N×p的矩阵
要想XTX是一个非奇异的矩阵,需要满足rank(X)=p,即满秩的矩阵
| 矩阵的描述 | 秩 | 奇异性 |
|---|
| 胖 | rank(X)≤N<p | 一定是奇异矩阵 |
| 方阵 | rank(X)≤N,p,N=p | 需要有rank(X)=p=N |
| 瘦 | rank(X)≤p<N | 需要有rank(X)=p |
非满秩:有多余信息,维度高,样本少⇒解决方案:1. 特征选择(降维,去掉某些不必要的特征)2. 正则化(添加一个正则化项使β^=(XTX+λI)−1XTy)
XTX+λI一定是满秩的:XTX+λI=(UVUT)T(UVUT)+λI=UV2UT+λUUT=U(V2+λI)UT,因为V2是一个每个项都是大于等于0的对角矩阵,那么加上一个大于0的单位矩阵一定是一个满秩的对角矩阵
岭回归 Ridge Regression
β^ridge=argβmin{i=1∑N(yi−β0−j=1∑pxijβj)2+λj=1∑pβj2}
注意正则化不包含β0截距
另一种表示方式:
β^ridge=argβmin∣∣Y−β0−Xβ∣∣22,subject to ∣∣β∣∣22≤t
PRSS(λ,β)=(y−Xβ)T(y−Xβ)+λβTβ
∂β∂PRSS(λ,β)=−2XTy+2(XTX+λI)β=0⇒β^ridge=(XTX+λI)−1XTy
与最小二乘法对比:
Xβls=(XTX)−1XTy=j=1∑pujujTy
Xβridge=(XTX+λI)−1XTy=j=1∑pdj2+λdj2ujTy
其中,XTX进行SVD分解之后的结果是UDUT,u属于U,d属于D
有效自由度(表示复杂度的一种方法):
df(λ)=j=1∑pdj2+λdj2ujTy
假设训练样本集的输入是一个p维的:
λ→0⇒df(λ)→p,相当于没有正则化
λ→∞⇒df(λ)→0,正则化惩罚过强,不在关心Loss函数,导致原来的模型极端简单
Lasso回归
是一种稀疏的回归方式
我们希望对βi不为零的项进行惩罚,因为只有βi=0才会导致模型变得复杂。所以需要使用“零范数”用作惩罚项。(岭回归用的是二范数座位惩罚项)
使用零范数的时候称为“最佳子集回归”,best subset regression。
但是零范数是一个非凸曲线,无法使用求导来进行分析最小值。包括所有p范数(0<p<1)都是非凸的。那么距离零范数最近的一个最小的凸曲线的范数是一范数。(注意,在一范数的顶点位置还是不能求导,因为不连续)。所以Lasso回归使用了一范数
β^lasso=argβmin{21i=1∑N(yi−β0−j=1∑pxijβ∣j)2+λ∣βj∣}
=argβmin{21∣∣Y−β−Xβ∣∣22+λ∣∣β∣∣1}
与最小二乘法对比
β^ridge=1+λ1β^ls
β^jlasso=sign(β^jls)(∣β^jls∣−λ)+
MAP
β^MAP=argβmaxPr(y∣X,β)Pr(β)
Pr(β)是由岭回归或者Lasso回归计算的,Pr(y∣X,β)是最小二乘法计算的
ridge:Pr(β)=N(β∣0,λ1Ip),高斯分布
lasso:Pr(β)=2λe−λ∣∣β∣∣1
简单分类器
线性分类器
利用不同类别赋值不同,把每个类别赋值作为输出(yi),进行线性回归,找到yi=xTβ^=0.5的那条线
拟合函数需要满足
f^(x)=B^T(1x)=f^1(x)f^2(x)⋮f^K(x)∈RK
对x的分类:G^(X)=argmaxk∈gf^k(x),相当于是寻找可能性最大的那个类别k,或者等效写作:
G^(x)=argk∈gmin∣∣f^(x)−tk∣∣22,tk是类别标号,即寻找相关性最强,类别最近的一个
G^(x)=argk∈gmaxPr(G=k∣X=x),后验概率
如果是简单的线性回归去拟合,可能会导致掩盖掉某些类。具体情况查看L5-p14
所以需要把线性回归拓展到非线性空间:加上一些二次项或者更高次的项然后再进行回归,最后把回归的结果映射回线性空间,得到一个非线性的分界线
LDA
使用基于贝叶斯的后验概率
Pr(G=k∣X=x)=Pr(X=x)Pr(X=x∣G=k)Pr(G=k)=∑l=1KPr(X=x∣G=l)Pr(G=l)Pr(X=x∣G=k)Pr(G=k)
fk(x)=Pr(X=x∣G=k)
πk=Pr(G=k)
类别分布=Πk=1Kπk1x=k
1x=k={10x=kx=k
边界(概率相等的地方):
{x∣Pr(G=k∣X=x)=Pr(G=l∣X=x)}
⇒Pr(G=l∣X=x)Pr(G=k∣X=x)=1⇒lnPr(X=x∣G=l)Pr(G=l)Pr(X=x∣G=k)Pr(G=k)=0
⇒LDA:βTX+β0=0
Pr(G=k∣X=x)=∑l=1Kfl(x)πlfk(x)πk
对于高维高斯分布的LDA:
fk(x)=(2π)2p∣Σk∣211exp(−21(x−μk)TΣk−1(x−μk))
我们做一个假设:对于所有的Σk=Σ,即任意的Σk都相等。这里的Σk是k分类的方差(σk2)
Logit:lnPr(G=l∣X=x)Pr(G=k∣X=x)=lnfl(x)fk(x)+lnπlπk
=lnπlπk−21(μk+μl)TΣ−1(μk−μl)+xTΣ−1(μk−μl)
⇒π^k=NNk,μ^k=gi=k∑Nkxi,Σ^=k=1∑Kgi=k∑N−K(xi−μ^k)(xi−μ^k)T
| X1 | X2 | G |
|---|
| x1T | 0.2 | 0.3 | 1 |
| x2T | 0.8 | 0.7 | 3 |
| x3T | 0.4 | 0.6 | 2 |
| x4T | 0.6 | 0.4 | 2 |
| x5T | 0.3 | 0.2 | 1 |
| x6T | 0.7 | 0.8 | 3 |
π^1=π^2=π^3=31
μ^1=21(x1+x5)=21(0.20.3)+21(0.30.2)=(0.250.25)
μ^2=21(x3+x4)=(0.50.5)
μ^3=21(x2+x6)=(0.750.75)
Σ^=6−3(0.005−0.005−0.0050.005)+(0.02−0.02−0.020.02)+(0.005−0.005−0.0050.005)=(0.01−0.01−0.010.01)
lnPr(G=2∣X=x)Pr(G=1∣X=x)=lnπ^2π^1−21(μ^1+μ^2)TΣ^λ−1(μ1−μ2)+xTΣ^λ−1(μ^1−μ^2)
=0.1875−(x1,x2)(0.250.25)=0
⇒边界为{(x1,x2)∣x1+x2=0.75},其中Σ^λ=Σ^+λI,λ=1
定义线性判别函数为δk(x)=xTΣ−1μk−21μkTΣ−1μk+lnπk
在x点,哪一个类的δk(x)大,这个点就是哪一类的。当δk(x)=δl(x)的时候,说明这个点事l类和k类的边界线上
QDA
相对LDA,少了一个假设:Σk=Σ,∀k∈G
所以特征表达更好,但是计算的特别多。
LDA计算K×p+p×p个参数,只需要估计π,μ,Σ
QDA计算K×p+K×p×p个参数,需要估计π,μ,Σk∀k∈G
判别式:δk(x)=−21ln∣Σk∣−21(x−μk)TΣK−1(x−μk)+lnπk
LDA 正则化与降维
RLDA 正则化LDA
Σ^(γ)=γΣ^+(1−γ)diag(Σ^),γ∈[0,1]
Diagonal LDA 对角LDA
Σ^=diag(Σ^)
| 低方差(高复杂度),高偏差 | | | | 高方差,低偏差(高准确度) |
|---|
| Diag LDA | RLDA | LDA | RQDA | QDA |
| diag(Σ^) | Σ^(γ) | Σ^ | Σ^k(α) | Σ^k |
logPr(G=l∣X=x)Pr(G=k∣X=x)=δk(x)−δl(x)
δk(x)∝logPr(G=k∣X=x)
logPr(G=k∣X=x)=−21(x−μ^k)TΣ^−1(x−μ^k)+lnπ^k+C
=−21∣∣x∗−μ^k∗∣∣2+lnπ^k+C
G^(x)=argk∈gmaxδk(x)=argk∈gmin21∣∣x∗−μ^k∗∣∣2−lnπ^k
其中,x∗=Σ^−21x,μ^k∗=Σ^−21μ^k
目的:白化(球化),使协方差矩阵变成单位矩阵。目的:降低两个类别之间的重叠区域。
高级分类器
Boosting
通过弱分类器投票决定一个强分类器
Input:
S={(x1,y1),(x2,y2),⋯,(xm,ym)}
Dt是{x1,⋯,xm}这些点的权重,α是每一个分类器在投票里面所占权重
Run A on Dt producing
ht:X→{−1,1}
ϵt=Pxi∼Dt(ht(xi)=yi)=M1n=1∑M1[ht(xi)=yi],即错误分类的概率
Hfinal(x)=sign(t∑αtht(x))
计算流程:
初始化:D1(i)=m1
ϵt=m1n=1∑m1[ht(xi)=yi]
αt=21ln(ϵt1−ϵt)
Zt=2ϵt(1−ϵt)
Dt+1(i)={ZtDt(i)e−αtZtDt(i)eαt分类正确,减少该点权重,更注意分类错误的点分类错误,提高权重
训练次数为T=O(γ21lnϵ1)
SVM
间隔γ=min∣∣ω∗∣∣yω∗Tx
求解:
应用拉格朗日乘数法:
L(w,b,α)=21∣∣w∣∣2+∑αi(1−yi(w⋅xi−b))
{∂w∂L=0∂b∂L=0⇒w=∑αiyixi0=∑αiyi⇒L(w,b,α)=i=1∑mαi−21i=1∑mj=1∑mαiαjyiyj(xiT⋅xj)
上面的xiT⋅xj可以使用核函数进行升维
⇒⎩⎨⎧αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
然后使用SMO (Sequential Minimal Optimization)求解
SMO相关简介
详情参见KKT Condition
半监督SVM
根据有标签的点进行分类,计算得出一个模型,然后根据这个模型对无标签的样本点分类,然后对分好类的样本点再一次计算模型,重复迭代。
聚类
假设P(X1,⋯.XN)是多分布的混合模型,处于一个n维的变量空间,使用离散的随机变量Z指示是哪一个分布正在被使用。所以P(X1⋯XN)=∑iP(Z=i)P(X1⋯XN∣Z),其中Z是一个隐变量,P(Z=i)属于某个高斯分布的先验。贝叶斯图像如图:
graph TB
Z-->X1
Z-->X2
Z-->...
Z-->XN
-
假设每个数据点都是n维的数据,即X=⟨X1,⋯,Xn⟩,假设Xi之间相互独立(高斯分布的朴素贝叶斯假设)
P(X∣Z=j)=i∏N(xi∣μij,σij)
-
根据先验的Gaussian分布P(Z=i)进行随机采样i(假设只有两个类,并且∀i,j,σji=σ,假设认为所有的方差相同)
P(X)=j=1∑2P(Z=j∣π)i∏N(xi∣μij,σ)
-
根据N(μi,Σi)随机生成数据点⟨x1,⋯,xn⟩
假设已经知道了σ,还需要知道π1,⋯,πk和μ1i,⋯,μKi
观测值:X=⟨X1,⋯,Xn⟩,隐变量:Z
使用EM算法进行估计:
Define Q(θ′∣θ)=EZ∣X,θ[logP(X,Z∣θ′)],θ=⟨π,μji⟩
E-step:
P(z(n)=k∣x(n),θ)=∑j=01[∏iN(xi(n)∣μji,σ)](πj(1−π)1−j)∏iN(xi(n)∣z(n)=k,θ)(πk(1−π)1−k)
M-step:
π←N1n=1∑NE[z(n)]
μji←∑n=1NP(z(n)=j∣x(n),θ)∑n=1NP(z(n)=j∣x(n),θ)xi(n)
最小化KL(P∣∣T)=−∑iI(Xi,Pa(Xi))+∑iH(Xi)−H(X1⋯Xn)
其中,边缘概率密度分布I(A,B)=∑a∑bP(a,b)logP(a)P(b)P(a,b),Pa(Xi)指的是在图中Xi的直接父节点。H是焓。
给定I,然后根据最大化I的思路去建树,根据这个树进行优化
GMM
协同训练
假设有一个样本多个特征,其中一个特征的分类置信度很高,那么认为这个样本其他的特征都是这一个分类的,然后根据这个分类进行再训练迭代
缺点:容易把错误放大
假设只有两个视角(两个类别的特征,训练分别是h1和h2)
argminh1,h2l=1∑2i=1∑mll(hl(xi),yi)+Ci=1∑muagreement(h1(xi),h2(xi))
其中l(hl(xi),yi)是损失函数,一般是距离或者0/1损失,agreement(h1(xi),h2(xi))是h1和h2之间的差距,可以自定义
Similarity Based Regularity
找到距离最近的几个点,然后把自己的类别传递过去
如:根据相似度建图,取相似度小于等于ε的之间连一条边,然后根据已经有的样本标签传递
相似度可以使用Gaussian Kernel来计算:K(x,z)=exp[−2σ2∣∣xi−xj∣∣2],其中xi和xj是两个样本点的特征向量
可以把相似度组成一个矩阵(对称的):wij=exp[−2σ2∣∣xi−xj∣∣2]⇒W,然后只需要进行最小化目标函数:
fmine=(i,j)∑we∣∣fi−fj∣∣2=2fT(D−W)f
其中,f是标签组成的一个矩阵,D是W的对角矩阵,现在令L=D−W有minffTLf。这种方法叫做Spectral Clustering
然后因为有一些标签是已知信息,所以要加上Loss:
fminij∑wij∣∣fi−fj∣∣2−Ci=1∑me∣∣yi−fi∣∣2
令f=βX,
⇒fTLf=βTXTLXβ⇒minβTXTLXβ+λ∣∣y−Xβ∣∣22+α∣∣β∣∣2
最终的类似一个岭回归,当时还存在local的信息(βTXTLXβ)
GMM
Generative Model中的高斯混合模型(Gaussian Mixture Model)
变量:θ={πi,μi,Σi}i=1K,其中πi是分类的先验概率,μi是高斯的均值,Σi是高斯的协方差矩阵
联合概率密度分布:p(x,y∣θ)=∑i=1KπiN(x;μi,Σi)
分类:p(y∣x,θ)=∑i=1Kp(x,yi∣θ)p(x,y∣θ)
kernel函数
找到内积XXT才能使用(d×n的矩阵,至少结果需要是一个d×d的矩阵)
常用kernel:
Linear: K(x,z)=x⋅z
Polynomial: K(x,z)=(x⋅z)d or K(x,z)=(x⋅z+1)d
Gaussian: K(x,z)=exp[−2σ2∣∣x−z∣∣2],σ是超参数
Laplace: K(x,z)=exp[−2σ2∣∣x−z∣∣]
直接对内积使用核函数,可以将原本是时间复杂度极大的矩阵乘法降低为O(n)
核函数可以相加可以相乘,所以可以根据这点直接构建一个新的核函数(称为多核学习)
Bayes
贝叶斯估计与惩罚
Pr(A,B)=Pr(A∣B)Pr(B)=Pr(B∣A)Pr(A)
Pr(B∣A)=Pr(A)Pr(A∣B)Pr(B)
有惩罚的损失函数:
PRSS(f;λ)=RSS(f)+λJ(f)
λ是超参数,自己定义。λ越大,惩罚越大,原来的约束条件越小,模型越简单;反之,原来训练集的约束条件越大,模型越复杂。
J(f)是对模型复杂度的描述。这个是为了防止在参数很少的时候训练导致过拟合(就是这个模型只适用于这一些少量的参数,对于大量的其他没有训练的参数反而不适用)
如:对于cubic smoothing spline(这个就是J(x)=∫[f′′(x)]2dx)的最小二乘法:
PRSS(f;λ)=i=1∑N(yi−f(xi))2+λ∫[f′′(x)]2dx
后面的λJ(x)也可以称作正则化项,对抗过拟合
对实验结果的修正
对于一些实验次数非常少的实验,结果可能偏差较大,导致得出的结论过拟合或者不准确。那么可以根据先验概率(经验)进行修正。实验次数越少修正越大
如:掷硬币:
先验(prior):P(X=1)=0.5
- 第一种算法:
P(X=1)=n121+(1−n1)α1+α0α1
- 第二种算法:
P(X=1)=α1+β1+α0+β0α1+β1
θ^MLE=α1+α0α1
α1是投出X=1的次数,α0是投出X=0的次数。而β是修正值。
分类器
Pr(W=w∣G=g,H=h)=∑wPr(G=g,H=h,W=w)Pr(W=w,G=g,H=h)
通过求和把W项消除掉
参数的个数
假设输入X=⟨X1,X2,⋯,xn⟩,那么所有的X的可能性有2n种。
假设有n=30,那么一共有230≈109数据量过大
Naive Bayes 朴素贝叶斯
进行假设:所有的特征都是相互独立的。(这个假设太强,实际中并不可能出现这种情况。但是可以用来简单模拟)
那么有Pr(X1,X2∣Y)=Pr(X1∣Y)Pr(X2∣Y)。这时如果有n个参数,那么只需要计算2n次(分别是Y=1和Y=0两种情况,其他的每一个变量只需要计算一次即可,不需要考虑相关性)
训练Naive Bayes
对于所有的标签yk,分析计算πk≡P(Y=yk)。
对于多输入的Xi向量:对每一个xij∈Xi,计算θijk=P(Xi=xij∣Y=yk)
然后对Xnew进行分类:$Ynew=argmaxykP(Y=yk)∏iP(Xinew∣Y=yk)=argmaxykπk∏iθijk$
目标函数:
l(θ,π)=lnPr(D,θ,π)=ln((x0,y0),⋯,(xn,yn))
=i=1∑nlnPr(xi,yi∣θ,π)=i=1∑nlnPr(xi∣yi,θ)Pr(yi∣π)
=i=1∑nlnPr(xi∣yi,θ)+i=1∑nlnPr(yi∣π)
D={xi,yi}i=1m
∂θ∂l(θ,π)=∂l∂∑i=1nlnPr(xi∣yi,θ)=0
∂π∂l(θ,π)=∂π∂∑i=1nlnPr(yi∣π)=0
如果假设不成立,强行使用也可以。但是如果有两个特征强相关,极端一点假设Xi=Xj,那么会过度关注于Xi,因为这一项可以看成是平方了。
还有就是样本不够的时候会出现某一些Pr(Xi∣Y)=0的情况,导致整个模型不可用
所以要引入先验的修正,从MLE变成MAP
MLE计算:
μ^ik=∑jδ(Yj=yk)1j∑Xijδ(Yj=yk)
第i个特征,对应第k个类别,第j个训练样本
σ^2=∑jδ(Yj=yk)1j∑(Xij−μ^ik)2δ(Yj=yk)
Bayesian Net 贝叶斯网络
概率模型图
是一种有向无环图(DAG)
graph TB
Z-->Y
X-->Y
表示Y受到X影响,Y也受到Z影响,但是Z和X相互独立,不相关
那么就可以化简成P(A,B∣Y)=P(A∣Y)P(B∣Y)
然后就可以计算(CPD)联合概率密度分布:
| Y=1 | Y=0 |
|---|
| X=1,Z=1 | θ1,1 | 1−θ1,1 |
| X=1,Z=0 | θ1,0 | 1−θ1,0 |
| X=0,Z=1 | θ0,1 | 1−θ0,1 |
| X=0,Z=0 | θ0,0 | 1−θ0,0 |
然后对上表的θ进行估计
如:
graph TB
StormClouds-->Lighting-->Thunder
StormClouds-->Rain-->WindSurf
Lighting-->WindSurf
上述图表中,可以简单认为给定Xi的所有直接父节点情况下,Xi和所有非子代节点的节点都独立。
(假设上面的单词使用首字母进行表示)
即,可以认为,T⊥⊥WS,R,SC∣L,以及WS⊥⊥T,SC∣{L,R},等
D-separate
graph TB
X-->Y-->Z
M-->N
M-->P
A-->B
C-->B
这个时候,有三种情况:
- 第一种原来是条件不独立,给定Y之后变成条件独立
- 第二种原来条件不独立,给定M后条件独立
- 第三种原来条件独立,给定B之后条件不独立
可以认为,两者之间如果有一条通路,那么就算是条件独立。但是注意第三种,给定B之后不是将通路打断,而是把断掉的通路合成
Markov Blanket
马尔科夫毯
XMBi:一个点Xi的所有的直接父节点,子节点,联合父节点(直接子节点的直接父节点)组成的一部分
那么给定XMBi之后,Xi和XMBiˉ条件独立⇒Xi⊥⊥XMBiˉ∣XMBi
CDP 联合概率分布
计算完所有的CDP之后就可以通过这个表进行计算所有需要的条件概率。
如:
| T=1 | T=0 |
|---|
| L=1 | θ1 | 1−θ1 |
| L=0 | θ0 | 1−θ0 |
计算
P(T∣L)=θ1TL(1−θ1)(1−T)Lθ0T(1−L)(1−θ0)(1−T)(1−L)
θ0,θ1=argθ0,θ1maxl(θ0,θ1)=i=1∑nlnP(T=ti∣L=li)
然后
P(S,L,R,T,W)=P(S)P(L∣S)P(R∣S)P(T∣L)P(W∣L,R)
P(S=1,L=0,R=1,T=0,W=1)
=P(S=1)P(L=0∣S=1)P(R=1∣S=1)P(T=0∣L=0)P(W=1∣L=0,R=1)
P(S=1∣L=0,T=1)=P(T=1,L=0)P(S=1,L=0,T=1)
=∑w,r,sP(S=s,T=1,L=0,W=w,R=r)∑w,rP(S=1,T=1,L=0,W=w,R=r)
P(S=1)=t,l,w,r∑P(S=1,T=t,L=l,R=r,W=w)
注意,给定的观测值越少,计算量就越多。
所以要转换成采样或者变分来做。
对于连续随机变量
-
离散化:X=1,2,3,⋯,其中X=i意味着X∈[i−1,i)
-
对参数建模
使用Sigmoid函数进行分析:σ(x)=1+ex1
⇒P(X=x∣Y=y)=1+e−β1y+β01,然后求解β1,β0
隐变量
假设存在隐变量Z(虽然存在于模型中,但是没有任何观测数据),使用MLE:
ℓ(θ)=θmaxE[lnPθ(x)]=θmaxE[ln∫p(x,z)dx]
估计下界:
lnPθ(x)=ln∫pθ(x,z)dx=ln∫q(z)q(z)pθ(x,z)dx
=lnEq(z)[q(z)pθ(x,z)]≥Eq(z)[lnpθ(x,z)−lnq(z)](吉森不等式)
取最小值时,等式成立,即
θminlnPθ(x)=Epθ(z∣x)[ln∑zPθ(x,z)Pθ′(x,z)]
使用Expectation Maximization(MLE)进行估计
对隐变量Z存在的模型进行估计:
θ←argθmaxlogP(X,Z∣θ)←argθmaxEZ∣X,θ[logP(X,Z∣θ)]
是迭代求解,可以在线计算,时间复杂度不高
对于P(X,Z∣θ),正常使用全概率公式链式法则加上贝叶斯网格的先验进行优化计算即可
EM算法
EM算法,Exception Maximization Algorithm。
E-step:根据θ计算隐变量的分布
M-step:根据计算所得隐变量的分布计算更新θ
例子:
graph TB
Flu-->Sinus-->Headache
Allergy-->Sinus-->Nose
假设可观测值:X={F,A,H,N},隐变量Z={S}
P(Sk=1∣fkakhknk,θ)=P(Sk=1,fkzkhkuk∣θ)+P(Sk=0,fkzkhkuk∣θ)P(Sk=1,fkzkhkuk∣θ)
E-step: Calculate P(Zk∣Xk;θ) for each training example, k
P(Sk=1∣fkzkhkuk,θ)=E[sk]=P(Sk=1,fkzkhkuk∣θ)+P(Sk=0,fkzkhkuk∣θ)P(Sk=1,fkzkhkuk∣θ)(=P(Z∣X,θ))
M-step: update all relevant parameters. For example:
θs∣i,j←∑k=1Kδ(fk=i,ak=j)∑k=1Kδ(fk=i,ak=j)E[sk]
graph TB
Y-->X1
Y-->X2
Y-->X3
Y-->X4
| Y | X1 | X2 | X3 | X4 |
|---|
| 1 | 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 0 | 1 | 0 |
| ? | 0 | 1 | 1 | 0 |
| ? | 0 | 1 | 0 | 1 |
EM算法的实现过程:
E-step:
EP(Y∣X1⋯XN)[y(k)]=P(y(k)=1∣x1(k),⋯,xN(k);θ)=∑j=01P(y(k)=j)∏iP(xi(k)∣y(k)=j)P(y(k)=1)∏iP(xi(k)∣y(k)=1)
M-step:
theta_{ij|m}=\hat P(X_i=j|Y=m)=\frac{\sum_kP(y(k)=m|x_1(k),\cdots,x_N(k))\delta(x_i(k)=j)}{\sum_kP(y(k)=m|x_1(k),\cdots,x_N(k))}$$