《机器学习》期末复习总结

参考教材: [1]戴红编,数据挖掘导论[M].北京:清华大学出版社,2015年 [2]Gordon S. Linoff等著,巢文涵等译,数据挖掘技术(第三版)[M].北京:清华大学出版社,2018年 [3]李航,机器学习[M].北京:清华大学出版社,2019 [4]周志华,机器学习:算法、评估与应用[M].北京:电子工业出版社,2021 [5]张翼,机器学习[M].北京:清华大学出版社,2020 [6]郑捷,机器学习:原理与算法[M].北京:清华大学出版社,2018

提示:与教材内容不完全匹配,有所取舍

写在前面: 这份复习总结是笔者根据老师授课内容,结合教材、PPT整理出来的,本意是为了帮助笔者查缺补漏,理解记忆。现将其上传至CSDN博客,希望能对大家有所帮助。另外,内容上可能有遗漏、错误或者错字现象,还请多多包涵,并予以指教!谢绝转载!

第一章 机器学习概述

一、机器学习的概念

机器学习(Machine Learning,ML)是人工智能的一个分支领域。是指通过计算机程序,让计算机系统从数据中自动学习并改进性能的一种方法。它关注的是如何使计算机系统通过从数据中学习,而不是通过明确的编程来改善其性能。它的核心思想是让计算机能够从数据中发现模式、规律和知识,并能够做出基于数据的决策和预测。

二、机器学习在现实中的应用与意义

机器学习是一个不断发展的领域,包括监督学习、无监督学习、强化学习等多种学习范式。它的应用涵盖了几乎所有领域,并且在各个领域中都有广泛的应用前景。如:

自然语言处理(NLP):用于文本分类、情感分析、语音识别等。计算机视觉:用于图像识别、对象检测、图像生成等。医疗保健:用于疾病诊断、患者风险评估等。金融领域:用于信用评分、风险管理、股市预测等。自动驾驶:用于感知、路径规划和决策制定。推荐系统:用于电影、音乐、商品等的个性化推荐。

机器学习的意义在于它能够自动从数据中学习并改进模型,而不需要明确的编程指令。这使得计算机系统能够处理复杂的问题,从而提供更准确和智能的解决方案。此外,机器学习还可以发现数据中的隐藏模式和关联,帮助人们做出更明智的决策,并为各种行业带来创新和进步。

三、机器学习与传统编程的区别

(一)机器学习与传统编程在解决问题的方法和思维方式上有着显著的区别:

规则驱动vs数据驱动:传统编程基于开发者编写的明确规则和算法来处理输入数据,输出预定义的结果。而机器学习是通过从数据中学习模式和规律来处理输入数据,从而产生相应的输出,不需要明确的规则。任务类型:传统编程适用于那些任务的规则和条件已经被明确定义,例如数学运算、条件判断等。而机器学习适用于那些难以通过明确规则来解决的复杂任务,例如图像识别、语音识别、自然语言处理等。编码方式:传统编程中,程序员需要明确编码来执行特定任务。而机器学习中,程序员不需要明确编写任务特定的算法,而是提供大量的数据和相应的输出,并让模型从数据中学习。通用性:传统编程中,每个任务需要开发者编写特定的代码,通常无法轻松应用于其他任务。而机器学习可以应用于广泛的任务,只需要提供相应的数据和标签。适应性和泛化能力:传统编程需要程序员明确考虑所有可能的情况和条件,难以适应未知的情况。而机器学习具有适应新数据和未知情况的能力,可以在未见过的数据上进行泛化。调试和优化:传统编程中,调试基于编写规则的代码通常相对容易,可以追踪到代码的执行流程。而机器学习中,模型的内部运作方式可能比较难以理解,调试和优化可能需要更多的经验和专业知识。数据的重要性:传统编程中,数据通常用于输入,但对于程序的功能实现来说并不是关键。而机器学习中,数据是至关重要的,模型的性能和泛化能力直接取决于提供的数据的质量和数量。迭代和改进:传统编程中,程序员需要在代码中直接进行修改和改进。而机器学习可以通过提供更多的数据、调整模型架构或参数等方式来改进模型的性能。

总而言之,机器学习强调了从数据中学习模式和规律,而不是显式编写规则来解决问题。机器学习适用于那些难以通过传统编程方法解决的复杂问题,对于大量数据和复杂任务的处理具有很强的优势。

(二)机器学习与传统编程之间有几个关键区别:

编程方式:在传统编程中,程序员编写明确的规则和算法,以指导计算机执行特定的任务。程序员需要定义输入、处理和输出的逻辑。而机器学习采用了不同的方法,程序员为机器学习模型提供数据和目标,而不是明确的规则。模型从数据中学习规律和模式,然后自动进行决策和预测。任务复杂性:传统编程适用于已知的、相对简单的任务,这些任务通常设计确定性的问题,其中规则和逻辑可以清晰地定义。机器学习通常用于处理复杂、模糊或不确定的任务,这些任务涉及大量数据和模式识别,例如自然语言处理、图像识别、语音识别和推荐系统。数据需求:传统编程通常不需要大规模的数据集,程序员根据已知规则编写代码,不依赖于数据。而机器学习依赖于大量的数据来训练模型,更多的数据通常意味着更好的性能和泛化能力,数据质量和多样性对机器学习的成功至关重要。适应性和泛化:传统编程的程序通常在指定的规则下运行,不具备适应新情况或未见过的数据的能力。而机器学习模型具有适应性,可以在未知数据上表现良好,能够泛化到不在训练数据中的情况。维护和更新:传统程序通常需要定期更新和维护以适应变化的需求和环境。而机器学习的模型训练好,它们可以自动适应新数据,减少了手动维护的需求,不过模型的监视和重新训练仍是重要的。

总的来说,传统编程适用于具有明确规则的任务,而机器学习适用于复杂的、数据驱动的任务,其规则不容易通过传统编程方式定义。机器学习具有更强的自适应性和泛化能力,但也需要大量的数据和模型训练。在实际应用中,机器学习和传统编程可以相互补充,根据任务的性质来选择合适的方法。

四、机器学习的相关概念

数据(Data):机器学习依赖于数据作为输入、这些数据可以是各种类型的,如数字、文本、图像、声音等,取决于问题的性质。模型(Model):机器学习使用模型来表示数据和任务之间的关系。模型可以是数学函数、神经网络、决策树等,它们根据数据进行参数调整,以便进行预测和决策。学习(Learning):机器学习模型通过学习从数据中提取有用的信息和知识。学习的过程包括训练和优化,模型会不断调整其参数以改善性能。任务(Task):机器学习可以用于解决各种任务,包括分类、回归、聚类、降维、生成、强化学习等。不同的任务需要不同类型的模型和方法。特征(Feature):特征是用于描述数据的属性或变量。在机器学习中,特征的选择和工程可以影响模型的性能。训练和测试(Training and Testing):机器学习通常将数据分为训练集和测试集。模型在训练集上学习,然后在测试集上进行评估,以检验其性能和泛化能力。泛化(Generalization):模型的泛化能力指的是其在未见过的数据上表现良好的能力。泛化是机器学习的核心目标之一。评估(Assessment):机器学习模型的性能通常使用各种指标来进行评估,如准确率、精确度、召回率、均方误差、对数损失等。超参数(Hyperparameter):除了模型参数外,机器学习还涉及到超参数的选择,这些参数不是通过学习而是手动设置的,如学习率、树的深度、聚类的簇数等。监督学习和无监督学习(Supervised Learning and Unsupervised Learning):监督学习是指模型从有标签的训练数据中学习,无监督学习是指模型从无标签的数据中自动发现结构和模式。强化学习(Reinforcement Learning):强化学习是一种机器学习的方法,其中模型通过与环境交互获得奖励或惩罚,从而学习最优的行为策略。

五、数据、特征和标签

(一)数据

在机器学习中,数据是指用于训练、测试和评估模型的信息集合。数据是机器学习的基础,它包含有关问题领域的各种观察结果、事实、属性或特征。

数据类型:数据可以采用各种不同的类型,包括数值数据(如测量值)、分类数据(如性别、颜色)、文本数据、图像数据、时间序列数据等。数据的类型决定了在建模和分析过程中应采用的技术和方法。特征和标签:在监督学习中,数据通常包括特征和标签。特征是用于描述样本的属性,而标签是我们希望模型预测或分类的结果。训练数据和测试数据:数据通常被分为训练数据和测试数据。训练数据用于训练机器学习模型,而测试数据用于评估模型的性能。数据预处理:数据往往需要经过预处理,包括缺失值处理、特征缩放、特征工程、标签编码等。预处理有助于确保数据质量和适用性,以及提高模型性能。数据采集和清洗:数据的质量对机器学习至关重要。数据可能需要从多个来源采集,然后进行清洗以去除错误或者不一致的信息。数据集的大小:数据集的大小可以对机器学习模型的性能产生重要影响。更大的数据集通常可以通过更好的泛化性能,但也需要更多的计算资源。样本和标本:数据集有许多样本组成,每个样本都包含一组特征和标签。样本是模型训练的基本单元。标本通常表示训练集中的一个实例。特征选择:特征选择是从原始数据中选择最重要的特征以减少维度或提高模型性能的过程。良好的特征选择可以改善模型的效果。不平衡数据:在某些情况下,数据集可能不平衡,即某些类别的样本数量远远少于其他类别。这需要特殊的方法来处理,以确保模型不偏向于主要类别。数据隐私和安全性:在处理敏感数据时,数据隐私和安全性是重要考虑因素。机器学习任务可能需要采取措施来保护数据的隐私和安全性。

