Advertisement

人工智能(2)————————详谈机器学习

阅读量:

摘要٩(๑òωó๑)۶

本文基于(1)展开论述,并深入探讨了机器学习的前身与发展历程。文章系统阐述了五个核心模块:有监督学习、无监督学习、概率图模型、神经网络和强化学习。这五个核心模块共同组成了当前完善的机器学习体系。

声明

以下内容均取材于B站吴恩达教授的视频以及西瓜书等书籍中的相关内容,并结合诸多前辈的学习成果整理而成。此份内容仅作为本人对大模型学习的理解过程进行记录,请在发现侵权行为时及时删除相关内容。如若有任何意见或建议,请不吝赐教

1、机器学习的前身与发展

前情回顾:机器学习理念起源于上世纪五十年代,并源自最小二乘估计方法的一种让机器自主学习的技术。它主要包含频率学派所主导的统计机器学习方法与贝叶斯学派所倡导的概率图模型两种主要分支。实际上我认为这两个学派在创立初期主要出于对概率论的需求,并非是机器学习发展的起点。不过后来因为以这些基础方法为基础逐渐发展起来并沿用至今

那么机器 learning 到底是什么?简单来说就是人类通过数据让计算机自主 学习 并实现 自我 进化的过程。就像拿胡萝卜替代胡萝卜让计算机前进一样,在发展过程中经历了从 symbol 学习、connection istic 到 statistic 学习等不同学派的发展与变迁。原本 machine learning 属于 artificial intelligence 领域的一部分然而随着越来越多的人加入相关领域许多经典的 algorithm 被提出出来 machine learning 在 1980 年正式脱离 artificial intelligence 成为一个独立的研究方向。

上图来自Eren Golge博客,较为全面客观的展现了机器学习的发展史

机器学习如今被划分为有监督学习、无监督学习、概率图模型、神经网络和强化 learning 等五大类。有监督与无 supervision 学习方法是机器最初就提出的两大核心算法。即使仅依赖于数据的概率模型进行自适应计算的学习机制也已经存在。随着技术的发展,在 20 世纪 80 年代初 Geoffrey Hinton 等人提出了神经网络的概念框架。这一创新使得 machine learning 从单一的线性架构演变为多层次的人工智能系统。

当前机器学习技术正处于快速发展之中。在数据量持续增长以及计算处理能力显著提升的情况下,在语音识别、图像识别、自然语言处理以及推荐系统等多个领域其性能持续优化提升,并展现出强大的应用潜力。与此同时,在无监督学习与半监督学习等技术不断深化的过程中,在解决一些复杂问题时也愈发得心应手。(按照这一发展趋势推演下去的话,在不远的将来机器学习很可能会取代大部分的人类工作但目前模型精度无法保证而事实上许多工作目前的模型已经能够胜任)下面将逐一介绍上述提到的主要五大类

2、机器学习五大类

1)有监督学习

最常见的二元一次函数大家应该都知道吧?典型的二元一次函数形式为y=\omega x+b。在有监督学习中,我们假设训练数据已经明确给出了输入特征x与其对应的输出标签y之间的关系,并基于这些已知的输入输出对来训练模型。具体来说,在有监督学习过程中需要设定一个初始值\omega作为权重参数,并通过建立预测模型推导出相应的预测输出y'。随后将预测值y'与实际标签y进行比较评估模型性能,并根据比较结果不断调整\omega参数以优化模型预测效果。常用的有监督学习方法包括支持向量机(Support Vector Machines, SVM)、神经网络(Neural Networks)、线性回归(Linear Regression)、逻辑回归(Logistic Regression)、朴素贝叶斯(Naive Bayes)、线性判别分析(Linear Discriminant Analysis, LDA)、决策树(Decision Tree)以及K-近邻算法(K-Nearest Neighbors, KNN)。

支持向量机方法

其本质是支持向量机算法通过寻找最优超平面来解决二分类问题。具体而言,在这一过程中算法会最大化正负两类样本到该超平面的距离,并以此来确定最终的分界线位置。同时依据各测试点与该超平面之间的距离计算模型的置信度。

线性回归方法

线性回归方法即为遵循线性的方程组。同时要求各数据之间相互独立以避免出现线性相关。同时此模型处理的对象即为回归问题。

回归和分类问题

回归问题是像函数那样对应输入数据进行预测,并且其数据范围是无限延伸的;而分类问题是通过目标变量y对现象进行预判的过程,并且其输出结果只能取预先确定的几个值;在分类模型中,所有的预测结果都必须属于该分类模型所对应的类别集合中的一个元素。

