ahzhu

导航

机器学习

机器学习

线性回归

什么是梯度下降

梯度下降是一种优化算法,用于寻找函数的局部最小值。在机器学习中,它被用来最小化损失函数,即评估模型预测与真实数据差异的函数。梯度下降算法通过迭代地调整模型的参数来减少损失函数的值。

下面是梯度下降算法的工作原理:

  1. 初始化参数:算法以随机值或零开始,作为模型参数(如权重和偏差)的起始点。

  2. 计算梯度:梯度是损失函数相对于其参数的导数。它指示了损失函数在参数空间的最陡峭上升方向。因为我们想要最小化损失函数,所以我们会考虑梯度的相反方向。

  3. 更新参数:参数沿着梯度的负方向更新,这个方向预期会导致损失最快减小。更新的幅度由学习率(α)控制,学习率决定了在梯度方向上前进的步长。

  4. 重复迭代:以上过程在多个循环中重复进行,每次迭代都会更新参数,并重新计算梯度。每一步的更新都旨在使损失函数的值进一步降低。

  5. 收敛:当损失函数的减少变得非常小,或者达到预定的迭代次数时,算法停止。此时,参数被认为是“收敛”的,因为进一步的迭代不再显著减少损失函数的值。

  6. 输出结果:最后,梯度下降提供一组参数,它们是损失函数的局部最小值对应的参数。在理想情况下,这将是全局最小值,但在实践中,特别是对于复杂的非凸函数,算法可能只能保证找到局部最小值。

梯度下降有几种变体,包括批量梯度下降(在整个数据集上计算梯度),随机梯度下降(每次迭代仅使用一个样本来计算梯度),以及小批量梯度下降(在每次迭代中使用数据子集计算梯度)。这些变体在计算效率和收敛速度上各有优缺点。

梯度下降规则

$$ w_j = w_j - \alpha \frac{\partial}{\partial w_j} J(\vec{w}, b) $$

$$ b = b - \alpha \frac{\partial}{\partial b} J(\vec{w}, b) $$

在机器学习中,特征缩放是一个重要的数据预处理步骤。它通常包括两种常见的技术:归一化(Normalization)和标准化(Standardization)。它们的目的是调整特征的尺度,使得机器学习算法能更快速、更准确地学习。

归一化 (Normalization)

归一化通常指将数据缩放到[0, 1]的范围内,也称为最小-最大缩放。对于每个特征,归一化可以通过以下公式进行:

$$
[ x_{\text{normalized}} = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} ]
$$
其中 ( x ) 是原始数据点,Xmin是该特征下所有数据点的最小值_

Xmax 是最大值。这种方法的一个缺点是它对异常值非常敏感。

标准化 (Standardization)

标准化则是将特征值缩放到均值为0,标准差为1的分布。这通常通过以下公式完成:

$$
[ x_{\text{standardized}} = \frac{x - \mu}{\sigma} ]
$$

$$
其中 ( \mu ) 是特征的平均值,( \sigma ) 是标准差。
$$

与归一化不同,标准化不受异常值的影响,因为它涉及到数据分布的标准差。

为什么要进行特征缩放?

  1. 速度: 许多算法(如梯度下降)在特征尺度相似时会更快收敛。
  2. 性能: 一些算法(如支持向量机和k-近邻)在特征尺度差异较大时表现不佳。
  3. 正则化: 正则化项对小的特征有更大的惩罚,如果特征的尺度不一,那么正则化的效果将会不公平地偏向于尺度较大的特征。

在实际应用中,具体使用哪种技术取决于数据本身以及你使用的具体算法。例如,基于树的算法如随机森林和梯度提升树不需要特征缩放就能很好地工作,而像神经网络这样的模型则会因为特征缩放而受益匪浅。

