Intro

笔记作者:BrickLoo

认识模式识别

“模式识别”是什么?

  • 人能够从复杂的环境中感知并辨认“模式”,于是我们希望机器也能像人一样识别这些“模式”,因此有了这门学科。
  • 具体来说,人们希望机器能像人类一样:
    • 观察感知环境;
    • 筛选出感兴趣的“模式”;
    • 根据识别到的“模式”类别做出合理决策;

“模式”是什么?

  • 是可以以某种方式定义的实体(entity),或者说是一系列度量指标描述的抽象物体,是“混乱”、“无序”等含义的反面。

A pattern is the opposite of chaos; it is an entity, vaguely defined, that could be given a name.
A pattern is an abstract object, such as a set of measurements describing a physical object.

“模式识别”的实现方式?

  • 根据自然原理仿生实现
  • 使用纯数学方式实现

模式识别的工作流程

感知 Sensing

  • 将物体转换成机器可以感知的数字格式。
  • 可能存在的问题有:
    • 光照条件/信号强度;
    • 物体在整体中的位置;
    • 传感器得到的噪声;
    • ……

预处理 Pre-processing

  • 提炼数据。
  • 可能包括的步骤有:
    • 区分出需要识别的对象(segmentation);
    • 去除噪声;
    • ……

特征提取 Feature Extraction

  • 寻找能用于区分不同类别的特征。
  • 将多种特征组合评估往往能得到更准确的结果,但是需要注意:
    • 避免不可靠的特征;
    • 注意与现有特征的相关性;
    • 权衡计算成本;
    • 可能引入更多的噪声;

分类 Classification

  • 根据特征进行分类。
  • 常见的方法包括:
    • 支持向量机;
    • 决策树;
    • 神经网络;
    • ……

后处理 Post-processing

  • 通常包括:
    • 评估决策置信度;
    • 结合上下文以提高性能;
    • 结合其他专家系统;

模式识别问题的主要设计步骤

数据收集 Data Collection

  • 训练样本和测试样本的收集。
  • 通常需要关注:
    • 样本的质量如何;
    • 样本是否具有代表性;
    • 时间或其他成本的相关约束;
    • ……

特征选择 Feature Selection

  • 结合相应领域的先验知识选择合适的样本判别特征(相似模式的相似值和不同模式的不同值)。
  • 通常需要关注:
    • 计算成本和可行性;
    • 特征的稳定性如
      • 对于平移、旋转和缩放的不变性;
      • 对于遮挡、扭曲、变形和环境变化的鲁棒性;
    • ……

模型选择 Model Selection

  • 结合相应领域的先验知识选择合适的模型。
  • 通常需要关注:
    • 模型的复杂度是否合适;
    • 如何处理缺失的特征;
    • ……

训练 Training

  • 从训练样本中学习相关知识(包括但不限于合适的模型参数)。
  • 方式通常包括:
    • 监督学习 Supervised Learning
      • 从输入数据和对应类别标签中学到分类的映射方式;
    • 无监督学习 Unsupervised Learning
      • 无类别标签,仅通过输入数据学会分类和降维(进行分类可视化);
    • 半监督学习 Semi-Supervised Learning;
      • 仅部分数据拥有可知的类别标签;
    • 强化学习 Reinforcement Learning;
      • 交互具有奖惩制度,学习如何交互才能最大化收益;
    • 学习理论 Learning Theory;
      • 研究机器学习的底层原理、性能边界的理论值、函数的算法表达、需求的样本数据量等等;
    • 深度学习 Deep Learning;
      • 多层神经网络的学习,可以从模型算法、并发速度、模型体量(同时更大的数据量)等角度改进;

评估 Evaluation

  • 判断模型是否具有较好的泛化性,避免过拟合。
  • 为了避免测试集的选择有运气成分,评估方式通常包括:
    • 多次独立试验 Independent Run / Bootstrap
      • 每一次随机采样出不同的训练集和测试集部分,使用相同的模型进行多次训练,观察平均性能;
    • 交叉验证 Cross-validation
      • 在 M 折交叉验证中,将数据集平均划分为 M 份,每次留出一份作为测试集,其余用来训练,重复 M 次,观察平均性能;