逻辑回归方法

逻辑回归可以被视为广义线性回归方法的一种形式,并采用基于直线、平面或超平面的模型来进行结果预测。与传统的线性回归不同,在选择预测参数的过程中应用了极大似然估计方法以估计概率模型的参数。其基本理念是确定一组参数以使给定数据在这些参数下的出现概率最大化

rod _{i=1}^{i=k}hrod _{i=k+1}^{n}

基于某一事件发生的h(xi)发生概率的估算来调整参数。在机器学习中,常用梯度下降方法进行极大似然估计,旨在确定该平面/超平面中的最低/高点位置。用于评估模型性能时,交叉熵损失函数或对比损失函数被用来评估回归模型的性能。

朴素贝叶斯方法

在机器学习领域中占据重要地位的十种算法之一的是朴素贝叶斯算法,在统计模式识别领域内也是比较经典的分类方法之一

根据该贝叶斯公式,我们可以将其扩展到多个数据形式的格式当中,即

在预测结果y的情形下,在多分类场景中, 我们会遇到大量相关联的因素X可能会影响因变量Y的结果. 每个自变量X对其对应的因变量Y都有独特的权重或影响力程度. 将各个自变量与其概率相加后就形成了朴素贝叶斯模型. 例如, 在实际应用中, 一个预测目标通常受到大量相关自变量的影响, 我们一般会选择排除那些贡献较小的自变量来构建模型以提高效率. 这样既能提升计算效率又不至于显著降低预测精度.

线性判别分析

这里先用周志华教授的《机器学习》中的一幅图来做直观了解:

线性判别分析LDA的核心理念在于增大类别间间距的同时减小类别内部方差。在二分类问题中通过一条二维直线将正负样本分开并使同类样本间的平均距离最大化同时使得不同类别的样本尽量远离对方在分类器设计时主要考虑两类别均值向量间的差异度以衡量两类分布之间的差距而对于同一类别内的数据则采用方差损失来评估其离散程度

决策树

在机器学习领域的十大著名算法中, C4.5与CART两种方法均属于决策树算法; 它是一种基于层次结构的数据模型来表示决策规则与分类结果的方法; 作为一种归纳学习方法, 它的主要目标是将看似随机无序且复杂的一组已知样本, 通过特定的技术手段将其转化为能够有效预测未知样本类别的一种层次化结构; 每个从根节点到叶子节点的道路都对应着一个基于属性的重要判断标准

在构建决策树的过程中, ID3被视为基础方法, 以信息增益作为划分标准, 其依据的是标签无序度的变化程度来决定是否继续分割。随后发展出如C4.5和CART等方法, 在此基础上进行了优化与改进。完成构建之后, 适用于深度范围内的问题重复应用, 这一特性显著提升了决策树的应用效率。然而, 当面对海量高度相关的相似数据集时, 即使经过优化也可能出现预测精度下降以及模型过拟合的现象

K-邻近算法

也被称为一种有效的机器学习算法,在分类问题中表现出色。与其它算法不同的是,在这种分类方法中采取了少数服从多数的原则来进行决策判断:具体而言,在被预测对象所属类别周围选取最近的K个同类样本,在这之中占大多数类别的那个类别即被选为该对象最终的预测结果。在这一过程中最重要的因素是选择合适的K值以及计算各点之间的相似程度(即距离)。通常通过训练集与测试集之间的方差来确定一个较为合适的K值;而对于点之间的相似程度(即距离)通常采用欧氏距离和曼哈顿距离两种方式进行衡量;相比之下,在实际应用中欧氏距离应用更为广泛,通常采用欧氏距离公式进行计算。

有监督学习通俗理解:人类为某些特定问题设定标准输出给机器学习系统,在经过大量训练后能够尝试生成其他可能的答案,并可以根据多个输入变量设定相应的输出范围与限制。
1、回归regression:模型旨在从无限可能的输出值中估计一个连续的数值目标,并通过最小化预测误差来优化结果的精确度与稳定性
2、分类classification:模型的任务是将输入数据映射到预定义类别集合中的成员,并根据数据特征动态调整分类边界以提高识别准确率

2)无监督学习

有监督学习基于已标注好对应数据的数据集来进行模型训练;然而,在面对海量数据时,由于需要人工手动为每个数据填充标签而耗费大量人力;因此,在无法为大规模数据填充标签的情况下,则转而采用无监督学习方法;The unsupervised learning methods include four categories: clustering, principal component analysis, density estimation, and anomaly detection.

