计算机视觉 课件 第5、6章 图像分类、神经网络基础_第1页
计算机视觉 课件 第5、6章 图像分类、神经网络基础_第2页
计算机视觉 课件 第5、6章 图像分类、神经网络基础_第3页
计算机视觉 课件 第5、6章 图像分类、神经网络基础_第4页
计算机视觉 课件 第5、6章 图像分类、神经网络基础_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章图像分类5目

录5.1K-最近邻分类5.25.3朴素贝叶斯分类SVM分类5.4计算机视觉分类器预测结果评价图像分类:计算机视觉的核心任务(假设给定的离散标签集){狗,猫,卡车,飞机,…}cat计算机视觉问题:语义间隔猫的图像宽度为248像素,高度为400像素,并具有红绿蓝三个颜色

通道(通常称为RGB)。因此,图

像由248×400×3个数字组成或总

共297600个数字,每个数字是一个从0(黑色)到255(白色)的整数。图像分类的任务是将这接近30万个

数字变成一个单一的标签,如“猫(cat)”。计算机视觉图像识别的难点挑战:视角变化挑战:光照的变化计算机视觉挑战:变形挑战:遮挡计算机视觉挑战:背景混乱挑战:组内变异计算机视觉传统的图像分类通过特征描述来完成,比如识别一只猫,就是提取猫的轮廓,尖尖的就是两个耳朵,长的是尾巴,四肢和毛发等都有对应的特征。但是,如果出现了遮挡,变形,光照等的变化,那么这些识别猫的规则可能就不起作用了。计算机视觉为了克服传统方法在图像分类问题上的弊端,采用数据驱动的方法可以更好地让计算机理解图像的内容。用大量猫的图像训练出一个可以自动分类的函数,给这个训练好的函数输入未知的图像,然后输出一个标签(也就是图像的分类是什么,是猫还是狗)。使用两个函数,一个训练函数,一个预测函数。训练函数接收图像和图像所属的分类(也就是标签),经过训练后返回一个模型;预测函数接收训练好的模型和待分类的图像,经过运算返回预测的分类标签。图像分类流程如下:输入:输入是包含N个图像的集合,每个图像的标签是K种分类标签中的一种,这个集合称为训练集。学习:这一步的任务是使用训练集来学习每个类的特征是什么,该步骤也称为训练分类器或者学习一个模型。评价:让分类器来预测它未曾见过的图像的分类标签,把分类器预测的标签和图像真实的分类标签对比,并以此来评价分类器的质量。计算机视觉5.1

K-NN分类法5.1.1最近邻分类法最邻近分类思想:将测试图像和训练集中每一幅图像做比较,然后将它认为最相似的那个训练集图像的标签赋给测试图像。距离越远,代表图像之间的相似度越低;距离越近,代表两幅图像越相似。我们如何比较图像?距离度量是多少?计算机视觉1.L1距离也是曼哈顿(Manhattan)距离2.L2距离也叫欧式(Euclidean)距离计算出L1距离为456,L2距离为162.11。计算机视觉5.1.2

K最近邻分类法K-NN分类思想:计算图像A与训练集中所有图像之间的距离,取出与该图像距离最近的k幅图像,然后统计这k幅图像中所属比例最大的分类,则

图像A属于该分类。通俗地讲,如果与图像A距离最近的几幅图像都是狗,那么图像A的类别标签也是狗。K-NN图像分类算法流程如下:计算当前测试图像与训练集中所有图像之间的距离;按照距离递增次序排序;选取与当前测试图像距离最近的k幅图像;统计前k幅图的分类,即计算这k幅图所在类别的出现频率;将前k幅图像中出现频率最高的类别作为当前测试图像的预测分类。计算机视觉示例数据集:CIFAR-1010个标签50000张训练图像,每个图像都很小:32x3210000张测试图像。计算机视觉将每个测试图像(第一列),与训练集中每一幅图像做比较,根据像素距离计算出最近的10张图片(行是最近邻的示例)。统计这10幅图所在类别的出现频率,将出现频率最高的类别作为当前测试图像的预测分类.K-NN中如何k值?计算机视觉K值是试出来的。首先将数据分为训练数据与测试数据:当整个训练数据被我们用来训练并且k=1时,整个训练数据的准确率都是100%的,这样没办法看出我们算法的表现能力,所以我们要将训练数据分为训练数据与验证数据,并且只训练训练数据,在验证数据上进行验证,以了解我们训练数据的算法泛化能力(准确率):计算机视觉计算机视觉验证数据

