分类器

支持向量机数学推导

爱⌒轻易说出口 提交于 2019-12-28 03:25:11
引言 SVM的数学推导真的是我一生的痛,看看觉得很懂,但是过了3秒,就在纠结,为什么可以这样换算?今天早上在看集成学习的时候,讲课的老师一直说SVM、SVM、SVM。。。嗯,没错,我又开始回想SVM的数学推导过程,然后,我的一个早上就这样没了。 这次趁着刚看完印象深刻,我想将刚厘清的思路写下来。仅包括如何推出最优化问题,后面的推导我打算等看完凸优化课程再记录,推导过程参考林轩田老师教授的《机器学习技法》内容。 回顾线性分类 线性分类的分类器表达式为 \[ \begin{equation} h(x) = sgn(w^Tx + b) \end{equation} \] 林老师之前讲线性分类时用的是PLA算法,即根据当前分类器是否将所有的点分类正确 \((h(x)==y)\) 。如果有一个点分类错误,那么朝着这个点或偏离这个点更新。算法一直迭代直到所有的点正确分类为止。PLA算法得到的分类器不唯一,仅凭线的初始位置这一个因素便能影响最终的分类器。 但是我们知道最想要的分类器长什么样子。我们希望这个分类器足够"胖",也就是说,这根线变胖的时候,边上的点越迟碰到它越好。 显然,看了上面的表述,我们应该知道决定这个超平面长什么样子的数据点只有那么几个,就是那些离超平面更近的点。下面开始将这个问题表述为一个最优化问题。 最优化问题的推导 我们想要寻找的超平面是 \[ \begin

斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时5

佐手、 提交于 2019-12-27 17:30:28
课时5 数据驱动的图像分类方式:K最邻近与线性分类器(下) 在参数化方法中,我们要做的是构造一个函数,输入一张图片,对每一类输出一个数值。对任意一张图片,我们会计算出它到底属于哪一类。这些参数有时候也会被称作权重。我们不能改原始图像,但是我们可以修改权重,我们希望把它设成对训练集中每张图像可以实现正确输出的值。 我们没办法应对不同大小的图片,但是我们可以做到的最简单的事情是改变每一张图片的大小使他们变成相同的大小。然后我们就可以确定的把它们转换成在空间上都对齐的列。事实上,目前最前沿水平的方法只使用方形的图片。 有一种比较局限的W分类器的解释: 类似于模板匹配 从定义出发,神经网络可以具备多个模型,分别针对于不同的车,然后结合这些模型给出更强大的分类器,使分类更加合理。 可以把图片看成有很高维度的。线性分类器都在描述在这个3072维度空间上的梯度,而这些分数就是在这个取样空间中负点指向正点方向的梯度。我们会随机的初始化这些分类器,也就是说这条线代表的分类器在开始优化的时候,这个分类器会逐渐的移动渐渐的把属于你要找的类的点与其他点分隔开,从而完成训练。 损失函数可以定量的测定分类器工作的好坏。损失函数能够定量的测量每一个W,通过这个函数,我们不需要控制W的初始值。一旦找到一个W,使得你损失的值非常低,则可以说这个分类器正确的分类你所有的图片。在优化的过程中,我们会选择一个随机的W开始

OpenCV训练分类器

旧街凉风 提交于 2019-12-27 17:06:37
OpenCV训练分类器 一、简介 目标检测方法最初由Paul Viola [Viola01]提出,并由Rainer Lienhart [Lienhart02]对这一方法进行了改善。该方法的基本步骤为: 首先,利用样本(大约几百幅样本图片)的 harr 特征进行分类器训练,得到一个级联的boosted分类器。 分类器中的"级联"是指最终的分类器是由几个简单分类器级联组成。在图像检测中,被检窗口依次通过每一级分类器, 这样在前面几层的检测中大部分的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域。 分类器训练完以后,就可以应用于输入图像中的感兴趣区域(与训练样本相同的尺寸)的检测。检测到目标区域(汽车或人脸)分类器输出为1,否则输出为0。为 了检测整副图像,可以在图像中移动搜索窗口,检测每一个位置来确定可能的目标。 为了搜索不同大小的目标物体,分类器被设计为可以进行尺寸改变,这样比改变待检图像的尺寸大小更为有效。所以,为了在图像中检测未知大小的目标物体,扫描 程序通常需要用不同比例大小的搜索窗口对图片进行几次扫描。 目前支持这种分类器的boosting技术有四种: Discrete Adaboost, Real Adaboost, Gentle Adaboost and Logitboost。 "boosted"

GAN学习:GAN/DCGAN原理、公式推导及实践

前提是你 提交于 2019-12-27 07:25:05
GAN/DCGAN原理、公式推导及实践 GAN学习:GAN/DCGAN原理、公式推导及实践 一、GAN GAN原理简介 数学描述 公式推导 训练过程 二、DCGAN 在GAN当中使用DNN 对GAN的一点思考 三、实践 GAN学习:GAN/DCGAN原理、公式推导及实践 生成对抗网络(GAN)是深度学习领域一个相当有趣的内容。最近补习了一下相关的论文,也推了下公式、做了一点简单的实践,因此写了这篇文章来对GAN进行介绍。大致分为三个部分 GAN:介绍GAN的思想、原理,以及公式推导和训练过程 DCGAN:引入DCGAN,介绍基于深度卷积网络的GAN,并谈一下自己对GAN的理解 动漫头像生成:使用Pytorch,实现了一个对DCGAN的简单应用 一、GAN GAN原理简介 GAN的起源应该是Ian Goodfellow大牛的这篇 paper 。 GAN的基本原理很简单,以图片生成领域为例,整个网络由两个部分构成:G(Generator),即生成器,以及D(Discriminator),判别器。 借用 这篇博客 的图片可以很清晰地看到整个过程,G接收按照一定概率分布生成的随机分布作为噪声,生成和真实数据尽可能类似的图片;而D则负责从真实数据集和生成的图片中,区分真假。两者的目的相反,由此构成了一个博弈过程,这就是生成对抗网络名称的由来。 直观上来说,随着训练的过程

树莓派+检测人脸

旧城冷巷雨未停 提交于 2019-12-27 06:48:21
设备与环境 raspberry 3b winscp vnc 检测人脸 级联分类器 cascadeclassifier 级联分类器,即使用类 Haar 特征工作的级联增强分类器,是集成学习的一种特殊情况,称为 boost。它通常依赖于 Adaboost 分类器(以及其他模型,如 Real Adaboost、Gentle Adaboost 或 Logitboost)。 级联分类器在包含检测目标的几百个样本图像以及不包含检测目标的其他图像上进行训练。 opencv中有训练好的人脸文件。 代码 import numpy as np import cv2 # Create a memory stream so photos doesn't need to be saved in a file image = cv2.imread('lena.bmp',1) cv2.imshow("image", image) #Load a cascade file for detecting faces face_cascade = cv2.CascadeClassifier('faces.xml') #Convert to grayscale gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) cv2.imshow("image",gray) #Look for

CV第七讲

不羁的心 提交于 2019-12-26 13:15:25
一、知识梳理 二、优策策略—一阶函数(减少训练误差) 1、为什么在权重对损失函数敏感程度不同时,SGD会走Z字型? 如下图,损失函数对竖直方向敏感,因此在优化权重时在竖直方向走的多,在水平方向走的少。(为何在等高线上来回震荡呢?还是因为竖直方向敏感,因此竖直方向上走的距离要多于水平方向,因此不得不来回震荡) 2、鞍点与极值点的区别? 鞍点和局部极小值相同的是,在该点处的 梯度都等于零 ,不同在于 在鞍点附近Hessian矩阵是不定的 (行列式小于0),而在局部极值附近的Hessian矩阵是正定的。在鞍点处,横着看的话,鞍点就是个极小值点,但是竖着看的话,鞍点就是极大值点(线性代数和最优化算法过关的同学应该能反应过来, 鞍点处的Hessian矩阵的特征值有正有负 。(二阶导数用于表示曲线的曲率) 3、优化算法 1)SGD+Momentum(累加之前的梯度,相当于给了一个惯性。因此,可以越过极值点与鞍点。)同时,因为累加梯度,使得优化是水平与竖直方向上的梯度相互抵消。最终,使其优化过程逐渐平滑,不走Z字。 优点:对方向一致的参数能够加速学习,对梯度改变方向的参数能够减少其更新,因此就是momentum能够在相关方向上加速学习,抑制振荡,从而加速收敛。 缺点:比较难学习一个较好的学习率。 2) Nesterov acceletared gradient(NAG) : Momentum

