机器学习
陆拾柒
这个作者很懒,什么都没留下…
展开
-
softmax梯度计算
在实际计算中,会遇到数值稳定性(Numerical Stabiltity)的问题,因为我们的 efke^{f_{k}}efk 和 ∑jefj\sum_{j} e^{f_{j}}∑jefj 太大了。大数之间相除很容易导致计算结果误差很大。因此这里需要使用下面的小技巧:efk∑jefj=CefkC∑jefj=efk+logC∑jefj+logc\frac{e^{f_{k}}}{\sum_{j} e^{f_{j}}}=\frac{C e^{f_{k}}}{C \sum_{j} e^{f_{j}}}=原创 2021-08-17 09:22:01 · 732 阅读 · 0 评论 -
Softmax损失值及梯度推导
Softmax损失值使用的是交叉熵函数;交叉熵损失函数的计算方式如下:而在CS231n作业中,正确标签的值为1,因此其交叉损失值为:也可以写成:通过对损失函数进行求导,可以得到损失值对权重的导数为;python 代码如下:def softmax_loss_naive(W, X, y, reg): # Initialize the loss and gradient to zero. loss = 0.0 dW = np.zeros_like(W)原创 2021-08-16 10:58:08 · 1547 阅读 · 0 评论 -
SVM 损失计算及梯度推导
SVM算法的本质就是,计算每一个样本中非正确分类与正确分类之间的差值,判断该差值是否大于-Delta,如果大于则说明正确分类相对于非正确分类并不是很突出,需要进行优化,否则说明正确分类相对于非正确分类更突出,不需要对该非正确分类进行优化。 最后,对这些差值进行求和,得到的就是第i个样本的损失值。从上面的损失函数式子可以看出,W分成两部分,一部分是Wj,另外一部分是Wyi,需要分别对这两部分进行求导;def svm_loss_naive(W, X, y, reg): """ Structur.原创 2021-08-14 11:45:42 · 1476 阅读 · 0 评论