知识点
上节内容
图像分类问题,机器看到的图像是像素值矩阵
机器识别图像的困难在于语义鸿沟,即识别图片中的事物即含义
两个算法: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}}