《深入浅出OCR》前言知识:机器学习基础(一)

2,106 阅读15分钟

⚠️本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!

image.png

专栏介绍: 经过几个月的精心筹备,本作者推出全新系列《深入浅出OCR》专栏,对标最全OCR教程,具体章节如导图所示,将分别从OCR技术发展、方向、概念、算法、论文、数据集等各种角度展开详细介绍,本篇为前言知识部分分为多个章节,主要介绍机器学习基础,方便小白或者AI爱好者快速学习基础知识,具体内容可能未能含概所有知识点,其他内容可以访问本人主页其他文章或个人博客,因本人水平有限,文中如有错误恳请指出,欢迎互相学习交流!

💙个人主页: GoAI |💚 公众号: GoAI的学习小屋 | 💛交流群: 704932595 |💜个人简介 : 掘金签约作者、百度飞桨PPDE、领航团团长、开源特训营导师、CSDN、阿里云社区人工智能领域博客专家、新星计划计算机视觉方向导师等,专注大数据与人工智能知识分享。

文章目录

《深入浅出OCR》前言知识:机器学习基础(一)(本篇)

《深入浅出OCR》前言知识:机器学习基础(二)


《深入浅出OCR》前言知识:机器学习基础(一)

一、机器学习概念

image.png

机器学习(Machine Learning, ML),顾名思义,让机器去学习。这里,机器指的是计算机,是算法运行的物理载体,你也可以把各种算法本身当做一个有输入和输出的机器。对于一个任务及其表现的度量方法,设计一种算法,让算法能够提取中数据所蕴含的规律,这就叫机器学习。如果输入机器的数据是带有标签的,就称作有监督学习。如果数据是无标签的,就是无监督学习。

1.1什么是机器学习?

机器学习=寻找一种函数

1.2如何寻找这个函数?

①定一个函数集合

②判断函数的好坏

③选择最好的函数

1.3机器学习三板斧

①设计模型model

②判断模型的好坏

③选择最好的函数,优化模型

二、常见机器学习算法:

2.1 机器学习算法分类简单介绍:

1、监督学习(SupervisedLearning):有类别标签的学习,基于训练样本的输入、输出训练得到最优模型,再使用该模型预测新输入的输出;

代表算法:决策树、朴素贝叶斯、逻辑回归、KNN、SVM、神经网络、随机森林、AdaBoost、遗传算法;

2、半监督学习(Semi-supervisedLearning):同时使用大量的未标记数据和标记数据,进行模式识别工作;

代表算法:self-training(自训练算法)、generative models生成模型、SVMs半监督支持向量机、graph-basedmethods图论方法、 multiviewlearing多视角算法等;

3、无监督学习(UnsupervisedLearning):无类别标签的学习,只给定样本的输入,自动从中寻找潜在的类别规则;

代表算法:主成分分析方法PCA等,等距映射方法、局部线性嵌入方法、拉普拉斯特征映射方法、黑塞局部线性嵌入方法、局部切空间排列方法等;

4、HOG特征:全称Histogram of Oriented Gradient(方向梯度直方图),由图像的局部区域梯度方向直方图构成特征;

5、LBP特征:全称Local Binary Pattern(局部二值模式),通过比较中心与邻域像素灰度值构成图像局部纹理特征;

6、Haar特征:描述图像的灰度变化,由各模块的像素差值构成特征;

7、核函数(Kernels):从低维空间到高维空间的映射,把低维空间中线性不可分的两类点变成线性可分的;

8、SVM:全称Support Vector Machine(支持向量机),在特征空间上找到最佳的超平面使训练集正负样本的间隔最大;是解决二分类问题的有监督学习算法,引入核方法后也可用来解决非线性问题;

9、Adaboost:全称Adaptive Boosting(自适应增强),对同一个训练集训练不同的弱分类器,把这些弱分类器集合起来,构成一个更强的强分类器;

10、决策树算法(Decision Tree):处理训练数据,构建决策树模型,再对新数据进行分类;

11、随机森林算法(Random Forest):使用基本单元(决策树),通过集成学习将多棵树集成;

12、朴素贝叶斯(Naive Bayes):根据事件的先验知识描述事件的概率,对联合概率建模来获得目标概率值;

13、神经网络(Neural Networks):模仿动物神经网络行为特征,将许多个单一“神经元”联结在一起,通过调整内部大量节点之间相互连接的关系,进行分布式并行信息处理。

2.2常见名词知识介绍

主要术语(基本)

主要包括标签、特征、样本、训练、模型、回归模型、分类模型、泛化、过拟合、预测、平稳性、训练集、验证集、测试集。

标签(label) 标签是我们要预测的事物,在分类任务中的类别,比如是猫或狗;简单线性回归中的y变量;。标签可以是小麦未来的价格、图片中显示的动物品种、音频剪辑的含义或任何实物。在监督学习中,标签值是样本的“答案”或“结果”部分。

特征(feature) 在进行预测时使用的输入变量。

特征是输入变量,即简单线性回归中的x变量;在分类任务中的输入图像特征。