梯度下降是一个优化算法,用于最小化目标函数,如机器学习中的损失函数。该算法通过迭代地调整参数来减少损失函数的值。特征尺度相似是加快梯度下降收敛速度的重要因素,原因主要有以下几点:

  1. 梯度步长均匀: 当所有特征都在相似的尺度上时,梯度下降在每个特征方向上的步长将会更加均匀。这意味着在每次迭代中,参数更新不会在某些方向上过大而在其他方向上过小。

  2. 梯度方向: 如果特征尺度差异很大,那么损失函数的等高线(在参数空间中损失相同的点形成的曲线)将是很扁的椭圆形。在这种情况下,梯度下降可能会在较小的尺度特征上快速移动,而在较大的尺度特征上移动缓慢。这会导致梯度下降走“之字形”路径,需要更多迭代次数才能到达最小值。

  3. 学习率选择: 如果特征尺度不一致,选择一个合适的全局学习率变得困难。较大尺度特征可能需要较小的学习率以避免过度更新,而较小尺度特征可能需要较大的学习率。当所有特征尺度相似时,可以更容易地选择一个学习率,该学习率对所有参数都合适。

  4. 减少振荡: 尺度一致的特征能够减少参数更新过程中的振荡,从而避免在损失函数的等高线中迂回前进,加快收敛速度。

  5. 预防数值不稳定: 不同的尺度可能导致数值计算过程中的不稳定性,比如导致梯度消失或梯度爆炸,尤其是在复杂模型中,如深度神经网络。

因此,特征缩放能够使梯度下降算法更加高效,同时避免上述问题,从而加快收敛速度。在实际应用中,进行特征缩放是一种常见且推荐的做法。

解释:”特征尺度差异很大时“:

首先,我们需要了解损失函数在参数空间(也就是你模型中所有参数组成的空间)中的等高线是怎样的。等高线是损失函数值相同的点连成的线。如果你把损失函数比作一个地形图,等高线就是高度(这里是损失函数的值)相同的地方。

当特征尺度差异很大时:

  1. 损失函数等高线形状: 如果一个特征的数值范围比另一个特征的数值范围大得多,那么损失函数的等高线会呈现出扁长的椭圆形状。简单来说,这意味着在一个方向上(对应于值域较大的特征),损失函数变化缓慢,而在另一个方向上(对应于值域较小的特征),损失函数变化迅速。

  2. 梯度下降路径: 梯度下降算法在每一步都沿着损失最快下降的方向(梯度的反方向)更新参数。由于等高线是扁长的椭圆,梯度将倾向于指向较窄的方向,也就是值域较小的特征方向。因此,梯度下降会快速地沿着这个方向移动。

  3. “之字形”路径: 由于等高线是椭圆形,梯度下降并不会直接指向最低点,而是会有一些在较宽的方向(对应于值域较大的特征)上的分量。但由于在这个方向上损失函数变化缓慢,梯度下降会在这个方向上摆动,类似于“之字形”路径。这意味着参数更新不是直接朝向最优值移动,而是以一个比较曲折的路径前进。

  4. 迭代次数: 由于“之字形”的路径,梯度下降需要更多的迭代次数才能到达最小值。如果所有特征的尺度差不多,等高线将更接近圆形,梯度下降会更直接地朝向最小值前进,从而减少迭代次数。

希望这个解释清楚了这一概念。

归一化是一种将所有特征值缩放到相同范围(通常是0到1)的技术。最常见的归一化方法是将数据的最小值和最大值用作缩放的基准。这种方法公式如下:

$$
[ \text{X}{\text{norm}} = \frac{X - X{\text{min}}}{X_{\text{max}} - X_{\text{min}}} ]
$$
在这里,( X )是原始数据点,
$$
( X_{\text{min}} )
$$
是数据集中的最小值,而
$$
( X_{\text{max}} )
$$
是数据集中的最大值。通过这种方式,数据被标准化到0和1之间。

$$
归一化对异常值特别敏感的原因是异常值会极大地影响( X_{\text{min}} )和( X_{\text{max}} )。这意味着,如果你的数据集中有异常高或异常低的值,它们会成为缩放的基准点,从而导致其他所有“正常”的数据点都会聚集在一个很小的范围内。
$$
例如:

  • 假设你的数据集中大部分数据点的范围是10到20,但有一个异常值100。
  • 使用上述公式进行归一化时,数据范围将变为0到1,其中绝大多数数据点将会落在0到0.1之间(因为20归一化后大约是0.1),而异常值100归一化后为1。
  • 这会使得归一化后的数据集失去很多有用的变化信息,因为正常值都被压缩到了一个非常小的区间。

这就是为什么在包含异常值的数据集上进行归一化前,通常需要先进行异常值检测和处理。如果不这么做,异常值会对模型训练产生不利影响,因为模型会过度适应那些不常见的、极端的数据点。

如何确保梯度下降在正确的进行?

