内容简介:此文章为在前面的Linear Classify学习中,我们通过训练,可以得到参数这就需要我们定义一个
此文章为 罗周杨 原创,转载请注明作者和出处
在前面的Linear Classify学习中,我们通过训练,可以得到参数 W ,那么,我们怎么评价这个 W 是否足够好呢?如果不好,我们该怎么调整呢?
这就需要我们定义一个 损失函数(loss or cost function) 来度量,并且通过最小化损失函数,来调整 W ,使我们的分类结果最准确。
对于每一对训练数据,我们可以定义一个损失函数,表示为: L_{i} ,那么所有训练数据的损失,则表示成平均损失:
L = \frac{1}{N}\sum_{i=1}^{N}L_{i}(f(x_{i},W),y_{i})
这个损失函数,表示了我们的 W 的好坏程度。
Multiclass SVM Loss
对于每一对训练数据 x_{i} , y_{i} ,我们可以定义一个分数函数,用来评价我们的模型好坏程度:
s=f(x_{i},W)
那么我们的 Multiclass SVM Loss 可以表示为:
L_{i}=\sum_{j\neq y_{i}}\max(0,s_{j}-s_{y_{i}}+\Delta)
注:
Multiclass SVM的核心思想就是:分类正确的分数s0必须比任何一个分类错误的分数s1高出 \Delta ,否则损失为0
那么,对于所有的训练样本,我们可以得到损失函数:
L=\frac{1}{N}\sum_{i=1}^{N}\sum_{j\neq y_{i}}\max(0,s_{j}-s_{y_{i}}+\Delta)
又
s=f(x_{i};W)
所以可以得到损失函数:
L=\frac{1}{N}\sum_{i=1}^{N}\sum_{j\neq y_{i}}\max(0,f(x_{i};W)-f(x_{y_{i};W})+\Delta)
现在有一个问题,如果我们的损失函数max操作后,再平方一次,这样算是一个新的分类算法吗? 是 。平方有一个作用就是把差异放大。同理,还有其他类似的操作也可以达到类似的效果。
那么该如何选择呢?具体问题具体分析。
我们的Multiclass SVM的损失函数算是定义好了,但是上述损失函数存在一个问题**这样训练出来的权重 W 不唯一。
道理很简单,假设 W 能够让我们的分类全部正确,那么 2W 显然也可以让我们的分类全部正确,因为对于 2W 和 W ,我们的损失函数中的 \Delta 没有改变,如果 2W 的分数函数是 W 的2倍,那么他们的差值也变成2倍,那么如果原来的差值大于 \Delta ,那么2倍的差值显然大于 \Delta ,也就是说 分类结果不会改变 。
显然,把 系数2 推广到其他数字,也是同样的道理。也就是说这种损失函数没办法确定一个唯一的 W ,使我们的结果最准确。
那么怎么办呢?
Regularization Loss
为了解决这个问题,我在原来的损失后面加上一项损失叫做 Regularization Loss 。
我们前面的损失函数,是和数据有关的损失,叫做 数据损失 ,我们加上的这一项损失,和数据无关,但是和权重 W 有关,我们叫做 Regularization ,它表示成 \lambda R(W) 。
从数学上也很容易理解,加上一项约束,能够表示更复杂的关系。我们的Regularization算是一种惩罚措施,能够对突出的值进行惩罚,使我们的模型表现更好。
那么我们的Regularization函数是什么样子的呢?和损失函数自己一样,我们的Regularization loss函数也有很多种表达。但是最常见的一种是 L2 Regularization :
R(W)=\sum_{k}\sum_{l}W_{k,l}^2
意识很明确:对于权重的每一个值的平方和。
当然,还有其他的Regularization,例如:
L1:
R(W)=\sum_{k}\sum_{l}|W_{k,l}|
Elastic(L1+L2):
R(W)=\sum_{k}\sum_{l}\beta W_{k,l}^2+|W_{k,l}|
上面这几种不仅深度学习里面出现,一般的机器学习也很常见。当然常见的regularization除此之外,还有 Max Norm Regularization 和 Dropout ,以及 Fancier:Batch normalization 。
那么看看我们最终的损失函数吧:
L=\frac{1}{N}\sum_{i=1}^{N}\sum_{j\neq y_{i}}[\max(0,f(x_{i};W)-f(x_{y_{i};W})+\Delta)]+\lambda\sum_{k}\sum_{l}W_{k,l}^2
联系我
- Email: stupidme.me.lzy@gmail.com
- WeChat: luozhouyang0528
个人公众号,你可能会感兴趣:
以上所述就是小编给大家介绍的《Multiclass SVM Loss笔记》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【每日笔记】【Go学习笔记】2019-01-04 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-02 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-07 Codis笔记
- vue笔记3,计算笔记
- Mysql Java 驱动代码阅读笔记及 JDBC 规范笔记
- 【每日笔记】【Go学习笔记】2019-01-16 go网络编程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
驾驭未来:抓住奇点冲击下的商机
[日]斋藤和纪 / 南浩洁 / 中国友谊出版公司 / 2018-9 / 52.00元
2020年左右,AI(人工智能)将超越人类的智力水平。2045年,人类将迎来“奇点”——科技进步的速度达到无限大。 所有技术都在以空前的速度向前发展。同时,以往带来巨大财富的众多技术将走向“非货币化”。当下,人类正面临着被AI夺去工作的危机。许多传统行业(例如汽车制造业)将被彻底颠覆,但新的机会也在酝酿,技术的进步使得带宽成本、计算成本、存储成本等创新成本趋近于0,创业不再是资本、技术或信息......一起来看看 《驾驭未来:抓住奇点冲击下的商机》 这本书的介绍吧!