AI:模式识别的数学表示(集合—函数观点)
前言:
模式识别的定义,参考:模式识别两种方法:知识和数据 。百科定义:模式识别(英语:Pattern Recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。我们把环境与客体统称为“模式”,此处我们称环境与客体的关系为模式。
然而危机百科。wiki百科。模式识别怎么能归到机器学习里面呢?人也可以进行模式识别的,语法系统-专家系统也可以进行模式识别的。
一、函数映射:单射、双射与满射
参考书籍:《计算机科学中的离散结构》 188页
数学上,单射、满射和双射指根据其定义域和陪域的关联方式所区分的三类函数。
- 单射:指将不同的变量映射到不同的值的函数。
- 满射:指陪域等于值域的函数。即:对陪域中任意元素,都存在至少一个定义域中的元素与之对应。
- 双射(也称一一对应):既是单射又是满射的函数。直观地说,一个双射函数形成一个对应,并且每一个输入值都有正好一个输出值以及每一个输出值都有正好一个输入值。
(在一些参考书中,“一一”用来指双射,但是这里不用这个较老的用法。)
下图对比了四种不同的情况:
双射(单射与满射)
单射但非满射
满射但非单射
非满射非单射
单射(one to one或injective)
一个函数称为单射(一对一)如果每个可能的像最多只有一个变量映射其上。等价的有,一个函数是单射如果它把不同值映射到不同像。一个单射函数简称单射。形式化的定义如下。
- 一个函数f : A → B是单射当且仅当A是空的或f是左可逆的,也就是说,存在一个函数g: B → 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为双射当且仅当其可逆,即,存在函数g: B → A满足g o f = A上的恒等函数,且f o g为B上的恒等函数。
- 两个双射的复合也是双射。如g o f为双射,则仅能得出f为单射且g为满射。见右图。
- 同一集合上的双射构成一个对称群。
- 如果皆为实数,则双射函数可以被视觉化为两根任意的水平直线只相交正好一次。(这是水平线测试的一个特例。)
函数的势
双射函数经常被用于表明集合X和Y是等势的,即有一样的基数。如果在两个集合之间可以建立一个一一对应,则说这两个集合等势。
如果皆为有限集合,则这两个集合中之间存在一个双射,当且仅当X和Y的元素数相等。其实,在公理集合论中,元素数相同的定义被认为是个特例,一般化这个定义到无限集合需要导入基数的概念,这是一个区别各类不同大小的无限集合的方法。
举例
对于每个函数给定定义域和陪域很重要,因为改变这些就能改变函数属于什么射。
双射
单射、但非满射
- 指数函数
满射、但非单射
- 指数函数的反向映射
即非单射也非满射
二、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:模式识别的数学表示(集合—函数观点)的更多相关文章
- 个人永久性免费-Excel催化剂功能第46波-区域集合函数,超乎所求所想
在常规自定义函数的世界中,一般情况下,仅会输入一堆的参数,最终输出一个结果值,在以往Excel催化剂的自定义函数,已经大量出现输入一堆参数返回多个结果值并自动输出到多个单元格区域内.此项技术可运用的场 ...
- SQL集合函数中利用case when then 技巧
我们都知道SQL中适用case when then来转化数据库中的信息 比如 select (case sex when 0 then '男' else '女' end) AS sex from ...
- 集合函数AVG,SUM,MAX,MIN
需要计算这些值的平均值.使用函数AVG(),你可以返回一个字段中所有值的平均值. 假如你对你的站点进行一次较为复杂的民意调查.访问者可以在1到10之间投票,表示他们喜欢你站点的程度.你把投票结果保存在 ...
- MySQL之集合函数与分组查询
这是分组查询用到的语句,也包括了排序以及常用的集合函数
- Django之集合函数使用与mysql表的创建特殊字段分析
1. 集合函数的使用场景: -- 单独使用: 不分组, 只查聚合结果 -- 分组使用: 按字段分组, 可查询分组字段与聚合结果 2. 导入聚合函数 from django.db.models impo ...
- oracle开发学习篇之集合函数
集合函数; declare type list_nested ) not null; v_all list_nested := list_nested('changan','hubei','shang ...
- 转 SQL集合函数中利用case when then 技巧
SQL集合函数中利用case when then 技巧 我们都知道SQL中适用case when then来转化数据库中的信息 比如 select (case sex when 0 then '男' ...
- Python 数学运算的函数
不需要导入模块(内置函数) 函数 返回值 ( 描述 ) abs(x) 返回绝对值 max(x1, x2,...) 最大值,参数可以为序列. min(x1, x2,...) 最小值,参数可以为序列. p ...
- 9.集合set和frozenset冻结集合函数
集合set set和dict类似,也是一组key的集合,但不存储value.由于key不能重复,所以在set中没有重复的key. 集合中的元素要求是不可变的并且还是唯一的,我们就利用它是唯一来做去重. ...
随机推荐
- Java基础学习总结(42)——Log4j 2使用教程
1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以了(xx是乱七八糟的版本号): log4j-core-xx.jar log4j-api-xx.jar 2. 导入到 ...
- CodeForcesGym 100735G LCS Revised
LCS Revised Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on CodeForcesGym. O ...
- CodeForcesGym 100735D Triangle Formation
Triangle Formation Time Limit: Unknown ms Memory Limit: 65536KB This problem will be judged on CodeF ...
- [Bzoj4196] [NOI2015] 软件包管理器 [树链剖分,线段树]
题解摘要:树链剖分后用线段树区间查询修改,对于安装软件,将改点到根的路径全部变为1,对于卸载软件,将子树清空.注意边界,编号是从0开始的,容易漏掉树根. 第一次写树剖- #include <io ...
- nyoj_88_汉诺塔(一)_201308201730
汉诺塔(一)时间限制:1000 ms | 内存限制:65535 KB难度:3描述在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创 ...
- ZooKeeper可视化Web管理工具收集(待实践)
原来ZooKeeper是有Web管理后台的.但是仅限于操作ZooKeeper的数据,如果要监控性能,估计要借助Nagios去配合. 这些工具应该ZK UI最好用,下面是收集的一些工具安装教程: htt ...
- 豆瓣 jsonp 请求数据 并分页
豆瓣分页 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4 ...
- HDU 5225
求逆序的个数.首先处理出对n个数它所有排列的逆序的个数.然后,按位枚举,当枚举的数少于当前位,逆序数的个数就是前面确定的数对于后面数的逆序总数+后面k个数的排列的逆序总数. 1Y. #include& ...
- poj 3468 A Simple Problem with Integers(线段树+区间更新+区间求和)
题目链接:id=3468http://">http://poj.org/problem? id=3468 A Simple Problem with Integers Time Lim ...
- 【原创】TCP超时重传机制探索
TCP超时重传机制探索 作者:tll (360电商技术) 1)通信模型 TCP(Transmission Control Protocol)是一种可靠传输协议.在传输过程中当发送方(sender)向接 ...