模式分类 绪论

姗姗来迟的文章,依旧是老风格,先来几句废话,现在工作比较忙,也成功的转型到了本行,不用忍受各种“xx领导对你很不满意”这种恶心人的话了,可以安静的,专心的做的我的非主流科学家。

做技术的人,我们对自己的技术水平必须有一个客观的认识,不管现在什么职位,多少收入,这只能从另一个角度佐证一个人的能力,但距离自己心中的水平差多少,只有自己能评估出来,有差距,就去学,去做,去思考。

废话完毕。

本系列博客内容为对《模式分类》学习的总结和问题讨论,如有纰漏或错误,请各位留言指正,谢谢。

模式分类 绪论

绪论,多半都是告诉读者,我们的书是讲什么的,然后我们的书有多么多么的好,都有谁在用,巴拉巴拉一大堆(国内的书都这样),但这个绪论却让人一头雾水,它先介绍了模式分类是啥,然后给出好多好多问题,后面给了一句“哦,这些问题你看了这本书可能也解决不了”,让人哭笑不得,本书数学成分很多,所以,要做好持久战的准备,但绪论最后一部分还是很有鼓舞的,就是这些问题虽然还没有解决办法,但是我们非常肯定一定有一天会解决,原因就是这个系统的存在已经不需要证明了,我们自己就是活的模式分类系统,低功耗,高准确,高速,高可扩展性,高学习能力。。。。

机器感知

机器感知,让机器(计算机)能够进行一些识别、分类能力。比如人能很轻易的拿起一个苹果咬一口,说出甜的酸的,而不会拿起一个鼠标津津有味的品尝,这种能力可以叫为感知,可以通过一些事物的某些特点,来判断推测其属性,下面开始介绍一些名词,还是根据上面吃苹果和吃鼠标的例子:

特征:上面例子里面,我们区分了苹果和旁边的鼠标,可能通过苹果和鼠标的形状,或者颜色,也有可能是味道,但不管通过什么,都是他们本身的一种属性,这个又可以叫做特征(Feature)。

模型:原文用的两种鱼进行分类,但根据我们上面的例子,鼠标和苹果他们从某种角度可以用不同数学度量来分别表示自己的某些特征,这个就是两个东西有不同模型。

模式分类:为了将苹果和鼠标,我们通过我们的传感器,测得两个物体某一属性的不同数据,根据模型(由测得的数据类型组成的模型)来将物体进行分类(到底是苹果还是鼠标)的这个过程,换句话说,我们设计采集属性,建立采集属性的模型,区分不同类之间的模型。

数据采集:这个词不是解释它的意思,它的意思就是数据采集没有别的意思,但是这里要说一下的是,一旦数据经过采集,那么原有信息一定会丢失,而且大部分时间采集以后的数据丢失率是很高的,我们期望采集到的是更多的,对分类更有利的数据,尽量抛弃无用信息。

总体代价函数:完美主义者对这个可能比较反感,不得不说,不论什么分类都有出错的时候,而我们的目标是最大可能的降低出错率,或者将一个叫做“代价函数”的函数最小化,代价函数可以这样通俗一下:如果你把苹果当做了鼠标,你的代价是,不能工作了;如果你把鼠标当做了苹果,并且吃了下去,你的代价就是轻者手术,重者呜呼。这就是你分错类的代价,所以你宁可天天把苹果当鼠标,也不愿意把鼠标当苹果。当代价分配为所有出错的惩罚都一样的时候,等效于最小化出错率。

决策:模式分类(模式识别,模式判别)种最关键的一步,其本质是信息压缩的过程,比如一个苹果拥有的所有数据经过决策后他只有一个属性(苹果)

对于特定任务的性质:我们设计出来的模式分类算法或者系统都是针对某一特定问题,比如区分鼠标和苹果,这个算法或者系统可能并不适用于分类苹果和橘子,能够通用识别各种各样物体的系统,除了人和部分高级动物外,目前还是个大问题(书中作者表示,现在真的搞不定0.0)。

本书中使用个较多是基于统计特性的模式,从概率的观点来解释一些原理,实现一些系统,概率论不好的速度去补习。

