opencv 模式识别学习
机器学习算法汇总:人工神经网络、深度学习及其它
http://www.csdn.net/article/2014-06-27/2820429
十种深度学习算法要点及代码解析
http://www.tuicool.com/articles/6RNFveU
关于LeftNotEasy《机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)》中的公式问题
http://blog.csdn.net/eviljoseph/article/details/52351403
8种常见机器学习算法比较
http://www.leiphone.com/news/201608/WosBbsYqyfwcDNa4.html
机器学习系列(4)_机器学习算法一览,应用建议与解决思路
http://blog.csdn.net/han_xiaoyang/article/details/50469334
机器学习&数据挖掘笔记
http://www.cnblogs.com/tornadomeet/p/3395593.html
视觉算法,大致步骤:
特征感知,
图像预处理,
特征提取,
特征筛选,
推理预测与识别
模式识别(Pattern Recognition)
机器学习(Machine Learning)
机器学习开始显现出几个局限:
1)最优的机器学习算法选择
2)高维度的特征的处理
3)大规模的计算
深度学习(Deep Learning)
解决机器学习的三个局限,目标是通过一个框架能够准确、高效的让计算机发现数据中隐藏的规则,从而完成基于大数据的高性能计算。
模式识别
Pattern Recognition又称模式分类、图形识别, 是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,
是信息科学和人工智能的重要组成部分(通过计算机用数学技术方法来研究模式的自动处理和判读)。
模式识别主要是对图片、照片、符号、生物传感器等对象的具体模式进行辨识和分类(模式的具体形式,模式还可分抽象形式。如意识、思想、议论等属于概念识别研究范畴,是人工智能的另一研究分支)
模式:
指环境与客体的统称,每一种外界事物都可以看作是一种模式
模式识别的两个重要方面:
光学信息(通过视觉器官来获得)识别
声学信息(通过听觉器官来获得)识别。
应用:
文字识别
语音识别
遥感图像识别
–已广泛用于农作物估产、资源勘察、气象预报和军事侦察
生物认证
数字水印
医学诊断
–癌细胞检测、X射线照片分析、血液化验、染色体分析、心电图诊断和脑电图诊断等方面
指纹识别
–指纹识别基本上可分成:预处理、特征选择和模式分类几个大的步骤
人脸检测
表情识别
手势识别
图像信息检索
数据挖掘等
模式识别方法
决策理论方法:
又称统计方法
1、预处理
除去混入的干扰信息并减少某些变形和失真
2、特征抽取
输入模式从对象空间映射到特征空间,模式可用特征空间中的一个点或一个特征矢量表示。
(特征:是选定的一种度量,它对于一般的变形和失真保持不变或几乎不变,并且只含尽可能少的冗余信息)
3、分类
即从特征空间再映射到决策空间。引入鉴别函数,由特征矢量计算出相应于各类别的鉴别函数值,通过鉴别函数值的比较实行分类
句法方法:
又称结构方法或语言学方法
统计模式识别:
主要方法有:判别函数法,近邻分类法,非线性映射法,特征分析法,主因子分析法等
统计模式识别中:
贝叶斯决策规则从理论上解决了最优分类器的设计问题,但其实施却必须首先解决更困难的概率密度估计问题。
BP神经网络直接从观测数据(训练样本)学习,是更简便有效的方法,但它是一种启发式技术,缺乏指定工程实践的坚实理论基础。
统计推断理论研究所取得的突破性成果导致现代统计学习理论——VC理论的建立,导出了一种新的学习方法——支持向量机(SVM)。
模式识别技术与概率和统计分析密不可分,所以在设计分类器之前,首先要准备好大量的、周全的、能够覆盖各种情况的训练样本和测试样本,
然后对训练样本进行统计分析,分析样本的特点,分析样本的特征值分布规律,得到各种统计数据,最后再来确定模式识别的方法,
测试样本用来检验分类器的合理性问题,根据测试样本测试出来的问题,需要返回去修改分类器,这是一个反复的过程,直至最后达到分类器的性能目标
典型的模式分类方法有线性分类器(感知器,Fisher判别)、非线性分类器(BP神经网络、RBF、SVM),现实场景中主要是非线性,贝叶斯、随机森林等
模式识别主要是无监督学习,有监督学习
监督式学习
工作机制:
这个算法由一个目标变量或结果变量(或因变量)组成。这些变量由已知的一系列预示变量(自变量)预测而来。
利用这一系列变量,我们生成一个将输入值映射到期望输出值的函数。这个训练过程会一直持续,直到模型在训练数据上获得期望的精确度
最常见的是回归regression & 分类classification。
预测结果如果是离散值(类别类型),分类问题(classification problem);
预测结果是连续值,回归问题(regression problem)
给定一组数据(input,target)为Z=(X,Y):
regression:
回归问题,Y是实数vector。回归问题,就是拟合(X,Y)的一条曲线,使得下式cost function L最小
回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法
回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,
回归还有很多的变种,如locally weighted回归,logistic回归。
拟合
是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点;
插值
是找到一个(或几个分片光滑的)连续曲面来穿过这些点
插值和拟合都是函数逼近或者数值逼近的重要组成部分
classification:
Y是一个finite number,可以看做类标号,分类问题需要首先给定有label的数据训练分类器,分类问题中,cost function L(X,Y)是X属于类Y的概率的负对数
回归、决策树、随机森林、K–近邻算法、逻辑回归 SVM
生成模型与判别模型
生成模型
生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:
P(Y|X)=P(X,Y)/P(X)
模型表示了给定输入X产生输出Y的生成关系。
典型的生成模型有:朴素贝叶斯方法和隐马尔可夫模型。
生成模型能够还原出联合概率分布P(X,Y);生成模型的收敛速度快,当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;
当存在隐变量时,仍可以使用生成学习方法,此时判别方法就不能用。
判别模型
判别方法由数据直接学习决策函数f(x)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。
判别模型直接面对预测,往往学习的准确率越高。可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题
典型的判别模型包括:k近邻法、感知机、决策树、logistic回归模型、最大熵模型、支持向量机、提升方法和条件随机场。
半监督式学习
输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,
但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。应用场景包括分类和回归,
算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,
在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM)。
非监督式学习
工作机制:在这个算法中,没有任何目标变量或结果变量要预测或估计。这个算法用在不同的组内聚类分析
目的是学习一个function f,使它可以描述给定数据的位置分布P(Z):
density estimation就是密度估计,估计该数据在任意位置的分布密度
clustering就是聚类,将Z聚集几类(如K-Means),或者给出一个样本属于每一类的概率。不需要事先根据训练数据去train聚类器。
聚类算法(Clustering Algorithms):
k-Means
Hierarchical Clustering
Expectation Maximisation (EM)
PCA和很多deep learning算法都属于无监督学习
关联算法和 K–均值算法
强化学习
工作机制:机器被放在一个能让它通过反复试错来训练自己的环境中。机器从过去的经验中进行学习,并且尝试利用了解最透彻的知识作出精确的判断
马尔可夫决策过程,常见算法包括Q-Learning以及时间差学习(Temporal difference learning)
分类和聚类:
分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类。分类器的构造方法有统计方法
、机器学习方法、神经网络方法等
聚类是指事先没有“标签”而通过某种特性分析找出事物之间存在聚集性原因的过程。
区别:
分类是事先定义好类别 ,类别数不变 。分类器需要由人工标注的分类训练得到,属于监督学习。
聚类则没有事先预定的类别,类别数不确定。 聚类不需要人工标注和预先训练分类器,类别在聚类过程中自动生成 。
适用场景:
分类适合类别或分类体系已经确定的场合
聚类则适合不存在分类体系、类别数不确定的场合,一般作为某些应用的前端
泛化误差可以分解为偏差、方差与噪声之和
泛化能力是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。
给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小
常用的机器学习算法:
线性回归
逻辑回归
决策树
SVM
朴素贝叶斯
K最近邻算法
K均值算法
随机森林算法
降维算法
Gradient Boost 和 Adaboost 算法
典型的模式识别系统主要分为四个部分:
对原始数据的获取和预处理,特征提取与特征选择,分类或聚类,后处理
模式识别的关键:
1、特征提取
无法用具体特征描述的分类问题,存在两种主流的处理方式:
直接把图像送给分类器
由机器根据样本自己决定特征的取舍(Deep Learning SVM)
2、分类器
K-Nearest Neighbor
K-NN K近邻分类法,一种最直接的用来分类未知数据的方法
Bayes Classifier
贝叶斯方法,一个是prior先验概率,multivariate正态分布拟合,后验概率post,置信度evidence(一个让最后post归一化的东西)
Principle Component Analysis
PCA主元分析或者主成份分析,是一种很好的简化数据的方法
PCA简而言之就是根据输入数据的分布给输入数据重新找到更能描述这组数据的正交的坐标轴,核心思想就是把方差最小的那些特征排除掉