数据在机器学习中扮演了关键角色,它的质量、数量和类型对模型的性能和能力产生重要影响。因此,在机器学习项目中,数据的采集、清洗、预处理和分析是不可或缺的步骤。

(二)特征

在机器学习中,特征是描述数据的属性或变量,它们是模型用来进行预测、分类或分析的输入变量。特征可以是各种不同类型的数据,包括数值型、分类型、文本型、图像型等,具体取决于问题的性质。特征的选择和工程化在机器学习中非常重要,因为它们直接影响模型的性能和泛化能力。

特征类型:

数值型特征:这些特征包含数值或连续的数据,通常可以进行算术运算。分类型特征:这些特征包含有限数量的离散类别,可能需要进行编码,以便模型理解。文本型特征:这些特征包含文本数据,通常需要经过自然语言处理的处理和特征提取。图像型特征:这些特征包含图像或图形数据,通常需要计算机视觉技术的应用。 特征工程:指选择、创建、转换、和提取特征的过程,以便提高机器学习模型的性能。这包括特征选择(选择最相关的特征)、特征缩放(使特征具有相似的尺度)、特征编码(将分类型特征转换为数值)、文本特征提取(从文本中提取关键信息)等。维度:指特征的数量。高纬度数据通常包含大量特征,可能会导致过拟合问题和计算负担。维度约简(降维)技术,如主成分分析(PCA)可以用来减少维度。特征选择:指选择最重要的特征,以减少维度并提高模型性能的过程,有助于消除不相关或冗余的特征,简化模型并提高泛化能力。特征重要性:在某些机器学习算法中,可以通过分析模型的特征重要性来了解哪些特征对模型的预测起到关键作用。领域知识:对于特征工程至关重要,了解问题领域的专业知识可以帮助确定哪些特征最相关和有意义。

(三)标签

在机器学习中,标签通常用于监督学习任务。标签是与每个数据点或样本相关联的输出或结果,它们是模型用于学习和进行预测的目标值。标签提供了关于数据的真实答案或期望输出的信息,允许模型通过学习输入特征和标签之间的关系来进行预测。

标签类型:标签的类型取决于具体的机器学习任务。一般来说,监督学习任务可以分为分类任务和回归任务。

分类标签:在分类任务中,标签通常表示数据点所属的类别或类别之一。回归标签:在回归任务中,标签通常表示一个数值或连续的输出。多类别标签:适用于多类别分类任务,其中每个数据点可以属于多个类别之一。标签通常是多维向量,每个维度对应一个类别。多标签标签:适用于多标签分类任务,其中每个数据点可以具有多个标签。标签也通常是多维向量,每个维度表示一个可能的标签。 训练数据集:包括了特征和对应的标签。模型通过观察训练数据中的特征和标签之间的关系来学习。测试数据集:用于评估模型的性能。模型在测试数据上进行预测,并将其与实际标签进行比较以计算性能指标,如准确度或均方误差。标签编码:在分类任务中,通常需要将标签进行编码,以便模型能够理解。标签平衡与不平衡:在某些任务中,不同类别的标签可能具有不同的分布,导致标签不平衡问题。处理不平衡标签的方法包括过采样、欠采样和权重调整等。标签质量(数据质量):标签的质量对于模型性能非常重要。准确的标签有助于模型学习正确的关系。

标签是监督学习任务中的关键元素,它们代表了我们希望模型学习和预测的目标值。选择合适的标签类型、处理不平衡标签、编码标签以及确保标签和数据的质量都是机器学习项目中需要考虑的重要方面。

六、监督学习、无监督学习和强化学习的区别与应用场景

(一)监督学习

监督学习是机器学习的一种重要范式,它使用有标签的数据来训练模型,以便模型能够预测或分类新的、未标记的数据。

概念:监督学习是一种机器学习范式,其中模型从带有标签的训练数据中学习,以建立输入数据和输出标签之间的关系。模型的目标是通过学习这些数据来进行预测、分类或回归。特点:

有标签数据:监督学习依赖于带有标签的数据,这意味着每个训练样本都有一个已知的标签或输出值用于指导模型学习。目标导向:在监督学习中,模型的目标是学习输入数据与输出标签之间的映射关系,以便能够对新数据进行准确的预测或分类。评估和泛化:监督学习模型通常使用测试数据来评估其性能,测试数据与训练数据不重叠,用于检查模型在未见过的数据上的泛化能力。分类与回归:监督学习任务可以分为分类任务和回归任务。在分类任务中,模型将数据分为不同的类别。而在回归任务,模型预测连续的数值。 应用:垃圾邮件检测、图像分类、医学诊断、金融预测、自然语言处理、自动驾驶等。常见算法:决策树、支持向量机、神经网络等。

(二)无监督学习

无监督学习是机器学习的一种范式,与监督学习不同,它处理没有标签或类别信息的数据,主要用于数据探索和模式发现。

概念:无监督学习是一种机器学习范式,任务是从未标记的数据中发现数据的内在结构和模式。在无监督学习中,模型不依赖于标签或类别信息,而是试图根据数据的相似性、分布或关系对数据进行聚类、降维或生成新的数据表示。特点:

无标签数据:无监督学习任务的数据通常不包含标签或类别信息,这使得该方法适用于大多数现实世界的数据,尤其是在数据探索阶段。聚类:聚类算法将数据点分组成相似的簇,每个簇包含具有相似性质的数据点。降维:降维算法减少数据的维度,保留最重要的特征,以便减少数据的复杂性并提高可视化和建模效率。无监督特点:无监督学习的任务通常更具有挑战性,因为模型必须自行发现数据的结构,而无监督特点往往更隐晦。 应用:聚类分析、降维和可视化、异常检测、生成模型、推荐系统、自然语言处理等。常见算法:聚类分析、主成分分析(PCA)、生成对抗网络(GANs)等。

(三)强化学习

概念:强化学习是一种机器学习范式,其目标是让一个智能体通过与环境的交互学习来实现某种目标或最大化累积奖励。在强化学习中,智能体根据其行动的结果和环境的奖励信号来调整策略,以使其在未来获得更大奖励。特点:

奖励信号:强化学习的主要特点是智能体通过与环境交互获得奖励信号,这些奖励信号指示了每个行动的好坏,目标是使得累积奖励最大化。序列决策问题:强化学习通常涉及连续的决策过程,智能体需要在时间步骤中连续地选择行动。每个行动会影响后续的状态和奖励。延迟奖励:强化学习考虑到了延迟奖励的影响,智能体必须考虑当前行动的长期影响。探索与利用的权衡:智能体需要在已知的高奖励策略和探索未知策略之间进行权衡,以便更好地了解环境并取得更大的奖励。 应用:游戏玩法、机器人控制、推荐系统、金融交易、自然语言处理、医疗领域等。常见算法:Q-Learning、Deep Q Network等。

(四)区别:

数据类型:

监督学习使用有标签数据。无监督学习使用未标记数据。强化学习使用奖励信号和互动数据。 任务类型:

监督学习用于分类和回归任务,建立输入特征和输出标签之间的映射关系。无监督学习用于聚类、降维、关联等任务,发现数据中的结构和模式。强化学习用于决策和策略优化。 应用场景:

监督学习可用于图像分类、垃圾邮件检测、房价预测等。无监督学习可用于聚类、降维、异常检测等。强化学习可用于游戏玩法、机器人控制、推荐系统、自动驾驶等。

第二章 逻辑回归

一、逻辑回归

逻辑回归(Logistic Regression)是一种用于解决二元分类问题的统计学方法。主要思想是将输入特征线性组合后通过逻辑函数映射到一个概率值,该概率值表示属于某个类别的概率。虽然逻辑回归通常用于解决二元分类问题,但也可以扩展到多元分类问题,称为多类别逻辑回归。逻辑回归在实际应用中被广泛用于医学、自然语言处理、市场营销、金融等领域的分类任务。

线性组合:对于给定的输入特征向量

X

X

X,逻辑回归通过将特征的线性组合来计算一个值,这个值表示了对于给定输入特征,属于某个类别的“对数几率”。逻辑函数(Sigmoid函数):逻辑回归使用逻辑函数来将线性组合的结果映射到一个介于0和1之间的概率值。Sigmoid函数的公式为

P

(

Y

=

1

X

)

=

1

1

+

e

Z

P(Y=1|X)=\frac{1}{1+e^{-Z}}

P(Y=1∣X)=1+e−Z1​。其中,

Z

Z

Z是线性组合的结果,

P

(

Y

=

1

X

)

P(Y=1|X)

P(Y=1∣X)表示在给定输入特征

X

X

X的条件下,属于类别1的概率。决策边界:是分隔两个类别的界限。在逻辑回归中,可以选择一个阈值,将概率值映射为二元分类的预测结果。如果概率大于阈值,则预测为类别1;如果概率小于或等于阈值,则预测为类别0。训练过程:逻辑回归的训练过程通常涉及到最大似然估计等方法,目标是找到最适合数据的模型参数,以最大化观测数据的概率。

逻辑回归的数学模型表示如下:

P

(

Y

=

1

X

)

=

1

1

+

e

(

β

0

+

β

1

X

1

+

β

2

X

2

+

+

β

p

X

p

+

ϵ

)

P(Y=1|X)=\frac{1}{1+e^{-(\beta_0+\beta_1X_1+\beta_2X_2+…+\beta_pX_p+\epsilon)}}

P(Y=1∣X)=1+e−(β0​+β1​X1​+β2​X2​+…+βp​Xp​+ϵ)1​

其中,

X

1

,

X

2

,

,

X

p

X_1,X_2,\ldots,X_p

X1​,X2​,…,Xp​是自变量(特征),

β

0

,

β

