【机器学习】强化学习(3)——深度强化学习的数学知识

深度学习的损失函数和反向传播涉及到很多数学知识,其原理解释在此。

1 似然估计

1.1 基本概念

似然估计贯穿于整个参数估计的过程,包含损失函数的定义、梯度的计算以及参数的更新。

  1. 定义:损失函数通常是似然函数,反映了模型预测的概率分布与真实数据分布之间的差异,定义这个损失函数是基于似然估计的原则。
  2. 梯度计算:在训练过程中,需要计算损失函数关于模型参数的梯度,这个梯度指示了参数空间中损失函数增加最快的方向。为了最小化损失函数,需要沿着梯度的反方向更新参数。计算梯度的过程也是基于似然估计的原则。
  3. 参数更新:在计算得到梯度后,使用优化算法(如梯度下降、Adam等)更新模型参数。这一步是似然估计的核心,通过更新参数来最小化损失函数。参数的更新是基于似然估计的目标。

1.2 最大似然估计

最大似然估计(Maximum Likelihood Estimation, MLE) 是统计学中的一种方法,用于估计概率模型中的参数。在给定数据 D = { x i , y i } i = 1 N D=\{x_i,y_i\}^N_{i=1} D={xi,yi}i=1N时,找到模型参数 θ \theta θ,使得数据出现的概率(似然)最大。

  • 似然函数:似然函数是给定参数下观测数据的概率, L ( θ ) = ∏ i = 1 N P ( y i ∣ x i ; θ ) L(\theta)=\prod_{i=1}^NP(y_i|x_i;\theta) L(θ)=∏i=1NP(yi∣xi;θ)。对于离散随机变量,似然函数是概率质量函数(PMF)的乘积;对于连续随机变量,似然函数是概率密度函数(PDF)的乘积。
  • 对数似然函数:为了简化计算,通常取似然函数的自然对数,得到对数似然函数, log ⁡ L ( θ ) = ∑ i = 1 N log ⁡ P ( y i ∣ x i ; θ ) \log L(\theta)=\sum_{i=1}^N \log P(y_i|x_i;\theta) logL(θ)=∑i=1NlogP(yi∣xi;θ)。

最大似然估计:最大似然估计是使似然函数或对数似然函数达到最大值的参数值。最大化对数似然等价于最小化负对数似然(Negative Log-Likelihood,NLL), J ( θ ) = − 1 N ∑ i = 1 N log ⁡ P ( y i ∣ x i ; θ ) J(\theta)=-\frac{1}{N}\sum_{i=1}^N \log P(y_i|x_i;\theta) J(θ)=−N1∑i=1NlogP(yi∣xi;θ),这通常是深度学习中的交叉熵损失。

1.3 对数似然(Log-Likelihood)

基本原理------对数的加法运算法则: log ⁡ a ( M N ) = log ⁡ a ( M ) + log ⁡ a ( N ) \log_a(MN)=\log_a(M)+\log_a(N) loga(MN)=loga(M)+loga(N)

直接对概率 P ( y ∣ x ; θ ) P(y|x;\theta) P(y∣x;θ)求导时,链式法则会导致复杂的计算(尤其是多层神经网络),对数梯度形式更易于计算。(建议再学习一下softmax概率交叉熵损失的梯度推导)

乘积形式的概率在计算时容易导致数值下溢,取对数可以将乘积转为求和,避免数值问题,同时对数函数的单调性保证最大化对数似然等价于最大化原始似然。

数值下溢(Underflow) 是计算机科学中一个常见的数值问题,指的是在计算过程中,某些数值变得非常小,以至于超出了计算机浮点数表示范围的下限,从而导致这些数值被近似为零的现象。

另外,对数转换后的梯度方差更小,有助于稳定训练。


【更新中,欢迎交流】

参考来源:

@ AIGC
策略梯度定理公式的详细推导

相关推荐
小天才才1 分钟前
前沿论文汇总(机器学习/深度学习/大模型/搜广推/自然语言处理)
人工智能·深度学习·机器学习·自然语言处理
MPCTHU8 分钟前
机器学习的数学基础:神经网络
机器学习
新加坡内哥谈技术31 分钟前
Meta计划借助AI实现广告创作全自动化
运维·人工智能·自动化
西猫雷婶1 小时前
pytorch基本运算-导数和f-string
人工智能·pytorch·python
Johny_Zhao1 小时前
华为MAAS、阿里云PAI、亚马逊AWS SageMaker、微软Azure ML各大模型深度分析对比
linux·人工智能·ai·信息安全·云计算·系统运维
顽强卖力1 小时前
第二十八课:深度学习及pytorch简介
人工智能·pytorch·深度学习
述雾学java1 小时前
深入理解 transforms.Normalize():PyTorch 图像预处理中的关键一步
人工智能·pytorch·python
武子康1 小时前
大数据-276 Spark MLib - 基础介绍 机器学习算法 Bagging和Boosting区别 GBDT梯度提升树
大数据·人工智能·算法·机器学习·语言模型·spark-ml·boosting
要努力啊啊啊1 小时前
使用 Python + SQLAlchemy 创建知识库数据库(SQLite)—— 构建本地知识库系统的基础《一》
数据库·人工智能·python·深度学习·自然语言处理·sqlite
武子康1 小时前
大数据-277 Spark MLib - 基础介绍 机器学习算法 Gradient Boosting GBDT算法原理 高效实现
大数据·人工智能·算法·机器学习·ai·spark-ml·boosting