级联分类器训练

浪尽此生 提交于 2019-12-26 03:32:24
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/user_guide/ug_traincascade.html 介绍 级联分类器包括两部分:训练和检测。 检测部分在OpenCV objdetect 模块的文档中有介绍,在那文档中给出了一些级联分类器的基本介绍。这个指南是描述如何训练分类器:准备训练数据和运行训练程序。 重点注意事项 OpenCV中有两个程序可以训练级联分类器: opencv_haartraining and opencv_traincascade``。 ``opencv_traincascade 是一个新程序,使用OpenCV 2.x API 以C++ 编写。这二者主要的区别是 opencv_traincascade 支持 Haar [Viola2001] 和 LBP [Liao2007] (Local Binary Patterns) 两种特征,并易于增加其他的特征。与Haar特征相比,LBP特征是整数特征,因此训练和检测过程都会比Haar特征快几倍。LBP和Haar特征用于检测的准确率,是依赖训练过程中的训练数据的质量和训练参数。训练一个与基于Haar特征同样准确度的LBP的分类器是可能的。 opencv_traincascade and opencv_haartraining 所输出的分类器文件格式并不相同

级联分类器训练

孤街浪徒 提交于 2019-12-26 03:32:11
级联分类器训练 adaboost分类器由级联分类器构成,"级联"是指最终的分类器是由几个简单分类器级联组成。在图像检测中,被检窗口依次通过每一级分类器,这样在前面几层的检测中大部分的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域。 分类器训练完以后,就可以应用于输入图像中的感兴趣区域的检测。检测到目标区域输出为1,否则输出为0。为了检测整副图像,在图像中移动搜索窗口,检测每一个位置来确定可能的目标。为了搜索不同大小的目标物体,在图像中检测未知大小的目标物体,扫描过程中用不同比例大小的搜索窗口对图片进行扫描。 目标检测分为三个步骤: 1、 样本的创建 2、 训练分类器 3、 利用训练好的分类器进行目标检测。 二、样本收集 训练样本分为正例样本和反例样本,其中正例样本是指待检目标样本,反例样本指其它任意图片,所有的样本图片都被归一化为同样的尺寸大小(例如,24x24)。负样本可以来自于任意的图片,但这些图片不能包含目标特征。负样本由背景描述文件来描述。 准备训练数据   训练需要一些列样本。样本分两类:负样本和正样本。负样本是指不包括物体的图像。正样本是待检测的物体的图像。负样本必须手工准备,正样本使用 opencv_createsamples 创建。 负样本   负样本可以是任意图像,但图像中不能包含待检测的物体。用于抠取负样本的图像文件名被列在一个文件中