1

,

β

2

,

,

β

p

\beta_0,\beta_1,\beta_2,\ldots,\beta_p

β0​,β1​,β2​,…,βp​是回归系数,

ϵ

\epsilon

ϵ是误差项,

Y

Y

Y是目标变量,

P

(

Y

=

1

X

)

P(Y=1|X)

P(Y=1∣X)表示在给定输入特征

X

X

X的条件下,属于类别1的概率。

二、线性回归与逻辑回归

(一)线性回归

线性回归是一种用于建立和建模连续数值输出的统计学习方法。它的基本思想是通过找到一个线性关系来预测或解释目标变量和一个或多个特征之间的关系。线性回归的数学模型可以表示为:

Z

=

β

0

+

β

1

X

1

+

β

2

X

2

+

+

β

p

X

p

+

ϵ

Z=\beta_0+\beta_1X_1+\beta_2X_2+…+\beta_pX_p+\epsilon

Z=β0​+β1​X1​+β2​X2​+…+βp​Xp​+ϵ。其中,

Z

Z

Z是因变量(目标变量),

X

1

,

X

2

,

,

X

p

X_1,X_2,\ldots,X_p

X1​,X2​,…,Xp​是自变量(特征),

β

0

,

β

1

,

β

2

,

,

β

p

\beta_0,\beta_1,\beta_2,\ldots,\beta_p

β0​,β1​,β2​,…,βp​是回归系数,

ϵ

\epsilon

ϵ是误差项。线性回归旨在通过最小化误差项来找到最合适的回归系数,以使模型最好地拟合数据。

(二)逻辑回归

逻辑回归是一种用于解决二元分类问题的统计学习方法。它与线性回归的主要不同在于逻辑回归的输出是一个概率值,表示属于某一类别的概率,而不是连续数值。

(三)线性回归与逻辑回归的关系

相似性:

都使用线性模型:两者都使用线性模型来建立关系。线性回归的线性模型直接用于预测连续数值,而逻辑回归的线性模型用于计算属于某一类别的对数几率。都可以使用最小化损失函数的方法进行参数估计。 不同之处:线性回归适用于预测连续数值,而逻辑回归适用于进行二元分类或估计概率。

三、二分类逻辑回归

二分类逻辑回归(Binary Logistic Regression)是一种用于解决二元分类问题的统计学习模型。它基于输入特征来预测两个可能的类别中的一个,通常表示为0和1。

定义:二分类逻辑回归是一种基于逻辑函数的线性模型,用于预测某个事件发生的概率。该模型的输出是一个介于0和1之间的概率值,通常通过设定一个阈值来进行二元分类决策。优点:简单高效、可解释性强、适用性广泛、不易过拟合、适用于特征工程。应用场景:医疗诊断、信用评分、市场营销、自然语言处理、人工智能等。缺陷:对于非线性问题或复杂模式的数据不太适用。

四、多分类逻辑回归

多分类逻辑回归(Multinomial Logistic Regression)是一种用于解决多类别分类问题的统计学习模型。与二分类逻辑回归不同,多分类逻辑回归可以用于将样本分为三个及以上不同的类别。

定义:多分类逻辑回归是一种基于逻辑函数的线性模型,用于将输入特征映射到多个类别中的一个。对于每个可能的类别,模型都计算一个概率,并最终选择具有最高概率的类别作为预测结果。多分类逻辑回归通常使用Softmax函数来将线性组合的结果转化为类别概率。特点:

多类别输出:多分类逻辑回归允许将样本分为三个或更多个不同的类别。Softmax函数:多分类逻辑回归使用Softmax函数来计算每个类别的概率。Softmax函数能够将线性组合的分数转化为概率分布,确保所有类别的概率之和为1.One-vs-All(One-vs-Rest)方法:多分类逻辑回归中通常使用**“One-vs-All”或“One-vs-Rest”**的方法来处理多类别问题。该方法将每个类别与其余的类别进行比较,形成多个二分类问题。然后针对每个二分类问题训练一个独立的逻辑回归模型,最后通过将所有模型的预测结果进行比较来确定最终的类别。 优点:适用性广泛、可解释性强等。缺陷:适用于相对简单的多分类问题,对于更复杂的多类别分类问题,可能需要使用深度学习等更强大的方法来获得更好的性能。

五、最大似然估计MLE

逻辑回归中的参数估计通常使用最大似然估计(Maximum Likelihood Estimation)方法。它是一种常见的统计估计方法,它使得模型能够适应训练数据并找到最优的参数配置,以便进行分类预测。

优点:

统计一致性:MLE的参数在样本数量趋于无穷大时,趋于真实参数的值。这意味着随着样本数量的增加,MLE趋于稳定且准确,具有一致性。渐进有效性:MLE通常在大样本情况下是渐近有效的,即它是渐近最佳的估计方法,具有最小的渐近方差。这意味着当样本数量足够大时,MLE通常具有较小的估计误差。偏差最小:对于大多数样本集,MLE的期望值与真实参数之间的偏差较小。一致性性质:当样本数量增加时,MLE的参数趋于真实参数。这意味着,即使在有限样本情况下,MLE也有望趋于真实情况。数学上的可解性:MLE通常具有解析解。这意味着可以通过解方程或最优化问题来得到估计的参数,而不需要复杂的数值优化算法。无偏性:在大量重复实验的情况下,MLE的平均值接近于真实参数值。广泛应用:MLE在统计学和机器学习中广泛应用于各种问题,包括回归、分类、密度估计、参数估计等领域。 缺陷:在小样本或高维数据的情况下,可能会出现过拟合问题。

六、梯度下降算法

逻辑回归中的梯度下降算法用于最小化损失函数以找到最优的模型参数。在逻辑回归中,通常使用对数损失函数(也称交叉熵损失函数)来衡量模型的性能。它通过计算损失函数的梯度,然后沿着负梯度方向更新模型参数,以最小化损失函数。使得模型能够适应训练数据并找到最优的参数配置,从而进行二分类预测。

基本原理如下:

1.定义损失函数:在逻辑回归中,通常使用对数损失函数来衡量模型的性能。

对于二分类问题,对数损失函数可以表示为:

J

(

θ

)

=

1

m

i

=

1

m

(

Y

i

l

o

g

(

h

θ

(

x

i

)

)

+

(

1

Y

i

)

l

o

g

(

1

h

θ

(

x

i

)

)

)

J(\theta)=-\frac{1}{m}\sum^{m}_{i=1}(Y_ilog(h_\theta(x_i))+(1-Y_i)log(1-h_\theta(x_i)))

J(θ)=−m1​∑i=1m​(Yi​log(hθ​(xi​))+(1−Yi​)log(1−hθ​(xi​)))

其中,

m

m

m是训练样本的数量;

x

i

x_i

xi​表示第

i

i

i个样本的特征向量;

Y

i

Y_i

Yi​表示第

i

i

i个样本的实际标签(0或1);

h

θ

(

x

i

)

h_\theta(x_i)

hθ​(xi​)表示逻辑回归模型的预测值,表示样本属于类别1的概率。

计算梯度:梯度是损失函数关于模型参数的偏导数,它指示了损失函数在某点的变化率和方向。 对于逻辑回归,可通过计算关于每个参数

θ

j

\theta_j

θj​的偏导数,从而得到梯度向量

J

(

θ

)

\nabla J(\theta)

∇J(θ). 更新参数:使用梯度信息来更新模型的参数。梯度下降的更新规则为

θ

j

:

=

θ

j

α

J

(

θ

)

θ

j

\theta_j:=\theta_j-\alpha\frac{\partial J(\theta)}{\partial \theta_j}

θj​:=θj​−α∂θj​∂J(θ)​ 其中,

α

\alpha

α是学习率,控制每次参数更新的步长。 重复迭代:重复2和3,直到满足停止条件。

根据具体的应用场景和问题,梯度下降算法有多种变体。对于大规模数据集,可以使用批量梯度下降(Batch Gradient Descent),它在每一次迭代中使用整个训练数据集来计算梯度和更新参数。对于较小的数据集,可以使用随机梯度下降(Stochastic Gradient Descent),它在每一次迭代中随机选择一个训练样本来计算梯度和更新参数。而小批量梯度下降(Mini-batch Gradient Descent)则是两者的折中方法,每次迭代计算一小部分样本的梯度。

七、模型评估

常见的逻辑回归模型评估方式和指标:

混淆矩阵(Confusion Matrix):是一个用于详细分析分类模型性能的工具,包括真正例(True Positives,TP)、真负例(True Negatives,TN)、假正例(False Positives,FP)和假负例(False Negatives,FN)。同时,可计算出其他性能指标,如精确度、召回率、F1分数等。 混淆矩阵记忆Tips:如果预测结果和真实结果一致为T,反之为F;再看预测结果,预测为真,为P,反之为N。

Actually PositiveActually NegativePredicted PositiveTPFPPredicted NegativeFNTN 准确率(Accuracy):衡量模型正确分类的样本数与总样本数之间的比例。即

A

c

c

u

r

a

c

y

=

T

P

+

T

N

T

P

+

T

N

+

F

P

+

F

N

Accuracy=\frac{TP+TN}{TP+TN+FP+FN}

Accuracy=TP+TN+FP+FNTP+TN​. 精确度(Precision):被模型正确分类的正样本数量(TP)与所有被模型分类为正样本的样本数量(TP+FP)之间的比例。即

P

r

e

c

i

s

i

o

n

=

T

P

T

P

+

F

P

Precision=\frac{TP}{TP+FP}

Precision=TP+FPTP​. 召回率(Recall):被模型正确分类的正样本数量(TP)与所有实际正样本数量(TP+FN)之间的比例。即

