多类支持向量机损失(SVM损失)

(SVM) 损失。SVM 损失的设置是,SVM"希望"每个图像的正确类别的得分比错误类别高出一定幅度Δ。

即假设有一个分数集合s=[13,−7,11]

如果y0为真实值,超参数为10,则该损失值为

超参数是指在机器学习算法的训练过程中需要设置的参数,它们不同于模型本身的参数(例如权重和偏置),是需要在训练之前预先确定的。超参数在模型训练和性能优化中起着关键作用。

正则化

c 复制代码
def L_i(x, y, W):
  """
  unvectorized version. Compute the multiclass svm loss for a single example (x,y)
  - x is a column vector representing an image (e.g. 3073 x 1 in CIFAR-10)
    with an appended bias dimension in the 3073-rd position (i.e. bias trick)
  - y is an integer giving index of correct class (e.g. between 0 and 9 in CIFAR-10)
  - W is the weight matrix (e.g. 10 x 3073 in CIFAR-10)
  """
  delta = 1.0 # see notes about delta later in this section
  scores = W.dot(x) # scores becomes of size 10 x 1, the scores for each class
  correct_class_score = scores[y]
  D = W.shape[0] # number of classes, e.g. 10
  loss_i = 0.0
  for j in range(D): # iterate over all wrong classes
    if j == y:
      # skip for the true class to only loop over incorrect classes
      continue
    # accumulate loss for the i-th example
    loss_i += max(0, scores[j] - correct_class_score + delta)
  return loss_i

def L_i_vectorized(x, y, W):
  """
  A faster half-vectorized implementation. half-vectorized
  refers to the fact that for a single example the implementation contains
  no for loops, but there is still one loop over the examples (outside this function)
  """
  delta = 1.0
  scores = W.dot(x)
  # compute the margins for all classes in one vector operation
  margins = np.maximum(0, scores - scores[y] + delta)
  # on y-th position scores[y] - scores[y] canceled and gave delta. We want
  # to ignore the y-th position and only consider margin on max wrong class
  margins[y] = 0
  loss_i = np.sum(margins)
  return loss_i

def L(X, y, W):
  """
  fully-vectorized implementation :
  - X holds all the training examples as columns (e.g. 3073 x 50,000 in CIFAR-10)
  - y is array of integers specifying correct class (e.g. 50,000-D array)
  - W are weights (e.g. 10 x 3073)
  """
  # evaluate loss over all examples in X without using any for loops
  # left as exercise to reader in the assignment
相关推荐
算AI7 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
你觉得2058 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
hyshhhh9 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
杉之10 小时前
选择排序笔记
java·算法·排序算法
烂蜻蜓10 小时前
C 语言中的递归:概念、应用与实例解析
c语言·数据结构·算法
OYangxf10 小时前
图论----拓扑排序
算法·图论
我要昵称干什么10 小时前
基于S函数的simulink仿真
人工智能·算法
向上的车轮10 小时前
NOA是什么?国内自动驾驶技术的现状是怎么样的?
人工智能·机器学习·自动驾驶
AndrewHZ10 小时前
【图像处理基石】什么是tone mapping?
图像处理·人工智能·算法·计算机视觉·hdr
念九_ysl10 小时前
基数排序算法解析与TypeScript实现
前端·算法·typescript·排序算法