本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Softmax回归详解
在softmax回归中,我们解决的是多分类问题(相对于logistic回归解决的二分类问题),标记y可以取k个不同的值。对于训练集{(x(1),y(1)),⋯,(x(m),y(m))},我们有y(1)∈{1,2,⋯,k}。
对于给定的测试输入x,我们相拥假设函数针对每一个类别j估算出概率值P(y=j∣x)。因此,我们的假设函数要输出一个k维的向量(向量元素的和为1)类表示k个估计的概率值。我们采用如下形式的假设函数hθ(x):
hθ(x(i))=⎣⎡P(y(i)=1∣x(i);θ)P(y(i)=2∣x(i);θ)⋮P(y(i)=10∣x(i);θ)⎦⎤=∑j=1keθjTx(i)1=⎣⎡eθ1Tx(i)eθ2Tx(i)⋮eθkTx(i)⎦⎤(1)
参数θ是一个k×(n+1)的参数矩阵
P(y(i)∣x(i);θ)=j=1∏k{∑l=1keθlTx(i)eθjTx(i)}1(y(i)=j)(2)
似然函数为:
L(θ)=P(Y∣X;θ)=i=1∏mP(y(i)∣x(i);θ)=i=1∏mj=1∏k{∑l=1keθlTx(i)eθjTx(i)}1(y(i)=j)(3)
对数似然函数为:
l(θ)=logL(θ)=i=1∑mj=1∑k1(y(i)=j)log∑l=1keθlTx(i)eθjTx(i)(4)
我们将训练模型参数θ使其能够最小化代价函数:
J(θ)=−m1[i=1∑mj=1∑k1(y(i)=j)log∑l=1keθlTx(i)eθjTx(i)](5)
logistic回归
在**《机器学习之线性回归模型》一章中,我们学习了如何使用线性模型进行回归学习。如果要将线性模型用来分类,就要用到该章结尾介绍的广义线性模型**了。
logistic回归模型采用logistic函数来将线性回归产生的预测值z=wTx+b转化为一个接近0或1的y值;
y=1+e−z1(1)
由此得到logistic回归模型:
y=1+e−(wTx+b)1(2)
假设我们的训练集是由m个已标记的样本构成:{(x(1),y(1)),⋯,(x(m),y(m)),},输入特征向量x(i)∈Rn+1。(我们约定其中x0=1对应截距项)。
我们将用于分类的函数称为假设函数(hypothesis function),logistic回归中的假设函数为:
hθ=1+e(−θTx)1(3)
注意,(3)中的θ等价于[w;b]。
我们可以通过“极大似然法”(maximum likelihood method)来估计θ。不妨设:
P(y=1∣x;θ)P(y=0∣x;θ)=hθ(x)=1−hθ(x)(4)
那么有
P(y∣x;θ)=(hθ(x))y(1−hθ(x))1−y(5)
似然函数为:
L(θ)=P(Y∣X;θ)=i=1∏mP(y(i)∣x(i);θ)=i=1∏m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)(6)
对数似然函数为:
l(θ)=logL(θ)=i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))(7)
我们将训练模型参数θ使其能够最小化代价函数:
J(θ)=−m1[i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))](8)