文章目录

  • Reference
  • KNN分类的不足
  • 线性分类器
    • Score Function
    • 将图像看做高维度的点
    • 将线性分类器看做模板匹配
    • 偏差和权重的合并技巧
    • 图像数据预处理
    • 损失函数 Loss function
    • 多类支持向量机损失 Multiclass Support Vector Machine Loss
    • 正则化(Regularization)
    • Softmax分类器
    • SVM和Softmax的比较

Reference

  • https://zhuanlan.zhihu.com/p/20918580?refer=intelligentunit

KNN分类的不足

  • 必须将所有分类数据存储,占用内存大
  • 一个测试sample分类需要搜索所有training set分类数据

因此需要延伸KNN方法,这种方法主要有两部分组成

  • 评分函数(score function),是原始图像数据到类别分值的映射。
  • 损失函数(loss function),是用来量化预测分类标签的得分与真实标签之间一致性的。该方法可转化为一个最优化问题,在最优化过程中,将通过更新评分函数的参数来最小化损失函数值。

线性分类器

Score Function

learning params W,bW,bW,b,学习完成后,即可丢弃原始数据

将图像看做高维度的点

既然图像被伸展成为了一个高维度的列向量,那么我们可以把图像看做这个高维度空间中的一个点(即每张图像是3072维空间中的一个点)。整个数据集就是一个点的集合,每个点都带有1个分类标签。

将线性分类器看做模板匹配

关于权重W的另一个解释是它的每一行对应着一个分类的模板(有时候也叫作原型)。一张图像对应不同分类的得分,是通过使用内积(也叫点积)来比较图像和模板,然后找到和哪个模板最相似。

将课程进度快进一点。这里展示的是以CIFAR-10为训练集,学习结束后的权重的例子。注意,船的模板如期望的那样有很多蓝色像素。

偏差和权重的合并技巧

图像数据预处理

  • 在机器学习中,对于输入的特征做**归一化(normalization)**处理是常见的套路

    • 在实践中,对每个特征减去平均值来中心化数据是非常重要的,这样图像的像素值就大约分布在[-127, 127]之间
    • 下一个常见步骤是,让所有数值分布的区间变为[-1, 1]。零均值的中心化是很重要的。

损失函数 Loss function

有时也叫代价函数Cost Function目标函数Objective

得分到类别的映射

多类支持向量机损失 Multiclass Support Vector Machine Loss

SVM的损失函数想要SVM 在正确分类上的得分始终比不正确分类上的得分高出一个边界值Δ\DeltaΔ

针对第i个数据的多类SVM的损失函数定义如下

关于0的阀值:max(0,−)max(0,-)max(0,−)函数,它常被称为折叶损失(hinge loss)

我们对于预测训练集数据分类标签的情况总有一些不满意的,而损失函数就能将这些不满意的程度量化。

多类SVM“想要”正确类别的分类分数比其他不正确分类类别的分数要高,而且至少高出delta的边界值。如果其他分类分数进入了红色的区域,甚至更高,那么就开始计算损失。如果没有这些情况,损失值为0。我们的目标是找到一些权重,它们既能够让训练集中的数据样例满足这些限制,也能让总的损失值尽可能地低。

正则化(Regularization)

【直观详解】什么是正则化

防止overfitting
一点是能够实现的,方法是向损失函数增加一个正则化惩罚(regularization penalty)R(W)R(W)R(W)部分。最常用的正则化惩罚是L2范式,L2范式通过对所有参数进行逐元素的平方惩罚来抑制大数值的权重:

给出完整的多类SVM损失函数了,它由两个部分组成:数据损失(data loss),即所有样例的的平均损失LiL_iLi​,以及正则化损失(regularization loss)。完整公式如下所示:


λ\lambdaλ是超参数,需要交叉验证求出来

Softmax分类器

softmax 笔记

保留得分函数fyif_{y_i}fyi​​部分,将hinge loss 换成交叉熵loss

被称作softmax 函数:其输入值是一个向量,向量中元素为任意实数的评分值(zzz中的),函数对其进行压缩,输出一个向量,其中每个元素值在0到1之间,且所有元素之和为1。

SVM和Softmax的比较

SVM分类器将它们看做是分类评分,它的损失函数鼓励正确的分类(本例中是蓝色的类别2)的分值比其他分类的分值高出至少一个边界值。
Softmax分类器将这些数值看做是每个分类没有归一化的对数概率,鼓励正确分类的归一化的对数概率变高,其余的变低。

