本文已参与「新人创作礼」活动,一起开启掘金创作之路。
将神经网络应用到多类分类问题中时,输出层的形式不能用logistic函数(sigmoid激活函数),而应该推广到softmax函数。二分类问题与多分类问题的神经网络模型的最大区别就是输出层。因此下面重点讲解softmax函数的原理。
Softmax回归详解
在softmax回归中,我们解决的是多分类问题(相对于logistic回归解决的二分类问题),标记
y可以取
k个不同的值。对于训练集
{(x(1),y(1)),⋯,(x(m),y(m))},我们有
y(j)∈{1,2,⋯,k}。
对于给定的测试输入
x,我们想用假设函数针对每一个类别
j估算出概率值
P(y=j∣x)。因此,我们的假设函数要输出一个
k维的向量(向量元素的和为1)来表示
k个估计的概率值。我们采用如下形式的假设函数
hθ(x):
hθ(x(i))=⎣⎢⎢⎢⎢⎡P(y(i)=1∣x(i);θ)P(y(i)=2∣x(i);θ)⋮P(y(i)=10∣x(i);θ)⎦⎥⎥⎥⎥⎤=∑j=1keθjTx(i)1⎣⎢⎢⎢⎢⎢⎡eθ1Tx(i)eθ2Tx(i)⋮eθkTx(i)⎦⎥⎥⎥⎥⎥⎤(1-1)
假设输入向量
x的维数为
n,则参数
θ是一个
k×(n+1)的参数矩阵,之所以是
n+1是因为把截距项
b表示成了
θ0×x0,其中
x0=1是一个人工辅助变量。 利用极大似然估计的方法,可以得到每一类的后验概率表达式: P(y^{(i)}|x^{(i)};\theta)=\prod_{j=1}^k\left\{\frac{e^{\theta_j^Tx^{(i)}}}{\sum_{l=1}^ke^{\theta_l^Tx^{(i)}}}\right\}^{1(y^{(i)}=j)} \tag{1-2}
似然函数为:
L(θ)=P(Y∣X;θ)=i=1∏mP(y(i)∣x(i);θ)=i=1∏mj=1∏k{∑l=1keθlTx(i)eθjTx(i)}1(y(i)=j)(1-3)
对数似然函数为:
l(θ)=logL(θ)=i=1∑mj=1∑k1(y(i)=j)log∑l=1keθlTx(i)eθjTx(i)(1-4)
上面的
(1−4)就是loss function。 cost function为:
J(θ)=−m1[i=1∑mj=1∑k1(y(i)=j)log∑l=1keθlTx(i)eθjTx(i)](1-5)
多分类问题的目标就是利用训练数据来训练模型参数
θ使其能够最小化
(1−5)。
(1−5)是一个凸函数,可以利用梯度下降法得到全局最小值。