聚类算法

即通过划分数据集为若干个子集,在给定的距离标准下完成分类任务。每个具备相同特征的数据样本会被归入同一子集中,并从而使同一子集中存储的样本具有较高的相似性;而相互之间的相似度较低。这即构成了聚类分析的基础方法。

最常用的聚类方法通常是K-Means算法,在设定好簇的数量以及各数据点间距离的标准后

主成分分析

在真实的数据集中包含诸多影响因素。举个例子当我们试图预测我明天是否参加上课时由多种因素共同决定。例如我的身体状况、入眠时间、天气预报、睡眠质量以及心理状态等这些特征并不都非常关键有些特征对最终结果的影响微乎其微主成分分析(PCA)是一种用于从数据中提取主要信息的技术它通过去除噪声并聚焦于关键变量来分析这些主要信息从而帮助我们更好地理解数据的本质。

主成分分析法的核心在于将原始的n维数据投影到k维的空间中,并通过这种投影过程提取出能够反映数据主要特征的信息。其工作流程是从原始数据空间中依次寻找一组相互正交的坐标轴集合,在其中每一个选取的标准是在所有可能的方向中选择能够最大化当前子空间内数据方差的那个方向。以此类推下去就可以逐步确定一组完整的n个相互正交的新坐标轴。通过这种逐步优化的方法我们发现这些新维度能够集中约95%以上的原始数据中的总方差而后续的一些维度通常只会携带微乎其微的数据信息量因此在实际应用中我们通常只需要保留前k个主成分即可

PCA的具体操作流程如下:首先计算每行数据集的均值向量;接着对提取后的数据进行去均值处理;随后利用生成的新特征向量构建样本之间的协方差矩阵;之后根据各主成分的重要性排序标准筛选出主要成分,并通过线性变换将原始数据投影到这些主要成分上;最终从而实现原始数据中高维信息的有效降维。

3)概率图模型

probabilistic graphical models refer to a formalism that represents multivariate random variables' conditional independence relationships using graph structures.

其提出的主要背景是旨在更好地研究复杂联合概率分布的数据特征。为此, 基于某些变量间的条件独立假设, 概率图模型被划分为有向图与无向图两类。其中一类是有向图模型(亦称贝叶斯网络或信念网络),另一类则是无向图模型(亦称马尔科夫随机场或马尔科夫网络)。该联合概率分布可依据Hammersley–Clifford定理进行建模,并被分解为基于最大团上正函数的乘积形式。

有向图概率公式:

无向图概率公式:

在经过联合概率分布的计算后获得概率图模型之后,我们需要进行模型参数的估计推断工作.在现实中绝大多数情况下,我们无法获得精确地解析解来进行推断,因此不得不采用近似的估计方法.然而,许多特征需要通过隐变量来进行建模训练,通常情况下,我们采用期望最大化(Expectation Maximization)算法来进行求解,这是一种迭代优化方法.它的基本思想是将难以直接优化求解的一个复杂似然函数最大化问题转化为一个相对容易解决的最大化序列问题,而其最终收敛结果即为原始问题的最优解.

4)神经网络

好的,终于来到神经网络了(✿╹◡╹),漫长的征途(破防ing)

单层神经网络

其次介绍神经网络的发展脉络。进一步了解其发展脉络,请参阅该链接。(我觉得这个研究挺有意思的哦!它有种类似看小说的感觉呢)基于生物知识提出了单层人工神经网络模型——感知器。通常由一个输入层和一个输出层构成。其中输入层与输出层节点的数量是由人工设定的。其单个神经元计算公式如下:

通过将两层神经元作为二维空间叠加,在形成感知器的过程中与其功能类似于逻辑回归模型,在于对n维向量的数据在n-1维空间中绘制出超平面来区分正负样本。

双层神经网络

在神经网络的发展历程中,在最初阶段出现了一种重要的模型——感知机(Perceptron),其主要功能局限于处理线性可分的问题以及二元分类的任务,并且无法解决异或(XOR)问题。这种局限性使得其应用范围受到极大的影响。因此多层感知机(MLP),即由多个隐藏层组成的深度神经网络体系应运而生。这一架构显著提升了处理复杂计算的能力,并最终推动了经典 neural network 的诞生:

在单层神经网络的基础上增加了隐含层以实现数据的空间转换使得生成的决策边界由线性回归模型转变为非线性回归曲线从而能够处理更为复杂的分类问题其中隐含层中的节点数量是可以自行设定的然而不能随意增加节点数量因为不同层次之间的信息传递是基于矩阵运算完成的因此需要通过反复尝试找到最优配置参数这种方法通常被称为网格搜索(Grid Search)

完成调整后需确定损失函数值,并确保所有数据在整个训练过程中的平均损失达到最小值。常用的方法包括梯度下降算法与反向传播算法

损失函数表达式:
通过残差平方和公式来降低较大的预测误差
平方误差成本函数定义如下:
J(w,b)=∑(y'−y)^2/(2m)
其中m代表数据集中样本的数量
利用成本函数可以确定最优参数w和b使得J最小化
当参数w和b均不为零时,在三维空间中描述的成本曲面呈现出类似于锅底的形状

梯度下降算法
是一种用于最小化函数的方法,在线性回归的成本函数之外也有广泛的应用
不仅在线性回归的成本函数中应用,在非线性模型中也常被使用
该算法旨在通过寻找使目标函数J最小的方向来优化参数
不同的初始条件可能导致不同的局部极小值点
参数更新遵循以下规则:w = w - α * J'(w)
其中α(alpha)是一个介于0和1之间的学习率参数
J'表示目标函数J(w,b)对权重w的一阶偏导数
同样地,在更新偏置参数b时遵循b = b - α * J''(w,b)
其中J''表示目标函数J(w,b)对偏置b的一阶偏导数
当参数w和b在后续迭代中变化幅度变得非常小时,则认为达到了局部极小值点
需要注意的是,在实际操作中应同时更新两个参数以维持计算过程的整体一致性
此外,在优化过程中需要动态调整学习率以确保模型能够沿着最优路径收敛并取得良好的性能

多层神经网络(深度学习)

基于双层神经网络的基础之上,在此基础上进行多层卷积神经网络的构建时,能够进一步提升整个体系的表现上限。经过对双层神经网络训练得到的模型进行微调优化后,在实际应用中发现其拟合效果得到了显著提升。多层神经网络分为卷积神经网络(CNN)和递归神经网络(RNN),会在后续文章中详细介绍这两个网络。因为篇幅有限,在本文中我们暂时不对多层神经网络的具体细节进行深入探讨(实际上是因为作者内心有些许失落感)。

5)强化学习

相较于有监督学习与无监督学习而言,在计算机与环境之间的互动关系上更为注重强化学习;其通过以牺牲更多的不确定性预测可能性作为代价来侧重于实现最高的回报率。

强化学习是一种基于状态到行为映射的方式以最大化奖励的学习机制。这种类型的agent需要持续地与复杂环境交互,在每一次互动中利用环境提供的即时反馈(即奖励),以便逐步优化其与环境之间的互动关系。因此,在强化学习中起核心作用的是持续尝试(trial and error)这一机制以及处理延迟反馈的关键能力(delayed reward)。

首先制定一个策略以建立计算机从状态到行为的映射关系。随后,在该行为导致环境发生变化时,环境将向强化学习系统发送奖励信号。最后系统整合所有反馈信息用于更新价值函数,并评估长期效果。这即构成了强化学习的基本实施流程。

相对于有监督学习和无监督学习而言,强化学习更贴近人类思维模式,在计算机与环境互动的过程中形成了基于试错原则的学习机制以及延时回报评估体系,在未知环境中选择对自己收益最大的行为策略。例如,在这一过程中,默认情况下所有人都强调要有自己的独特学习方法论,并认识到每个人的学习方法仅适配自身情况,在缺乏明确指导的情况下必须通过不断尝试不同的方法来探索最适合自己的策略,并以持续积累的考试成绩作为反馈机制来验证不同方法的有效性。

3、总结

我在文章中对机器学习的主要热门领域进行了介绍,并对其中一部分内容进行了较为深入的阐述(原本打算全面展开讲解),但由于篇幅限制以及自身水平有限(┭┮﹏┭┮),未能全部进行详尽说明)。主要将机器学习划分为有监督学习、无监督学习、概率图模型以及神经网络等五个核心板块。从严格意义上讲,在现有研究领域中被广泛认可的是有监督学习与无监督学习作为机器学习的基础性方法论框架;而概率图模型则主要用于刻画多维变量之间的独立关系;神经网络作为一种仿生学原理构建而成的学习优化模型,在当前技术发展背景下占据重要地位;这四大类方法共同构成了完整的机器学习体系框架

全部评论 (0)

还没有任何评论哟~