softmax是一个可以解决多分类问题的方法。
假如我们的输出y∈{1,2,...,k},即共有k个类别,而不是之前的二分类问题。
此时我们使用ϕ1,...,ϕk来表示输出,即样本属于每个类别的概率。显然对于任意的一个样本有ϕ1+...+ϕk=1,故ϕk可由其他ϕ表示。这样我们只需要k-1个ϕ。
定义T(y)如下:
我们用(T(y))i表示T(y)中的第i个元素;用I{something}表示某个事件的真假,例如I{true}=1,I{false}=0,I{2=3}=0。
因此可以得到:(T(y))i=I{y=i}以及E[(T(y))i]=P(y=i)=ϕi.
注:训练过程中样本的类别是已知的,即在T(y)中必然只有一个元素为1,其余全部是0.
因此可得:
显然ηi=logϕiϕk,为了方便我们定义ηk=log(ϕkϕk)=0。
显然我们可以得到:
进而得到ϕk=1∑ki=1eηi,将它带入到上面的ϕkeηi=ϕi中可得:ϕi=eηi∑kj=1eηj,这里用到了ηi=θTix(i=1,...,k−1)。
因此:
这样就可以得到hθ(x):
为了确定参数θ我们类似之前的处理,求最大似然值:
由:
知:我们可以通过梯度上升或者牛顿迭代求解啦。
分类-2-softmax
最新推荐文章于 2025-04-28 01:16:41 发布