深度学习算法原理——Softmax回归

来源:互联网 发布:营销软件广告 编辑:程序博客网 时间:2024/05/29 04:51

注:最近打算将UFLDL教程重新看一遍,其实里面有很多关于神经网络以及深度学习的知识点很有用,但是只是学习深度学习的话有一些内容就有点多余,所以想整理一个笔记,记录下神经网络到深度学习的一些知识点。整个教材已经非常好,网上有原版的英文版,也有翻译的中文版,这个只是自己的学习笔记,对原来教程中的内容进行了梳理,有些图也是引用的原来的教程,若内容上有任何错误,希望与我联系,若内容有侵权,同样也希望告知,我会尽快删除。

这个笔记主要分为以下几个部分:
- 神经网络
- 自编码器与稀疏性
- Softmax回归
- 自我学习
- 深度网络
- 其他,如PCA

三、Softmax回归

1、Logistic回归简介

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

hθ(x)=11+eθTx

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

J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

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

θjJ(θ)=1mi=1m[y(i)hθ(x(i))θjhθ(x(i))+1y(i)1hθ(x(i))θj(1hθ(x(i)))]=1mi=1m[y(i)hθ(x(i))θjhθ(x(i))1y(i)1hθ(x(i))θjhθ(x(i))]=1mi=1m[(y(i)hθ(x(i))1y(i)1hθ(x(i)))θjhθ(x(i))]

=1mi=1my(i)hθ(x(i))hθ(x(i))(1hθ(x(i)))θjhθ(x(i))=1mi=1my(i)hθ(x(i))hθ(x(i))(1hθ(x(i)))θTx(i)hθ(x(i))θj(θTx(i))

而:

θTx(i)hθ(x(i))=hθ(x(i))(1hθ(x(i)))

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

因此,梯度的公式为:

θjJ(θ)=1mi=1m[(y(i)hθ(x(i)))x(i)j]

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

θj:=θjαθjJ(θ)

2、Softmax回归简介

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

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)

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

p(y(i)=jx(i);θ)=eθTjx(i)kl=1eθTlx(i)

3、Softmax回归的代价函数

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

I{expression}={01 if expression=false if expression=true

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

J(θ)=1mi=1mj=1kI{y(i)=j}logeθTjx(i)kl=1eθTlx(i)

4、Softmax回归的求解

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

θjJ(θ)=1mi=1mθjj=1kI{y(i)=j}logeθTjx(i)kl=1eθTlx(i)=1mi=1mI{y(i)=j}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=1mi=1mI{y(i)=j}kl=1eθTlx(i)eθTjx(i)kl=1eθTlx(i)x(i)

最终的结果为:

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

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

θj:=θjαθjJ(θ)

5、Softmax回归中的参数特点

在Softmax回归中存在着参数冗余的问题。简单来讲就是参数中有些参数是没有任何用的,为了证明这点,假设从参数向量θ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)

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

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

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

λ2i=1kj=0nθ2ij

此时,代价函数为:

J(θ)=1mi=1mj=1kI{y(i)=j}logeθTjx(i)kl=1eθTlx(i)+λ2i=1kj=0nθ2ij

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

对该函数的导数为:

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

5、Softmax与Logistic回归的关系

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

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

利用Softmax回归参数冗余的特点,令ψ=θ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

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

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

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

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

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

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

参考文献

1、英文版:UFLDL Tutorial

2、中文版:UFLDL教程

若需要PDF版本,请关注我的新浪博客@赵_志_勇,私信你的邮箱地址给我。

1 0