Softmax回归 — Softmax Regression

之前讲过,对于二分类问题我们可以采用逻辑回归。逻辑回归通过 Logit Function xi 映射到 (0,1) 的一个区间,可解释为事件 xi 发生的概率 p(xi;θ)=11+eθTxi 。而对于多分类问题 yi{1,2,,K} Softmax Regression 采用同样的思路,同样是将 xi 映射到 (01) 的区间上,计算 xi 发生的概率。不过, p(xi;θ) 的定义稍有不同:

p(xi;θ)=Pr(yi=k|xi;θ)=eθ(k)TxiKj=1eθ(j)Txi

其中,分子表示数据 xi 属于类 k 的概率,分母表示其属于不同类的概率之和, p(xi;θ)(0,1) 。为加快程序运行速度,在代码实现中通常会向量化上式:
p(xi;θ)=Pr(yi=1|xi;θ)Pr(yi=2|xi;θ)Pr(yi=K|xi;θ)=1Kj=1eθ(j)Txieθ(1)Txieθ(2)Txieθ(K)Txi

Softmax Regression 最大似然函数为:
L(θ)=i=1mp(xi;θ)1{yi=k}

其中, 1{} 是指示函数, 1{True}=1;1{False}=0 。对数似然函数为:
l(θ)=logL(θ)=i=1m1{yi=k}logeθ(k)TxiKj=1eθ(j)Txi

成本函数 J(θ) 定义为:
J(θ)=l(θ)=i=1m1{yi=k}logeθ(k)TxiKj=1eθ(j)Txi

J(θ) θ(k) 求偏导:
J(θ)θ(k)=θ(k)[i=1m1{yi=k}logeθ(k)TxiKj=1eθ(j)Txi]=θ(k)[i=1m1{yi=k}(logeθ(k)TxilogKj=1eθ(j)Txi)]=i=1m(1{yi=k}xieθ(j)TxiKj=1eθ(j)Txixi)=i=1mxi(1{yi=k}eθ(j)TxiKj=1eθ(j)Txi)=i=1mxi(1{yi=k}Pr(yi=k|xi;θ))

最后,通过梯度下降求 J(θ) 最小化时 θ(k) 的近似解:
θ(k):=θ(k)αJ(θ)θ(k)

将上式写成向量形式,即: θ=θαJ(θ)

猜你喜欢

转载自blog.csdn.net/u012841922/article/details/78921950