image-20231105163511574

确保梯度下降正确进行通常需要对多个方面进行监控和调整:

  1. 选择合适的学习率:学习率(α)太大可能导致算法在最小值附近震荡甚至发散,太小又可能使得算法收敛速度极慢。通常通过试验不同的学习率和使用学习率衰减策略来找到合适的学习率。

    image-20231105164112597

  2. 损失函数的下降:观察损失函数随着迭代次数增加而是否持续减少,这是梯度下降正确进行的一个明显信号。

  3. 梯度检验:对于小型数据集,可以通过数值方法(如有限差分)来近似计算梯度,并与解析梯度进行比较,以验证梯度的正确性。

  4. 学习曲线:绘制学习曲线,即训练和验证损失随迭代次数的变化。学习曲线应该显示出训练损失和验证损失都随迭代次数减少。

  5. 早停法(Early Stopping):当验证集的性能不再提升时,停止训练以避免过拟合。

  6. 特征缩放:确保所有特征都在相似的尺度上,这样梯度下降能更平稳、更快地收敛。

  7. 使用优化算法的变种:考虑使用动量(Momentum)或者自适应学习率算法,如AdaGrad, RMSProp, 或者Adam,这些算法可能在特定情况下提高梯度下降的性能。

  8. 正则化:引入正则化项(如L1或L2正则化)可以帮助避免过拟合,并可能改善梯度下降的收敛性。

  9. 批处理大小:如果使用随机梯度下降或小批量梯度下降,合适的批处理大小可以平衡训练速度和收敛质量。

  10. 避免局部最小值和鞍点:虽然对于复杂的非凸问题来说,梯度下降可能会陷入局部最小值或鞍点,但在实践中,特别是对于大型神经网络,找到一个“足够好”的解通常是可行的。

  11. 参数初始化:选择合适的参数初始化方法,以促进良好的收敛。

  12. 日志和可视化:记录训练过程中的参数更新和损失函数变化,可以帮助调试和理解训练进度。

正确实施上述实践可以显著提高梯度下降算法的性能,并确保你能够获得一个有效的模型。

多项式回归

多项式回归是线性回归的一种,它模型中包含了自变量的高次项。在标准线性回归中,我们假设输出( y )与自变量( x )之间有一个线性关系,即:

$$
y = \beta_0 + \beta_1x + \epsilon
$$
然而,现实世界中很多关系可能并不是严格的线性关系,而是更为复杂的非线性关系。多项式回归通过引入( x )的高次项来捕捉这种非线性关系,使模型可以拟合数据中的曲线形态。

多项式回归模型的一般形式为:

$$
y = \beta_0 + \beta_1x + \beta_2x^2 + \beta_3x^3 + \cdots + \beta_nx^n + \epsilon
$$
这里的( n )是多项式的度数,即最高次项的次数。随着度数的增加,多项式模型可以拟合更为复杂的曲线。

尽管模型包含了自变量的高次项,多项式回归仍然被视为线性回归的一种,
$$
因为它是参数\beta 的线性。这些参数( \beta_0, \beta_1, ..., \beta_n )可以使用最小二乘法或其他优化技术进行估计
$$

多项式回归的关键优势是可以通过增加自变量的次数来提高模型的复杂性和灵活性,从而更好地拟合数据。然而,过高的多项式度数可能导致过拟合,即模型过于复杂而捕捉到了训练数据中的噪声这样的模型泛化到新数据上时表现可能就不佳。因此,通常需要通过交叉验证等方法来选择合适的多项式度数。

逻辑回归

逻辑回归(Logistic Regression)是一种广泛使用的统计方法,用于预测一个事件的概率,适用于二分类问题。尽管名称中有“回归”二字,但逻辑回归实际上是一种分类方法,它预测的是属于某个类别的概率。

基本原理

逻辑回归的基本原理是使用逻辑函数(logistic function)或称为Sigmoid函数将线性回归模型(linear regression model)的输出压缩到(0,1)区间内。这样输出可以被解释为概率。

Sigmoid函数公式为:

$$
[ \sigma(z) = \frac{1}{1 + e^{-z}} ]
$$

$$
其中,( z )是线性模型的输出,即 ( z = w_1x_1 + w_2x_2 + ... + w_nx_n + b ),其中 ( w ) 是权重,( b ) 是偏置项,( x ) 是输入特征。
$$