用于调整超参数注意:在超参数调优的过程中决不能使用测试集来进行调优,因为这样会使模型对测试集过拟合,降低模型的泛化能力。所以测试数据集只能再进一步,我们可以将训练数据分为x份,使每一份数据都做一次验证数据,这样我们就得到了x个准确率,取其中的平均值,就得到了当k取任意值时的准确率如何,这样再选择准确率最高时的k值,就得到了一个表现最为良好的算法:使用一次,即在训练完成后评价最终模型时使用。图是使用5-fold

cross-validation,取不同的k值时,得到的accuracy曲线(因为是5-foldcross-validation,所以在每个k值上有5个取值,通常取其均值作为此时的准确度)(似乎k~=7最适合此数据)计算机视觉5.2贝叶斯分类器计算机视觉朴素贝叶斯分类(Naive

Bayes

Classifier)发源于古典数学理论,利用Bayes定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。在朴素贝叶斯分类模型中,它将为每一个类别的特征向量建立服从正态分布的函数,给定训练数据,算法将会估计每一个类别的向量均值和方差矩阵,然后根据这些进行预测计算机视觉计算机视觉计算机视觉计算机视觉5.2.4朴素贝叶斯分类分类模型定义如下:该算法的特点为:如果没有很多数据,该模型会比很多复杂的模型获得更好的性能,因为复杂的模型用了太多假设,以致产生欠拟合计算机视觉计算机视觉5.2.5朴素贝叶斯分类实例:检测SNS社区中不真实账号下面讨论一个使用朴素贝叶斯分类解决实际问题的例子,为了简单起见,对例子中的数据做了适当的简化。问题是这样的,对于SNS社区来说,不真实账号(使用虚假身份或用户的小号)是一个普遍存在的问题,作为SNS社区的运营商,希望可以检测出这些不真实账号,从而在一些运营分析报告中避免这些账号的干扰,亦可以加强对SNS社区的了解与监管。如果通过纯人工检测,需要耗费大量的人力,效率也十分低下,如能引入自动检测机制,必将大大提升工作效率。这个问题说白了,就是要将社区中所有账号在真实账号和不真实账号两个类别上进行分类,下面我们一步一步实现这个过程。计算机视觉计算机视觉计算机视觉计算机视觉5.3

SVM分类器例子:假设有一堆苹果,需要将苹果分成两部分,一部分又大又好看,卖的贵一点,另一部分又小又不好看,卖的便宜点。实心圆表示又小又不好看的苹果,空心圆表示又大又好看的苹果。从图中可以看出,两类苹果中间有个明显的分界,SVM研究的是求一个能够将上面两部分完全正确分开的分界线计算机视觉对于人类而言,这两部分苹果之间的分界是显而易见的,但对于计算机而言,怎么确定这两部分苹果的分类界线,或者说计算机通过什么标准来确定划分的直线。直观上,可以看出分类界线A和B将数据集完全分开了,C分割后还存在误分类点。对于SVM来说,需要找到一个最优的直线。SVM将误分类的点数作为评判标准,误分类点越多,分类直线性能越差,误分类点为零,就是一条好的分类直线。A和B两条分类界线都没有误分类点,那么,哪一条线是最优分类界线呢?计算机视觉计算机视觉假设有多个二维向量:每个二维向量在x1-x2平面坐标系中表现为一个点,分类的目标是使用一条直线把这些点分成两类,从图中可以看出,两类中距离最近的点分别为Xi和Xj,因此要寻找的分割直线在Xi和Xj的中间,即Xi和Xj到直线的距离都为d,当d取得最大值的时候,这条直线就是要找的分类界线。在x1-x2坐标系中,直线的一般表达式为写成向量形式:根据点到直线的距离公式,点Xi和Xj到分类直线d的距离为:由于d是最短距离,对于所有点均满足:寻找最优分类直线的问题就等效转换为求解d的最大值计算机视觉SVM需要寻找一个最优的决策边界,也叫分类超平面,使之距离两个类