Lect2 线性分类相关推荐

  1. 深度学习原理—代码分析线性分类与神经网络分类的区别

    https://www.toutiao.com/a6687727778487337476/ 利用sklearn.dataset随机产生数据,随机生成两类数据,用不同的颜色展示出来,如下图: 产生的随机 ...

  2. 简单线性分类学习机(平分最近点法)matlab实现

    简单线性分类学习机(平分最近点法)matlab实现 听语音 | 浏览:19 | 更新:2016-10-07 23:20 1 2 3 4 5 6 7 分步阅读 在分类问题中,如何划分类型是一个复杂而有意 ...

  3. 5.8 程序示例--线性分类-机器学习笔记-斯坦福吴恩达教授

    程序示例–线性分类 首先,我们使用线性核函数来训练线性可分问题,这里,我们使用的是简化版 SMO 算法: # coding: utf8 # svm/test_linear import smo imp ...

  4. 逻辑回归和线性回归的区别_[PRML]线性分类模型贝叶斯逻辑回归

    线性分类相关文章:1.Fisher线性判别分析(LDA)[1]2.广义模型与线性模型& 判别分析 [2]3.逻辑回归[3]4.线性分类模型简介5.感知机原理及代码复现6.概率生成模型7.概率判 ...

  5. 图像分类_03分类器及损失:线性分类+ SVM损失+Softmax 分类+交叉熵损失

    2.3.1 线性分类 2.3.1.1 线性分类解释 上图图中的权重计算结果结果并不好,权重会给我们的猫图像分配⼀个⾮常低的猫分数.得出的结果偏向于狗. 如果可视化分类,我们为了⽅便,将⼀个图⽚理解成⼀ ...

  6. 感知器原理及线性分类技术实现

    在说起感知器之前,需要先说一下神经网络的定义: 神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应. 感知器(M-P神经元模型)  感 ...

  7. 基于python的分类模型_python SVM 线性分类模型的实现

    运行环境:win10 64位 py 3.6 pycharm 2018.1.1 导入对应的包和数据 import matplotlib.pyplot as plt import numpy as np ...

  8. 线性分类模型python_python SVM 线性分类模型的实现

    运行环境:win10 64位 py 3.6 pycharm 2018.1.1 导入对应的包和数据 import matplotlib.pyplot as plt import numpy as np ...

  9. 白板机器学习笔记 P13-P21 线性分类

    视频地址:https://www.bilibili.com/video/BV1aE411o7qd 笔记地址:https://www.yuque.com/books/share/f4031f65-70c ...

最新文章

  1. AWS攻略——使用CodeBuild进行自动化构建和部署Lambda(Python)
  2. linux lua 交叉编译,交叉编译 XXX含义与作用
  3. 那些想坐等AI成熟再采用的公司,可能永远也跟不上AI浪潮
  4. 为何 Windows 10X 无法延续 Windows 的成功?
  5. 为什么不建议企业组织自行配置SD-WAN?—Vecloud微云
  6. mysql explain的使用(优化查询)
  7. wordpress linux位置,Linux 下搭建 WordPress 个人站点
  8. 数字能查出笔迹吗_大家都知道文字可以做笔迹鉴定,我想问一下专家阿拉伯数字是否也可以做笔迹鉴定正确率高吗?...
  9. Codeforces Round #702 (Div. 3)解题报告
  10. 在哪里可以找水系图_虹吸雨水排水系统对比传统重力排水,好在哪里?
  11. 微軟將在廉價筆記本電腦上測試Windows
  12. 2.UML2 软件建模入门与提高 --- UML入门基础
  13. 安装Powerdesigner16.5
  14. 考研英语-旧题高频词(齐雪妮老师)-2020-02-27,03-05,03-12,03-19
  15. TX-LCN分布式事务
  16. Apache Tomcat AJP 文件包含漏洞复现(CVE-2020-10487)
  17. springboot 自定义starter
  18. 武义县城区棚户区改造溪南区块安置房建设项目(标段一)电能管理系统的研究及应用
  19. 程序员必知的 4 种命名方式
  20. Java面试——多线程高并发

热门文章

  1. 史上最全 2019 ICRA顶会四足机器人文献整理
  2. Android四大组件生命周期
  3. 错误:error LNK2005 解决方法
  4. 前后端分离vue2+node易购商城后台管理系统
  5. 面试题(一)- 谈谈你对数据库中索引的理解
  6. 14.[保护模式]TSS任务段
  7. SqlServer的LDF文件丢失, 如何仅用MDF文件恢复数据库呢?(已解决)
  8. fiddle 下载及配置
  9. PRESTO SQL总结分享
  10. C++嵌套类的使用及对外部类的访问权限