image-20231106164418916

为什么使用逻辑回归

  • 输出解释性:逻辑回归不仅给出分类结果,还能得到属于某个类别的概率,这对于许多需要概率解释的业务场景非常有用。
  • 简单高效:逻辑回归模型形式简单,计算效率高,易于实现和维护。
  • 良好的基准:在开始复杂的分类任务之前,使用逻辑回归模型可以提供一个有效的基准。
  • 可扩展性:逻辑回归可以扩展到多分类问题(如使用softmax函数),并可以通过正则化等手段来控制过拟合。
  • image-20231106165119866

image-20231106171946197

模型训练

逻辑回归模型通常通过最大化对数似然(log-likelihood)函数来训练,等同于最小化损失函数称为对数损失(log loss)或交叉熵损失(cross-entropy loss)。

对数损失函数为:

$$
[ L(y, \hat{y}) = -y \log(\hat{y}) - (1 - y) log(1 - \hat{y}) ]

其中,( y ) 是真实标签,( \hat{y} ) 是预测概率。
$$
训练过程中,通常使用梯度下降或其变种算法来找到损失函数的最小值。

应用

逻辑回归广泛应用于医疗、金融风控、社交网络分析、广告点击预测等多个领域,尤其在需要解释模型预测为何做出某一决策的应用场景中十分受欢迎。

决策边界

image-20231106172755535

在机器学习中,尤其是在分类问题上,决策边界是一个界定不同类别区域的边界。对于一个给定的模型,决策边界基于学习到的参数,决定了新的数据点将被分类到哪个类别中。

这是一些关于决策边界的关键点:

  • 线性决策边界: 在逻辑回归或其他线性分类器中,决策边界通常是一个线性方程所定义的直线(在二维空间中)、平面(在三维空间中)或超平面(在更高维度的空间中)。例如,如果有两个特征,决策边界可能是一条直线,将两个类别分开。

  • 非线性决策边界: 对于更复杂的模型,比如神经网络或基于核的支持向量机(SVM),决策边界可以是非线性的。这意味着它可以是曲线、曲面或在高维空间中的某种复杂结构。

  • 决策边界的确定: 决策边界是根据模型的参数计算出来的。在训练过程中,模型的目的是确定参数,从而最小化预测错误。一旦参数确定,就可以通过模型的预测函数描绘出决策边界。

  • 与概率的关系: 在逻辑回归中,决策边界通常与某个固定的概率阈值对应,例如,一个常用的阈值是0.5。如果模型预测某个数据点属于某类的概率大于0.5,那么它会被分类到这个类别中;否则,它会被分类到另一个类别。

  • 可视化: 在二维空间中,决策边界可以很直观地用线来表示,在更高维度则难以直观显示,但仍然可以通过数学公式或条件来描述。

决策边界是理解和解释分类模型决策过程的一个重要概念,它帮助我们可视化模型是如何在不同类别间做出区分的。

深度学习

image-20231114163205828

Deep = Many Layer

image-20231114170625688

image-20231114170722725

Output Layer = Multil-class Classifier

image-20231114172420995

Adagrad

image-20231114184345176

反向传播(Backpropagation)

To compute the gradients efficiently,we use backpropagation.

是一种在人工神经网络中广泛使用的学习算法,特别是在训练深度神经网络时。它是一种有效的算法,用于计算神经网络中每个权重对于输出误差的影响。简而言之,反向传播帮助我们理解每个权重对最终结果的贡献,并据此调整权重以减少误差。

反向传播的过程大致可以分为以下几个步骤:

  1. 前向传播:输入数据通过网络进行前向传播,每一层的神经元状态都是基于前一层的输出和当前层的权重计算得到的。

  2. 计算误差:在网络的输出层,计算网络输出与实际标签之间的误差。这通常通过一个损失函数(比如均方误差或交叉熵)来完成。

  3. 反向传播误差:误差被反向传播回网络,以便计算对每个权重的梯度。这个过程涉及到链式法则,用于多层网络中复合函数的导数计算。

  4. 权重更新:根据计算出的梯度更新网络中的权重。这个步骤通常使用梯度下降或其变体(如动量梯度下降、Adam等)来完成。