别中最近的样本最远。图中有3个点到决策边界距离相同,这3个点叫做支持向量(Support

Vector)。平行于决策边界的两条直线之间的距离(2d)称为margin(间隔),SVM的目的是要最大化margin。上述的分类模型为Hard

Margin

SVM计算机视觉分类问题最理想的状态是样本在向量空间中都是线性可分的,这样可以清晰无误地把它们分隔成不同的类别——采用线性可分硬间隔SVM。当存在噪点的时候,可以容忍少数不能被正确划分的样本,只要大多数线性可分就好——采用线性软间隔SVM样本点出现混肴的情况计算机视觉样本交错的情况分类问题非线性的时候,该如何划分?基本思想是将低纬空间的数据通过映射转换到一个新的高维空间,然后在高维空间中求解分类超平面计算机视觉下图将二维空间的样本数据转化到三维空间,这样样本就线性可分了。从图中可以直观地看到:盒子中的小球(实心球和空心球),从盒子上面看,无法用一个平面分割;但是从盒子的侧面看就可以用一个平面将两种小球分开了。这种思想就是将特征转换到另外一个空间(可能与原空间的维度相同或者升维),可将线性不可分问题转变为线性可分问题。计算机视觉5.3.3多类SVM损失计算机视觉要识别一个物体属于哪一种类别(假设10类),我们需要将输入图片(假设图片为32x32x3的数组,一共3072个数字),通过包含权重参数的线性变换,得到10种类别所得到的分数,使得在它的标签下的类别得到很高的分数,其他类别表现很低的分数。我们所要学习的就是这个线性变换的函数,或

者准确说学习w的权重值,一般我们要在学习中加入一个偏置参数b,以让图片在分类时对它属于的标签有更大的偏置:计算机视觉计算机视觉例子:假设输入的灰度图仅有4个像素,待分类别有3个(Cat、Ship,Car),那么分类器就有三个分类模型。因为猫得到的分数不是很高,所以这并不是一个很好的分类器,需要重新设置w与b如何判断分类模型性能的优劣呢,这里需要引入损失函数Loss来定量评估,并且根据Loss的大小来调整权重值。损失函数用来度量给定分类器的预测值与真实值的不一致程度,预测值与真实标签之间的差异越大,损失函数值就越大,反之则越小。损失函数的输出可以作为反馈信息对分类器参数进行调整,进而优化模型,提升分类器的分类效果。损失函数定义:xi表示样本中第i张图像,N为样本个数,f(xi,W)为分类器对xi的类别预测值,yi为样本xi的真实类别标签,

,Li为xi的损失,L为数据集损失。第i个样本的折页损失(Hinge

loss)定义如下:Sij表示第i个样本xi在第j类别的预测分数;表示第i个样本的真实类别预测分数计算机视觉表示SVM在正确分类上的得分始终比不正确分类上的得分高出一个边界值通常

意思是如正确类别的得分比不正确类别的得分高出1分,就没有损失,否则,就会产生损失。计算机视觉3个类别各有一个训练样本,采用如下:多类分类器对3个样本的打分支持向量机对于数据集的损失为:计算机视觉计算机视觉假设找到了一个W,使得L=0。这个W是独一无二的吗?两个线分类器如果W

能够正确分类所有样本,那么会有很多相似的W,比如都能正确分类样本,因此W不是唯一的。为了减轻模型的复杂度,引入正则化惩罚项目的是通过向特定的权重添加偏好,对其他的不添加,以此来消除模糊性,还可以防止过拟合。常用的正则化惩罚项有L1和L2范数。L1范数L2范数带有正则化项的损失函数如下:展开式:为超参数,来控制正则化的强度损失函数就由两部分组成:数据损失(data

loss),即所有样例的的平均损失Li,以及正则化损失(regularizationloss)。正则化是为了权衡训练损失和用于测试集的泛化损失计算机视觉计算机视觉5.3.4

