为了评估现有的模型的好坏,需要一个定量指标。这就是损失函数起作用之处。
对于由 N N 个样本组成的数据集{(xi,yi)}Ni=1 { ( x i , y i ) } i = 1 N ,定义总体损失函数为各个样本造成的损失的平均
SVM
的损失函数多分类的支持向量损失函数可定义如下:
即当正确分类的得分比错误类别的得分高出一个安全边际1的时候,认为没有损失。
这个损失函数最大值为无穷大,最小值为 0 0 。当初始化时,所有分类得分大致相同,损失函数约为C−1 C − 1 。当正确分类的得分稍微变化时,由于安全边际的存在,损失函数大致不变。
在上述场景下,如果我们找到一个使损失函数为 0 0 的W W ,那么 2W 2 W 也会使损失函数为0。那么如何选择参数呢?一个准则是参数越简单越好,采用的做法是添加正则项限制模型复杂度。
SoftMax
分类器(多类别逻辑回归)不预测得分,预测每个类别的概率。需要保证输出非负,且求和归一化,即SoftMax
操作。
此时期望正确类别的概率接近于1。在这种场景下,可采用交叉熵作为损失函数:
与SVM
损失函数的对比:在SVM
损失函数优化问题中,当找到一个足够小的损失值的时候,算法将不再进行优化,即不再扩大错误分类与正确分类的边际。但在逻辑回归损失函数情形中,算法将持续优化至正确分类的概率足够接近于 1 1 。
采用的优化方法就是梯度下降法。
在实践中,可使用梯度的数值计算方法校验代码的正确性。
如果数据集过于庞大,用所有数据计算梯度的复杂度就很高,因此将数据集划分为小块,针对每一小块计算梯度,这就是随机梯度法。
经过特征提取后,一些图像可能就比较容易区分。
获取图像特征的方法有:
SVM
的优化过程可视化。