反向传播的核心是链式法则,它是微积分中的一个基本法则,用于计算复合函数的导数。在反向传播中,这个原理被用来有效地计算损失函数对每个权重的偏导数。这些偏导数随后被用于梯度下降算法,以优化网络的权重,从而最小化误差。

你的理解是正确的方向,但让我帮你更详细地解释一下反向传播(Backpropagation)的过程。

反向传播是深度学习中用于训练神经网络的核心算法。它包括两个主要步骤:前向传播和反向传播。

  1. 前向传播(Forward Propagation)

    • 在这个阶段,输入数据通过神经网络的每一层传递,直到输出层。
    • 每一层的神经元会根据输入数据、层的权重和偏置计算出一个输出。
    • 这个输出会作为下一层的输入,这个过程一直持续到网络的最后一层。
  2. 计算损失(Loss Calculation)

    • 在网络的最后一层,会根据实际输出和期望输出(即标签)计算一个损失值。
    • 这个损失值是一个量化网络性能的指标,反映了网络预测的准确性。
  3. 反向传播(Backward Propagation)

    • 反向传播的过程从计算出的损失值开始。
    • 算法通过应用链式法则逐层计算损失函数相对于每个权重的梯度。
    • 这个梯度表明了为了减少总损失,权重需要如何调整。
    • 这个过程从输出层开始,反向经过网络的每一层,直到第一层。
  4. 权重更新(Weights Update)

    • 根据反向传播计算出的梯度,调整网络中每层的权重。
    • 这通常通过梯度下降或其变种算法实现,目的是减小损失函数的值。

总结来说,反向传播是一个系统性的过程,涉及前向传播生成预测、计算损失、然后反向传播这个损失来计算梯度,并最终更新网络的权重。这个过程在多次迭代中重复进行,以不断提高网络的性能。

卷积神经网络

卷积神经网络(Convolutional Neural Network, CNN)是一种深度学习的算法,它在图像处理、视频分析、自然语言处理等领域有广泛的应用。CNN的核心特点是其能够自动并有效地捕捉数据(尤其是图像数据)中的空间和时间上的层次结构特征。下面是卷积神经网络的一些主要组成部分和特点:

  1. 卷积层(Convolutional Layer)

    • 这是CNN的核心层,用于提取输入数据的特征。
    • 它通过一系列可学习的滤波器(或称为核)在输入数据上滑动(或“卷积”),计算滤波器和输入数据的局部区域之间的点积。
    • 每个滤波器负责从原始输入数据中检测特定类型的特征,例如边缘、颜色或纹理等。
  2. 激活层(Activation Layer)

    • 通常在卷积层之后立即应用激活函数,如ReLU(Rectified Linear Unit)。
    • 激活函数的作用是引入非线性,这是解决复杂问题所必需的,因为现实世界的数据几乎总是非线性的。
  3. 池化层(Pooling Layer)

    • 也称为下采样层,用于减少数据的空间大小,从而减少参数数量和计算量,同时还能防止过拟合。
    • 常见的池化操作有最大池化(Max Pooling)和平均池化(Average Pooling)。
  4. 全连接层(Fully Connected Layer)

    • 在多个卷积和池化层之后,网络会使用一个或多个全连接层来进行最终的分类或其他任务。
    • 在全连接层,网络会将前一层的输出平展(Flatten)并连接到每个神经元,以产生最终的输出。
  5. 特点

    • 参数共享:在卷积层中,同一个滤波器对整个输入空间进行操作,这意味着对于检测同一特征的权重在整个图像上是共享的。
    • 局部连接:每个神经元仅与输入数据的一个局部区域相连接,这与全连接网络形成对比,在全连接网络中,每个神经元与输入数据的所有元素相连接。

CNN在处理图像和视频数据时特别有效,因为它们能够捕捉这些数据中的空间层次结构。例如,在图像识别任务中,低层的卷积层可能会识别边缘和颜色,中间层可能会识别纹理和形状,而高层可能会识别更复杂的对象部分。通过这种方式,CNN能够学习从原始像素数据到最终分类标签的映射。

强化学习

基本概念定义

一个智能体(agent)如何在一个复杂不确定的环境(environment)中最大化它能得到的奖励。通过感知所处环境的状态(state)对动作(action)的反应(reward),来指导更好的动作从而获得最大收益(return),称之为强化学习。

image-20240526205258828

