cs231n --- 1:线性svm与softmax
cs231n:线性svm与softmax
参数信息:
权重 W:(D,C)
训练集 X:(N,D),标签 y:(N,1)
偏置量bias b:(C,1)
N:训练样本数; D:样本Xi 的特征维度,Xi = [ Xi1,Xi2,...,XiD]; C:类别数量
正则化系数 λ :控制正则化的强度
delta / Δ : 间隔
linear svm:
对训练样本(Xi,yi),其对应每个类别的得分为:
score = W*Xi+ b
是长度为C的矢量,以s表示 score, s = [s1, s2, s3, ..., sC] = [W1*Xi, W2*Xi, W3*Xi, ..., WC*Xi]
Xi对应的损失(hinge loss):
loss[i] = ∑j≠yi max(0,sj - syi + delta)
总的损失,加入正则化项 R(W):
loss = (1/N)*ΣNi=1 loss[i] + R(W) = (1/N)*ΣNi=1 ∑j≠yi max(0,sj - syi + delta)+ λ*Σi Σj Wi,j2
softmax:
对训练样本(Xi,yi), 利用 yi 构造长度为C的矢量 p = [0, 0, 0, ..., 1, ...],第 yi 位置为 1,其余为 0,
先计算每个类别的得分:
score = W*Xi+ b ,与上同
但是softmax继续对得分进行 归一化处理,得到 Xi 在每个类别的概率:
h = exp(s) / Σexp(s),
即有 h = [h1, h2, ..., hC],hj = exp(sj) / ΣCk=1 exp(sk)
Xi对应的损失(交叉熵损失 cross-entropy loss):
loss[i] = -∑log( p*h) = -∑Cj=1 log(pj*hj)= -log(hyi)
总的损失,加入正则化项 R(W):
loss = (1/N)* ΣNi=1 loss[i] + R(W) = -(1/N)*ΣNi=1 log{ exp(syi) / ΣNk=1 exp(sk) } + λ*Σi Σj Wi,j2
softmax 梯度计算:
对 loss 关于 w 进行求导即可得到梯度∂L/∂wj ,w = [w1, w2, w3, ... , wC],wj 是 Dx1的列向量
∂L / ∂wj = -(1/N) * ΣNi=1 Xi*[ 1{yi=j} - hj ]
梯度方向即是,w沿着梯度变化时,loss值变化最快的方向。利用梯度对loss进行优化,
(求w)从而最小化 loss
利用SGD训练
W := W - ∂L / ∂wj
算法程序:
1. 随机初始化 w
2. 迭代( 一定次数 或者 前后两次迭代是 loss 差值小于阈值 )
repeat {
2.1 计算 loss,计算梯度∂L / ∂wj
2.2 更新w
w := w - 2. 计算梯度∂L / ∂wj
}
讨论:
1. linear svm的关键在于将样本的正类别得分score[yi]与 负类别得分score[-]区分开,只要正、负类别得分的差值大于 delta,就认为样本的分类结果正确,分类损失loss = 0;
它并不关心正负类别得分的细节,比如,对于某三分类,正类别是 1 (delta = 1),在svm看来,得分s1 = [ 10, 9, 9] 与得分s2 = [10, -10, -10] 结果是一样的,都能够得到正确分类结果,所以二者的损失都是 0;
2. softmax 不仅要求样本的正、负类别概率(其实是将类别得分score归一化后用概率表示)能够区分开,而且还想尽力使它们之间的差值越大越好;softmax即使对样本正确进行分类,其分类损失 loss 也 不为0,正、负类别的概率差值越大,其损失 loss就越小。比如,同样的三分类,正类别是 1,在softmax看来,得分s1 = [ 10, 9, 9] 与得分 s2 = [10, -10, -10] 分类结果虽然是一样的,但是他们的损失却不一样,
loss[s1] = -log( [1,0,0] * [0.57611688, 0.21194156, 0.21194156] ) = 0.5514,
loss[s2] = -log( [1,0,0] * [ 0.999999996, 0.000000002, 0.000000002] ) = 0.000000004
所以softmax会认为s2比s1分类损失小。从而在分类中,softmax会尽力使正类概率大,而负类概率小
3. linear svm上述特性既是不足,也是优点,比如在分类时,在A类,B类已经有不同得分,可以分开的情况下,不必再花费精力尽力使A、B两类的得分差别变大。
cs231n --- 1:线性svm与softmax的更多相关文章
- 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器
作者: 寒小阳 &&龙心尘 时间:2015年11月. 出处: http://blog.csdn.net/han_xiaoyang/article/details/49949535 ht ...
- 线性SVM与Softmax分类器
1 引入 上一篇介绍了图像分类问题.图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图像.我们还介绍了k-Nearest Neighbor (k-NN)分类器,该分类器的基本思想是通 ...
- 线性SVM分类器实战
1 概述 基础的理论知识参考线性SVM与Softmax分类器. 代码实现环境:python3 2 数据处理 2.1 加载数据集 将原始数据集放入"data/cifar10/"文件夹 ...
- cs231n线性分类器作业 svm代码 softmax
CS231n之线性分类器 斯坦福CS231n项目实战(二):线性支持向量机SVM CS231n 2016 通关 第三章-SVM与Softmax cs231n:assignment1——Q3: Impl ...
- CS231n 2016 通关 第三章-SVM与Softmax
1===本节课对应视频内容的第三讲,对应PPT是Lecture3 2===本节课的收获 ===熟悉SVM及其多分类问题 ===熟悉softmax分类问题 ===了解优化思想 由上节课即KNN的分析步骤 ...
- 【cs231n】线性分类笔记
前言 首先声明,以下内容绝大部分转自知乎智能单元,他们将官方学习笔记进行了很专业的翻译,在此我会直接copy他们翻译的笔记,有些地方会用红字写自己的笔记,本文只是作为自己的学习笔记.本文内容官网链接: ...
- 线性SVM
(本文内容和图片来自林轩田老师<机器学习技法>) 1. 线性SVM的推导 1.1 形象理解为什么要使用间隔最大化 容忍更多的测量误差,更加的robust.间隔越大,噪声容忍度越大: 1.2 ...
- SVM1 线性SVM
一.Linear Support Vector Machine 接下来的讨论假设数据都是线性可分的. 1.1 SVM的引入:增大对测量误差的容忍度 假设有训练数据和分类曲线如下图所示: 很明显,三个分 ...
- 支持向量机(Support Vector Machine,SVM)—— 线性SVM
支持向量机(Support Vector Machine,简称 SVM)于 1995 年正式发表,由于其在文本分类任务中的卓越性能,很快就成为机器学习的主流技术.尽管现在 Deep Learnin ...
随机推荐
- 常见sql注入原理详解!
1.首先我们创建一个mysqli的链接 /**数据库配置*/ $config = ['hostname'=>"localhost", 'port'=>"330 ...
- From missionary to firebrand--Eisle Tu [20160102]
From missionary to firebrand 杜叶锡恩(1913年(癸丑年)-2015年(乙未年),英文名字Elsie Hume Elliot Tu,丈夫是教育家杜学魁.她是香港著名的 ...
- python基础-------模块与包(四)
configparser模块与 subprcess 利用configparser模块配置一个类似于 windows.ini格式的文件可以包含一个或多个节(section),每个节可以有多个参数(键=值 ...
- 设置Linux环境的欢迎登陆信息
1.编辑/etc/profile文件添加如下内容: for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ &quo ...
- Runtime的理解与实践
Runtime是什么?见名知意,其概念无非就是"因为 Objective-C 是一门动态语言,所以它需要一个运行时系统--这就是 Runtime 系统"云云.对博主这种菜鸟而言,R ...
- Spring4 IOC详解
Spring4 IOC详解 上一章对Spring做一个快速入门的教程,其中只是简单的提到了IOC的特性.本章便对Spring的IOC进行一个详解.主要从三个方面开始:基于xml文件的Bean配置,基于 ...
- [贪心][高精]P1080 国王游戏(整合)
题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最 ...
- 项目实战9—企业级分布式存储应用与实战MogileFS、FastDFS
企业级分布式存储应用与实战-mogilefs 环境:公司已经有了大量沉淀用户,为了让这些沉淀用户长期使用公司平台,公司决定增加用户粘性,逐步发展基于社交属性的多样化业务模式,决定开展用户讨论区.卖家秀 ...
- ASP.NET中HttpContext.Cache的使用
-------------------------------键 --值-----依赖-----过期时间-------------------------------绝对过期------------- ...
- 2719:陶陶摘苹果-poj
2719:陶陶摘苹果 总时间限制: 1000ms 内存限制: 65536kB 描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米 ...