更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:
https://www.cnblogs.com/nickchen121/p/11686958.html
Softmax回归
Softmax回归属于多分类c1,c2,…,ck模型,它通过估计某个样本属于k个类别的各自的概率达到多分类的目的。它是逻辑回归的一般形式,即当k=2的时候退化为逻辑回归。
一、Softmax回归详解
1.1 让步比
由于softmax回归更多的是逻辑回归的多分类形式,此处只给出softmax的定义及公式。
让步比可以理解成有利于某一特定事件的概率,可以定义为
在已知二分类问题的情况下每个分类的概率分别为yi^和1−yi^,可以定义logit函数,即让步比的对数形式(log-odds)为
logit(yi^)=logp(y=1|x,ω)p(y=0|x,ω)=logyi^1−yi^=log11+e−ωTx−ωTx1+e−ωTx=ωTx(1)(2)(3)(4)
其中logit(p)函数等于事件发生的概率除以不发生的概率取对数,即表示特征值和对数概率之间的线性关系。
1.2 不同类之间的概率分布
现在假设有一个k元分类模型,即样本的输出值为c1,c2,…,ck,对于某一个实例预测为ci样本的概率总和为1,即
∑i=1kp(y=i|x,ω)=1
该k元分类模型依据让步比的对数形式可以得到
lnp(y=1|x,ω)p(y=k|x,ω)=ωT1xlnp(y=2|x,ω)p(y=k|x,ω)=ωT2x⋯lnp(y=k−1|x,ω)p(y=k|x,ω)=ωTk−1xlnp(y=k|x,ω)p(y=k|x,ω)=ωTkx=0(5)(6)(7)(8)(9)
通过对上述公式化简可得
p(y=1|x,ω)p(y=k|x,ω)=eωT1xp(y=2|x,ω)p(y=k|x,ω)=eωT2x⋯p(y=k−1|x,ω)p(y=k|x,ω)=eωTk−1x(10)(11)(12)(13)
eωT1x+eωT1x+⋯+eωTk−1x=∑i=1k−1eωTix=p(y=1|x,ω)p(y=k|x,ω)+p(y=2|x,ω)p(y=k|x,ω)+⋯+p(y=k−1|x,ω)p(y=k|x,ω)=p(y=1|x,ω)+p(y=2|x,ω)+⋯+p(y=k−1|x,ω)p(y=k|x,ω)=1−p(y=k|x,ω)p(y=k|x,ω)(14)(15)(16)(17)
既得p(y=k|x,ω)=11+∑k−1i=1eωTix
通过p(y=k|x,ω)即可推出p(y=j|x,ω)=eωTjx1+∑k−1t=1eωTtxj=1,2,…,k−1,因此可以得到k元分类模型的k个类的概率分布为
p(c=k|x,ω)=⎧⎩⎨⎪⎪⎪⎪eωTjx1+∑k−1t=1eωTtxj=1,2,…,k−1if类别为1,2,…,k−111+∑k−1i=1eωTixif类别为k
1.3 目标函数
上一节基于ωTkx=0计算出每个分类的概率,然而现实中往往ωTkx≠0,可以使用上一节的推导过程假设ωTkx≠0则可以推导出k元分类模型的k个类的概率分布为
p(c=k|x,ω)=eωTjx∑kt=1eωTtxj=1,2,…,k
通过上述k个类别的概率分布可得似然函数
L(ω)=∏i=1m∏k=1kp(c=k|xi,ω)yik=∏i=1m∏k=1k(e(ωTkxi)∑kt=1eωTtxi)yik(18)(19)
通过似然函数即可得对数似然函数即目标函数(注:该目标函数与交叉熵损失函数的形式一致,二元逻辑回归可以理解为交叉熵损失函数两个类变量的特殊形式,Softmax回归可以理解成交叉熵损失函数的多个类变量的特殊形式,交叉熵为
Jm(ω)=logL(ω)=∑i=1m∑k=1kyik(ωTkxi−log∑t=1ke(ωTtxi))(20)(21)
1.4 目标函数最大化
由于Softmax回归和逻辑回归都可以使用梯度上升法使得目标函数最大化,并且方式一样,因此此处只给出目标函数对参数的偏导。
∂J(ω)∂ωk=∑i=1m(yik−p(yik|xi,ωk))xi
二、Softmax回归优缺点
2.1 优点
- 基于模型本身可以处理多分类问题
2.2 缺点
- 计算极其复杂
22