首页 > 代码库 > 『cs231n』限制性分类器损失函数和最优化
『cs231n』限制性分类器损失函数和最优化
代码部分
SVM损失函数 & SoftMax损失函数:
注意一下softmax损失的用法:
SVM损失函数:
import numpy as np def L_i(x, y, W): ‘‘‘ 非向量化SVM损失计算 :param x: 输入矢量 :param y: 标准分类 :param W: 参数矩阵 :return: ‘‘‘ delta = 1.0 scores = W.dot(x) correct_score = scores[y] D = W.shap[0] loss_i = 0.0 for j in range(D): if j==y: continue loss_i += max(0.0, scores[j] - correct_score + delta) return loss_i def L_i_vectorized(x, y, W): ‘‘‘ 半向量化SVM损失计算 :param x: 输入矢量 :param y: 标准分类 :param W: 参数矩阵 :return: ‘‘‘ delta = 1.0 scores = W.dot(x) margins = np.maximum(0, scores - scores[y] + delta) margins[y] = 0 loss_i = np.sum(margins) return loss_i
softmax分类器:
import numpy as np # 正常的softmax分类器 f = np.array([123, 456, 789]) # p = np.exp(f) / np.sum(np.exp(f)) # print(p) # 数值稳定化的softmax分类器 f -= np.max(f) p = np.exp(f) / np.sum(np.exp(f)) print(p)
概念部分
损失函数=代价函数=目标函数
svm给出一个得分,softmax给出一个概率。
『cs231n』限制性分类器损失函数和最优化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。