CS231n 学习笔记(2) Loss Function and Optimization
Lecture 2 的最后部分中提到了linear classifier
这里f(x,W) = Wx + b 是score fun 用来计算输入相对于各类的分数。 x为输入,W为权重,b为偏置项。
那么在得到分数之后我们需要一个机制来评价当前的分类器是否理想,于是引入了loss function。
下面看一下loss fun是怎么定义的,给定一组数据,xi为图像,yi是其对应的标签。则数据集上的loss为
lecture中介绍了一种SVM的多类loss 称为hinge loss
可以概括成
下面我们看一个计算例子:
蓝色式子是对青蛙类loss的计算 为 12.9.
最后三类的loss分别为 2.9 , 0 , 12.9 所以数据集的loss L = (2.9 + 0 + 12.9) / 3 = 5.27
lecture 中考虑了一些关于loss的问题,如初始权重都为零会怎么样,用mean替代max会怎么样等。。很有意思
对于上面loss function,会存在一个bug,就是有时loss会等于0。下面notes中解释了为什么
当初始权重能够准确的分类每一个例子,我们得到的对应类的score将会很高,这样对于loss fun 我们会得到Li = 0 for all i。然而我们又发现能这种权重并不唯一,
对于权重W,与任何一个系数λ > 1相乘我们都将得到Li =0。然而我们希望在数据集上得到一个unique的 W,为此便引入了R(W)也就是正则项。
其中最常用的是L2正则项,
可以看出正则项是一个关于参数W的式子而与数据无关,加入正则项后我们得到了SVM多分类的最终loss形式如下。λ在这里是一个超参数。
将L展开来则有,看起来很长好像很厉害的样子,但是将其拆分后单独理解发现其实也容易理解
---------------------------------------------------------------------------------------------
softmax 分类器 也就是多项版的logistic regression
softmax则给定一组输入时得到输出Y为k的概率为
其中就是softmax fun。 为了对正确的类别最大化其log likelihood或者最小化其负log likelihood,这里loss function 采用了-log也就是
看一个例子:得到的三类score分别为3.2 5.1 和 -1.7 红框按softmax计算得到未归一化的概率而后在对概率归一化
------------------------------------------------------------------------------------------------------------------------------
当我们有了score function 和 loss function, 我们可以通过他们去寻找最优的权重W,这里就引入了optimization 最优化
lecture先给了随机取W的方法。。只有15%的准确率。。
而后从斜率引导了gradient decent方法。