深度学习算法原理——Softmax Regression

一、Logistic回归简介

Logistic回归是解决二分类问题的分类算法。假设有 m m 个训练样本{(x(1),y(1)),(x(2),y(2)),,(x(m),y(m))},对于Logistic回归,其输入特征为: x(i)n+1 x ( i ) ∈ ℜ n + 1 ,类标记为: y(i){0,1} y ( i ) ∈ { 0 , 1 } ,假设函数为Sigmoid函数:

hθ(x)=11+eθTx h θ ( x ) = 1 1 + e − θ T x

其中,模型的参数为 θ θ ,需要通过最小化损失函数得到,模型的损失函数为:

J(θ)=1mi=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))] J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ]

此时,可以通过梯度下降法对其进行求解,其梯度为:

θjJ(θ)=1mmi=1[y(i)hθ(x(i))θjhθ(x(i))+1y(i)1hθ(x(i))θj(1hθ(x(i)))]=1mmi=1[y(i)hθ(x(i))θjhθ(x(i))1y(i)1hθ(x(i))θjhθ(x(i))]=1mmi=1[(y(i)hθ(x(i))1y(i)1hθ(x(i)))θjhθ(x(i))] ▽ θ j J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) h θ ( x ( i ) ) ⋅ ▽ θ j h θ ( x ( i ) ) + 1 − y ( i ) 1 − h θ ( x ( i ) ) ⋅ ▽ θ j ( 1 − h θ ( x ( i ) ) ) ] = − 1 m ∑ i = 1 m [ y ( i ) h θ ( x ( i ) ) ⋅ ▽ θ j h θ ( x ( i ) ) − 1 − y ( i ) 1 − h θ ( x ( i ) ) ⋅ ▽ θ j h θ ( x ( i ) ) ] = − 1 m ∑ i = 1 m [ ( y ( i ) h θ ( x ( i ) ) − 1 − y ( i ) 1 − h θ ( x ( i ) ) ) ⋅ ▽ θ j h θ ( x ( i ) ) ]

=1mmi=1[y(i)hθ(x(i))hθ(x(i))(1hθ(x(i)))θjhθ(x(i))]=1mmi=1[y(i)hθ(x(i))hθ(x(i))(1hθ(x(i)))θTx(i)hθ(x(i))θj(θTx(i))] = − 1 m ∑ i = 1 m [ y ( i ) − h θ ( x ( i ) ) h θ ( x ( i ) ) ( 1 − h θ ( x ( i ) ) ) ⋅ ▽ θ j h θ ( x ( i ) ) ] = − 1 m ∑ i = 1 m [ y ( i ) − h θ ( x ( i ) ) h θ ( x ( i ) ) ( 1 − h θ ( x ( i ) ) ) ⋅ ▽ θ T x ( i ) h θ ( x ( i ) ) ⋅ ▽ θ j ( θ T x ( i ) ) ]

而:

θTx(i)hθ(x(i))=hθ(x(i))(1hθ(x(i))) ▽ θ T x ( i ) h θ ( x ( i ) ) = h θ ( x ( i ) ) ( 1 − h θ ( x ( i ) ) )

θj(θTx(i))=x(i)j ▽ θ j ( θ T x ( i ) ) = x j ( i )

因此,梯度的公式为:

θjJ(θ)=1mi=1m[(y(i)hθ(x(i)))x(i)j] ▽ θ j J ( θ ) = − 1 m ∑ i = 1 m [ ( y ( i ) − h θ ( x ( i ) ) ) ⋅ x j ( i ) ]

根据梯度下降法,得到如下的更新公式:

θj:=θjαθjJ(θ) θ j := θ j − α ▽ θ j J ( θ )

二、Softmax回归

2.1、Softmax回归简介

Softmax是Logistic回归在多分类上的推广,即类标签 y y 的取值大于等于2。假设有 m m 个训练样本{(x(1),y(1)),(x(2),y(2)),,(x(m),y(m))},对于Softmax回归,其输入特征为: x(i)n+1 x ( i ) ∈ ℜ n + 1 ,类标记为: y(i){0,1,k} y ( i ) ∈ { 0 , 1 , ⋯ k } 。假设函数为对于每一个样本估计其所属的类别的概率 p(y=jx) p ( y = j ∣ x ) ,具体的假设函数为:

hθ(x(i))=p(y(i)=1x(i);θ)p(y(i)=2x(i);θ)p(y(i)=kx(i);θ)=1kj=1eθTjx(i)eθT1x(i)eθT2x(i)eθTkx(i) h θ ( x ( i ) ) = [ p ( y ( i ) = 1 ∣ x ( i ) ; θ ) p ( y ( i ) = 2 ∣ x ( i ) ; θ ) ⋮ p ( y ( i ) = k ∣ x ( i ) ; θ ) ] = 1 ∑ j = 1 k e θ j T x ( i ) [ e θ 1 T x ( i ) e θ 2 T x ( i ) ⋮ e θ k T x ( i ) ]

其中 θ θ 表示的向量,且 θin+1 θ i ∈ ℜ n + 1 。则对于每一个样本估计其所属的类别的概率为:

p(y(i)=jx(i);θ)=eθTjx(i)kl=1eθTlx(i) p ( y ( i ) = j ∣ x ( i ) ; θ ) = e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i )

2.2、Softmax回归的代价函数

类似于Logistic回归,在Softmax的代价函数中引入指示函数 I{} I { ⋅ } ,其具体形式为:

I{expression}={01 if expression=false if expression=true I { e x p r e s s i o n } = { 0  if  e x p r e s s i o n = f a l s e 1  if  e x p r e s s i o n = t r u e

那么,对于Softmax回归的代价函数为:

J(θ)=1m[i=1mj=1kI{y(i)=j}logeθTjx(i)kl=1eθTlx(i)] J ( θ ) = − 1 m [ ∑ i = 1 m ∑ j = 1 k I { y ( i ) = j } l o g e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i ) ]

2.3、Softmax回归的求解

对于上述的代价函数,可以使用梯度下降法对其进行求解,首先对其进行求梯度:

θjJ(θ)=1mi=1m[θjj=1kI{y(i)=j}logeθTjx(i)kl=1eθTlx(i)] ▽ θ j J ( θ ) = − 1 m ∑ i = 1 m [ ▽ θ j ∑ j = 1 k I { y ( i ) = j } l o g e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i ) ]

已知,对于一个样本只会属于一个类别:

  • y(i)=j y ( i ) = j ,则 I{y(i)=j}=1 I { y ( i ) = j } = 1

θjJ(θ)=1mmi=1[θjlogeθTjx(i)kl=1eθTlx(i)]=1mmi=1[kl=1eθTlx(i)eθTjx(i)eθTjx(i)x(i)kl=1eθTlx(i)eθTjx(i)x(i)eθTjx(i)(kl=1eθTlx(i))2]=1mmi=1[kl=1eθTlx(i)eθTjx(i)kl=1eθTlx(i)x(i)] ▽ θ j J ( θ ) = − 1 m ∑ i = 1 m [ ▽ θ j l o g e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i ) ] = − 1 m ∑ i = 1 m [ ∑ l = 1 k e θ l T x ( i ) e θ j T x ( i ) ⋅ e θ j T x ( i ) ⋅ x ( i ) ⋅ ∑ l = 1 k e θ l T x ( i ) − e θ j T x ( i ) ⋅ x ( i ) ⋅ e θ j T x ( i ) ( ∑ l = 1 k e θ l T x ( i ) ) 2 ] = − 1 m ∑ i = 1 m [ ∑ l = 1 k e θ l T x ( i ) − e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i ) ⋅ x ( i ) ]

  • y(i)j y ( i ) ≠ j ,假设 y(i)j y ( i ) ≠ j ′ ,则 I{y(i)=j}=0 I { y ( i ) = j } = 0 I{y(i)=j}=1 I { y ( i ) = j ′ } = 1

θjJ(θ)=1mmi=1[θjlogeθTjx(i)kl=1eθTlx(i)]=1mmi=1[kl=1eθTlx(i)eθTjx(i)eθTjx(i)x(i)eθTjx(i)(kl=1eθTlx(i))2]=1mmi=1[eθTjx(i)kl=1eθTlx(i)x(i)] ▽ θ j J ( θ ) = − 1 m ∑ i = 1 m [ ▽ θ j l o g e θ j ′ T x ( i ) ∑ l = 1 k e θ l T x ( i ) ] = − 1 m ∑ i = 1 m [ ∑ l = 1 k e θ l T x ( i ) e θ j ′ T x ( i ) ⋅ − e θ j ′ T x ( i ) ⋅ x ( i ) ⋅ e θ j T x ( i ) ( ∑ l = 1 k e θ l T x ( i ) ) 2 ] = − 1 m ∑ i = 1 m [ − e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i ) ⋅ x ( i ) ]

最终的结果为:

1mi=1m[x(i)(I{y(i)=j}p(y(i)=jx(i);θ))] − 1 m ∑ i = 1 m [ x ( i ) ( I { y ( i ) = j } − p ( y ( i ) = j ∣ x ( i ) ; θ ) ) ]

