知识点

上节内容

图像分类问题,机器看到的图像是像素值矩阵

机器识别图像的困难在于语义鸿沟,即识别图片中的事物即含义

两个算法:KNN算法和线性分类器,KNN算法相对线性分类器而言没有可优化的权重矩阵W

损失函数

损失函数的通用表达式

L(W) = \frac{1}{N} \sum_{i=1}^{N}L_i(f(x_i, W), y_i)

损失函数用于衡量W的优良

多分类SVM损失函数(Hinge loss 合页损失函数)

L_i = \sum_{j \neq y_i} \max{(0,s_j-s_{y_i}+1)}

该函数存在一个问题:L=0时的w不唯一,使用正则项可以解决这个问题

Softmax 分类器(Multinomial Logistic Regression)

P(Y=k \mid X=x_i) = \frac{e_{s_k}}{\sum_j e_{s_j}} \quad  where \quad s = f(x_i;W)

优化方法

随即搜索(不可取)

从众多的随机数中挑选组成参数w,并使用其计算loss,挑选其中loss最小的

梯度下降

需要掌握:
梯度的含义
学习率
梯度下降法
随机梯度下降法(minibatch取值)
带动量的梯度下降
Adam

图像分类中的两步走方法

先提取图像的某种特征,然后进行模型的学习
特征:颜色分布,HOG, SIFT特征,bag of words

网课学习

损失函数

使用损失函数来衡量W的好坏

多分类支持向量机损失(Hinge Loss)

损失函数公式如下:

L_i = \sum_{j \neq y_i} \max{(0,s_j-s_{y_i}+1)} \quad  where \quad s = f(x_i;W)

含义:s的含义就是在分类器$f(x_i, W)$得到的关于第i个类的得分,而左侧的含义就是,所有错误类的得分与这个正确类得分的差超过-1,的话就将其(它们的差+1)加入损失中,因为不超过-1的话可以勉强算这个类别的分数不会影响到正确类的评判。

公式的图像如下:

函数存在一个问题:令L=0的W不唯一,解决办法:在后面加上一个正则项

L(W) = \frac{1}{N} \sum_{i=1}^{N}L_i(f(x_i, W), y_i) + \lambda R(W)

$\lambda$超参数用于平衡正则项与原损失函数

常用正则项:

L2 正则项:$R(W) = \sum_k \sum_l W^2_{k,l}$

L1正则项:$R(W) = \sum_k \sum_l \lvert W_{k,l} \rvert$

L1+L2: $R(W) = \sum_k \sum_l (\beta W^2_{k,l} + \lvert W_{k,l} \rvert)$

后续:最大规范正则化, 随机失活 => 批量归一化,随即深度

Softmax 分类器(Multinomial Logistic Regression)

概率函数:

P(Y=k \mid X=x_i) = \frac{e_{s_k}}{\sum_j e_{s_j}} \quad  where \quad s = f(x_i;W)

损失函数:

L_i = -\log{P(Y = y_i \mid X = x_i )}

这个损失函数的可解释性更强,因为所有类别的分数都可以称作是概率,而所有类的概率加起来等于1,而我们的优化就是需要去找到一个W,来匹配真实的目标概率分布,即正确类的概率接近1,别的接近0

Softmax Loss vs Hinge Loss

Hinge Loss 终究关心的是正确类比错误类的分值高出一个安全边界,所以在正确类的分支稍微做出改变时不会有任何影响,而Softmax需要正确类的概率一直升高,目标是占比无穷大

Softmax损失对输入推导:

\frac{\vartheta{L}}{\vartheta{x_i}} {= {-\sum_k y_k \frac{\vartheta{\log p_k}}{\vartheta{x_i}}}\\ ={-\sum_k y_k \frac{1}{p_k} \frac{\vartheta{p_k}}{\vartheta{x_i}}}  \\=-y_i (1-p_i)- \sum_{k \neq i} y_k \frac{1}{p_k}(-p_kp_i) \\ ={-y_i (1-p_i)+ \sum_{k \neq i}y_k(p_i) }  \\={-y_i + y_ip_i + \sum_{k \neq i}y_k(p_i)} \\ ={p_i(\sum_k y_k) - y_i}  ={p_i - y_i}}