另外模式表达有很多种,但常用的是两种,一种是实数向量法,比如苹果的(重量,高度,最大宽度)为(10,10,20),这就是一个实数向量的模式表示,其中每一个项都是一个特征,还有一些特征也是实数向量,但其本身的物理含义不明确,或者不直观,比如SIFT特征的128维描述子。还有一种是属性列表的模式表达,比如苹果的属性列表(颜色,产地,口感)为(红,山东,甜),这就是个属性列表组成的模式。

我们更倾向于,使用较少的特征,完成最好的分类,较少的特征带来的好处是

a)更简单的分类区间

b)更容易训练的分类器

当样本空间不足或者特征都不太好用时候,可以加入第三方知识背景,但前提是你能得到这些信息,比如苹果是妈妈拿到桌子上的,鼠标是自己拿到桌子上的,如果我们的机器捕捉到,这个物体是自己拿出来的,所以更倾向于判定物体为鼠标。

模式识别种集中比较重要的技术:

回归分析

函数内插

概率密度估计

需要说明的是,机器感知的概念是很大,就像人工智能一样,是一个大方向,而我们更多的是在做这个大方向种的一块小小的工作。

本文的整体结构:

模式识别系统

结合我少量的工作经验,模式识别系统是我们主要的,要设计算法的地方,整个系统的难点,但是相信我设计循环,也就是下一部分才是工作量最大的地方。

首先来看模式识别系统一般的整体结构和工作流程:

接下来详细的介绍下识别系统的各部分,其实这些如果做过一次模式识别程序的人,基本都有做过这些步骤,比较通用的一种系统结构。首先是信号的获取,无论是光学信号,电信号,声音信号,还是力学信号,输入到计算机,那么必须要采样,或者叫做采集,于是必须使用传感器,通过采集后的信号混有噪声和干扰信号,分割后,我们提取我们关心的信号,去除不关心的或者少部分比较关心的信号,选择可靠的特征,进行分类,最后根据分类结果进行决策。

1)传感器:传感器是对信号进行采集的设备,可以根据具体问题选择,本系列不研究硬件采集设备,但必须要知道的是,大部分信号噪声是这里产生的,而且只要有采样就有信息损失,这是无法避免的。

2)分割器,这是模式识别系统里面最深层的问题之一,也是最难解决的环节,这个环节的成败和效果对分类结果会产生直接影响,分割其实是组织结构学中的一个问题,也就是我们更关心数据集合中的一个子集,而如何不偏不倚的得到这个子集,是一个很困难的问题。如何找到一张图片中的人脸,直接决定了识别这个人脸是谁的结果,如果一张草原上的人的图片,分割的结果是两个羊驼的脸,想识别出这个脸的身份肯定没戏。而人类的视觉就具有这种不可思议的功能,仔细思考,真的太神奇了。

3)特征提取,特征提取和分类器之间界限不是很清楚,因为有时候不用提取特征也可以进行分类,或者如果你的分类器已经进化到一定阶段以后,可以完全对输入信号进行准确分类,而不需复杂的特征提取过程,但是这里讲特征提取拎出来讲的原因,是我们更希望有这样一个部分使得,同类信号进行分类时其信号特征非常相近,而不同类之间的信号特征尽可能远离,而且更重要的一点是,计算出来的特征,对非类别变化的其他变化不敏感(翻译通俗一点就是,一个苹果这么旋转,怎么切,怎么咬,它计算出来的特征值都应该不变,或者还是更接近苹果那一类,而不是鼠标),特征提取面向问题,不同的问题,有不同的解决办法。

4)分类器:未来我们主要研究的是分类器,这个器的主要功能就是特征提取后或者直接对输入信号进行分类,此处进行后信息会被压缩很多,比如判断鼠标和苹果,如果用图像的话,一张640X480的灰度图(8 bits),共有,8bits×640×480位的信号,而压缩后的信号只有,是苹果,是鼠标,即只有1Bits。 分类器主要面对的挑战是信号的波动,同类之间的波动,和不同类之间的波动,或者有可能出现信号的丢失,各种各样的问题。

5)后处理主要要考虑的是代价函数,或者叫做损失函数,或者根据上下文的一些信息,进行最后的决断。

