8.机器学习概述
人工智能文章系列
- 第1章:AI绪论与概述
- 第2.1章:知识表示
- 第2.2章:知识图谱
- 第3章:确定性推理
- 第4章:不确定性推理方法
- 第5章:搜索求解策略
- 第6章:专家系统
- 第7章:群智能算法
- 第8章:机器学习概述
- 第9章:神经网络
概述
本章主要介绍的机器学习的概念、发展历程、发展趋势、相关应用,着重拓展机监督学习和无监督学习的相关知识。
重点:机器学习的定义和应用;
难点:机器学习算法及分类。
机器学习 - 重要性
MachineLeaning出现前
自从50年代以后,AI的发展就磕磕碰碰,没达到足够震撼从早期的逻辑推理,到中期的专家系统,这些科研进步确实使我们离机器的智能有点接近了,但还有一大段距离
MachineLeaning出现后
直到机器学习诞生以后,人工智能界感觉终于找对了方向。基于机器学习的图像识别和语音识别在某些垂直领域达到了跟人相媲美的程度。机器学习使人类第一次如此接近AI的梦想。
机器学习 - 类比人脑思考与决策
机器善于处理数据不断提高性能
人类学习利用经验不断提高性能
思考:能否把“经验”变成数据,让机器可以“模仿”人类进行学习?
机器学习 - 何谓智慧
人类区别于其他物体(植物,动物)的最主要区别是 “智慧”。智慧是对生活的感悟,是对人生的积淀与思考,这与我们机器学习的思想何其相似?通过经验获取规律,指导人生与未来。没有经验就没有智慧。学习沉淀,总结规律、产生决策
- 是计算能力么,应该不是,心算速度快的人我们一般称之为天才。
- 是反应能力么,也不是,反应快的人我们称之为灵敏。
- 是记忆能力么,也不是,记忆好的人我们一般称之为过目不忘。
- 是推理能力么,这样的人我也许会称他智力很高,类似“福尔摩斯”,但不会称他拥有智慧。
- 是知识能力么,这样的人我们称之为博闻广,也不会称他拥有智慧。
机器学习 - 发展历程
机器学习 - 与AI关系
区别1:人工智能是一种广泛的概念,而机器学习是人工智能的一部分。机器学习(ML)是一种人工智能的子领域,它使用算法和统计模型来让计算机自动从数据中学习,其目 标是让计算机自动发现数据中的模式和规律,从而可以预测未来的结果。
区别2:人工智能需要程序员来编写算法和规则,而机器学习则是让计算机自己学习。这意味着,机器学习算法可以从数据中自动发现模式和规律,而不需要手动编写规则。
机器学习 - 定义
定义:机器学习(Machine Learning)本质上就是让计算机在数据中学习规律,并根据所得到的规律对未来数据进行预测。
基本思路:让机器模仿人类学习行为的过程。如人类解决新问题一般是通过“经验归纳,总结规律,从而预测未来”的过程。则机器学习的基本过程如下:
机器学习 - 工作原理
定义:机器学习(Machine Learning)本质上就是让计算机在数据中学习规律,并根据所得到的规律对未来数据进行预测。
Machine Learning = task + data + objective + algorithm
–Tom Mitchell
机器学习 - 分类
机器学习 - 分类(3种重点类型)
分类1 - 监督学习
定义:是使用标记数据集来训练算法,以便对数据进行分类或准确预测结果。当输入数据被输入到模型中时,它会调整其权重,直到模型被适当地拟合,这是交叉验证过程的一部分。
应用:监督式学习可以帮助组织大规模地解决各种现实世界的问题,例如对收件箱中单独文件夹中的垃圾邮件进行分类。
分类2 – 半监督学习
定义:侧重于在“有监督”的分类算法中加入无标记样本来实现半监督分类。
典型算法:如下图。
分类3 - 无监督学习
定义:从无标注数据样本出发,学习数据样本中蕴含的模式,完成如聚类或降维等特定任务。本质是一种统计手段,即从未标注数据中寻找隐含结构的过程。
在现实生活中,高质量标注数据难以获得,因此,无监督学习多数情况下是监督学习的补充。
监督学习 | 无监督学习 |
---|---|
任务目标明确 | 任务目标不明确 (适用范围广) |
训练数据带标签 | 训练数据不带标签 (减少数据分析成本) |
效果易于评估 | 效果不易于评估 (需要科学选择) |
分类4 - 强化学习
定义:类似监督学习,但未使用样本数据进行训练,而是通过不断试错进行学习的模式。
重要构成:2个交互对象 + 4个核心要素
应用:机器人避障、棋牌类游戏、广告和推荐等应用场景中。
四要素 | 说明 |
---|---|
策略 (Policy) | •定义智能体的行为 •是从状态到行为的映射 •本身可是具体映射,也可是随机分布 |
奖励函数 (Reward) | •是一个标量的反馈信号 •能表征在某一步智能体的表现如何 •智能体的任务就是使得一个时段内积累的总奖励值最大 |
价值函数 (Value) | •价值函数是对未来奖励的预测 •它可以评估状态的好坏 •价值函数的计算需要对状态之间的转移 进行分析 |
环境模型 (Model) | •模型可以预测环境下一步的表现 •表现具体可由预测状态和奖励来反映 •模型可选择 |
分类4 - 强化学习
机器学习- 趋势分析
机器学习正真开始研 究和发展应该从80年代开始, 我们借助 AMiner 平台, 将近些年机器学习论文进行统计分析所生成的发展趋势图以深度神经网络、强化学习为代表的深度学习相关的技术研究热度上升很快,近几年仍然是研究热点。
机器学习算法 - 分类及应用
回归 | 分类 | |
---|---|---|
输出 类型 | 预测连续值(如价格、 温度等) | 预测离散标签 (如是/否) |
评估指标 | 通常使用“均方误差 (MSE)、R²分数”等 | 常使用“准确率、 F1分数”等 |
分类 | 聚类 | |
---|---|---|
区别 | 按某种标准给对象贴标签(label),再根据标签来区分归类。 | 事先没有“标签”; 通过某种成因分析找出事物间存在聚集性的原因。 |
分类器需由人工标注的分类训练得到,属于有指导学习。 | 无需人工标注和预先训练分类器,类别在聚类过程中自动生成,属于无指导学习。 | |
应用场景 | l适合类别或分类体 系已经确定的场合; l比如按照国图分类法分类图书 | l适合不存在分类体系、 类别数不确定的场合, 常作为某些应用的前端; l如多文档文摘、搜索引 擎结果后聚类(元搜索)等。 |
回归分析(预测连续、具体的数据)
回归分析:是一种预测性的建模技术,研究因变量(目标)和自变量(预测器)之间的关系。通过这个模型,可以用一组特征(自变量)来预测一个连续的结果(因变量)。
应用:通常用于“预测分析、时间序列模型以及发现变量之间的因果关系”。例如,司机的鲁莽驾驶与道路交通事故数量之间的关系,最好的研究方法就是回归。
重要性:回归问题是机器学习领域中最古老、最基础,同时也是最广泛应用的问题之一。无论是在金融、医疗、零售还是自然科学中,回归模型都扮演着至关重要的角色。
举例:用房间面积、位置等特征来预测房价。
线性回归
定义:一种通过属性的线性组合来进行预测的线性模型。
目标:是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。
多项式回归(曲线)
定义:与线性回归尝试使用直线拟合数据不同,多项式回归使用多项式方程进行拟合。
支持向量回归(超平面)
定义:是支持向量机(SVM)的回归版本,用于解决回归问题。它试图找到一个超平面,以便在给定容忍度内最大程度地减小预测和实际值之间的误差。
决策树回归(树结构)
定义:是一种非参数的、基于树结构的回归方法。它通过将特征空间划分为一组简单的区域,并在每个区域内进行预测。
数学原理
决策树回归不依赖于具体的数学模型。它通过递归地将数据集划分为不同的子集,并在每个子集内计算目标变量的平均值作为预测
分类分析(预测非连续、离散型数据-模式识别)
- 定义:分类算法也称为模式识别,其主要目的是从数据中发现规律,并将数据分成不同的类别。
- 过程:分类算法通过对已知类别训练集的计算和分析,从中发现类别规则并预测新数据的类别。
- 典型算法:包括决策树、朴素贝叶斯、逻辑回归、K-最近邻、支持向量机等。
- 应用:金融、医疗、电子商务等领域,以帮助人们更好地理解和利用数据。
基础分类算法 - 决策树、逻辑回归
决策树(n叉树)
通过将数据集划分为不同的子集来预测目标变量。它从根节点开始,根据某个特征对数据集进行划分,然后递归地生成更多的子节点,直到满足停止条件为止。决策树的每个内部节点表示一个特征属性上的判断条件,每个分支代表一个可能的属性值,每个叶节点表示一个分类结果。
逻辑回归:
一种用于二元分类的算法,通过使用逻辑函数将线性回归的结果映射到 [0,1]范围内。将输入特征与输出类别之间的关系表示为线性回归函数,然后通过逻辑函数将线性回归的结果转换为一个概率值,用于预测目标变量。
特点:计算效率高,但在处理高维数据时可能会过拟合。
基础分类算法 - SVM、朴素贝叶斯
支持向量机(SVM):通过找到一个超平面来划分不同的类别。它试图最大化两个类别之间的边界,这个边界被称为间隔。
目标:找到一个能够将数据集中的点正确分类的超平面,同时最大化间隔。在二分类问题中, SVM通过求解一个二次优化问题来找到这个超平面。
朴素贝叶斯:是一种基于贝叶斯定理的分类算法,通过计算每个类别的条件概率来预测目标变量。假设每个特征之间独立,然后根据这个假设来计算类别的条件概率,并选择概率最大的类别作为预测结果
优点:在处理高维数据时效率高,并且对数据集的大小和分布不敏感。
集成分类算法 - 随机森林、AdBoost
随机森林:是一种使用多棵树对样本进行训练并预测的分类器。既可以用于处理分类和回归问题,也适用于降维问题。
它通过随机选择样本和特征来生成多个决策树,然后以投票的方式将最多个数的结果作为最终分类结果。
优点:对异常值与噪音也有很好的容忍,相较于决策树有着更好的预测和分类性能。
AdBoost:是一种迭代算法,通过将多个弱分类器的结果组合来预测目标变量。
将数据集分成多个子集,然后针对每个子集训练一个弱分类器,并调整每个弱分类器的权重,使得分类错误的样本得到更大的权重,然后再次训练弱分类器。如此反复迭代,直到达到预设的迭代次数或者弱分类器的精度达到某个阈值为止。
优点:可处理多类分类问题,且对噪声和异常值不敏感
集成分类算法 - GBDT
梯度提升决策树(GBDT):GBDT算法是一种基于梯度提升的分类算法,它通过将多个决策树的结果组合来预测目标变量。
GBDT算法通过不断地添加树、更新模型参数和优化目标函数来提高模型的精度。每棵树都是通过对样本特征空间进行划分、寻找最佳划分点来生成的。每棵树生成后,就对应一个残差函数,用当前所有树的残差和作为下一棵树的生成依据。如此反复迭代,直到达到预设的迭代次数或者满足其他停止条件为止。最终的预测结果由所有树的加权和决定。
优点:在处理复杂和非线性问题时表现良好,并且对数据集的大小和分布不敏感。
聚类分析
定义:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。
目标:一类无监督学习的算法,其目标是将数据集中的样本划分为若干个互不重叠的子集,每个子集被称为一个“簇”,使得同一簇内的样本相似度较高,而不同簇之间的样本相似度较低。即,在不事先知道数 据的真实类别标签的情况下,发现数据中的内在结构和模式。
重要性:“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。
聚类分析方法:系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。
聚类算法 - K-Means、DBSCAN
K均值聚类(K-Means): 最经典和常用的聚类算法之一。它通过将数据划分为K个簇,并使每个样本点到其所属簇的中心距离最小化来实现。
K-Means算法迭代更新簇的中心,直至达到收敛条件。
DBSCAN(Density-Based Spatial Clustering of Applications with Noise): 一种基于样本密度的聚类算法。
通过寻找高密度区域,将数据划分为不同的簇,并可以识别噪声点。不需要预先指定簇的数量,适用于不规则形状的簇和对噪声相对鲁棒的场景。
K-Means聚类 - 算法原理
- 初始化:随机选择k个中心点,作为初始的聚类中心。
- 计算距离:计算每个样本到k个中心点的距离,将各样本划分到距离最近的中心点所在的簇。
- 重新计算中心:为各簇所有点的均值,重新计算各簇的中心。
- 迭代:不断迭代2、3步骤,直到各簇不再发生变化或者达到预设的迭代次数。
层次聚类及其他
定义:是一种基于树形结构的聚类算法,通过将数据点逐步合并成簇,最终形成一棵树形的聚类结构。
分为两种:自底向上聚类(Agglomerative Clustering)和自上向下聚类(Divisive Clustering)
其他聚类算法 |
---|
DBSCAN聚类 |
均值漂移聚类 |
谱聚类 |
模糊聚类 Fuzzy Clustering |
密度峰值聚类 Density Peaks Clustering |
基于高斯混合模型GMM |
最大值期望EM的聚类 |
降维 - 引入原因
- 存在问题:在机器学习中经常会碰到一些高维的数据集,导致出现以下情况:
- 维度灾难:指“数据样本稀疏,距离计算”等困难,这是所有机器学习方法共同面临的严重问题。
- 特征冗余:另外,在高维特征中容易出现特征之间的线性相关,这也就意味着有些特征存在冗余。
- 基本思想:为解决以上问题,可“将高维数据集投影到低维空间”,同时尽量保留变量的信息或方差。
分类
线性降维 | 非线性降维 | |
---|---|---|
原理 | 基于线性变换将数据映射到低维空间, | 通过非线性变换将数据映射到低维空间 |
范围 | 线性可分的数据集 | 非线性结构的数据集 |
复杂度 | 算法简单,所以计算效 率高,易于理解和实现 | 计算复杂度较高,通常需要 更多的计算资源和时间 |
完整性 | 通常不能捕捉数据中的非线性结构,可能会导致信息丢失 | l能够更好地保留数据中的非线性结构和局部关系, l提供更好的可视化效果 |
线性降维 - PCA
- 主成分分析 (Principal component analysis) :用于将高维数据集转换为低维表示,同时保留数据集的主要特征。
- 目标:通过找到数据中最大方差的方向(主成分),然后在低维空间中找到一个有效的投影轴,通过投影,将原始数据中相对重要的信息表达出来,达到降维目的。
- 应用:最常用的算法,在数据压缩,消除冗余等领域有着广泛使用。
线性降维 - LDA
- LDA(线性判别分析):它与主成分分析(PCA)不同,因为它不仅考虑了数据的方差结构,还考虑了数据的类别信息。LDA旨在找到一个投影方向,最大化不同类别之间的距离(类间散布),同时最小化同一类别内部的距离(类内散布)。
- 目标:以 “类内方差最小化,类间方差最大化 “为目标,找到可以优化分类的特征子空间,对数据进行投影,以达到降维的目的。
- 应用:该方法广泛用于面部识别、情感分析等领域
线性降维 - 奇异阵分解
- 奇异值分解(Singular Value Decomposition,SVD):是一种用于矩阵分解的重要技术。它将一个矩阵分解为三个矩阵的乘积形式,这三个矩阵分别是一个“正交矩阵、一个对角矩阵和另一个正交矩阵的转置”。
- 目标:在降维中,只保留奇异值较大的项,可以实现对数据的有效压缩和表示。
- 应用:具有广泛的应用,包括数据压缩、降维、矩阵逆求解、推荐系统等。
非线性降维 - 核PCA
- 核PCA:可看作是正态主成分分析的非线性版本。
- 特点:常规PCA和核PCA都可以进行降维。但核PCA能很好处理线性不可分割的数据。因此,其主要用途是“使线性不可分的数据线性可分”,同时降低数据的维数。
- 应用:在图像处理、信号处理等领域中,可更准确地获取和分析数据信息。
非线性降维 - LLE
- 局部线性嵌入(Locally linear embedding,LLE):能够使降维后的数据较好地保持原有流形结构。它是流形学习方法最经典的工作之一。很多后续的流形学习、降维方法都与 LLE 有密切联系。
- 对比:和传统的PCA,LDA 等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征。
- 应用:由于LLE保持了样本局部特征,广泛用于图像图像识别,高维数据可视化等。一个形象的流形降维过程如图有一块卷起来的布,希望将其展开到一个二维平面,且展开后的布能够在局部保持布结构的特征。其实也就是将其展开的过程,就像两个人将其拉开一样。
机器学习算法 - 总结与选用原则
NFL定理(No Free Lunch)一个算法A若在某些问题上比算法B好,必定存在一些特殊问题使得算法B比A 好。因此,不存在绝对好的学习算法,必须要有具体问题,具体分析的思维。着重发现数据集中潜藏的结构来简化训练。
机器学习平台 - 技术框架
随着机器学习算法在许多领域取得长足 进步,对机器学习系统的需求不断增长,促成搭建专用的机器学习平台。
同时,基于效率考虑,希望机器学习应用可以自动化构建并使用。
自动化机器学习(AutoML) :可在给定数据集上,自动选择使用哪种机器学习算法、如何预处理其特征,以及如何设置所有超参数。
机器学习应用流程 - 如何应用?
机器学习是将现实中的问题抽象为数学模型,利用历史数据对数据模型进行训练,然后基于数据模型对新数据进行求解,并将结果再转为现实问题的答案的过程。
机器学习一般的应用实现步骤如下:
将现实问题抽象为
- 数学问题
- 数据准备
- 选择或创建模型
- 模型训练及评估
- 预测结果
机器学习应用流程 - 参考框架
应用案例 - 常见问题分类及案例
回归任务:预计外卖送达的时间
分类任务:垃圾邮件分类
聚类任务:商品个性化推荐
降维任务:人脸识别