# 线性分类器-中篇

1

2

3

```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 xrange(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```

4

0 条评论

• ### 机器学习(18)之支持向量机原理(三)线性不可分支持向量机与核函数

关键字全网搜索最新排名 【机器学习算法】：排名第一 【机器学习】：排名第二 【Python】：排名第三 【算法】：排名第四 前言 在（机器学习（15）之支持向量...

• ### 换个角度看GAN：另一种损失函数

Jeremy Howardf 老师曾在生成对抗网络（GAN）课程中说过：「……本质上，GAN 就是另一种损失函数。」

• ### 这些用 Python 写的牛逼程序/脚本，你玩过吗？

有网友在 Quora 上提问，「你用 Python 写过最牛逼的程序/脚本是什么？」。本文摘编了 3 个国外程序员的多个小项目，含代码。

• ### LSP（分层服务提供者）

LSP本身是DLL，可以将它安装到winsock目录，以便创建套接字的应用程序不必知道此LSP的任何信息就能调用它。 运行原理： 套接字创建函数会在winso...

年薪十万？对于程序员来说，这仅仅是温饱水平。 根据国家统计局今年上半年发布的消息，2016 年信息传输、软件和信息技术服务业的平均工资为 122478 元，首次...

• ### python-函数基础

def test(): a = 10 ​ # 不能再函数外部使用，此处会报错 print(a)

• ### 基于H7的中移动物联例子以及简易操作说明，方便电脑端和手机端远程查看数据

说明： 1、操作前，务必优先看此贴里面的基础例子，先将WIFI连接到路由器上，这样才可以访问外网： https://www.cnblogs.com/armf...

• ### Python入门之函数的介绍/定义/定义类型/函数调用/Return

本篇目录： 　　　　一、 函数的介绍 　　　　二、 函数的定义 　　　　三、 定义函数的三种类型 　　　　四、 函数调用的阶段 　　　　五、 Return返回...

• ### APT预警:CVE-2017-11882的两种变式攻击

近段时间APT预警平台(威胁分析平台)捕获了一些CVE-2017-11882的变化利用样本，这些变化利用能一定程度上绕过杀毒软件的检测。 这里列举两种变式...

• ### 3小时Python入门

以下划线开头的标识符有特殊含义。以单下划线开头的（_foo）的代表不能直接访问的类属性，以双下划线开头的（__foo）代表类的私有成员；以双下划线开头和结尾的(...