【计算机视觉】如何使用opencv自带工具训练人脸检测分类器

大城市里の小女人 提交于 2019-12-26 03:31:23
前言 使用opencv自带的分类器效果并不是很好,由此想要训练自己的分类器,正好opencv有自带的工具进行训练。本文就对此进行展开。 步骤 1.查找工具文件; 2.准备样本数据; 3.训练分类器; 具体操作 注意,本文是在windows系统实现的,当然也可以在linux系统进行。 1.查找工具文件 ; opencv中的自带的分类器训练工具在开源库中以应用程序的类型呈现的,具体目录如下。 .\opencv2410\build\x64\vc12\bin 可以在该目录下查找到相关的工具文件,有opencv_createsamples、opencv_haartraining、opencv_performance、opencv_traincascade; 其中,opencv_haartraining和opencv_traincascade是opencv开源库用于训练级联分类器的两个程序。opencv_traincascade是一个较新的程序,使用OpenCV2.x API以c++编写,二者的主要区别是opencv_traincascade支持Haar和LBP两种特征,并易于增加其他特征。与Haar特征相比,LBP特征是整数特征,因此训练和检测过程都会比Haar特征快几倍。LBP和Haar特征用于检测的准确率是依赖训练过程中训练数据的质量和训练参数

SIFT/SURF、haar特征、广义hough变换的特性对比分析[z]

南笙酒味 提交于 2019-12-26 03:31:07
SIFT/SURF基于灰度图, 一、首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然后进行在极值点周围26个点进行NMS,从而得到粗略的特征点,再使用二次插值法得到精确特征点所在的层(尺度),即完成了尺度不变。 二、在特征点选取一个与尺度相应的邻域,求出主方向,其中SIFT采用在一个正方形邻域内统计所有点的梯度方向,找到占80%以上的方向作为主方向;而SURF则选择圆形邻域,并且使用活动扇形的方法求出特征点主方向,以主方向对齐即完成旋转不变。 三、以主方向为轴可以在每个特征点建立坐标,SIFT在特征点选择一块大小与尺度相应的方形区域,分成16块,统计每一块沿着八个方向占的比例,于是特征点形成了128维特征向量,对图像进行归一化则完成强度不变;而SURF分成64块,统计每一块的dx,dy,|dx|,|dy|的累积和,同样形成128维向量,再进行归一化则完成了对比度不变与强度不变。 haar特征也是基于灰度图, 首先通过大量的具有比较明显的haar特征(矩形)的物体图像用模式识别的方法训练出分类器,分类器是个级联的,每级都以大概相同的识别率保留进入下一级的具有物体特征的候选物体,而每一级的子分类器则由许多haar特征构成(由积分图像计算得到,并保存下位置),有水平的、竖直的、倾斜的,并且每个特征带一个阈值和两个分支值,每级子分类器带一个总的阈值