之前讲过,对于二分类问题我们可以采用逻辑回归。逻辑回归通过
Logit Function
将
xi
映射到
(0,1)
的一个区间,可解释为事件
xi
发生的概率
p(xi;θ)=11+e−θTxi
。而对于多分类问题
yi∈{1,2,…,K}
,
Softmax Regression
采用同样的思路,同样是将
xi
映射到
(0−1)
的区间上,计算
xi
发生的概率。不过,
p(xi;θ)
的定义稍有不同:
p(xi;θ)=Pr(yi=k|xi;θ)=eθ(k)Txi∑Kj=1eθ(j)Txi
其中,分子表示数据
xi
属于类
k
的概率,分母表示其属于不同类的概率之和,
p(xi;θ)∈(0,1)
。为加快程序运行速度,在代码实现中通常会向量化上式:
p(xi;θ)=⎡⎣⎢⎢⎢⎢Pr(yi=1|xi;θ)Pr(yi=2|xi;θ)⋮Pr(yi=K|xi;θ)⎤⎦⎥⎥⎥⎥=1∑Kj=1eθ(j)Txi⎡⎣⎢⎢⎢⎢⎢eθ(1)Txieθ(2)Txi⋮eθ(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)Txi∑Kj=1eθ(j)Txi
成本函数
J(θ)
定义为:
J(θ)=−l(θ)=−∑i=1m1{yi=k}logeθ(k)Txi∑Kj=1eθ(j)Txi
J(θ)
对
θ(k)
求偏导:
∂J(θ)∂θ(k)=∂∂θ(k)[−∑i=1m1{yi=k}logeθ(k)Txi∑Kj=1eθ(j)Txi]=∂∂θ(k)[−∑i=1m1{yi=k}(logeθ(k)Txi−log∑Kj=1eθ(j)Txi)]=−∑i=1m(1{yi=k}xi−eθ(j)Txi∑Kj=1eθ(j)Txixi)=−∑i=1mxi(1{yi=k}−eθ(j)Txi∑Kj=1eθ(j)Txi)=−∑i=1mxi(1{yi=k}−Pr(yi=k|xi;θ))
最后,通过梯度下降求
J(θ)
最小化时
θ(k)
的近似解:
θ(k):=θ(k)−α∂J(θ)∂θ(k)
将上式写成向量形式,即:
θ=θ−α▽J(θ)
。