前言

模式识别的定义,参考:模式识别两种方法:知识和数据 。百科定义:模式识别(英语:Pattern Recognition),就是通过计算机数学技术方法来研究模式的自动处理和判读。我们把环境客体统称为“模式”,此处我们称环境与客体的关系为模式。

然而危机百科。wiki百科。模式识别怎么能归到机器学习里面呢?人也可以进行模式识别的,语法系统-专家系统也可以进行模式识别的。

一、函数映射单射、双射与满射

参考书籍:《计算机科学中的离散结构》 188页

数学上,单射满射双射指根据其定义域陪域的关联方式所区分的三类函数

  • 单射:指将不同的变量映射到不同的值的函数。
  • 满射:指陪域等于值域的函数。即:对陪域中任意元素,都存在至少一个定义域中的元素与之对应。
  • 双射(也称一一对应):既是单射又是满射的函数。直观地说,一个双射函数形成一个对应,并且每一个输入值都有正好一个输出值以及每一个输出值都有正好一个输入值。
    (在一些参考书中,“一一”用来指双射,但是这里不用这个较老的用法。)

下图对比了四种不同的情况:

  • 双射(单射与满射)

  • 单射但非满射

  • 满射但非单射

  • 非满射非单射

单射(one to one或injective)

        单射复合:第二个函数不必是单射。

一个函数称为单射(一对一)如果每个可能的像最多只有一个变量映射其上。等价的有,一个函数是单射如果它把不同值映射到不同像。一个单射函数简称单射。形式化的定义如下。

函数 是单射 当且仅当对于所有, 我们有
  • 一个函数f : A → B是单射当且仅当A是空的或f是左可逆的,也就是说,存在一个函数gB → A 使得g o f = A上的恒等函数.
  • 因为每个函数都是满射当它的陪域限制为它的值域时,每个单射导出一个到它的值域的双射。更精确的讲,每个单射f : A → B可以分解为一个双射接着一个如下的包含映射。令fR : A → f(A)为把陪域限制到像的f,令i : f(A)
    → B为从f(A)到B中的包含映射.则f = i o fR. 一个对偶的分解会对满射成立。
  • 两个单射的复合也是单射,但若g o f是单射,只能得出f是单射的结论。参看右图。

满射(onto)

满射复合:第一个函数不必为满射

一个函数称为满射如果每个可能的像至少有一个变量映射其上,或者说陪域任何元素都有至少有一个变量与之对应。形式化的定义如下:

函数为满射当且仅当对任意,存在满足。
  • 函数为一个满射,当且仅当存在一个函数满足等于上的单位函数。(这个陈述等同于选择公理。)
  • 将一个满射的陪域中每个元素的原像集看作一个等价类,我们可以得到以该等价类组成的集合(原定义域的商集)为定义域的一个双射
  • 如果和皆为满射,则为满射。如果是满射,则仅能得出是满射。参见右图。

双射(bijective)

双射复合:第一个函数不必为满射、第二个函数不必为单射

既是单射又是满射的函数称为双射. 函数为双射当且仅当每个可能的像有且仅有一个变量与之对应。

函数为双射当且仅当对任意存在唯一满足。
  • 函数f : A → B为双射当且仅当其可逆,即,存在函数gB → A满足g o f = A上的恒等函数,且f o gB上的恒等函数。
  • 两个双射的复合也是双射。如g o f为双射,则仅能得出f为单射且g为满射。见右图。
  • 同一集合上的双射构成一个对称群
  • 如果皆为实数,则双射函数可以被视觉化为两根任意的水平直线只相交正好一次。(这是水平线测试的一个特例。)

函数的势

双射函数经常被用于表明集合XY是等的,即有一样的基数。如果在两个集合之间可以建立一个一一对应,则说这两个集合等势。

如果皆为有限集合,则这两个集合中之间存在一个双射,当且仅当X和Y的元素数相等。其实,在公理集合论中,元素数相同的定义被认为是个特例,一般化这个定义到无限集合需要导入基数的概念,这是一个区别各类不同大小的无限集合的方法。

举例

对于每个函数给定定义域陪域很重要,因为改变这些就能改变函数属于什么

双射

  • 任意集合上的恒等函数id为一双射。
  • 考虑函数,定义为。这个函数是双射,因为给定任意一个实数,我们都能解,得到唯一的实数解。
  • 指数函数 及其逆函数自然对数 。

单射、但非满射

  • 指数函数

满射、但非单射

  • 指数函数的反向映射

即非单射也非满射

二、PR的一个栗子

举个栗子:已通常的图像处理为例,若是二分类问题,比如识别出带皮的栗子和不带皮的栗子两种。

  问题描述:识别栗子是带皮的还是不带皮的。这是个二分类问题。

