F={f∣Y=f(X)} X和Y是定义在X和Y上的变量
F是一个参数向量决定的函数族:
F={f∣Y=fθ(X),θ∈Rn} 参数向量θ取值于n维欧式空间Rn,称为参数空间
F={P∣P(Y∣X)} X和Y是定义在X和Y上的随机变量
F是一个参数向量决定的条件概率分布族:
F={P∣Pθ(Y∣X),θ∈Rn} 损失函数(loss function)或代价函数(cost function): 度量预测值f(X)与真实值Y的误差程度,记为L(Y,f(X)),是个非负实值函数。损失函数越小,模型越好。
L(Y,f(X))={01Y=f(X)Y=f(X) L(Y,f(X))=(Y−f(X))2 L(Y,f(x))=∣Y−f(X)∣ L(Y,P(Y∣X))=−logP(Y∣X) 风险函数(risk function)或期望损失(expected loss):X和Y服从联合分布P(X,Y),理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失:
Rexp(f)=EP[L(Y,f(X))]=∫X×YL(y,f(x))P(x,y)dxdy 学习的目标:选择期望风险最小的模型。但联合分布P(X,Y)是未知的,所以无法直接计算Rexp(f)。所以监督学习是病态问题(ill-formed problem):一方面需要联合分布,另一方面联合分布是未知的。
T={(x1,y1),...(xN,yN)} 经验风险(expirical risk)/经验损失(expirical loss):模型f(X)关于训练集的平均损失
Remp(f)=N1i=1∑NL(yi,f(xi)) 根据大数定律,当样本容量N趋向无穷时,经验风险Remp趋于期望风险Rexp(f)。
f∈FminRerm=f∈FminN1L(yi,f(xi)) Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f) 其中,J(f)是模型的复杂度,模型越复杂,J(f)越大。λ≥0是用于权衡经验风险和模型复杂度的系数。
f∈FminN1i=1∑NL(yi,f(xi))+λJ(f) 假设学习到的模型是Y=f^(X),训练误差是模型Y=f^(X)关于训练数据集的平均损失(N是样本容量):
Remp(f^)=N1i=1∑NL(yi,f^(xi)) 测试误差是模型Y=f^(X)关于测试数据集的平均损失(N′是测试样本容量):
etest(f^)=N′1i=1∑N′L(yi,f^(xi)) f∈FminN1i=1∑NL(yi,f(xi))+λJ(f) 一方面,直观上看,平方损失函数对每一个输出结果都十分看重,而交叉熵只看重正确分类的结果。例如三分类问题,如果预测的是(a,b,c),而实际结果是(1,0,0),那么:
mse=(a−1)2+b2+c2 crossentropy=−1×loga−0×logb−0×logc=−loga 另一方面,从理论角度分析。两个损失的源头不同。平方损失函数假设最终结果都服从高斯分布,而高斯分布的随机变量实际是一个连续变量,而非离散变量。如果假设结果 变量服从均值t,方差σ的高斯分布,那么利用最大似然法可以优化其负对数似然,最终公式变为:
maxi∑N[−21log(2πσ2)−2σ2(ti−y)2] p(θ∣X)=p(X)p(X∣θ)p(θ) posterior=evidencelikelihood∗prior posterior:通过样本X得到参数θ的概率,即后验概率
likelihood:通过参数θ得到样本X的概率,即似然函数。
prior:参数θ的先验概率
evidence:p(X)=∫p(X∣θ)p(θ)dθ。样本X发生的概率,是各种θ条件下发生的概率的积分。
p(X∣θ)=i=1∏np(xi∣θ) LL(θ)=logp(X∣θ)=logi=1∏np(xi∣θ)=i=1∑nlogp(xi∣θ) 最大后验估计中引入了先验概率(先验分布属于贝叶斯学派引入的,像L1,L2正则化就是对参数引入了拉普拉斯先验分布和高斯先验分布),而且最大后验估计要求的是p(θ∣X)
f(x)=argθmaxp(θ∣X)=argθmaxp(X)p(X∣θ)p(θ)=argθmaxp(X∣θ)p(θ) 其中因为分母p(X)与θ无关,所以可以去掉,同样地,取log:
f(x)=argθmaxlogp(X∣θ)p(θ)=argθmax{i=1∑nlogp(xi∣θ)+logp(θ)} 最大后验估计允许我们把先验知识加入到估计模型中,这在样本很少的时候是很有用的(因此朴素贝叶斯在较少的样本下就能有很好的表现),因为样本很少的时候我们的观测结果很可能出现偏差,此时先验知识会把估计的结果“拉”向先验,实际的预估结果将会在先验结果的两侧形成一个顶峰。通过调节先验分布的参数,比如beta分布的α,β,我们还可以调节把估计的结果“拉”向先验的幅度,α,β越大,这个顶峰越尖锐。这样的参数,我们叫做预估模型的“超参数”。
极大后验估计在计算后验概率的时候,把分母p(X)忽略了,在进行贝叶斯估计的时候则不能忽略
假设我们前一轮迭代得到的强学习器是ft−1(x),损失函数是L(y,ft−1(x)),本轮迭代的目标是找到一个CART回归树模型的弱学习器ht(x),使得本轮的损失函数L(y,ft(x))=L(y,ft−1(x)+ht(x))最小。也就是说,要找到一个决策树,使得样本的损失L(y−ft−1(x),ht(x))最小。
rti=−[∂f(xi)∂L(yi,f(xi)))]f(x)=ft−1(x) 拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数在一组约束下的极值的方法。通过引入拉格朗日乘子,将d个变量和k个约束条件的最优化问题转化为具有d+k个变量的无约束优化问题求解。
假设x是d维向量,要寻找x的某个取值x∗,使目标函数f(x)最小且同时满足g(x)=0的约束。
从几何角度看,目标是在由方程g(x)=0确定的d−1维曲面上,寻找能使目标函数f(x)最小化的点。
对于约束曲面g(x)=0上的任意点x,该点的梯度ablag(x)正交于约束曲面
在最优点x∗,目标函数f(x)在该点的梯度ablaf(x∗)正交于约束曲面
假设z=f(x,y)的等值线:Γ:f(x,y)=c,两边求微分:
df(x,y)=dc∂x∂fdx+∂y∂fdy=0 ∂x∂fdx+∂y∂fdy={∂x∂f,∂y∂f}⋅{dx,dy}=0 而内积a⋅b=∣a∣∣b∣cosθ为0说明夹角是90度,而{∂x∂f,∂y∂f}是梯度向量,{dx,dy}是等值线的切向量,所以梯度向量和切向量是垂直的。
对于第2条,可以用反证法,如下图,蓝色是g(x)=0,橙色是f(x)的等值线(图里假设f(x)=x2+y2),交点的ablaf(x∗)的梯度和g(x)的切面不垂直,那么,可以找到更小的等值线,使夹角更接近90度,也就是说,这个点不是真正的最优点x∗。
所以,在最优点x∗处,梯度ablag(x)和ablaf(x)的方向必然相同或相反,也就是存在λ=0,使得:
ablaf(x∗)+λ∇g(x∗)=0 其中λ是拉格朗日乘子,定义拉格朗日函数
L(x,λ)=f(x)+λg(x) 其中L(x,λ)对x的偏导ablaxL(x,λ)置0,就得到:
ablaf(x)+λ∇g(x)=0 而L(x,λ)对λ的偏导ablaλL(x,λ)置0,就得到
所以,原约束问题可以转化为对L(x,λ)的无约束优化问题。
考虑不等式约束g(x)≤0,最优点或者在边界g(x)=0上,或者在区域g(x)<0中。
相当于使f(x)取得最小值的点落在可行域内,所以约束条件相当于没有用,所以,直接对f(x)求极小值即可。因为L(x,λ)=f(x)+λg(x),所以
ablaxL(x,λ)=∇f(x)+λ∇g(x) 因为g(x)<0,想要只让ablaf(x)=0,那么令 λ=0 即可。
这就变成了等式约束,且此时ablaf(x∗)和ablag(x∗)反向相反。因为在g(x)=0越往里值是越小的,而梯度是指向等值线高的方向,所以梯度是指向外的。而f(x)的可行域又在g(x)的里面和边界上,我们要找的是f(x)的最小值,所以f(x)的梯度是指向内部的。
而ablaf(x)+λ∇g(x)=0,两个又是反向的,所以λ>0。
结合g(x)≤0和g(x)=0两种情况的结论,就得到了KKT(Karush-Kuhn-Tucker)条件
g(x)=0,λ>0g(x)<0,λ=0}⇒⎩⎨⎧g(x)≤0λ≥0λg(x)=0 其中λg(x)=0是因为λ和g(x)至少一个是0,而且不能都不是0。
Primal feasibility(原始可行性):g(x)≤0
Dual feasibility(对偶可行性):λ≥0
Complementary slackness:λg(x)=0
对于多个约束的情形,m个等式约束和n个不等式约束,可行域D⊂Rd非空的优化问题:
xminf(x) s.thi(x)=0,i=1,...,mgj(x)≤0,j=1,...,n 引入拉格朗日乘子λ=(λ1,λ2,...,λm)T和μ=(μ1,μ2,...,μn)T,相应的拉格朗日函数为:
L(x,λ,μ)=f(x)+i=1∑mλihi(x)+j=1∑nμjgj(x) 由不等式约束引入的KKT条件(j=1,2,...n)为
⎩⎨⎧gj(x)≤0μj≥0μjgj(x)=0 假设f(x)有一阶连续偏导,对于无约束的最优化问题而言:minx∈Rnf(x)
而f(x)在x(k)附近的一阶泰勒展开如下,其中gk=g(x(k))=∇f(x(k))是f(x)在x(k)的梯度:
f(x)=f(x(k))+gkT(x−x(k)) 所以对于x=x(k+1):
f(x(k+1))=f(x(k))+gkT(x(k+1)−x(k)) 令x(k+1)=x(k)+λkpk,pk是搜索方向,λk是步长,代入上式,有
f(x(k+1))=f(x(k))+gkT(x(k)+λkpk−x(k))=f(x(k))+gkTλkpk 为了让每次迭代的函数值变小,可以取pk=−∇f(x(k))
把λk看成是可变化的,所以需要搜索λk使得
f(x(k)+λkpk)=λ≥0minf(x(k)+λpk) 输入:目标函数f(x),梯度g(x)=∇f(x),精度要求ε。
输出:f(x)的极小点x∗。
取初始值x(0)∈Rn,置k=0
计算f(x(k))
计算梯度gk=g(x(k)),当∥gk∥<ε,则停止计算,得到近似解x∗=x(k);否则,令pk=−g(x(k)),求λk使得 f(x(k)+λkpk)=minλ≥0f(x(k)+λpk)
置x(k+1)=x(k)+λkpk,计算f(x(k+1)) 当f(x(k+1))−f(x(k))<ε或x(k+1)−x(k)<ε时,停止迭代,令x∗=x(k+1)
考虑无约束优化问题minxf(x),f(x)是连续可微函数,如果能构造一个序列x0,x1,x2,...满足
f(xt+1)<f(xt), t=0,1,2,... f(x)f(x+Δx)=f(x(k))+∇f(x(k))T(x−x(k))=f(x(k))+∇f(x(k))T(x+Δx−x(k))=f(x(k))+∇f(x(k))T(x−x(k))+∇f(x(k))TΔx=f(x)+∇f(x(k))TΔx 而ablaf(x(k))TΔx是一个标量,其转置等于自己,所以
f(x+Δx)=f(x)+ΔxT∇f(x(k)) 想要让f(x+Δx)<f(x),只需要令:
Δx=−γ∇f(x) 如果f(x)满足L-Lipschitz条件,也就是说对于任意的x,存在常数L,使得∥∇f(x)∥≤L成立,那么设置步长为2L1就可以确保收敛到局部极小点。
一阶导f′(x0)=0时,如果二阶导f′′(x0)>0,那么f(x0)是极小值,x0是极小点
一阶导f′(x0)=0,如果二阶导f′′(x0)<0,那么f(x0)是极大值,x0是极大点
一阶导f′(x0)=0,如果二阶导f′′(x0)=0,那么x0是鞍点
f(x1)=f(x0)+f′(x0)(x1−x0)+21f′′(x0)(x1−x0)2+...+Rn(x1) 因为f′′(x0)>0且f′(x0)=0,所以,不论x1>x0还是x1<x0,总有f(x1)>f(x0),也就是周围的函数值都比f(x0)大,而x0又是极值点,所以是极小点。
对于矩阵形式,x是一个nx1的列向量,H(x)是f(x)的海赛矩阵,即二阶导,shape是n×n:
f(x)=f(x(x))+gkT(x−x(k))+21(x−x(k))TH(x(k))(x−x(k)) 函数f(x)有极值的必要条件是在极值点处一阶导为0,特别地,当H(x(k))是正定矩阵时(二阶导大于0),是极小值。
牛顿法利用极小点的必要条件ablaf(x)=0,每次迭代从点x(k)开始,求目标函数极小点,作为第k+1次迭代值x(k+1),具体地,假设ablaf(x(k+1))=0,有
f(x)=f(x(x))+gkT(x−x(k))+21(x−x(k))TH(x(k))(x−x(k))=f(x(x))+[gkT+21(x−x(k))TH(x(k))](x−x(k))=f(x(x))+[gk+21H(x(k))(x−x(k))]T(x−x(k)) 把其中的gk+21H(x(k))(x−x(k))看成一阶导,则上式就是一阶泰勒展开。记Hk=H(x(k)),令x=x(k+1),令一阶导为0:
gk+21Hk(x(k+1)−x(k))=0gk=−21Hk(x(k+1)−x(k))−2Hk−1gk=x(k+1)−x(k)x(k+1)=−2Hk−1gk+x(k) x(k+1)=x(k)−Hk−1gk x(k+1)=x(k)+pk Hkpk=−gk 输入:目标函数f(x),梯度g(x)=∇f(x),海赛矩阵H(x),精度要求ε。
输出:f(x)的极小点x∗。
取初始点x(0),置k=0
计算gk=g(x(k))
若∥gk∥<ε,则停止计算,得到近似解x∗=x(k)
计算Hk=H(x(k)),并求pk,满足 Hkpk=−gk
置x(k+1)=x(k)+pk
其中的步骤4,求pk时,pk=−Hk−1gk需要求解Hk−1很复杂。
基本想法就是通过一个n阶矩阵Gk=G(x(k))来近似代替H−1(x(k))。
假设S为在实或复向量空间的集。若对于所有x,y∈S和所有的t∈[0,1]都有tx+(1−t)y∈S,则S称为凸集。
如果S是凸集,对于任意的u1,u2,...,ur∈S,以及所有的非负λ1,λ2,...,λr满足λ1+λ2+...+λr=1,都有∑k=1rλkuk∈S。这个组合称为u1,u2,...,ur的凸组合。
tf(x)+(1−t)f(y)≥f(tx+(1−t)y),0≤t≤1 一元连续可微函数在区间上是凸的,当且仅当函数位于所有它的切线的上方:对于区间内的所有x和y,都有 f(y)≥f(x)+f′(x)(y−x)(右边就是一阶泰勒展开)。特别地,如果f′(c)=0,那么f(c)是f(x)的最小值。
注意:DKL(P∣∣Q)是指的用分布Q来近似数据的真实分布P,先写P再写Q,公式里没有-ln的时候,就是p/q
DKL(P∣∣Q)=i∑P(i)lnQ(i)P(i)=−i∑P(i)lnP(i)Q(i) KL散度仅当概率P和Q各自总和均为1,且对于任何i皆满足Q(i)>0及P(i)>0时,才有定义。如果出现0ln0,当做0
DKL(P∣∣Q)=∫−∞∞p(x)lnq(x)p(x)dx φ(E(x))≤E(φ(x)) 对于离散随机变量,∑i=1nλi=1:
φ(i=1∑ng(xi)λi)≤i=1∑nφ(g(xi))λi 当我们取g(x)=x,λi=1/n,φ(x)=log(x)时,就有
log(i=1∑nnxi)≥i=1∑nnlog(xi) ∫−∞∞f(x)dx=1 如果φ在g(x)的值域中是凸函数,那么
φ(∫−∞∞g(x)f(x)dx)≤∫−∞∞φ(g(x))f(x)dx 特别地,当g(x)=x时,有
φ(∫−∞∞xf(x)dx)≤∫−∞∞φ(x)f(x)dx 回到这个问题中,g(x)=p(x)q(x),φ(x)=−logx是一个严格凸函数,那么φ(g(x))=−logp(x)q(x),所以
DKL(P∣∣Q)=∫−∞∞p(x)lnq(x)p(x)dx=∫−∞∞p(x)(−lnp(x)q(x))dx=∫−∞∞(−lnp(x)q(x))p(x)dx≥−ln(∫−∞∞p(x)q(x)p(x)dx)≥−ln(∫−∞∞q(x)dx)=−ln1=0 假设有一个很复杂的概率密度函数p(x),求解随机变量基于此概率下的某个函数期望,即:
Ex∼p(x)[f(x)] ∫xp(x)f(x)dx N1xi∼p(x),i=1∑Nf(xi) 拒绝采样又叫接受/拒绝采样(Accept-Reject Sampling),对于目标分布p(x),选取一个容易采样的参考分布q(x),使得对于任意x都有p(x)≤M⋅q(x),则可以按如下过程采样:
从参考分布q(x)中随机抽取一个样本xi
从均匀分布U(0,1)产生一个随机数ui
如果ui≤Mq(xi)p(xi),则接受样本xi,否则拒绝。
重新进行如上3个步骤,直到新产生的样本xi被接受
其中的第三步是因为p(x)≤M⋅q(x),所以Mq(xi)p(xi)≤1,说明只有函数值在p(xi)下方的xi才接受,所以xi∼p(x)。相当于为目标分布p(x)选一个包络函数M⋅q(x),包络函数紧,每次采样时样本被接受的概率越大,采样效率越高。实际应用中还有自适应拒绝采样等。
我们令待采样分布为p(x),有另一个简单可采样且定义域和p(x)相同的概率密度函数为p~(x),可以得到:
Ex∼p(x)[f(x)]=∫xp(x)f(x)dx=∫xp~(x)p~(x)p(x)f(x)dx=Ex∼p~(x)[p~(x)p(x)f(x)]≃N1xi∼p~(x),i=1∑Np~(x)p(x)f(x) 因此,只需要从简单分布p~(x)中采样,然后分别计算p(x)、p~(x)和f(x)就可以了。
对于目标分布p(x),首先选择一个容易采样的参考条件分布q(x∗∣x),并令
A(x,x∗)=min{1,p(x)q(x∗∣x)p(x∗)q(x∣x∗)}
根据参考条件分布q(x∗∣x(t−1))抽取一个样本x∗;
根据均匀分布U(0,1)产生随机数u;
若u<A(x(t−1),x∗),则令x(t)=x∗【接受新样本】,否则令x(t)=x(t−1)【拒绝新样本,维持旧样本】
可以证明,上述过程得到的样本序列{...,x(t−1),x(t),...}最终会收敛到目标分布p(x)
吉布斯采样是Metropolis-Hastings算法的一个特例,核心思想是只对样本的一个维度进行采样和更新。对于目标分布p(x),其中x=(x1,x2,...,xd)是一个多维向量,按如下过程采样:
随机选择初始状态x(0)=(x1(0),x2(0),...,xd(0))
对于前一步产生的样本x(t−1)=(x1(t−1),x2(t−1),...,xd(t−1)),依次采样和更新每个维度的值,即依次抽取分量x1(t)∼p(x1∣x2(t−1),x3(t−1),...,xd(t−1)), x2(t)∼p(x1∣x1(t−1),x3(t−1),...,xd(t−1)), ..., xd(t)∼p(x1∣x1(t−1),x2(t−1),...,xd−1(t−1))
形成新的样本x(t)=(x1(t),x2(t),...,xd(t))
同样可以证明,上述过程得到的样本序列{...,x(t−1),x(t),...}会收敛到目标分布p(x)。另外,步骤2中对样本每个维度的抽样和更新操作,不是必须按下标顺序进行的,可以是随机顺序。