新闻中心

EEPW首页 > 设计应用 > 一文读懂|什么是机器学习

一文读懂|什么是机器学习

作者: 时间:2025-02-20 来源: 收藏

定义

本文引用地址:https://www.eepw.com.cn/article/202502/467133.htm

(Machine Learning)本质上就是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测。包括如聚类、分类、决策树、贝叶斯、(Deep Learning)等算法。

机器学习的基本思路是模仿人类学习行为的过程,如我们在现实中的新问题一般是通过经验归纳,总结规律,从而预测未来的过程。机器学习的基本过程如下:

640-2.png

机器学习基本过程

机器学习发展简史

从机器学习发展的过程上来说,其发展的时间轴如下所示:

640-3.png

机器学习发展历程

从上世纪50年代的图灵测试提出、塞缪尔开发的西洋跳棋程序,标志着机器学习正式进入发展期。

· 60年代中到70年代末的发展几乎停滞。

· 80年代使用反向传播(BP)算法训练的多参数线性规划(MLP)理念的提出将机器学习带入复兴时期。

· 90年代提出的“决策树”(ID3算法),再到后来的支持向量机(SVM)算法,将机器学习从知识驱动转变为数据驱动的思路。

· 21世纪初Hinton提出(Deep Learning),使得机器学习研究又从低迷进入蓬勃发展期。

从2012年开始,随着算力提升和海量训练样本的支持,(Deep Learning)成为机器学习研究热点,并带动了产业界的广泛应用。

机器学习分类

机器学习经过几十年的发展,衍生出了很多种分类方法,这里按学习模式的不同,可分为监督学习、半监督学习、无监督学习和强化学习。

监督学习

监督学习(Supervised Learning)是从有标签的训练数据中学习模型,然后对某个给定的新数据利用模型预测它的标签。如果分类标签精确度越高,则学习模型准确度越高,预测结果越精确。

监督学习主要用于回归和分类。

640-4.png

常见的监督学习的回归算法有线性回归、回归树、K邻近、Adaboost、等;常见的监督学习的分类算法有朴素贝叶斯、决策树、SVM、逻辑回归、K邻近、Adaboost、神经网络等。

半监督学习

半监督学习(Semi-Supervised Learning)是利用少量标注数据和大量无标注数据进行学习的模式,侧重于在有监督的分类算法中加入无标记样本来实现半监督分类。

常见的半监督学习算法有Pseudo-Label、Π-Model、Temporal Ensembling、Mean Teacher、VAT、UDA、MixMatch、ReMixMatch、FixMatch等。

无监督学习

无监督学习(Unsupervised Learning)是从未标注数据中寻找隐含结构的过程,主要用于关联分析、聚类和降维。

常见的无监督学习算法有稀疏自编码(Sparse Auto-Encoder)、主成分分析(Principal Component Analysis, PCA)、K-Means算法(K均值算法)、DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)、最大期望算法(Expectation-Maximization algorithm, EM)等。

强化学习

强化学习(Reinforcement Learning)类似于监督学习,但未使用样本数据进行训练,是通过不断试错进行学习的模式,常用于机器人避障、棋牌类游戏、广告和推荐等应用场景中。

在强化学习中,有两个可以进行交互的对象:智能体(Agnet)和环境(Environment),还有四个核心要素:策略(Policy)、回报函数(收益信号,Reward Function)、价值函数(Value Function)和环境模型(Environment Model),其中环境模型是可选的。

为了便于读者理解,用灰色圆点代表没有标签的数据,其他颜色的圆点代表不同的类别有标签数据。监督学习、半监督学习、无监督学习、强化学习的示意图如下所示:

640-5.png

机器学习应用之道

机器学习是将现实中的问题抽象为数学模型,利用历史数据对数据模型进行训练,然后基于数据模型对新数据进行求解,并将结果再转为现实问题的答案的过程。机器学习一般的应用实现步骤如下:

· 将现实问题抽象为数学问题

· 数据准备

· 选择或创建模型

· 模型训练及评估

· 预测结果

640-6.png

这里我们以Kaggle上的一个竞赛Cats vs. Dogs(猫狗大战)为例来进行简单介绍,感兴趣的可亲自实验。

1. 现实问题抽象为数学问题

现实问题:给定一张图片,让计算机判断是猫还是狗?

数学问题:二分类问题,1表示分类结果是狗,0表示分类结果是猫。

2. 数据准备

下载kaggle猫狗数据集解压后分为3个文件train.zip、test.zip和sample_submission.csv。

数据下载地址:https://www.kaggle.com/c/dogs-vs-cats

train训练集包含了25000张猫狗的图片,猫狗各一半,每张图片包含图片本身和图片名。命名规则根据“type.num.jpg”方式命名。

640-4.jpeg

训练集示例

test测试集包含了12500张猫狗的图片,没有标定是猫还是狗,每张图片命名规则根据“num.jpg”命名。

640-5.jpeg

测试集示例

sample_submission.csv需要将最终测试集的测试结果写入.csv文件中。

640-6.jpeg

sample_submission示例

我们将数据分成3个部分:训练集(60%)、验证集(20%)、测试集(20%),用于后面的验证和评估工作。

640-7.png

3. 选择模型

机器学习有很多模型,需要选择哪种模型,需要根据数据类型,样本数量,问题本身综合考虑。

如本问题主要是处理图像数据,可以考虑使用卷积神经网络(Convolutional Neural Network, CNN)模型来实现二分类,因为选择CNN的优点之一在于避免了对图像前期预处理过程(提取特征等)。

4. 模型训练及评估

我们预先设定损失函数Loss计算得到的损失值,通过准确率Accuracy来评估训练模型。损失函数LogLoss作为模型评价指标:

准确率(accuracy)来衡量算法预测结果的准确程度:

640-9.png

TP(True Positive)是将正类预测为正类的结果数目

FP(False Positive)是将负类预测为正类的结果数目

TN(True Negative)是将负类预测为负类的结果数目

FN(False Negative)是将正类预测为负类的结果数目

640-10.png

训练过中的 loss 和 accuracy

5. 预测结果

训练好的模型,我们载入一张图片,进行识别,看看识别效果:

640-11.png

机器学习趋势分析

机器学习正真开始研究和发展应该从80年代开始,我们借助AMiner平台,将近些年机器学习论文进行统计分析所生成的发展趋势图如下所示:

640-12.png

可以看出,深度神经网络(Deep Neural Network)、强化学习(Reinforcement Learning)、卷积神经网络(Convolutional Neural Network)、循环神经网络(Recurrent Neural Network)、生成模型(Generative Model)、图像分类(Image Classification)、支持向量机(Support Vector Machine)、迁移学习(Transfer Learning)、主动学习(Active Learning)、特征提取(Feature Extraction)是机器学习的热点研究。

以深度神经网络、强化学习为代表的深度学习相关的技术研究热度上升很快,近几年仍然是研究热点。



评论


相关推荐

技术专区

关闭