这里必须要明确的一个事情就是,千万别想一次,一个简单的处理就能解决模式识别问题,这是一个环环紧扣的复杂系统,所以怕麻烦或者不愿意深入研究只想了解一些皮毛去应付什么的话,这里真的不好混。

设计循环

设计循环,这个项目进行的循环过程,一个痛苦的过程,不过每次痛苦都是进化,来看看我们的进化路线:

好吧,说说我的痛苦经历,采集数据是最痛苦的,首先必须准备好资金,因为你面临着选择传感器和传感系统的问题,最简单的,做视觉都知道相机的重要性,以及场景的光线,背景等,这些理论上在设计阶段都是可控的,但必须要考虑到你目前问题的规模和你的自己预算,这部分成本必须要考虑到,不然就只能做点简单的设计,想要得到好的结果,这部分不可避免,而且有一些是从算法或者其他后处理解决不了的。而且,数据采集的工作远大于其他部分!!

特征选择相对来说更加偏向设计,也是比较考察个人的先验知识,对整个问题的把握,这部分以及下一部分选择模型都是对知识的应用以及对知识了解的程度来决定好坏的,所以要多研究理论,然后这个时候就可以让理论大显神通了,切记不要一个个的试(这种方法叫做穷举,当使用这种方法进行破解的时候,叫做暴力破解,我以前的组长,高级工程师,高级项目经理,资深员工,不知道穷举啥意思,这里给他科普一下,不过他估计没时间看技术博客,应该是去做周报去了),所有这些选择模型和特征,都来自基础知识的运用,加上个人的灵感以及对问题的理解,这个是要重点修炼的地方。书上也重点强调了选择的重要性,但目前还没有一种通用的方法,帮我们做这些选择,这里真正的体现工程师的智慧和知识功底,只会跟着别人走的人只能叫干活的,而不是工程师!

训练模型就相对容易了,只是完成你的分类代码,让计算机飞快的计算你的算法, 这里也有一个问题就是计算量,如何降低学习过程的运算量(时间复杂度,空间复杂度),以及你目前的计算资源都是要考虑的,但是最近几十年的研究表明,基于样本的学习是设计分类器最有效的办法。

评价过程就是你对结果以及整个过程的接受与否,包括例如结果是否存在“过拟合”或者“欠拟合”的问题,计算过程时间复杂度的问题,这个过程对测试过程计算复杂度要求更苛刻一些,相比之下学习过程的复杂度要求更宽松,但也要追求高效。

学习和适应

这部分主要讲解学习算法的一些基础知识:

监督学习:给出分类结果,对模型进行优化是结果尽可能与给出的分类结果一致

非监督学习:不给出结果,算法根据规则自由发挥,产生若干个类别

强化学习:与监督学习不同,其结果不是给出是否分类正确,而是给出离正确结果的距离是多少,然后再进行循环优化

总结

虽然问题很复杂,也很多,但我们已经知道,这些问题必然能解决,解决问题的方法就在你的脑子里,其次最近的数学相关理论已经发展起来了,最后,还有更多令人激动的问题等待的我们去解决。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-15 07:13:27

模式分类 绪论的相关文章

模式分类 学习规划

出于尊重文章作者的劳动,转载请标明本文出处:http://blog.csdn.net/tonyshengtan ! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 学习图像处理系列已经有一段时间了,对基础的图像处理算法也有一定了解,因为想要进一步研究计算机视觉方向,所以模式分类是必然要学习的知识,本系列的博客将不包括机器学习类算法,机器学习类算法将在另外一个系列详细介绍. 刚才简单了解了下模式识别和模式分类的区别,其中模式识别的主要任

【数据挖掘导论】——绪论

数据挖掘导论读书笔记之绪论 数据挖掘的前提:数据收集和数据存储技术的快速进步. 数据挖掘是一种技术,它将传统的数据分析方法与处理大量数据的复杂算法相结合.为探查和分析新的数据类型以及用新方法分析就有数据类型提供了令人振奋的机会. 数据挖掘是在大型数据存储库中,自动的发现有用信息的过程. 数据挖掘与知识发现 数据挖掘是数据库中知识发现不可缺少的一部分(knowledge deiscovery in database)KDD,KDD是将未加工的数据转换为有用信息的整个过程. 输入数据:输入各种形式存