R

e

c

a

l

l

=

T

P

T

P

+

F

N

Recall=\frac{TP}{TP+FN}

Recall=TP+FNTP​. F1分数(F1-Score):精确度和召回率的调和平均值,用于在一个单一的指标中平衡两者。即

F

1

S

c

o

r

e

=

2

×

P

r

e

c

i

s

i

o

n

×

R

e

c

a

l

l

P

r

e

c

i

s

i

o

n

+

R

e

c

a

l

l

F1-Score=2×\frac{Precision×Recall}{Precision+Recall}

F1−Score=2×Precision+RecallPrecision×Recall​. ROC曲线与AUC值:ROC曲线是一个用于衡量分类器性能的图形工具,它绘制了真正例率(True Positive Rate,TPR)与假正例率(False Positive Rate,FPR)之间的关系。AUC值表示ROC曲线下的面积,通常用来比较不同模型的性能。 对数损失(Log Loss):用于衡量概率模型性能的损失函数,适用于逻辑回归等概率模型。对数损失越低越好,对模型的概率预测质量非常敏感。 交叉验证(Cross-Validation):用于估计模型在未见数据上的性能的技术。常见的有k折交叉验证、留一交叉验证等。 PR曲线与AUC-PR值:PR曲线用于衡量分类器在不同精确度和召回率水平下的性能。AUC-PR值表示PR曲线下的面积,用于比较模型性能。 校准曲线:用于评估概率模型的校准性,即模型的概率预测与实际事件发生的概率之间的一致性。

八、决策树

决策树是一种用于解决分类和回归问题的监督学习算法。它是一种树状结构,用于将输入数据划分为不同的类别或预测连续值。其构建和预测过程基于对特征属性的逐级划分。

基本概念:

结构:决策树由节点和边组成,包括根节点、内部节点和叶子节点。其中,根节点表示整个数据集或子数据集;内部节点表示一个特征属性;叶子节点表示最终的类别或回归值。决策过程:递归的过程,从根节点开始,根据特征属性的取值进行分裂,生成子节点,然后分裂子节点,直到满足停止条件。分裂的目标是最大化信息增益(用于分类问题)或 最小化平方误差(用于回归问题) 等准则。分裂准则:取决于问题的性质,准则如信息增益、基尼不纯度、均方误差等。剪枝:移除一些节点或子树,降低树的复杂度,防止过拟合,提高泛化能力。剪枝过程中,移除的节点或子树可能包含噪声或不重要的信息,它们的移除有助于提高模型在未见数据上的性能。预测:对于分类问题,决策树预测新数据点的类别是从根节点到叶子节点的路径。对于回归问题,预测是叶子节点的平均值或加权平均值。 优点:易于理解和解释,可视化效果好;可以处理混合类型的数据,包括数值型和类别型特征;不需要复杂的数据预处理;可用于特征选择,帮助识别重要的特征。缺点:对于复杂数据集,容易过拟合;对于某些问题,不够泛化;不稳定,小的数据变化可能导致树结构的巨大变化。决策树的构建:决策树的构建是一个自顶向下的递归过程,通常使用分裂准则来选择特征属性和划分点。主要步骤包括:(1)选择特征属性;(2)划分数据集;(3)递归构建子树。常见的决策树的剪枝方法:

预剪枝:在树的构建过程中,通过设置停止条件来限制树的生长。如,限制树的最大深度、最小叶子节点样本数、最小分裂样本数等。后剪枝:在树的构建完成后,移除一些节点或子树。常见的后剪枝方法包括代价复杂性剪枝、最小描述长度剪枝等。交叉验证剪枝:使用交叉验证技术来选择最优的剪枝参数。

九、集成学习方法(随机森林与梯度提升树)

随机森林和梯度提升树都是集成学习方法,用于提高决策树模型的性能,尤其在处理复杂的、高维的数据集时表现出色。

(一)随机森林

定义:随机森林是一种集成学习方法,由多个决策树组成,每个决策树都是独立训练的。随机森林通过对多个决策树的预测结果进行集成,来提高模型的性能。构建过程:(1)随机选择训练数据的子集;(2)随机选择特征属性的子集;(3)训练多个决策树,每个决策树都基于不同的数据子集和特征子集;(4)最终的预测结果是多个决策树的平均值(回归问题)或多数投票(分类问题)。特点:具有高度的鲁棒性,能够处理高维数据和大规模数据集;通常不需要特征缩放和参数调整;具有较强的防止过拟合的能力。应用场景:适用于各类分类和回归问题,包括图像分类、文本分类、生物信息学、金融风险评估等。

(二)梯度提升树

定义:梯度提升树是一种迭代的集成学习方法,通过不断训练决策树,每次训练的目标是减小前一次训练的残差或梯度。最终预测结果是多个决策树的加权和。构建过程:(1)初始化一个基础模型,如决策树;(2)计算当前模型的残差(回归问题)或梯度(分类问题);(3)训练一个新的决策树来拟合残差或梯度;(4)更新模型,将新的决策树加入到模型中,并通过学习率来控制其权重;(5)重复以上步骤,直到满足停止条件。特点:通常具有更高的预测性能,但相较于随机森林,对于参数调整和过拟合的控制要求更高。应用场景:广泛用于回归和分类问题,包括搜索排名、推荐系统、异常检测等领域。

十、支持向量机

支持向量机(SVM)是一种监督学习算法,用于解决分类和回归问题。其主要目标是找到一个最优的超平面,以将不同类别的数据点分开并具有最大间隔。

关键概念:

超平面:指D维空间中,(D-1)维的子空间。可用线性方程表示为:

ω

T

x

+

b

=

0

\omega^Tx+b=0

ωTx+b=0,其中

ω

\omega

ω是法向量(垂直于超平面的向量),

x

x

x是数据点的特征向量,

b

b

b是偏置项。分离超平面:对于二分类问题,SVM的目标是找到一个超平面,使得两个不同类别的数据点分别位于超平面的两侧,并且使两类数据点到超平面的距离尽可能大。这个超平面就被称为分离超平面。支持向量:离分离超平面最近的数据点。在SVM训练过程中最要的数据点,决定了超平面的位置和间隔。间隔:支持向量到分离超平面的距离。SVM的目标是最大化这个间隔,以提高模型的泛化能力。核函数:SVM通过核函数来处理非线性问题,将数据映射到更高维的特征空间,然后在该空间中找到分离超平面。常见的核函数包括线性核、多项式核和高斯核等。正则化参数(C值):控制间隔和错误分类点之间的权衡。较小的C值会导致更大的间隔,但可能会容忍一些错误的分类点,而较大的C值会导致较小的间隔,更加准确。软间隔:允许一些数据点落在错误一侧来处理不完全线性可分的情况。这种情况下的SVM称为软间隔SVM。多类别分类:SVM可以通过多个二分类SVM来处理多类别分类问题。 优点:(1)适用于高维空间的数据集;(2)在处理非线性问题时,可以使用不同的核函数;(3)具有较强的泛化能力,对过拟合的控制较好;(4)支持向量通常是少数重要的数据点,有助于提高模型的鲁棒性。缺点:(1)对于大规模数据集,训练时间较长;(2)需要选择合适的正则化参数C和核函数;(3)不适用于处理包含大量噪声的数据集。应用场景:广泛应用于图像分类、文本分类、生物信息学、金融预测、自然语言处理、推荐系统、异常检测、核磁共振波谱分析等各种领域。

(一)线性SVM和非线性SVM

线性SVM和非线性SVM都是支持向量机的变体,用于解决不同类型的分类问题。主要区别在于处理数据的方式和决策边界的形状。

线性SVM:适用于处理线性可分的数据,即可以通过一个超平面将不同类别的数据完全分开。其决策边界是一个线性函数,通常是一个超平面。优点在于对高维数据的有效性,以及在处理线性可分问题时具有较高的计算效率。非线性SVM:用于处理非线性问题,其中数据点不能被单个超平面分开。为解决此问题,引入核函数,将数据映射到更高维的特征空间,使其在高维空间中变得线性可分。常见的核函数包括线性核、多项式核和高斯核等。其决策边界可以是复杂的非线性函数。优点在于对于复杂数据结构的建模能力,能处理不完全线性可分的问题。

(二)核函数

核函数是支持向量机和一些其他机器学习算法中关键概念之一。用于处理非线性问题,通过将数据映射到更高维的特征空间,使其在高维空间中变得线性可分。

定义:将原始特征空间中的数据映射到另一个特征空间的函数。主要特性是它在计算映射后的特征时,不需要显式计算这些特征,而是通过核函数的计算来实现。通常表示为

K

(

x

,

y

)

K(x,y)

K(x,y),其中

x

x

x和

y

y

y是原始特征空间中的数据点。常见的核函数:

线性核:不引入新的特征,保持原始特征空间的数据不变,因此在原始特征空间中的决策边界是线性的。多项式核:将数据映射到高维空间,通过多项式特征的组合来实现非线性分离。高斯核:将数据映射到无限维的特征空间。在高维空间中产生径向基函数,可以捕获复杂的非线性关系。Sigmoid核:可用于处理非线性问题,在一些神经网络模型中有应用。 应用:图像分类、文本分类、生物信息学、医学图像处理、金融领域等。

第三章 无监督学习

一、无监督学习的应用

见第一章

二、聚类算法

聚类算法是一类机器学习算法,它们用于将数据集中的样本分成具有相似特征的不同组,这些组被称为簇。聚类是一种无监督学习任务,其中数据没有标签,算法的目标是自动发现数据中的内在结构和模式。常见的聚类算法包括K-means、DBSCAN、层次聚类、高斯混合模型、谱聚类、Mean Shift聚类、OPTICS、Affinity Propagation等。