当然,我们人眼一眼就看出图中那些栗子是带皮的,哪些是不带皮的。

定义域X:所有带栗子的图片

这样的:

还有这样的:

       

当然,也有这样的:

还有这样的:

 

仔细看看,上面四张图片没有栗子,,超出定义域了,已经成为另外一个问题,不在讨论的范围,因此舍弃掉。

所以定义域是所有带栗子的图片。但是图片中有没有栗子,和栗子是带皮的还是不带皮的,这是两个问题。我们假设已经检测到栗子,且把栗子的框全部标记下来,相当于已经抠图。

  值域Y:bool表达式 {Yes-带皮的栗子,No-不带皮的栗子}。一般形式化为{1,-1} 或{1,0}。

栗子的是否带皮的模式识别问题:

f( x ) = { X——>Y }|{  X = 所有栗子的图片,Y={ 1-带皮, 0-不带皮 }  }

函数 f(x)即栗子图片二分类问题的模式。f(x)是一个单射,一个可能的定义 Xi 映射且映射到到一个像 Yi 上。

PR的一般形式

PR问题是一个根据模式分析的定义X,和模式的种类Y,来确定函数
f( x ) = { X——>Y },其中f(x)是一个单射。

即一般要求:栗子不能同时是有皮的,但同时又是无皮的,模式的种类保持排他性,即模式为划分而不是覆盖,且一般为原子模式。

疑问:遇到包裹了一半皮的栗子怎样?这好像超出了栗子图片的定义域。如果希望解决,可以扩充模式的值域使Y={
1-带皮, 0-带部分皮 , -1-不带皮} 
,这已经与原来的问题不是一个问题。

三、模式函数映射

模式函数是一个从问题定义域到模式值域的一个单射。

