umich cv-2-1
UMICH CV Linear Classifiers
对于使用线性分类器来进行图片分类,我们可以给出这样的参数化方法:

而对于这样一个式子,我们怎么去理解呢?
首先从代数的角度,这个f(x,W)就是一张图片的得分,我们可以将一张图片所有的像素点输入,乘以一个权重矩阵,再加上一个偏置项b,就得到f(x,W)
举个具体的例子:

上面权重矩阵有三行分别对应三种类别,有四列每列对应着一个像素点的权重,最终得到的结果也是一个三行的矩阵,每一行对应着该图片在每个类别上面的得分
下面这张图应该会更加直观:

对于f(x,W)=Wx + b这个式子,我们也可以选择把偏置项合并,呈现下面这个形式:

其次我们从可视化的角度来看,线性分类器实质上是为每个分类创建了一个模板,我们将一个图片输入线性分类器实质上就是寻求与模板的匹配:

最后从几何的角度来看,线性分类器实际上在划分空间,判断输入的图片应该属于哪个分类的空间:

而针对线性分类器存在的问题,我们也可以从以上三个方面来认识:
首先从代数方面,线性分类器意味着我们得到的关系是线性的,我们的权重矩阵减半,相应的分数也会减半,这就很难去包含一些复杂的图形关系,导致分类效果不好
其次从可视化方面,从前面那张图我们可以看到线性分类器得到的仅仅是每类简单的模板,很难去捕捉到数据复杂的特征,上图中马对应的分类甚至有两个头
最后是几何方面,有时候对于线性分类器来说分隔平面是一件无法完成的事,比如说著名的XOR问题等等:


显然对于上面的区域,我们很难训练线性分类器让它来找到划分平面的方法
在大致了解了线性分类器的工作原理之后,我们面临的问题是如何去判断并找出对于分类问题来说最好的权重矩阵
为了做到上面两点,我们需要引入损失函数的概念:

我们通过损失函数来判断权重矩阵的好坏,具体来说,损失函数是在计算我们模型得到的得分与正确分类得分的差距
一个常见的损失函数是SVM loss:


具体来说,上面这个图我们计算了猫这张图片在三个分类上的得分分别是3.2,5.1,-1.7,其中在cat类上的得分3.2是正确分类的得分,所有我们计算其它两个类与该类得分的差距,注意这里还要加上一个1,表示margin,大致的意思就是我们对权重矩阵的要求比较高,正确分类的得分不仅要比其它所有分类高,还要高出一定的分数

在上图中,使用不同的权重矩阵得到了一样的loss值,那么我们怎么去判断哪个权重才是更好的呢?
这里引入了正则化的概念,用于表达对某种权重矩阵的preference,同时也能防止模型的过拟合(一般来说正则化都会选择更简单的模型):


具体来说,比如我们选择L2正则化,现在有w1与w2两个权重矩阵,它们计算的得分一致,但是显然w1正则化的数值比w2要大,所以w2优于w1,L2正则化函数显然倾向于分布比较均匀的权重矩阵,它是将每个权重的平方和累和
另一种常见的损失是交叉熵损失:


这里具体的解释与推导需要用到一些信息论的知识,我这方面也不是很了解,留个坑以后懂了再填吧,感兴趣的同学可以自行搜索,这里的计算过程就和上面这张图一样,先取e的指数然后归一化,再取负对数,这里值得注意的是对数的底数一般都取e,所以最后的损失函数还可以化简一下,在assignment2中的交叉熵损失的实现就是拆分之后的。
umich cv-2-1的更多相关文章
- 关于国内外CV领域牛人的博客链接 .
此文为转载文章,尊重知识产权http://blog.csdn.net/carson2005/article/details/6601109此为原文链接,感谢作者! 以下链接是关于计算机视觉(Compu ...
- 计算机视觉(ComputerVision, CV)相关领域的站点链接
关于计算机视觉(ComputerVision, CV)相关领域的站点链接,当中有CV牛人的主页.CV研究小组的主页,CV领域的paper,代码.CV领域的最新动态.国内的应用情况等等. (1)goog ...
- 几个常用的CV知识点
刚结束一段实习,图像算法工程师.总结一下图像算法的几个基本的操作,图像操作算子各式各样,各显神通,光是滤波filter这一个专题就可以有很多的技巧和功能. 我从做过的两个小项目入手, 简单介绍一下该项 ...
- 基于Emgu CV的人脸检测代码
这个提供的代码例子是Emgu CV提供的源码里面自带的例子,很好用,基本不需要改,代码做的是人脸检测不是人脸识别,这个要分清楚.再就是新版本的Emgu CV可能会遇到系统32位和64位处理方式有区别的 ...
- 自己积累的一些Emgu CV代码(主要有图片格式转换,图片裁剪,图片翻转,图片旋转和图片平移等功能)
using System; using System.Drawing; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; na ...
- 挣值管理(PV、EV、AC、SV、CV、SPI、CPI) 记忆
挣值管理法中的PV.EV.AC.SV.CV.SPI.CPI这些英文简写相信把大家都搞得晕头转向的.在挣值管理法中,需要记忆理解的有三个参数:PV.AC.EV. PV:计划值,在即定时间点前计划 ...
- Emgu.CV 播放视频
using Emgu.CV; using System; using System.Drawing; using System.Threading; using System.Windows.Form ...
- Emgu.CV/opencv 绘图 线面文字包括中文
绘图很简单 Emgu.CV.Image<Bgr, Byte> image; 使用image.Draw可以画各种图形和文字包括英文及数字,不支持中文 CircleF circle = ...
- yuv420p转为emgucv的图像格式Emgu.CV.Image<Bgr, Byte>
GCHandle handle = GCHandle.Alloc(yuvs, GCHandleType.Pinned); Emgu.CV.Image<Bgr, Byte> image = ...
- "Emgu.CV.CvInvoke”的类型初始值设定项引发异常 解决办法
系统win7 32位,只在这一台电脑上出现这种问题,已知VS编译是X86,在数台电脑上测试都正常. 后来把opencv的dll路径例如 E:\...\x86 加入到系统环境变量中就正常了. emgu ...
随机推荐
- 关于Abp Vnext 权限授权的问题
一.问题 最近收到一位朋友的求助,说他项目上的权限授权出现了问题,现象是在基础服务授权角色:RC 权限:X.Default,在基础服务使用RC角色的用户登录能访问到权限X.Default资源,而在X服 ...
- Linux多线程(8.3 线程同步与互斥)
3. 线程的同步与互斥 为什么需要同步与互斥 一个进程运行时,数据存储在内存中.如果一个数据要进行运算,必须先将数据拷贝到寄存器中.比如要对栈上的一个int i进行"++"操作 ...
- AR技术的应用与未来
目录 随着科技的不断进步,增强现实(AR)技术也在不断发展壮大.AR技术是一种通过计算机技术和传感器技术将虚拟信息融合到现实世界中的技术,可以为用户带来一种全新的.交互性更强的体验.本文将探讨AR技术 ...
- 教程 | Datavines 自定义数据质量检查规则(Metric)
Metric 是 Datavines 中一个核心概念,一个 Metric 表示一个数据质量检查规则,比如空值检查和表行数检查都是一个规则.Metric 采用插件化设计,用户可以根据自己的需求来实现一个 ...
- pixel 3xl 编译安卓与内核并烧入全流程(含安卓源码部分编译)
pixel 3xl 编译安卓与内核并烧入全流程(含安卓源码部分编译) 目录 pixel 3xl 编译安卓与内核并烧入全流程(含安卓源码部分编译) 环境搭建 安卓源码下载 一.准备下载环境 1.安装Py ...
- 【小小demo】SpringBoot+Layui登录
easy-login 基于layui 注册.登录简单实现,并他通过拦截器拦截未登录请求. 项目地址文章末尾 登录拦截器 SystemInterceptor preHandle在 Controller ...
- 【Spring boot】 @Value注解
一.不通过配置文件的注入属性 1.1 注入普通字符串 直接附在属性名上,在 Bean 初始化时,会赋初始值 @Value("normal") private String norm ...
- FireflySoft.LeaderElection增加基于ZooKeeper的Leader选举
FireflySoft.LeaderElection的第一个版本实现了基于Consul的Leader选举,考虑到ZooKeeper的一个常见用途也是选主,所以此类库把ZooKeeper也集成了进来.并 ...
- 文心一言 VS 讯飞星火 VS chatgpt (64)-- 算法导论6.5 3题
文心一言 VS 讯飞星火 VS chatgpt (64)-- 算法导论6.5 3题 三.要求用最小堆实现最小优先队列,请写出 HEAP-MINIMUM.HEAP-EXTRACT-MIN.HEAP DE ...
- .net开发-心情与效率
随着现代科技的不断发展,笔记本电脑已经成为我们日常生活中不可或缺的一部分.然而,在使用笔记本电脑的过程中,我们可能会遇到一些问题,例如显示器闪烁.HDMI接口接触不良等,这些问题不仅会影响我们的工作效 ...