在强化学习过程中,智能体跟环境一直在交互。智能体在环境里面获取到状态,智能体会利用这个状态输出一个动作,一个决策。然后这个决策会放到环境之中去,环境会根据智能体采取的决策,输出下一个状态以及当前的这个决策得到的奖励。智能体的目的就是为了尽可能多地从环境中获取奖励。

强化学习,监督学习,非监督学习

强化学习是除了监督学习和非监督学习之外的第三种基本的机器学习方法。

  • 监督学习 是从外部监督者提供的带标注训练集中进行学习。 (任务驱动型)
  • 非监督学习 是一个典型的寻找未标注数据中隐含结构的过程。 (数据驱动型)
  • 强化学习 更偏重于智能体与环境的交互, 这带来了一个独有的挑战 ——“试错(exploration)”与“开发(exploitation)”之间的折中权衡,智能体必须开发已有的经验来获取收益,同时也要进行试探,使得未来可以获得更好的动作选择空间。 (从错误中学习)

基本元素

强化学习的两部分和三要素
  • 环境(Environment) 是一个外部系统,智能体处于这个系统中,能够感知到这个系统并且能够基于感知到的状态做出一定的行动。
  • 智能体(Agent) 是一个嵌入到环境中的系统,能够通过采取行动来改变环境的状态。
  • 状态(State)/观察值(Observation):状态是对世界的完整描述,不会隐藏世界的信息。观测是对状态的部分描述,可能会遗漏一些信息。
  • 动作(Action):不同的环境允许不同种类的动作,在给定的环境中,有效动作的集合经常被称为动作空间(action space),包括离散动作空间(discrete action spaces)和连续动作空间(continuous action spaces),例如,走迷宫机器人如果只有东南西北这 4 种移动方式,则其为离散动作空间;如果机器人向 360◦ 中的任意角度都可以移动,则为连续动作空间。
  • 奖励(Reward):是由环境给的一个标量的反馈信号(scalar feedback signal),这个信号显示了智能体在某一步采 取了某个策略的表现如何。

术语

在强化学习(Reinforcement Learning, RL)中,policy(策略)是一个核心概念。策略定义了智能体(agent)在每一个状态下应该采取的行动规则,即给定一个状态时,智能体选择特定动作的概率分布。

策略的定义

策略通常表示为 $\pi$。在一个给定状态 (s) 下,策略$ \pi$ 是一个概率分布,用于确定智能体采取动作 (a) 的概率,可以表示为:

$$
\pi(a|s) = P(A_t = a | S_t = s)
$$

这里:

  • $A_t$表示在时间步 (t) 时智能体采取的动作。
  • $S_t$ 表示在时间步 (t) 时智能体所处的状态。

策略的类型

  1. 确定性策略(Deterministic Policy)

    • 在确定性策略中,给定状态 (s),智能体总是选择同一个动作 (a)。可以表示为一个函数:

      $$
      \pi(s) = a
      $$

  2. 随机策略(Stochastic Policy)

    • 在随机策略中,给定状态 (s),智能体根据某个概率分布选择动作。可以表示为:

      $$
      \pi(a|s) = P(A_t = a | S_t = s)
      $$

策略在强化学习中的作用

在强化学习中,智能体通过与环境交互来学习最优策略,以最大化累积奖励。策略的作用体现在以下几个方面:

  1. 策略评估(Policy Evaluation)

    • 给定一个策略 $\pi$,评估其在各个状态下的值函数(Value Function),即期望回报(Expected Return)。

      状态值函数 $V^\pi(s)$ 表示在状态 (s) 下,按照策略 $\pi$(\pi)$ 行动时的期望累积回报:

      $$
      V^\pi(s) = \mathbb{E}_\pi [ G_t | S_t = s ]
      $$

      这里 (G_t) 表示从时间步 (t) 开始的累积回报。

  2. 策略改进(Policy Improvement)

    • 根据策略评估的结果,通过策略改进算法来找到更优的策略,使得在所有状态下的期望回报增加。
  3. 策略优化(Policy Optimization)

    • 通过优化方法(例如:策略梯度方法)直接寻找最优策略。策略梯度方法通过梯度上升(或下降)优化策略参数,以最大化累积回报。