从简单的贝叶斯方法,到只能支持二分类的原始支持向量机,到十几个类的分类上最好用的随机森林方法,到可以支持ImageNet上海量1860个类且分类精度极高的InceptionV4(参考:CNNhttp://blog.csdn.net/wishchin/article/details/45286805),其模式函数为

f( x ) = { X——>Y }|{  X = ImageNet的图片,Y={ 1860个类的标记 }  }

是一个单射函数。 普遍情况下,定义域小于值域,模式函数成为一个hash函数

图像处理IP的模式识别

以ImageNet为例,模式识别的定义域为{ X = ImageNet的图片  },不管有多少张图片,这些图像分布在 2维欧式空间(也称为2维张量空间)的 L1*L2(L1维向量空间和L2维向量空间乘积,但两个向量空间不再一个欧式空间内)的长宽的图片集,而值域Y={
1860个类的标记 } 为0维欧式空间甚至向量空间中的离散个点上,即把定义域中浩瀚的二维图片使用模式函数 
f( x ) 压缩到 0维向量空间中的离散个点上,此过程主要功能为降维,也称为压缩hash函数

所以图像处理的模式识别问题,是一个数学形式为降维hash的问题。参考:Reducing the Dimensionality of Data with Neural Networks:神经网络用于降维

语音识别NLP的模式识别

自然语言处理是语音识别的一个部分,并可以独立出来,也可以与图像处理结合,成为书面识别。书面图像识别是一个图像处理和模式识别问题,识别之后进行语义分析是NLP问题。

语音识别加语义识别为引入了时序分析问题。暂且抛开时序分析,单列NLP。

自然语言从底向上依次为 字母表-单词-句子-语义,其中链接关系为 词法-语法-语义。

其中词法分析即字母识别,对应了语音识别中的字母语音识别和图像处理中的图像字母识别。模式函数的最终值域为自然语言存在的N个字母。IP中的字母PR问题是以一般的是一个数学形式为降维hash的问题,生成有字母字符串。语音识别中的字母分析问题包含了音素分析,定义域为所有可能的语音音素组合,模式函数的值域仍为自然语言存在的N个字母,或者单音节字母组合;然后再解析为所有字母字符串。

语法分析和语义分析涉及到更复杂的模式分析,传统语法分析方法使用约定文法,现在流行的语法分析和语义分析是基于统计方法的语料分析,并取得了极高的分类识别精度。

对单词和字母编码,把字母和单词映射到整数集合上,也称为单词嵌入。参考文章:NLP:单词嵌入Word Embeddings。原文链接:http://blog.jobbole.com/77709/。把定义从字母和单词分布空间转化到整数集合,即1维张量空间中的N维向量空间,完成编码。

NLP数据集合:最好用的 AI 开源数据集(涵盖计算机视觉、NLP、语音等 6 大类)

对字母和单词编码后,开始了NLP的语法和语义模式识别问题。与图像处理与模式识别的方法将有很大区别,扯远了,到此为止。

AI:模式识别的数学表示(集合—函数观点)的更多相关文章

  1. 个人永久性免费-Excel催化剂功能第46波-区域集合函数,超乎所求所想

    在常规自定义函数的世界中,一般情况下,仅会输入一堆的参数,最终输出一个结果值,在以往Excel催化剂的自定义函数,已经大量出现输入一堆参数返回多个结果值并自动输出到多个单元格区域内.此项技术可运用的场 ...

  2. SQL集合函数中利用case when then 技巧

    我们都知道SQL中适用case when then来转化数据库中的信息 比如  select (case sex when 0 then '男' else '女' end) AS sex  from ...

  3. 集合函数AVG,SUM,MAX,MIN

    需要计算这些值的平均值.使用函数AVG(),你可以返回一个字段中所有值的平均值. 假如你对你的站点进行一次较为复杂的民意调查.访问者可以在1到10之间投票,表示他们喜欢你站点的程度.你把投票结果保存在 ...

  4. MySQL之集合函数与分组查询

    这是分组查询用到的语句,也包括了排序以及常用的集合函数

  5. Django之集合函数使用与mysql表的创建特殊字段分析

    1. 集合函数的使用场景: -- 单独使用: 不分组, 只查聚合结果 -- 分组使用: 按字段分组, 可查询分组字段与聚合结果 2. 导入聚合函数 from django.db.models impo ...

  6. oracle开发学习篇之集合函数

    集合函数; declare type list_nested ) not null; v_all list_nested := list_nested('changan','hubei','shang ...

  7. 转 SQL集合函数中利用case when then 技巧

    SQL集合函数中利用case when then 技巧 我们都知道SQL中适用case when then来转化数据库中的信息 比如  select (case sex when 0 then '男' ...

  8. Python 数学运算的函数

    不需要导入模块(内置函数) 函数 返回值 ( 描述 ) abs(x) 返回绝对值 max(x1, x2,...) 最大值,参数可以为序列. min(x1, x2,...) 最小值,参数可以为序列. p ...

  9. 9.集合set和frozenset冻结集合函数

    集合set set和dict类似,也是一组key的集合,但不存储value.由于key不能重复,所以在set中没有重复的key. 集合中的元素要求是不可变的并且还是唯一的,我们就利用它是唯一来做去重. ...

随机推荐

  1. springCloud学习-服务消费者(Feign)

    1.简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单.使用Feign,只需要创建一个接口并注解.它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解.Fei ...

  2. 20180828Zabbix3使用percona-zabbix-templates监控MySQL

    引用网址: http://blog.chinaunix.net/uid-16844903-id-3535535.html http://www.ywnds.com/?p=6199 https://ww ...

  3. [bzoj4385][POI2015]Wilcze doły_单调队列

    Wilcze doły bzoj-4385 POI-2015 题目大意:给定一个n个数的序列,可以将连续的长度不超过d的区间内所有数变成0,求最长的一段区间,使得区间和不超过p. 注释:$1\le n ...

  4. ZooKeeper的原理(转)

    一.ZooKeeper的角色 领导者(Leader),负责进行投票的发起和决议,更新系统状态. 学习者(Learner),包括跟随者(Follower)和观察者(Observer),Follower用 ...

  5. 大数据处理之道(实验方法<二>)

    一:交叉验证(crossvalidation)(附实验的三种方法)方法简单介绍   (1) 定义:交叉验证(Cross-validation)主要用于建模应用中,比如PCR(Principal Com ...

  6. UVA LIVE 7146 Defeat the Enemy

    这个题跟codeforces 556 D Case of Fugitive思路一样 关于codeforces 556 D Case of Fugitive的做法的链接http://blog.csdn. ...

  7. Getting Installation aborted (Status 7) ApplyParsePerms: lsetfilecon of /syst...【转】

    OTA升级失败:原文http://en.miui.com/thread-112197-1-1.html Do you get this "Status 7" error in Re ...

  8. C++ Web 编程(菜鸟教程)

    C++ Web 编程(菜鸟教程) C++ Web 编程 什么是 CGI? 公共网关接口(CGI),是一套标准,定义了信息是如何在 Web 服务器和客户端脚本之间进行交换的. CGI 规范目前是由 NC ...

  9. System.IO.Path 操作

    System.IO.Path 分类: C#2011-03-23 10:54 1073人阅读 评论(0) 收藏 举报 扩展磁盘string2010c System.IO.Path提供了一些处理文件名和路 ...

  10. bzoj1699

    st表 我还不会st表 f[i][j]表示[i,i+2^j)区间的最值 构造就像lca一样f[i][j]=f[i][j-1] f[i][j]=max(f[i][j-1],f[i+(1<<( ...