Deep Learning, Score function, Loss function 和 optimization function(二)

接上篇......

我们先看看SVM

要loss小,SVM希望正确分类的得分要至少比所有不正确分类的得分都高个固定的分数△(比如高个10分),如果达到了这个要求loss就是0,看看公式吧:

其中s是score的缩写,表明得分,j是每一个分类(比如猫类,车类)而yi则是正确的分类,注意j≠yi。 这个公式的意思就是说:将每一个分类的得分减去正确分类的得分再加上一个固定分,然后在跟0

比较后取大的,然后累加,这就是loss值了。仔细看该公式,可以发现要想loss为0,错误分类的分数一定要低于正确分类并且至少低个△分才行。

下面图很好的展示了这个要求:

如果错误分类的得分都落在了绿区,那loss为0,否则只要有一个分类的得分在红区,那loss就不为0了。

到了这里,还有一个不得不提的概念:Regularization

什么是Regularization呢? 简单来说它施加影响的对象是W,用于导向W的选择。

举个例子:在线性分类中我们的score函数是:Wx + b对吧,去掉b就是Wx, 然后loss 函数SVM的计算公式其实就是Wxj - Wxyi + △对吧,假设xj通过这个公式计算出的loss为0,

那βWxj - βWxyi + △(β>1)的loss肯定也是0对吧。这W也太多了吧,总有个取舍吧,那么就需要Regularization了。

常用的Regularization有很多,这里只介绍一种L2。

看公式,其实就是把W中所有的元素平方然后累加,为什么说有取舍呢?

这就明白了把,loss被分为data loss和regularization loss, data loss 就是上文提到的SVM产生的,但regularization loss如果是L2的话可是所有W的元素平方累加啊,那你W那么大loss就大了,

这就是取舍或者惩罚机制了,W小的loss自然小了。

当然这只是L2的取舍,当然其实L2并不是乘法打的W,而是惩罚不均的W,举个例子:

输入x = [1, 1, 1, 1]然后又两个W: W1=[1, 0, 0, 0], W2=[0.25, 0.25, 0.25, 0.25], 计算score发现结果都是1, 但是使用Regularization结果分别是1和0.25,差别就出来了。仔细看两个W,其实L2

惩罚的是不均,就是不能让一个元素对结果影响过大。简单来讲就是说不能看到有胡子就是猫,他们都不管了。

另外一种广泛使用的loss函数是:Softmax Classifer

跟SVM不同,Softmax把Score函数的到的结果当做是normalized class probabilities而不是score,然后使用normalized class probabilities求出probabilities,然后再求交叉熵(Cross Entropy),最终我们期望loss最小,其实在这里就是希望交叉熵最小。

什么是交叉熵呢,感兴趣的看看这篇文章:

https://www.zhihu.com/question/41252833

甭管那么多,下面是softmax Classifer的公式:

解释下:fyi是正确分类的score, fi是每个分类的score(包括正确分类)。

当然最终的L仍然是data loss和regularrization loss相加的结果,跟SVM一样,就不在展开了。

待续吧……

猜你喜欢

转载自blog.csdn.net/pushme_pli/article/details/84778700
今日推荐