三、K均值聚类

K均值聚类是一种常用的聚类算法,它将数据集分为K个簇,每个簇包含距离最近的K个数据点。

应用:

数据准备。将数据整理成适合K均值聚类的格式。选择K的值。可以选择使用肘部法则来选择K值,该方法涉及计算不同K值下的簇内平方和(SSE),并找到一个“肘部点”,即SSE开始迅速下降的点。模型训练。使用选择的K值,训练K均值聚类模型。簇分析。识别每个簇的特征。结果解释和应用。

四、层次聚类

层次聚类是一种聚类分析方法,它将数据集分层次地组织成树状结构,通常称为“谱系树”或“树状图”。其主要思想是通过逐渐合并或分裂数据点来构建这个树状结构,直到形成一个包含所有数据点的簇或子集。

原理:

自下而上聚类(凝聚性聚类):最常见的层次聚类方法之一。它从每个数据点作为单独的簇开始,然后逐渐将最近的簇合并成更大的簇,直到只剩下一个包含所有数据点的簇。合并的过程通过计算簇之间的相似度或距离来确定。自上而下聚类(分裂性聚类):所有的数据点作为一个大簇开始,然后逐渐将其分裂成较小的簇,直到每个簇包含一个或多个数据点。分裂的过程也是通过相似性或距离决定的。 应用场景:生物学和生物信息学、文本和自然语言处理、图像分割、社交网络分析、市场细分、物联网和传感器数据分析、医学图像分析、品质控制和制造业。作用:

发现数据的层次结构:帮助理解数据的内在结构和层次性,识别数据中的子群体和相似性模式。可视化数据分布:生成的谱系树图可用于可视化数据分布,有助于快速了解数据点之间的关系。数据降维:将大量的数据点组织成相对较少的簇,实现数据的降维。噪声数据识别:通过观察聚类结果,可以识别出与其他数据点差异较大的离群点或噪声数据,有助于数据的清洗和处理。

五、密度聚类

密度聚类是一种聚类分析方法,它根据数据点的密度分布来确定簇的形状和边界。与传统的基于距离的聚类方法(如K均值聚类)不同,密度聚类不需要事先指定簇的数量,且可以识别具有不同密度的簇。其核心思想是将数据点组织成高密度区域(簇),并分隔低密度区域(噪声)。代表性算法包括DBSCAN、OPTICS等。密度聚类在诸如异常检测、地理信息系统、图像分割和社交网络分析等领域中广泛应用。

核心点:对于每个数据点,如果在其邻域内包含至少一定数量的数据点,则该数据点被视为核心点。直接密度可达:如果点

p

p

p在点

q

q

q的

ϵ

\epsilon

ϵ-邻域内,且点

q

q

q是核心点,则点

p

p

p被认为是直接密度可达于点

q

q

q.密度可达:如果存在一系列的核心点,使得每对相邻的核心点都是直接密度可达的,那么点

p

p

p被认为是密度可达于点

q

q

q.密度连接:如果存在一个核心点

o

o

o,使得点

p

p

p和点

q

q

q都是密度可达于核心点

o

o

o,那么点

p

p

p和点

q

q

q是密度连接的。

步骤:

找到所有核心点和它们的

ϵ

\epsilon

ϵ-邻域,每个核心点代表一个簇。将非核心点分配给它们密度可达的核心点所代表的簇。剩余的非核心点被视为噪声或边界点,不属于任何簇。

特点:(1)识别不规则形状的簇;(2)处理噪声和异常值;(3)适应密度不均匀的数据分布;(4)无需事先指定簇的数量。

六、主成分分析

主成分分析(PCA)是一种用于降维和数据压缩的统计技术。它是一种线性降维方法,旨在通过找到数据中的主成分(主要变化方向)来减少数据的维度,同时尽量保留数据的重要信息。

主成分:主成分是数据中方差最大的方向或轴。PCA的目标是找到这些主成分。降维:PCA通过保留前几个主成分,将高维数据映射到低维空间。可以减少特征的数量,降低计算复杂度,同时保留了数据的主要特征。正交性:主成分是正交的,意味着它们彼此之间是线性独立的,即每个主成分都包含了数据中不同的信息。方差解释:PCA提供了每个主成分的方差解释比例,帮助了解每个主成分包含的信息量。投影:PCA将数据点投影在主成分上,从而将数据映射到新的坐标系中。这些投影值可以用于降维后的数据表示。

步骤:

计算数据的均值,然后将数据中心化,即减去均值。计算协方差矩阵,该矩阵描述了数据中各个特征之间的关系。计算协方差矩阵的特征值和特征向量。根据特征值的大小,选择要保留的主成分数量。根据选择的主成分数量,将数据投影到新的坐标系中。

应用:数据降维、数据可视化、特征选择、噪声去除、模式识别等领域。同时,在机器学习和数据分析中常用于减少特征数量、减少过拟合风险和提高模型的性能。有时也用于图像处理和信息处理中,以减少数据的存储和传输成本。

七、降维算法

降维是指将高维度的数据映射到低维度的空间,同时尽量保留原始数据的重要信息。将为可以帮助减少特征的数量,减轻计算负担,同时可以在保留重要信息的前提下,简化数据的标识和可视化。降维算法主要可分为两类:线性降维和非线性降维。

(一)线性降维:通过线性变换将数据映射到低维度空间,常见的线性降维方法包括:主成分分析、因子分析、独立成分分析。

(二)非线性降维:通过非线性变换将数据映射到低维度空间,常见的线性降维方法包括:流形学习、核主成分分析、t分布邻域嵌入(t-SNE)、自编码器。

八、聚类评估

聚类评估主要涉及测量聚类算法的性能,以确定聚类是否有效,簇的质量如何,以及选择适当的簇数等。常见的聚类评估方法包括轮廓系数、互信息、调整兰德指数等,这些方法用于衡量聚类结果的紧密度与分离度,以及与真实标签之间的一致性。

互信息:一种用于度量聚类结果与真实标签之间的一致性程度的指标。测量两者之间的信息交叉,值越高,表示聚类结果和真实标签越一致。 调整兰德指数(ARI):一种用于度量聚类结果与真实标签之间的相似度的指标。它考虑了所有配对的样本之间的相似性,并根据随机期望来调整分数,范围在-1~1之间,较高的ARI值表示聚类结果与真实标签之间的一致性较高。 互信息增益(NMI):一种标准化的互信息度量,用于度量聚类结果与真实标签之间的一致性。它的范围在0~1之间,较高的NMI值表示较好的聚类结果。 卡林斯基-哈拉巴斯指数(DBI):用于评估簇的紧密度和分离度。它计算每个簇与最相似簇之间的平均距离,然后将这些值进行归一化。DBI越低表示聚类结果越好。 方差比标准化指标(VRC):用于评估不同簇数下的方差比例,以确定最佳簇数。它帮助确定聚类的合适数量。 Gap统计量:一种比较聚类结果与随机数据的指标。它通过比较实际数据的损失函数值与随机数据的损失函数值来衡量聚类的质量。 轮廓图:一种可视化工具,用于直观地评估每个样本的轮廓系数,有助于识别聚类的合适数量。

第四章 深度学习

一、深度学习

深度学习是机器学习领域的一个分支,主要特点是通过多层神经网络(深度神经网络)来建模和学习复杂的数据表示。

(一)关键概念:

神经网络:深度学习的核心是神经网络,由多个神经元和多个层次组成。神经网络模拟了人脑中神经元之间的连接,每个神经元都与前一层的神经元相连,并通过加权和激活函数来处理输入数据。深度神经网络:强调使用多个隐藏层的神经网络。深度神经网络具有多层次的特征提取和表示学习能力,故能捕获复杂的数据关系。前向传播:前向传播是神经网络的推理过程。它涉及将输入数据从输入层传递到输出层,经过多个中间层,通过神经元的加权和激活函数来生成预测结果。反向传播:反向传播是神经网络的训练过程。用于计算预测误差,并将误差从输出层传播回每一层,以更新权重和偏差,从而减小误差。激活函数:用于决定神经元的输出。常见的激活函数包括Sigmoid、ReLU、Tanh等。它们引入了非线性性质,使得神经网络能够表示复杂的函数。卷积神经网络(CNN):CNN是一种特殊类型的神经网络,专门用于处理图像和空间数据。包括卷积层和池化层,能够有效地捕获图像中的局部特征。循环神经网络(RNN):用于处理序列数据,如文本、语言和时间序列。通过循环连接来处理序列中的依赖关系。

(二)适用领域:计算机视觉、自然语言处理、语音识别、自动驾驶、医学影像分析、金融领域、游戏与强化学习、推荐系统等。

二、神经网络

神经网络是一种受到人脑结构启发的机器学习模型,用于处理各种复杂的任务,如图像识别、自然语言处理、语音识别和预测等

(一)基础知识:

神经元:神经网络的基本组成单元是神经元,也称为节点或感知器。每个神经元接收多个输入,对这些输入进行加权和处理,然后生成一个输出。神经元的工作方式受到人脑中神经元的启发,它通过神经突触连接,并通过激活函数将输入信号转换为输出信号。层次结构:神经网络通常有多个层次组成,包括输入层、隐藏层和输出层。输入层接收原始数据,隐藏层进行特征提取和表示学习,输出层生成最终的预测或分类结果。隐藏层的存在使得神经网络能够处理复杂的非线性关系。权重:每个神经元与其输入连接的每个连接都有一个权重。这些权重决定了输入信号的重要性,它们可以通过训练过程进行调整,以使网络学会适应任务。激活函数:用于确定神经元的输出。常见的激活函数包括Sigmoid、ReLU、Tanh等。它们引入了非线性性质,使得神经网络能够表示复杂的函数。前向传播:前向传播是神经网络的推理过程。它涉及将输入数据从输入层传递到输出层,经过多个中间层,通过神经元的加权和激活函数来生成预测结果。反向传播:反向传播是神经网络的训练过程。用于计算预测误差,并将误差从输出层传播回每一层,以更新权重和偏差,从而减小误差。损失函数:用于度量模型的预测与实际标签之间的差异。在训练过程中,通过最小化损失函数来调整模型的参数,以提高模型的性能。优化算法:用于更新神经网络的权重,以减少损失函数。常见的优化算法包括梯度下降、随机梯度下降、Adam等。批处理(batch):在训练神经网络时,通常将训练数据分成批次进行处理。每个批次包含一组训练样本,批处理有助于加速训练过程。迭代次数(epochs):神经网络的训练通常需要多次迭代,每次迭代成为一个epoch。在每个epoch中,神经网络通过整个训练数据集进行一次前向传播和反向传播。过拟合和欠拟合:过拟合指模型在训练数据上表现很好,但在测试数据上表现差。欠拟合指模型无法捕获数据中的复杂关系。调整模型的复杂性和正则化方法可以帮助解决这些问题。

三、感知器与多层感知器

感知器和多层感知器(MLP)都是人工神经网络的基本构建块,但它们在结构和能力上有很大的不同。

感知器是一种最简单的神经网络模型,主要用于二元分类问题。但不能解决非线性问题。感知器接受多个输入,对每个输入进行加权,然后将加权和与与阈值进行比较,以产生一个二进制输出(0或1)。其工作方式如下:(1)接受多个二进制输入;(2)为每个输入赋予权重;(3)将所有加权输入求和;(4)将加权和与阈值比较;(5)如果加权和大于阈值,输出1,否则输出0.

多层感知器是一种神经网络模型。由一个或多个隐藏层组成,每个隐藏层包含多个神经元。具有多层结构、非线性激活函数和反向传播训练等特性,能够处理复杂的非线性问题,并在深度学习中发挥关键作用。

四、反向传播算法

反向传播算法是训练神经网络的一种重要算法,它通过计算预测误差并将误差从网络的输出层传播回每一层,以更新权重和偏差,从而减小误差。反向传播算法并不直接获取数据,而是在给定训练数据集的情况下,通过计算损失函数的梯度来更新神经网络的权重和偏差。

(一)基本步骤:

前向传播:从输入层开始,将输入数据传递到网络中的每个神经元,并计算每个神经元的输出。计算损失:使用损失函数来衡量网络的预测输出与实际标签之间的误差。常见的损失函数包括均方误差和交叉熵损失等。反向传播误差:从输出层开始,计算每个神经元的误差梯度,然后将误差梯度传播回每一层,直到输入层。这个过程实际上是求解损失函数对网络参数的偏导数。更新权重和偏差:使用梯度下降或其他优化算法,根据计算得到的梯度来更新每个连接的权重和每个神经元的偏差,以减少损失函数。重复训练:重复执行前向传播、计算损失、反向传播误差和更新权重的步骤,直到达到设定的训练迭代次数或达到一定的训练准则。

(二)注意事项:

选择合适的激活函数:在反向传播算法中,激活函数的导数将直接影响误差的传播。初始化权重:通常采用随机初始化,以避免陷入局部最优解。学习率调整:学习率是梯度下降算法中一个关键超参数,可以影响算法的收敛性和稳定性。批处理和迭代次数

五、深度学习框架

深度学习框架是用于构建、训练和部署深度学习模型的软件工具。这些框架提供了各种功能,包括自动微分、优化算法、神经网络层次结构、GPU加速等,使深度学习任务更容易实现。

TensorFlow:Google开发的开源深度学习框架。适用于从研究到生产部署的全范围任务,并支持分布式计算,适合于需要高度定制化和大规模部署的项目。特点是高度灵活,支持动态图和静态图执行模式,拥有大型社区和丰富的生态系统。PyTorch:Facebook开发的深度学习框架。适合研究和原型开发。特点是动态计算图,易于调试和可视化,被认为是在研究领域的首选工具。Keras:高层次的神经网络API,通常与TensorFlow、Theano或CNTK等后端结合使用。适用于快速原型开发和快速迭代模型。特点是简单易用,提供高级API,支持建立、训练和评估模型。Caffe:由伯克利视觉与学习中心开发的面向卷积神经网络的深度学习框架,适用于计算机视觉任务,如图像分类和目标检测。特点是高效的C++实现,专注于卷积神经网络,适合用于预训练模型和嵌入式设备。MXNet:适用于各种任务,包括自然语言处理、图像处理和推荐系统。特点是多语言支持(Python、Scala、R等)、分布式训练和动态计算图。Caffe2:轻量级的深度学习框架,适用于嵌入式设备和移动应用程序开发,以及在云端进行实时推理、特点是高性能,适合部署在资源有限的设备上。DL4J:用于Java和Scala的深度学习框架,适用于企业级Java应用程序。Chaniner:面向研究人员的深度学习框架,具有动态计算图,适用于快速原型开发和实验。特点是动态计算图,易于扩展,支持自定义层次结构。

六、TensorFlow与PyTorch

(一)TensorFlow

TensorFlow的核心概念之一是计算图,它是一种数据结构,表示了模型的计算过程。它支持两种计算图模型,静态计算图和动态计算图。其中,**在静态计算图中,计算图在运行前完全定义,通常用于生产环境;在动态计算图中,计算图是动态构建的,适用于实验和研究。**同时,TensorFlow能够自动计算损失函数关于模型参数的梯度,允许用户定义复杂的模型并自动计算梯度。它还提供了高级抽象层和API,支持包括CPU、GPU和TPU多种硬件平台,支持包括Python、C++、Java等多种编程语言接口,具有强大的分布式计算功能。

TensorFlow的优势包括:灵活性和可扩展性、跨平台和多语言支持、自动微分、丰富的生态系统。

(二)PyTorch

PyTorch提供了一个强大的张量计算库,具有GPU加速功能,用于构建、训练和部署深度学习模型。张量是PyTorch中的核心数据结构,用于表示多维数组。PyTorch采用动态计算图,并且提供一系列高级神经网络模块,包括卷积层、循环神经网络、长短时记忆网络等,支持自动微分,拥有丰富的社区和生态系统,可以在多种操作系统上运行,还提供移动端支持。PyTorch被广泛应用于各种深度学习任务和应用领域,如计算机视觉、自然语言处理、强化学习、生成对抗网络等。

七、卷积神经网络

卷积神经网络(CNN)是一种专门用于处理网格状数据的深度学习模型,广泛应用于计算机视觉领域,特别是图像识别任务。核心思想是通过卷积操作和池化操作来有效捕捉输入数据的局部特征,并逐渐提取更高级别的特征,以进行分类、检测或分割等任务。优势在于能够有效地处理大规模的图像数据,并具备对平移、尺度和旋转等变换具有不变性的特性。

卷积层:CNN使用卷积层来提取输入数据的局部特征。卷积操作是指将一个小的权重窗口在输入数据上滑动,计算每个位置的卷积结果,以捕捉输入数据中的边缘、纹理等局部特征。激活函数:在卷积层的卷积操作之后,通常会应用一个激活函数(如ReLU)来引入非线性性质,使网络能够学习复杂的特征表示。池化层:池化操作用于减小特征图的尺寸,减少参数数量,提高网格的计算效率。池化层通常采用最大池化或平均池化,分别取局部区域的最大值或平均值作为输出。多层堆叠:CNN通常由多个卷积层和池化层堆叠而成,每一层都可以提取不同级别的特征。全连接层:在经过多个卷积层和池化层之后,通常会有一个或多个全连接层,用于将高级别特征映射到不同类别的得分或概率,这是最终的分类层。参数共享:CNN中得卷积核是共享的,意味着它们在整个输入数据上进行相同的卷积操作,减少了网格的参数数量,提高了模型的泛化能力。权重共享:CNN中的不同卷积核之间通常共享权重,进一步减少了参数数量。

八、图像分类与目标检测

(一)图像分类

图像分类是计算机视觉的基础任务,是将图像分为不同的类别或标签的任务,广泛应用于如图像搜索、内容推荐、安全监控。常见的方法如卷积神经网络、传统的机器学习方法(SVM、随机森林等)。

(二)目标检测

目标检测是在图像中定位并识别一个或多个物体的任务。**与图像分类不同,目标检测不仅要求识别物体所属的类别,还要确定它们在图像中的位置。**目标检测任务通常要求模型输出物体的坐标和类别标签。目标检测在自动驾驶、人脸识别、物体跟踪、医学图像分析等领域有重要应用。常见的方法:单一阶段目标检测(YOLO、SSD),两阶段目标检测(Faster R-CNN、Mask R-CNN)。

九、循环神经网络

循环神经网络(RNN)是一类用于处理序列数据的神经网络模型,它在自然语言处理、时间序列分析、语音识别等领域具有重要应用。RNN的核心特点是具有循环连接,允许信息在网络内部传递并保持状态。其基本结构包括一个输入层、一个隐藏层和一个输出层。隐藏层中的神经元通过循环连接接收上一个时间步的输出,并将其作为当前时间步的输入。这使得RNN可以捕捉到序列数据中的时间依赖性,适用于处理不定长度的序列。然而,传统的RNN存在梯度消失和梯度爆炸等问题,导致难以捕捉长期依赖性。因此出现了一些改进型的RNN模型,如长短时记忆网络(LSTM)和门控循环单元(GRU),通过引入门控机制来更好地处理长序列。RNN和其改进型模型在自然语言处理领域中得到广泛应用,用于文本生成、情感分析、机器翻译等任务,同时在序列数据处理、时间序列分析、语音识别、图像描述生成等领域得到应用。

