文章目录
作业介绍
- 作业主页:Assignment #1
- 作业目的:
- 针对Softmax分类器,实现一个全向量化的 损失函数(loss function)
- 实现损失函数的矢量化解析梯度(analytic gradient)
- 用 数值梯度(numerical gradient) 检验解析梯度是否正确
- 使用测试集(val set)调试学习率和正则化程度大小( the learning rate and regularization)
- 使用 SGD 更新策略 最优化我们的SVM损失函数
- 可视化最后学习到的权重
- 官方给的示例代码:assigment #1 code
知识点简单回顾
多分类交叉熵损失 和SVM损失不一样的是其在计算交叉熵损失之前需要讲输出 归一化(即统一成一个概率分布),具体的函数表达式如下:
S o f t m a x ( x ) i = e s i ∑ j = 1 C e s j ( i = 1 , . . . , C ) Softmax(x)_i = \frac {e^{s_i}} {\sum_{j=1}^{C} e^{s_j}} \quad (i=1,...,C) Softmax(x)i=∑j=1Cesjesi(i=1,...,C)
即其表示是C类中每类的概率。然后才是我们对于每一样本的损失函数:
L i = − log e s y i ∑ j = 1 C e s j = − s y i + log ∑ j = 1 C e s j L_i = -\log \frac {e^{s_{y_i}}} {\sum_{j=1}^{C} e^{s_j}}= -s_{y_i} + \log \sum_{j=1}^{C} e^{s_j} Li=−log∑j=1Cesjesyi