Softmax分类器Softmax函数定义如下:xi属于某个类别k的概率,Softmax分类器又被称为逻辑回归分类器(Logistic

Regression),与SVM分类器相比,Softmax的输出(归一化的分类概率)更加直观,可以解释为样本属于某个类别的概率。例:输入图像猫的多类支持向量得分为[3.2,5.1,-1.7]T样本xi的交叉熵损失如下:图像猫的交叉熵损失为将损失函数作为优化目标,使训练样本集的损失函数最小,此时的W

即为所求的权重值。计算机视觉计算机视觉计算机视觉计算机视觉第6章神经网络基础6目

录6.1神经网络基本概念6.26.3激活函数神经网络设计6.5梯度下降6.6神经网络反向传播6.4计算机视觉损失函数6.1神经网络基本概念一个简单的神经网络包括输入层、隐藏层和输出层。实际上只有两层神经元(输入层和隐藏层)具有权重。以实际具有权重的层数来表示神经网络的名称,上图为2层神经网络。计算机视觉神经网络中信号的传递用下图表示神经元的输入信号为和的传递,输出为,可用公式来表示信号神经元

只有在输入信的总和超过某个界限值时才被激活,输出为1;否则不被激活,输出为0。这个界限值称为阈值,用

表示。

用于将输入信号的总和转换为输出信号,称为激活函数计算机视觉计算机视觉6.2激活函数激活函数(activation

function)的目的在于如何激活输入信号的总和,这里介绍阶跃函数、Sigmoid函数或ReLU函数等作为激活函数。阶跃函数

Sigmoid函数激活函数以阈值为界,一旦输入信号的总和超过阈值就切换输出。函数值在x=0处跃变sigmoid函数是一条平滑的曲线,输出随着输入发生连续性的变换二者的平滑性有差别,但其总体形状具有相似性,也就是其变化趋势大致相同。当输入信号较小时,其输出值较小,当输入信号增大时,其输出值也随之增大,且二者输出均在0和1之间阶跃函数和sigmoid函数的另一共同点是均为非线性函数。神经网络的激活

函数必须是非线性函数,这是因为如果使用线性函数作为激活函数,无论设置多少层隐藏层,其最终效果都是线性函数的叠加,加深神经网络的层数没有任何意义。例子,线性函数构建3层神经网络相当于可以用来替代计算机视觉采用线性函数作为激活函数的神经网络无论叠加多少层都只能解决线性问题,无法解决非线性问题,不能发挥多层网络带来的优势。6.2.3

ReLU函数ReLU函数同样属于非线性函数,其在输入大于0时,直接输出该值;在输入小于0时,输出0,可用公式表示为:计算机视觉6.3神经网络设计下面以图所示的三层神经网络为例,分析输入到输出的前向传播过程。我们将输入层称为第0层,第一个隐藏层为第1层,第二个隐藏层为第2层,输出层为第3层。计算机视觉从第1层到第2层的前向传播与以上过程相同,接下来重点分析从第2层到输出层的设计。输出层的设计与之前各层传播的最大不同在于激活函数,在输出层一般采用恒等函数(对输入信号不加改动地输出)或softmax函数,具体采用什么激活函数取决于不同的任务。一般而言,分类问题,如手写字体识别、人脸识别等,采用softmax激活函数,而回归问题,如

预测学生成绩、股票走势等,采用恒等函数。在计算机视觉任务中,多数是分类问题。因此,我们会发现在神经网络的输出层中多使用softmax激活函数。SoftMax函数如下所示:计算机视觉计算机视觉6.4损失函数损失函数可用来衡量预测值与目标值之间的差距,通过最小化损失函数来优化权重设置。损失函数有多种,在神经网络中常用的是均方误差(MeanSquared

Error)和交叉熵误差(Cross

Entropy

Error)。6.4.1均方误差预测值y=(0.02,0,0,0.86,0,0,0,0,0.11,0)y’=(0,0,0,0.36,0,0,0,0,0.6,0.04)真实值g=(0,0,0,1,0,0,0,0,0,0)表示类别数量表示神经网络输出的第样本的预测值表示第

样本的真实测值和

