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)
核函数可以相加可以相乘,所以可以根据这点直接构建一个新的核函数(称为多核学习)