隐藏状态:RNN的隐藏层在每个时间步都会生成一个隐藏状态,用于传递信息和保存先前的信息。隐藏状态在时间步之间传递,并存储了过去的信息。循环连接:RNN的隐藏层与自身形成循环连接,允许信息在不同时间步之间传递。长短时记忆网络:一种改进的RNN模型,通过引入记忆单元、输入门、输出门和遗忘门等机制,更好地处理长序列和梯度消失问题。门控循环单元:另一种改进的RNN模型,具有更简化的门控机制,同时能够有效地捕获长期依赖性。序列到序列模型:基于RNN,用于处理序列到序列的任务,如机器翻译和文本生成。包括一个编码器和一个解码器,分别处理输入和输出序列。

十、序列数据处理

定义:序列数据是按顺序排列的一系列数据点,这些数据点之间存在时间或空间上的关联。时间序列、文本序列和DNA序列都是序列数据的实例。序列建模:序列数据处理的目标之一是对序列进行建模,以捕获其中的模式和关联。特点:通常具有变长性质,不同序列可能具有不同的长度。此外,序列中的每个数据点都可能受到其前面数据点的影响,具有时间依赖性。

十一、自然语言处理

定义:NLP是计算机科学和人工智能领域的分支,专注于使计算机能够理解、处理和生成自然语言文本。NLP任务包括文本分类、命名实体识别、情感分析、机器翻译等。

十二、深度学习模型调优

一些常见的深度学习模型调优策略:

调整学习率:学习率是控制模型参数更新幅度的关键超参数。通常使用学习率衰减策略,逐渐降低学习率。使用更复杂的模型:如果欠拟合(即性能不足),考虑增加模型的复杂度,如增加层次、神经元数量或使用更深的网格结构。也可尝试不同的体系结构,如CNN、RNN或Transformer。正则化:减少过拟合风险。L1正则化和L2正则化是常用的方法。此外,丢弃(Dropout)是一种随机正则化方法,可以减少神经元之间的依赖。早停策略:检测验证集上的性能,如果性能在一段时间内停止改善,则停止训练,以防止过拟合。超参数搜索:使用网格搜索、随机搜索或贝叶斯优化等方法来搜索最佳的超参数组合,包括学习率、批量大小、正则化强度等。迁移学习:利用预训练的模型,将其权重初始化为预训练权重,并在新任务上进行微调。特征工程:仔细选择和设计输入特征,以提高模型性能。多模型融合:将多个不同结构的模型的预测结果结合,以提高性能。常见的融合方法包括投票、平均和堆叠等。硬件加速:使用GPU、TPU等硬件加速训练,以缩短训练时间。监控和日志记录:定期监控模型的性能指标,记录训练过程中的信息,以便识别问题并进行调整。交叉验证:使用交叉验证来评估模型性能,确保模型在不同数据子集上的表现一致。理解模型:分析模型的预测错误,了解哪些样本难以分类,并根据分析结果进行模型改进。调整数据集:更大规模、更高质量的数据集可以带来性能提升。

十三、迁移学习

迁移学习是一种特殊的机器学习范式,核心思想是将一个已经在一个任务上学到的模型的知识(通常是权重)应用到另一个相关任务上。主要目标是加速新任务的训练过程和提高性能。

常见做法:

特征提取器迁移:保持预训练模型的底层权重不变,只调整输出层的权重来适应新任务。适用于新任务与原始任务有一定相似性的情况。微调:保持预训练模型的一部分权重不变,同时微调一些层的权重以适应新任务。

十四、预训练模型

预训练模型是在大规模数据上训练过的模型,通常用于特定任务或领域。这些模型包括深度神经网络(CNN、RNN等),在大规模数据上进行了训练,并捕捉了数据的高级特征。

常见的预训练模型:

ImageNet预训练模型:在大规模图像分类任务上训练的模型。Word2Vec和GloVe:在大规模文本语料库上训练的词嵌入模型,用于自然语言处理任务。BERT:预训练的自然语言处理模型,具有出色的文本理解能力。 优点:(1)提高模型性能;(2)加速训练;(3)应用广泛;(4)适用于小规模数据集。

第五章 增强学习

一、增强学习

强化学习(RL)是一种机器学习范式,它关注的是一个智能代理(agent)在于环境的交互中,通过尝试不同的行动来最大化累积奖励的问题。目标是通过训练代理的策略来解决特定任务,使代理能够在不断尝试和学习的过程中获得最大的奖励。在强化学习中,有三个核心概念:环境、代理和奖励。强化学习在众多领域中都有应用,包括自动驾驶、游戏、机器人控制、金融交易等。

核心概念:

代理(Agent):代理是学习者,它处于一个决策的位置。代理通过观察环境的状态来选择行动,以最大化它在环境中获得的奖励。环境(Environment):环境是代理进行学习的外部系统或模拟器。环境提供了代理行动的反馈和结果。环境的状态会随着代理的行动而改变,从而影响代理的未来决策。状态(State):状态是描述环境的信息,它包括一切代理需要知道的关于环境的信息。状态可以是离散的或连续的,取决于具体的问题。行动(Action):行动是代理采取的决策或策略,它会影响环境的状态。行动可以是离散的或连续的。奖励(Reward):奖励是环境提供给代理的反馈信号,用于评估代理行动的好坏。奖励可以是实数值,也可以是离散的标签。策略(Policy):策略是代理根据环境状态选择行动的规则或函数,策略可以是确定性的或随机的。价值函数(Value Function):价值函数用于评估在特定状态或状态-行动组合下的长期回报或价值。帮助代理判断哪些状态或行动更有价值。探索与利用:代理需要在探索新的行动和利用已知的高价值行动之间取得平衡。强化学习任务:强化学习任务通常由一个环境、一个代理和一个目标奖励函数组成。马尔可夫决策过程(MDP):MDP是强化学习问题的形式化框架,它描述了代理与环境之间的交互,包括状态、行动、奖励和状态转移概率。

二、马尔可夫决策过程

马尔可夫决策过程(MDP)是强化学习问题的一个数学形式化框架,用于描述代理与环境之间的交互和决策过程。MDP提供了一种形式化方法,用于建模具有不确定和随机性的决策问题,如自动驾驶、游戏玩法、机器人控制和金融交易等。

关键要素:

状态:表示环境的一个特定瞬时描述或快照,包括了一切代理需要知道的信息。状态可以是离散的或连续的。行动:是代理可以选择的决策或策略,会影响环境的状态。行动可以说离散的或连续的。状态转移概率:表示在采取特定行动后,代理将从一个状态转移到另一个状态的概率。奖励:是环境提供给代理的数值反馈信号,用于评估代理的行动好坏。策略:一种从状态到行动的映射,定义了代理在不同状态下应该采取哪些行动。策略可以是确定性的或随机的。

MDP问题可以用贝尔曼方程来描述,这是一个递归方程,用于计算每个状态的价值或期望累积奖励。有两种主要类型的MDP问题:

(1)价值迭代:通过迭代计算每个状态的价值函数,然后从中推导出最优策略。通常用于离散状态空间的MDP。

(2)策略迭代:通过迭代优化策略,找到最优策略。包括策略评估和策略改进两个步骤。

三、强化学习算法

Q-Learning:一种基于值迭代的强化学习算法,用于离散状态和行动空间的问题。它通过维护一个Q值函数,表示在每个状态和行动组合下估计累积奖励,来学习最优策略。Q-Learning使用贝尔曼方程来更新Q值,通过不断迭代来优化策略。Deep Q-Network(DQN):是Q-Learning的扩展,它使用深度神经网络来估计Q值函数,适用于具有大型状态空间的问题。DQN采用经验回放和目标网络的技巧来稳定训练过程,并可以处理连续状态的问题。Policy Gradient Methods:策略梯度方法是一类直接优化策略的算法,适用于连续动作空间和高度随机的问题。这些方法通过对策略的参数进行梯度上升来最大化期望累积奖励。常见的策略梯度算法包括REINFORCE、TRPO、PPO等。Actor-Critic Methods:结合了策略和值函数的思想,这些方法使用值函数来评估策略,并使用策略梯度来改善策略。常见的Actor-Critic算法包括A3C、DDPG等。SARSA:一种基于值迭代的强化学习算法,在每一步中更新Q值,适用于离散状态和行动空间的问题。

四、Q-Learning

Q-Learning是一种强化学习算法,用于解决马尔科夫决策过程中的问题。它的核心思想是通过学习一个值函数(Q值函数),来指导代理(Agent)在不同状态(State)下采取哪些行动(Action)以最大化累积奖励。

Q-Learning更新规则:使用贝尔曼方程来更新Q值,更新规则如下:

Q

(

s

,

a

)

=

(

1

α

)

Q

(

s

,

a

)

+

α

(

R

+

γ

m

a

x

(

Q

(

s

,

a

)

)

)

Q(s,a)=(1-\alpha)*Q(s,a)+\alpha*(R+\gamma*max(Q(s',a')))

Q(s,a)=(1−α)∗Q(s,a)+α∗(R+γ∗max(Q(s′,a′)))

其中,

α

\alpha

α是学习率,

R

R

R是采取行动

a

a

a后获得的即时奖励,

γ

\gamma

γ是折扣因子,

s

s'

s′是在采取行动

a

a

a后进入的下一个状态,

a

a'

a′是在下一个状态

s