简单的机器学习项目可能会使用单个特征,而比较复杂的机器学习项目可能会使用数百万个特征,按如下方式制定:​

在垃圾邮箱检测器示例中,特征可能包括:

电子邮件文件中的字词 发件人的地址 发送电子邮件的时段 电子邮箱包含“一些敏感词” 样本(example) 数据集的一行。在监督学习的样本中,一个样本既有特征,也有标签。在无监督学习的样本中,一个样本只有特征。

偏差

偏差度量了模型的期望预测与真实结果的偏离程度, 即刻画了学习算法本身的拟合能力。偏差则表现为在特定分布上的适应能力,偏差越大越偏离真实值。

方差

方差度量了同样大小的训练集的变动所导致的学习性能的变化, 即刻画了数据扰动所造成的影响。方差越大,说明数据分布越分散。

偏差、方差、模型复杂度三者之间的关系使用下图表示会更容易理解:

99a6e7b0661961286cb08f32d76054df[1].png

当模型复杂度上升的时候,偏差会逐渐变小,而方差会逐渐变大。

其他概念请参考本人这篇: 机器学习与深度学习基础概念

三、机器学习模型具体分类

从机器学习概念角度出发,将其按照模型类型分为监督学习模型、无监督学习模型和概率模型三大类:

image.png

(一)有监督学习

image.png

有监督学习通常是利用带有专家标注的标签的训练数据,学习一个从输入变量X到输入变量Y的函数映射。 Y = f (X)

训练数据通常是(n×x,y)的形式,其中n代表训练样本的大小,x和y分别是变量X和Y的样本值。

利用有监督学习解决的问题大致上可以被分为两类:

1.分类问题: 预测某一样本所属的类别(离散的)。比如给定一个人(从数据的角度来说,是给出一个人的数据结构,包括:身高,年龄,体重等信息),然后判断是性别,或者是否健康。

2.回归问题: 预测某一样本的所对应的实数输出(连续的)。比如预测某一地区人的平均身高。

线性回归,逻辑回归,分类回归树,朴素贝叶斯,K最近邻算法均是有监督学习的例子。

除此之外,集成学习也是一种有监督学习。它是将多个不同的相对较弱的机器学习模型的预测组合起来,用来预测新的样本。随机森林和XGBoost算法是集成技术的例子。

3.1 分类算法

​ 分类算法和回归算法是对真实世界不同建模的方法。分类模型是认为模型的输出是离散的,例如大自然的生物被划分为不同的种类,是离散的。回归模型的输出是连续的,例如人的身高变化过程是一个连续过程,而不是离散的。

3.1.1 常用分类算法的优缺点

算法优点缺点
Bayes 贝叶斯分类法1)所需估计的参数少,对于缺失数据不敏感。
2)有着坚实的数学基础,以及稳定的分类效率。
1)需要假设属性之间相互独立,这往往并不成立。(喜欢吃番茄、鸡蛋,却不喜欢吃番茄炒蛋)。
2)需要知道先验概率。
3)分类决策存在错误率。
Decision Tree决策树1)不需要任何领域知识或参数假设。
2)适合高维数据。
3)简单易于理解。
4)短时间内处理大量数据,得到可行且效果较好的结果。
5)能够同时处理数据型和常规性属性。
1)对于各类别样本数量不一致数据,信息增益偏向于那些具有更多数值的特征。
2)易于过拟合。
3)忽略属性之间的相关性。
4)不支持在线学习。
SVM支持向量机1)可以解决小样本下机器学习的问题。
2)提高泛化性能。
3)可以解决高维、非线性问题。超高维文本分类仍受欢迎。
4)避免神经网络结构选择和局部极小的问题。
1)对缺失数据敏感。
2)内存消耗大,难以解释。
3)运行和调参略烦人。
KNN K近邻1)思想简单,理论成熟,既可以用来做分类也可以用来做回归;
2)可用于非线性分类;
3)训练时间复杂度为O(n);
4)准确度高,对数据没有假设,对outlier不敏感;
1)计算量太大。
2)对于样本分类不均衡的问题,会产生误判。
3)需要大量的内存。
4)输出的可解释性不强。
Logistic Regression逻辑回归1)速度快。
2)简单易于理解,直接看到各个特征的权重。
3)能容易地更新模型吸收新的数据。
4)如果想要一个概率框架,动态调整分类阀值。
特征处理复杂。需要归一化和较多的特征工程。
Neural Network 神经网络1)分类准确率高。
2)并行处理能力强。
3)分布式存储和学习能力强。
4)鲁棒性较强,不易受噪声影响。
1)需要大量参数(网络拓扑、阀值、阈值)。
2)结果难以解释。
3)训练时间过长。
Adaboosting1)adaboost是一种有很高精度的分类器。
2)可以使用各种方法构建子分类器,Adaboost算法提供的是框架。
3)当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单。
4)简单,不用做特征筛选。
5)不用担心overfitting。
对outlier比较敏感

3.1.2 分类算法的评估方法