注意,此处的 θj θ j 表示的是一个向量。通过梯度下降法的公式可以更新:

θj:=θjαθjJ(θ) θ j := θ j − α ▽ θ j J ( θ )

5、Softmax回归中的参数特点

在Softmax回归中存在着参数冗余的问题。简单来讲就是参数中有些参数是没有任何用的,为了证明这点,假设从参数向量 θj θ j 中减去向量 ψ ψ ,假设函数为:

p(y(i)=jx(i);θ)=e(θjψ)Tx(i)kl=1e(θlψ)Tx(i)=eθTjx(i)eψTx(i)kl=1eθTlx(i)eψTx(i)=eθTjx(i)kl=1eθTlx(i) p ( y ( i ) = j ∣ x ( i ) ; θ ) = e ( θ j − ψ ) T x ( i ) ∑ l = 1 k e ( θ l − ψ ) T x ( i ) = e θ j T x ( i ) ⋅ e − ψ T x ( i ) ∑ l = 1 k e θ l T x ( i ) ⋅ e − ψ T x ( i ) = e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i )

从上面可以看出从参数向量 θj θ j 中减去向量 ψ ψ 对预测结果并没有任何的影响,也就是说在模型中,存在着多组的最优解。

为了是算法能够尽可能简单,保留所有的参数,但是对代价函数加入权重衰减来解决参数冗余的问题,权重衰减即对参数进行正则化。

如对参数进行L2正则约束,L2正则为:

λ2i=1kj=0nθ2ij λ 2 ∑ i = 1 k ∑ j = 0 n θ i j 2

此时,代价函数为:

J(θ)=1m[i=1mj=1kI{y(i)=j}logeθTjx(i)kl=1eθTlx(i)]+λ2i=1kj=0nθ2ij J ( θ ) = − 1 m [ ∑ i = 1 m ∑ j = 1 k I { y ( i ) = j } l o g e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i ) ] + λ 2 ∑ i = 1 k ∑ j = 0 n θ i j 2

其中, λ>0 λ > 0 ,此时代价函数是一个严格的凸函数。

对该函数的导数为:

θjJ(θ)=1mi=1m[x(i)(I{y(i)=j}p(y(i)=jx(i);θ))]+λθj ▽ θ j J ( θ ) = − 1 m ∑ i = 1 m [ x ( i ) ( I { y ( i ) = j } − p ( y ( i ) = j ∣ x ( i ) ; θ ) ) ] + λ θ j

5、Softmax与Logistic回归的关系

Logistic回归算法是Softmax回归的特征情况,即 k=2 k = 2 时的情况,当
k=2 k = 2 时,Softmax回归为:

hθ(x)=1eθT1x+eθT2x[eθT1xeθT2x] h θ ( x ) = 1 e θ 1 T x + e θ 2 T x [ e θ 1 T x e θ 2 T x ]

利用Softmax回归参数冗余的特点,令 ψ=θ1 ψ = θ 1 ,从两个向量中都减去这个向量,得到:

hθ(x)=1e(θ1ψ)Tx+e(θ2ψ)Tx[e(θ1ψ)Txe(θ2ψ)Tx]=11+e(θ2θ1)Txe(θ2θ1)Tx1+e(θ2θ1)Tx=11+e(θ2θ1)Tx111+e(θ2θ1)Tx h θ ( x ) = 1 e ( θ 1 − ψ ) T x + e ( θ 2 − ψ ) T x [ e ( θ 1 − ψ ) T x e ( θ 2 − ψ ) T x ] = [ 1 1 + e ( θ 2 − θ 1 ) T x e ( θ 2 − θ 1 ) T x 1 + e ( θ 2 − θ 1 ) T x ] = [ 1 1 + e ( θ 2 − θ 1 ) T x 1 − 1 1 + e ( θ 2 − θ 1 ) T x ]

上述的表达形式与Logistic回归是一致的。

6、多分类算法和二分类算法的选择

有人会觉得对于一个多分类问题,可以使用多个二分类来完成,对于多分类问题是直接选择多分类的分类器还是选择多个二分类的分类器进行叠加,在UFLDL中,作者给出了这样的解释:取决于类别之间是否互斥。

对于一个多分类的问题,是直接选择多分类器直接计算还是选择多个二分类器进行计算取决于问题中类别之间是否互斥。

  • 是互斥的 –> Softmax回归
  • 不是互斥的 –> 多个独立的Logistic回归

对于Softmax回归更多内容,包括实验可见博客简单易学的机器学习算法——Softmax Regression

参考文献

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页