数据结构学习之一绪论和基本概念

结束了常用设计模式的学习,有空的话我会把剩下的几个模式发布上来,下一步计划就是关于数据结构方面和源码的学习,每天给自己安排了计划,希望自己能如期执行 这一篇文章全部是关于我对数据结构理论的整理和个人见解,参考的是资料是<数据结构(Java语言描述)>,清华大学出版社 的教科书,我不是科班毕业,这本书是我今年端午节在南师大附近淘到的,感觉还不错 言归正传,上正式内容 package com.hola.data.structure; /** * * @author Dougest 2017年7月3

数据挖掘原理学习笔记【1】 绪论

学习绪论,可以让我们从大方向上对一本书有一个总体的把握,从一定的高度俯瞰过后,才能更加清楚每个小部分的意义所在. 即使是绪论,也是有干货的! 1.1 数据挖掘简介 本书中采用如下的数据挖掘定义:数据挖掘就是对观测到的数据集(经常是很庞大的)进行分析,目的是发现未知的关系和以数据拥有者可以理解并对其有价值的新颖方式来总结数据. 上面定义中所说的“观测到的数据”,是与“实验得到的”数据相对而言的,一般来说数据挖掘所处理的数据都是为了其他某个目的已经收集好的,是“顺便的”或者“机会的”样本,而不是为了

算法绪论

1.什么是算法?DSA(Data Structure And Algorithm) 正确.确定.可行.有穷的过程. 2.什么是好的算法? a.正确(语法正确,编译连接,正确处理任意合法输入) b.健壮(处理不合法输入) c.可读 d.效率 3.怎么分析算法? To measure is to know,if you can not measure,you can not improve it. a.正确性(difficult) b.成本:时间.空间,多数情况下只关心最坏情况 多数情况下,和数据规

构建之法读后感----第1章 绪论

首先,文章对于程序.用户需求.工程等等概念用了阿超给儿子编写的一个出题程序来分别解释了个中的含义,尤其是程序和工程的区别,程序大概就是用很多语言或工具编写的一个简单能实现目标要求的一行行代码,而工程就是在这个程序的基础上不断满足用户的需求.修复程序的bug.提供后续维护等服务. 需求分析:梳理需求,逐步展开后续工作,如设计(软件架构).实现(写数据结构和算法),测试,发布软件 软件=程序+软件工程(软件企业=软件+商业模式) 软将工程的核心部分:构建管理.源代码管理.软件设计.软件测试.项目管理

①《计算机科学导论》之绪论

1.图灵模型 程序是用来告诉计算机对数据进行处理的指令集合. 什么是数据处理器? (1)可编程数据处理器 (2)通用图灵机 2.冯·诺依曼模型 基于通用图灵机建造的计算机都是在存储器中存储数据.冯·诺依曼模型指出,鉴于程序和数据在逻辑上是相同的,因此程序也能存储在计算机的存储器中. (1)4个子系统 基于冯·诺依曼模型建造的计算机分为4个子系统:存储器.算术逻辑单元.控制单元和输入/输出单元. (2)存储形式 现代计算机的存储单元主要用来存储程序及响应数据.实际上它们都是以位模式存储在内存中.

编译原理学习笔记 -- 绪论1

1. 语言处理器 语言处理系统 _________ 经过预 _______ 源程序 --> |预处理器| --> 处理的 --> |编译器| --> 目标汇编程序 -------- 源程序 ------- _______ 可重定位的 ______________ --> |汇编器| --> 机器代码 --> |链接器/加载器| --> 目标机器代码 ------- -------------- ↑ 库文件/可重定位对象文件 预处理器:把源程序聚合在一起,并宏

数据结构与算法绪论

安装opencv2.0 解压OpenCV-2.0.0.tar.bz2 tar xvf OpenCV-2.0.0.tar.bz2 配置 ./configure --host=arm-linux \ --without-carbon \ --without-quicktime \ --without-1394libs \ --without-ffmpeg \ --without-python \ --without-swig \ --without-gtk \ --enable-static \ -