​ 分类评估方法主要功能是用来评估分类算法的好坏,而评估一个分类器算法的好坏又包括许多项指标。了解各种评估方法,在实际应用中选择正确的评估方法是十分重要的。

  • 常用术语 ​ 这里首先介绍几个常见的模型评价术语,现在假设我们的分类目标只有两类,为正例(positive)和负例(negative)分别是:

    1. True positives(TP): 被正确地划分为正例个数,即实际为正例且被分类器划分为正例实例数;
    2. False positives(FP): 被错误地划分为正例个数,即实际为负例但被分类器划分为正例实例数;
    3. False negatives(FN):被错误地划分为负例个数,即实际为正例但被分类器划分为负例实例数;
    4. True negatives(TN): 被正确地划分为负例个数,即实际为负例且被分类器划分为负例实例数。 

image.png

接下来针对上述四种术语的混淆矩阵,做以下说明:

1)P=TP+FN表示实际为正例的样本个数。

2)True、False描述的是分类器是否判断正确。

3)Positive、Negative是分类器分类结果,如果正例计为1、负例计为-1,即positive=1、negative=-1。用1表示True,-1表示False,那实际类标=TF*PN,TF为true或false,PN为positive或negative。

4)如True positives(TP)的实际类标=1*1=1为正例,False positives(FP)的实际类标=(-1)*1=-1为负例,False negatives(FN)的实际类标=(-1)*(-1)=1为正例,True negatives(TN)的实际类标=1*(-1)=-1为负例。

3.1.3常用分类任务评价指标

  1. 正确率(accuracy) 正确率是我们最常见的评价指标,accuracy = (TP+TN)/(P+N),正确率是被分对的样本数在所有样本数中的占比,通常来说,正确率越高,分类器越好。

  2. 错误率(error rate) 错误率则与正确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(P+N),对某一个实例来说,分对与分错是互斥事件,所以accuracy =1 - error rate。

  3. 灵敏度(sensitivity) sensitivity = TP/P,表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力。

  4. 特异性(specificity) specificity = TN/N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。

  5. 精度(查准率)(precision) precision=TP/(TP+FP),精度是精确性的度量,表示被分为正例的示例中实际为正例的比例。

  6. 召回率(查全率)(recall) 召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitivity,可以看到召回率与灵敏度是一样的。

  7. 其他评价指标

    计算速度:分类器训练和预测需要的时间;

    鲁棒性:处理缺失值和异常值的能力;

    可扩展性:处理大数据集的能力;

    可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。

  8. F1值

精度和召回率反映了分类器分类性能的两个方面。如果综合考虑查准率与查全率,可以得到新的评价指标F1-score,也称为综合分类率:F1=2×precision×recallprecision+recallF1=\frac{2 \times precision \times recall}{precision + recall}

多分类任务评价指标:

为综合多个类别的分类情况,评测系统整体性能,经常采用还有微平均F1(micro-averaging)和宏平均F1(macro-averaging )两种指标。

(1)宏平均F1与微平均F1是以两种不同的平均方式求的全局F1指标。

(2)宏平均F1的计算方法先对每个类别单独计算F1值,再取这些F1值的算术平均值作为全局指标。

(3)微平均F1的计算方法是先累加计算各个类别的a、b、c、d的值,再由这些值求出F1值。

(4)由两种平均F1的计算方式不难看出,宏平均F1平等对待每一个类别,所以它的值主要受到稀有类别的影响,而微平均F1平等考虑文档集中的每一个文档,所以它的值受到常见类别的影响比较大。

ROC曲线和PR曲线

如下图所示,ROC曲线是(Receiver Operating Characteristic Curve,受试者工作特征曲线)的简称,是以灵敏度(真阳性率)为纵坐标,以1减去特异性(假阳性率)为横坐标绘制的性能评价曲线。可以将不同模型对同一数据集的ROC曲线绘制在同一笛卡尔坐标系中,ROC曲线越靠近左上角,说明其对应模型越可靠。也可以通过ROC曲线下面的面积(Area Under Curve, AUC)来评价模型,AUC越大,模型越可靠。

image.png

PR曲线

Recall召回率(查全率):Recall=TPTP+FNRecall=\frac{TP}{TP+FN}

含义:TP除以第一列,即预测为1实际为1的样本在所有真实为1类别中的占比。等价于真阳率。

Precision精准率(查准率):Precision=TPTP+FPPrecision=\frac{TP}{TP+FP}

含义:FP除以第一行,即预测为1实际为1的样本在所有预测为1类别中的占比。

PR曲线是Precision Recall Curve的简称,描述的是precision和recall之间的关系,以recall为横坐标,precision为纵坐标绘制的曲线。该曲线的所对应的面积AUC实际上是目标检测中常用的评价指标平均精度(Average Precision, AP)。AP越高,说明模型性能越好。

5678b8476e24e64a43e364ccabdcec5c.png

分类任务评价指标参考学习:blog.csdn.net/u013250861/…

四、机器学习导图总结分享

以下是作者自己整理的机器学习笔记思维导图,这里免费分享供大家学习,导图和笔记后续会继续更新。

链接:app.yinxiang.com/fx/339fe142…

image.png