s'

s′下的最佳行动。

适用情况:状态和行动空间相对较小且离散的,环境的转移概率和奖励函数是静态的,无需对环境的详细模型或先验知识。

五、Deep Q Network原理

DQN是一种强化学习算法,结合了深度神经网络和Q-Learning的思想,用于解决马尔可夫决策过程中的问题。DQN的核心思想是使用神经网络来估计Q值,以更好地处理具有大型状态空间的问题。

相关概念:

Q-Value函数:与Q-Learning相似,DQN通过维护一个Q-Value函数

Q

(

s

,

a

)

Q(s,a)

Q(s,a),来估计在状态

s

s

s下采取行动

a

a

a后可以获得的累积奖励的期望值。这个Q值函数是一个神经网络,也称为Q网络。经验回放:DQN使用经验回放来存储代理在环境中的历史经验。在训练时,随机从回访缓冲区中抽取样本进行训练,以减少数据间的相关性,提高训练的稳定性。目标网络:为了稳定训练,**DQN使用两个Q网络:一个是“目标网络”,一个是“当前网络”。**目标网络的参数固定一段时间,然后从当前网络复制参数。有助于减小训练中的Q值目标和估计之间的不稳定性。深度神经网络:DQN通常使用深度卷积神经网络或全连接神经网络来估计Q值函数。这使得DQN能够处理具有高维状态空间的问题。 适用情况:大型状态空间,离散和连续行动空间,具有时序数据的问题,需要端到端学习的问题。

六、策略梯度方法

策略梯度方法是一类用于解决强化学习问题的方法,与值函数方法(如Q-Learning,DQN)不同,它们直接学习并优化策略函数,而不是估计值函数。策略函数定义了在不同状态下采取不同行动的策略。策略梯度方法的核心思想是通过梯度上升法来最大化期望累积奖励。

步骤:

定义策略函数:定义一个参数化的策略函数

π

(

a

s

)

\pi(a|s)

π(a∣s),它给出在状态

s

s

s下采取行动

a

a

a的概率。策略可以是确定性或概率性的。收集经验:使用当前策略与环境进行交互,收集一系列轨迹或经验,包括状态、行动、奖励。计算回报:对于每个状态-行动对,计算累积奖励,通常使用折扣因子

γ

\gamma

γ来调整未来奖励的重要性。计算策略梯度:使用策略梯度定理来计算策略的梯度,以使累积奖励最大化。典型的策略梯度形式为

J

(

θ

)

=

E

[

θ

log

(

π

(

a

s

)

Q

(

s

,

a

)

)

]

\nabla J(\theta)=E[\nabla\theta\log(\pi(a|s)*Q(s,a))]

∇J(θ)=E[∇θlog(π(a∣s)∗Q(s,a))],其中,其中

J

(

θ

)

J(\theta)

J(θ)是预期累积奖励的目标函数,

θ

\theta

θ是模型参数,

π

(

a

s

)

\pi(a|s)

π(a∣s)是状态

s

s

s下采取行动

a

a

a的概率,

Q

(

s

,

a

)

Q(s,a)

Q(s,a)是评估策略的价值函数。更新策略参数:使用计算的策略梯度来更新策略函数的参数,通常使用梯度上升法。重复迭代:重复上述步骤,不断收集经验、计算策略梯度和更新策略参数,直到策略收敛或达到指定的迭代次数。

优点:可以处理连续动作空间、能够学习随机策略以及在高维状态空间中表现良好。然而,与值函数方法相比,策略梯度方法是基于概率性策略的方法,通常需要更多的训练样本和更长的训练时间。

常见的策略梯度方法:REINFORCE算法、Actor-Critic算法、PPO、TRPO等。

七、值函数迭代和策略迭代

值函数迭代和策略迭代是用于解决强化学习问题的两种经典方法,都是基于动态规划思想的,用于找到一个最优策略以在环境中获得最大的累积奖励。

(一)值函数迭代

值函数迭代的目标是找到状态值函数或动作值函数的最优估计,然后从中派生最优策略。这个过程通常包括两个步骤:策略评估和策略改进。

策略评估:首先对当前策略进行评估,计算每个状态的值函数。通常使用贝尔曼方程和迭代方法来实现。更新值函数估计直到收敛到真正的值函数。策略改进:一旦得到值函数的估计,就可以根据这些估计来改进策略。通常,采取行动的策略是根据值函数中的最佳动作来选择的。迭代:重复进行策略评估和策略改进,直到策略不再改进,即值函数估计收敛到真正的最优值函数,即找到了最优策略。

(二)策略迭代

策略迭代较为直接,它交替进行策略评估和策略改进,直到找到最优策略。

策略评估:与值函数迭代一样,首先对当前策略进行评估,计算每个状态的值函数。策略改进:然后,改进策略,选择每个状态的最佳动作。最佳动作基于值函数中的最高估计值来选择。迭代:重复进行策略评估和策略改进,直到策略不再改进,即找到了最优策略。

通常,策略迭代比值函数迭代更快地收敛到最优策略,因为它直接优化策略,不需要等待值函数估计收敛。但由于需要解决每个状态的最佳动作,每个策略迭代步骤可能需要更多的计算。

补充

一、二分类逻辑回归中参数估计的基本步骤

1.选择逻辑回归模型:

P

(

Y

=

1

X

)

=

1

1

+

e

(

β

0

+

β

1

X

1

+

β

2

X

2

+

+

β

p

X

p

+

ϵ

)

P(Y=1|X)=\frac{1}{1+e^{-(\beta_0+\beta_1X_1+\beta_2X_2+…+\beta_pX_p+\epsilon)}}

P(Y=1∣X)=1+e−(β0​+β1​X1​+β2​X2​+…+βp​Xp​+ϵ)1​

其中,

X

1

,

X

2

,

,

X

p

X_1,X_2,\ldots,X_p

X1​,X2​,…,Xp​是自变量(特征),

β

0

,

β

1

,

β

2

,

,

β

p

\beta_0,\beta_1,\beta_2,\ldots,\beta_p

β0​,β1​,β2​,…,βp​是需要估计的回归系数,

ϵ

\epsilon

ϵ是误差项,

Y

Y

Y是目标变量,

P

(

Y

=

1

X

)

P(Y=1|X)

P(Y=1∣X)表示在给定输入特征

X

X

X的条件下,属于类别1的概率。

2.定义似然函数:在给定参数

β

\beta

β下观察到训练数据的概率。

对于二分类逻辑回归,似然函数通常表示如下:

L

(

β

)

=

i

=

1

n

P

(

Y

i

X

i

;

β

)

Y

i

[

1

P

(

Y

i

X

i

;

β

)

]

1

Y

i

L(\beta)=\prod_{i=1}^{n}P(Y_i|X_i;\beta)^{Y_i}[1-P(Y_i|X_i;\beta)]^{1-Y_i}

L(β)=∏i=1n​P(Yi​∣Xi​;β)Yi​[1−P(Yi​∣Xi​;β)]1−Yi​

其中,

n

n

n是样本数量,

Y

i

Y_i

Yi​是第

i

i

i个样本的实际输出标签,

X

i

X_i

Xi​是输入特征,

P

(

Y

i

X

i

;

β

)

P(Y_i|X_i;\beta)

P(Yi​∣Xi​;β)是逻辑回归模型的预测概率(假设

Y

i

=

1

Y_i=1

Yi​=1)。

3.最大化似然函数:利用最大似然估计方法,找到能够最大化似然函数的参数

β

\beta

β。通常,这涉及到求解对数似然函数,然后使用数值优化算法(如梯度下降、拟牛顿方法等)来找到最大化对数似然函数的参数。对数似然函数通常表示如下:

l

o

g

 

L

(

β

)

=

i

=

1

n

{

Y

i

 

l

o

g

 

[

P

(

Y

i

X

i

;

β

)

]

+

(

1

Y

i

)

 

l

o

g

 

[

1

P

(

Y

i

X

i

;

β

)

]

}

log\ L(\beta)=\sum_{i=1}^{n}\{Y_i\ log\ [P(Y_i|X_i;\beta)]+(1-Y_i)\ log\ [1-P(Y_i|X_i;\beta)]\}

log L(β)=∑i=1n​{Yi​ log [P(Yi​∣Xi​;β)]+(1−Yi​) log [1−P(Yi​∣Xi​;β)]}

4.正则化(可选):可选择对逻辑回归模型进行正则化以避免过拟合。

5.参数估计完成:一旦找到最大化似然函数的参数,估计的回归系数

β

\beta

β就是模型的参数。

二、马尔可夫决策过程建模步骤

1.定义状态:首先确定问题的状态空间。为每一个可能的状态分配一个唯一的标识符或编码。

2.定义行动:确定代理可以采取的不同行动。为每一个可能的行动分配一个唯一的标识符或编码。

3.定义状态转移概率:对于每对状态和行动组合

(

s

,

a

)

(s,a)

(s,a),确定代理从状态

s

s

s采取行动

a

a

a后将转移到哪个新的状态。使用状态转移概率函数

P

(

s

s

,

a

)

P(s'|s,a)

P(s′∣s,a)表示从状态

s

s

s采取行动

a

a

a后,代理转移到状态

s

s'

s′的概率。

4.定义奖励:为每个状态和行动组合

(

s

,

a

)

(s,a)

(s,a),定义一个奖励函数

R

(

s

,

a

)

R(s,a)

R(s,a)或

R

(

s

)

R(s')

R(s′),用于评估代理的行动好坏。

5.策略:一旦建立了状态、行动和奖励的关系,代理需要制定一个策略

π

\pi

π,它定义了不同状态下应该采取哪些行动。

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。