Softmax

自己的一点理解,感觉还是要记下来…

Softmax 是将LR用于多分类, 就按照类比的思路写下来。

先简单说一下LR

首先,还是要基于这个框架(如下)做一个假设函数 (hypothesis function)
image_1bnhtkrng19injn51ch81mah1vhu9.png-38.7kB

假设自变量 x 是多维向量,也可以理解为多维特征吧:

x=[x1,x2,...,xn]

我们就可以把假设函数设为:
image_1bnhu1jfihjv7ebokv1ok311upm.png-9.2kB
为了简化, x0=1 , 即 x=[1,x1,x2,...,xn] , 就有:
image_1bnhu4s0tk8a195a16e57fjulo13.png-10.4kB

此时 θ 是一个1 * n+1的向量

然后我们在将这个假设函数代入Sigmoid函数:
image_1bnhuejle1ako1thb1vel1mdc71b2g.png-11kB

然后定义loss function, 做梯度下降。

那类比到Softmax;因为解决的问题是多分类,Sigmoid函数就解决不了问题了。
但有的时候我不想这样,因为这样会造成分值小的那个饥饿。所以我希望分值大的那一项经常取到,分值小的那一项也偶尔可以取到,那么我用softmax就可以了
现在还是a和b,a>b,如果我们取按照softmax来计算取a和b的概率,那a的softmax值大于b的,所以a会经常取到,而b也会偶尔取到,概率跟它们本来的大小有关。所以说不是max,而是 Soft max
所以这里引入Softmax函数:
假设 V=[v1,v2,...vm]
那么第i个元素的Softmax值:

Si=evimj=1evj

那如果现在将softmax应用到多分类:
依然用同样的自变量x, 同样的假设函数,如上:
image_1bnhu1jfihjv7ebokv1ok311upm.png-9.2kB
image_1bnhu4s0tk8a195a16e57fjulo13.png-10.4kB

但是这里的 θ 不再是一个1 * n+1的向量,我们假设目标类别 y 有 k 个类别, 这里的 θ 是一个k * n+1的矩阵。

和上面一样, θ 就是我们要训练的参数;
这里可以列出LR 和 softmax的loss function 做对比:
LR:
image_1bni13u0ec77erp1cbhuqng512t.png-21.9kB
Softmax:
image_1bni14rgogv81i6orrt14r54gi3q.png-22.3kB

可以看到,Softmax代价函数与logistic 代价函数在形式上非常类似,只是在Softmax损失函数中对类标记的 k 个可能值进行了累加。注意在Softmax回归中将 x 分类为类别 j 的概率为:
image_1bni187lu1ddi1rli1d751o3uoim47.png-16.8kB

总结:

softmax对于LR来说

  • 目标函数不同(sigmoid 和 softmax)
  • 优化参数 θ 的形式不同

至于loss function的推导,暂时还没有深究;

ref:

http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92
http://blog.csdn.net/supercally/article/details/54234115

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值