具体算法中的策略

  1. 值函数方法(Value Function Methods)

    • 例如 Q-learning 和 SARSA 通过估计状态-动作值函数 (Q(s, a)) 来间接学习策略。确定策略时,通常选择具有最高 (Q) 值的动作。
  2. 策略梯度方法(Policy Gradient Methods)

    • 例如 REINFORCE 和 Actor-Critic 方法,直接对参数化策略进行优化。策略由一个神经网络参数化,目标是最大化预期回报。

状态转移的定义

强化学习(Reinforcement Learning)中,状态转移(State Transition)是描述智能体与环境交互过程中,环境状态变化的一个核心概念。它定义了在一个状态 (s) 采取动作 (a) 后,环境如何转移到下一个状态 (s')。

状态转移由状态转移概率描述。状态转移概率是给定当前状态和动作的情况下,转移到下一状态的概率。用数学公式表示为:

$$
P(s' | s, a)
$$

这里:

  • (s) 表示当前状态。
  • (a) 表示当前动作。
  • (s') 表示下一状态。
  • (P(s' | s, a)) 表示在状态 (s) 下采取动作 (a) 后转移到状态 (s') 的概率。

马尔可夫决策过程(MDP)

状态转移是马尔可夫决策过程(Markov Decision Process, MDP)的一个重要组成部分。MDP 是强化学习问题的数学框架,包含以下元素:

  1. 状态空间 (S):所有可能状态的集合。
  2. 动作空间 (A):所有可能动作的集合。
  3. 状态转移概率 $P(s' | s, a)$:状态转移的概率分布。
  4. 奖励函数 $R(s, a)):在状态 (s) 采取动作 (a) 后得到的即时奖励。
  5. 折扣因子 $\gamma$:用于计算累积奖励的折扣系数, $0 \leq \gamma \leq 1$。

在 MDP 中,状态转移概率满足马尔可夫性质,即当前状态 (s) 和动作 (a) 确定了下一状态 (s') 的概率分布,历史信息对下一状态没有直接影响。

示例

假设有一个简单的环境,其中智能体可以在一个1维网格上移动,网格上的每个位置表示一个状态。智能体可以选择向左或向右移动。

  • 状态空间 (S):网格上的位置,例如 {0, 1, 2, 3}。
  • 动作空间 (A):{左移, 右移}。
  • 状态转移概率
    • 如果当前状态是 (s = 1),采取动作 $a = \text{右移}$,则可能的下一状态 (s') 为 2。
    • 例如,$P(s' = 2 | s = 1, a = \text{右移}) = 1$。

状态转移矩阵

在某些离散状态和动作的情况下,状态转移概率可以用状态转移矩阵表示。状态转移矩阵 (P) 是一个矩阵,其中每个元素 $P_{ij}$表示从状态 (i) 转移到状态 (j) 的概率。

状态转移在强化学习中的作用

  1. 策略评估:在策略评估过程中,状态转移概率用于计算在特定策略下的状态值函数和动作值函数。
  2. 策略改进:状态转移概率帮助智能体预测不同动作的结果,从而改进策略。
  3. 模型学习:在模型学习方法(例如模型预测控制)中,智能体学习环境的状态转移模型,以便在模拟中进行规划和决策。

理解状态转移是掌握强化学习的基础,帮助我们建立智能体和环境之间的互动模型,从而设计和优化智能体的决策策略。

image-20240526220127106

因此$R_t$依赖于状态$S_i$ 与动作$A_i$​

注意$U_t$​是一个随机变量,依赖于未来所有动作以及未来所有状态。

当在t时刻的时候并不知道$U_t$是多少,因此可以用动作价值函数:对$U_t$​求期望

$Q_\pi$告诉我们在状态s下给动作a打分

image-20240526221109898 image-20240526221403620

$Q^*$​函数评价当前状态

状态价值函数:告诉我们当前局势好不好

image-20240526221842562

理解:在某一个策略下所有动作带来的return的期望

基础知识

随机变量(Random Variable)是概率论和统计学中的一个基本概念。它是一个函数,用于将样本空间中的每个事件映射到实数。这些实数值可以是离散的或连续的,取决于随机变量的类型。随机变量的主要功能是帮助我们量化和分析随机现象。以下是对随机变量的详细解释:

随机变量的定义

  1. 样本空间(Sample Space)

    • 样本空间是所有可能结果的集合。在一次掷骰子实验中,样本空间为{1, 2, 3, 4, 5, 6}。
  2. 随机变量(Random Variable)

    • 随机变量是定义在样本空间上的一个函数,记为 ( X ),它将每个事件映射到一个实数。例如,掷骰子的结果可以用随机变量 ( X ) 表示,那么 ( X ) 的取值范围是 {1, 2, 3, 4, 5, 6}。

类型

随机变量根据其取值的性质分为两类:

  1. 离散随机变量(Discrete Random Variable)

    • 取值为有限个或可数无限多个具体数值的随机变量。例如,掷骰子的结果就是一个离散随机变量,它只能取整数值 1 到 6。
  2. 连续随机变量(Continuous Random Variable)

    • 取值为一个区间内的任意数值的随机变量。例如,某人的身高是一个连续随机变量,它可以取任意实数值(在一个合理范围内)。

分布

随机变量的分布描述了其取值的可能性。

  1. 概率质量函数(Probability Mass Function, PMF)

    • 对于离散随机变量,PMF$ ( P(X = x) ) $表示随机变量 ( X ) 取值为 ( x ) 的概率。
  2. 概率密度函数(Probability Density Function, PDF)

    • 对于连续随机变量,PDF $( f_X(x) ) $表示在某个特定值附近随机变量 ( X ) 取值的密度。注意,PDF 本身不是概率,但其在某个区间上的积分给出该区间内的概率。
  3. 累积分布函数(Cumulative Distribution Function, CDF)

    • CDF $( F_X(x) ) $表示随机变量 ( X ) 取值小于或等于 x 的概率,适用于离散和连续随机变量。

示例

  1. 离散随机变量

    • 掷骰子:定义随机变量 ( X ) 为掷一次骰子的结果。则 ( X ) 的取值范围是 {1, 2, 3, 4, 5, 6},且每个取值的概率均为 ($ \frac{1}{6} $)。
  2. 连续随机变量

    • 正态分布:定义随机变量 ( Y ) 为服从均值为 $\mu $、方差为 $ \sigma^2 $ 的正态分布。则 ( Y ) 的概率密度函数为$ f_Y(y) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(y - \mu)2}{2\sigma2}\right) $。

期望(Expected Value)是随机变量的重要特性之一,用于描述随机变量的平均值或期望值。在概率论和统计学中,期望提供了一个关于随机变量取值的总体趋势的信息。以下是对期望的详细解释:

期望的定义

离散随机变量的期望

对于一个离散随机变量 (X) ,其期望 (E(X)) 定义为:

$$
E(X) = \sum_{i} x_i P(X = x_i)
$$

其中,$ x_i$表示 (X) 的可能取值, $P(X = x_i) $表示 (X) 取值为$ x_i$ 的概率。

连续随机变量的期望

对于一个连续随机变量 (X) ,其期望 (E(X)) 定义为:

$$
E(X) = \int_{-\infty}^{\infty} x f_X(x) , dx
$$

其中, ($f_X(x) $表示 (X) 的概率密度函数。

示例

离散随机变量的期望

假设我们掷一个公平的六面骰子,定义随机变量 (X) 为掷骰子的结果。 (X) 的可能取值为 1 到 6,每个取值的概率均为 ( \frac{1}{6} )。则 (X) 的期望为:

$$
E(X) = \sum_{i=1}^{6} x_i P(X = x_i) = \sum_{i=1}^{6} i \cdot \frac{1}{6} = \frac{1 + 2 + 3 + 4 + 5 + 6}{6} = 3.5
$$

连续随机变量的期望

假设随机变量 (Y) 服从均值为 $\mu$,方差为 $\sigma^2$ 的正态分布。 (Y) 的概率密度函数为:

$$
f_Y(y) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(y - \mu)2}{2\sigma2}\right)
$$

则 (Y) 的期望为:

$$
E(Y) = \int_{-\infty}^{\infty} y f_Y(y) , dy = \mu
$$

期望的性质

  1. 线性性质
    如果 (X) 和 (Y) 是随机变量,且 (a) 和 (b) 是常数,则有:

    $$
    E(aX + bY) = aE(X) + bE(Y)
    $$

  2. 独立性
    如果 (X) 和 (Y) 独立,则有:

    $$
    E(XY) = E(X)E(Y)
    $$

DQN

posted on 2025-07-23 12:50  怡宝味汽水  阅读(11)  评论(0)    收藏  举报