参考博客1
参考博客2
参考博客3
所有公式内容来自小象学院的邹博老师
softmax回归是logistic回归的推广,用来解决多分类问题。同样我们先来看看softmax的预测函数以及原理。
一、softmax的预测函数
每一个样本 x 对应的标记y∈{1,2,…k},其中k是分类数目。对于给定的输入x,我们想用一个预测函数求出x 分别属于{1,2,…k}这 k 个类别的概率。也就是说,针对每一个类别 j ∈{1,2,…k}估算出概率值 p(y=j | x)。因此,我们的假设函数将要输出一个k维的向量(向量元素的和为1),每一维表示 x 属于某一个类别的概率值。所以,我们的假设函数hθ(x)可以用如下形式表示:
θ ( θ1,θ2…θk)是我们需要求解的模型的参数,θj ( 1=< j <=k)是n维的向量(假设我们的样本 x 是n维的)。exp(θj xi)理解为样本 xi 分别在k个类别上的得分,那么每一项都除于总的分数,就得到了样本在k个类别上的概率,哪个类别的概率越大我们就认为该样本属于这个类别。
问题:可见,只要我们通过多次训练求得一个拟合效果非常好的模型参数θ ( θ1,θ2…θk),那么对于一个新的样本 x 我们就可以较好的预测它属于哪一个类别。如何来求这个θ呢?,当然是建立似然函数,然后利用梯度下降算法迭代。
二、softmax的损失函数
1、假设θ已知,一个样本x属于k个类别中某一个类别的概率:
2、假设θ已知,对于m个测试样本(x(1),y(1)),(x(2),y(2))…(x(m),y(m)),其中y(1),y(2)…y(m)是我们人为标记的类别,y(i) ∈{1,2,…k}。我们就是要用这m个测试样本来训练一个模型,得到最优参数θ。
某个样本正确匹配我们给它标记的类别的概率可以这样计算:
(1{ j = yi } 是指示函数,它表示只有当 j 等于我们标记的类别 y(i) 时才等于1,其他情况为0)
那么这m个样本正确匹配我们给它标记的类别的概率如下,我们把这个概率记做L(θ):
3、假设θ已知,如果m个样本中每个样本都成功匹配我们标记的类别(yi 值),上式L(θ)的结果取最大值。
那么我们先给L(θ)取对数,然后加上负号,就得到softmax的损失函数J(θ),只要J(θ)取最小值时,我们就得到了这个最优的参数θ。
损失函数J(θ):
二、梯度下降算法求参数θ
1、θ的迭代公式
2、求J(θ)的梯度