的MSE分别为3.2100e-03和0.077120,可见y的损失值更小,更接近真实值。计算机视觉6.4.2交叉熵误差预测值y=(0.02,0,0,0.86,0,0,0,0,0.11,0)y’=(0,0,0,0.36,0,0,0,0,0.6,0.04)真实值g=(0,0,0,1,0,0,0,0,0,0)对应的交叉熵误差分别为0.1508和1.0217。使用梯度下降法求出损失函数

L(a,b)的最小值。梯度下降的思想

是,随机选择一个参数的组合(a,b),计算其对应的损失函数,如图(b)中等高线最外层红点位置,然后寻找一个能让损失函数下降最多的参数组合,持续更新a,b

的值,直到损失函数收敛于最优点,即图(b)中等高线的最里层计算机视觉6.5梯度下降6.5.1梯度下降的基本思想通过最小化损失函数求解神经网络的参数值,由于参数数量较大,很难获得解析解。一般采用梯度下降法迭代求解,得到最小化的损失函数值和最优的模型参数值。损失函数可表示为:学习的目标是通过更新a和b的值最小化损失函数L(a,b)L(a,b)函数图L(a,b)函数俯视图问题:如何才能获得L(a,b)的最小值呢?在复杂的情况下,损失函数可能存在多个局部最优解,如图想象你站在山的顶点上,在梯度下降法中,我们

要做的是旋转360度,看看周围在哪个方向上下山最快,我们知道下降最快的方向为导数方向,可

将梯度定义为损失函数L(a,b)对参数a,b的偏导数,因此沿导数方向前进一小步;然后再一次想想,

应该从什么方向下山,再迈出一小步;重复上面

的步骤,直到接近局部最优点。梯度下降可描述如下:计算机视觉6.5.2神经网络的梯度神经网络可记为设神经网络的权重为2×3的矩阵,其梯度可表示为表示

变化时,损失函数L发生的变化。计算机视觉6.5.3学习算法的步骤分为以下四个步骤:Step

1:从训练数据中随机选出一部分数据,这部分数据称为mini-batch;Step

2:计算mini-batch的损失函数,学习的目标是最小化该损失函数;Step

3:计算梯度,求出各个权重参数的梯度;Step

4:更新参数,沿梯度方向更新参数;Step

5:重复步骤2、3、4,直到收敛。采用mini-batch的原因在于,在整个数据集上针对全部数据样本进行损失函数求和是不现实的,因此每次迭代可从训练集中随机获取固定数量的样本,即mini-batch,在mini-batch上进行损失函数求和、梯度计算和参数更新。计算机视觉6.6神经网络反向传播理论上可以求出损失函数L关于权重参数W的偏导数由于直接进行导数运算的计算量较大,所以,一般不直接使用解析方式求偏导数,而采用反向传播算法快速求解偏导数。6.6.1链式法则和反向传播反向传播:一个简单的例子计算机视觉设:x=-2,y=5,z=-4图中,绿色的数字代表从前向后计算时每个参数的得数Want:计算机视觉Want:计算机视觉Want:计算机视觉Want:计算机视觉Want:计算机视觉Want:计算机视觉Want:计算机视觉Want:计算机视觉Want:链式法则:上游梯度上游梯度计算机视觉计算机视觉Want:链式法则:计算机视觉几个梯度传播的门电路加法门:进行梯度分配,每一个子门路传播后一项的梯度.乘法门:相当于梯度路由.每一个子门路分配的梯度等于另一方进行前向传播的数与梯度的乘。最大值门:相当于梯度开关.他们之中谁大,谁的导数即为1,谁小,谁的导数即为0计算机视觉f反向传播的直观理解从上面公式可以看出,要想知道参数具体对结果能产生何种影响,那么就要一步一步从后向前推,将此式用于损失与权重的梯度变化就是反向传播的概念。计算机视觉f“局部梯度”计算机视觉f“局部梯度”梯度计算机视觉f梯度“局部梯度”计算机视觉f梯度“局部梯度”计算机视觉f梯度“局部梯度”计算机视觉例子:计算机视觉例子:计算机视觉例子:计算机视觉例子:计算机视觉例子:计算机视觉例子:计算机视觉例子:计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论