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
最新推荐文章于 2023-04-18 11:04:42 发布