当前位置: 首页 > news >正文

【机器学习】强化学习(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(yixi;θ)。对于离散随机变量,似然函数是概率质量函数(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(yixi;θ)

最大似然估计:最大似然估计是使似然函数或对数似然函数达到最大值的参数值。最大化对数似然等价于最小化负对数似然(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(θ)=N1i=1NlogP(yixi;θ),这通常是深度学习中的交叉熵损失。

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(yx;θ)求导时,链式法则会导致复杂的计算(尤其是多层神经网络),对数梯度形式更易于计算。(建议再学习一下softmax概率交叉熵损失的梯度推导)

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

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

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


【更新中,欢迎交流】

参考来源:
@ AIGC
策略梯度定理公式的详细推导

相关文章:

  • 设计模式Python版 策略模式
  • C++:vector容器(下篇)
  • CI/CD—Jenkins配置一次完整的jar自动化发布流程
  • Hadoop安装文件解压报错:无法创建符号链接。。。
  • C++11 `enum class`
  • CSGO开箱网盲盒源码搭建与成品演示解析
  • 多视图几何--相机标定--DTL进行相机标定
  • 每日学Java之一万个为什么
  • C++函数高阶
  • 19天 - HTTP 1.0 和 2.0 有什么区别?HTTP 2.0 和 3.0 有什么区别?HTTP 和 HTTPS 有什么区别?
  • 单元测试、系统测试和集成测试知识总结
  • 物联网在电力行业的应用
  • 网络DNS怎么更改?
  • 【前端】BOM DOM
  • Fuel 爬虫:Scala 中的图片数据采集与分析
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14基础固定表头示例
  • HTTP拾技杂谈
  • 16、流量控制是怎么实现的?【中高频】
  • Django 5实用指南(十四)项目部署与性能优化【完】
  • 非线性优化--NLopt算法(Android版本和Python示例)
  • 中华人民共和国和俄罗斯联邦在纪念中国人民抗日战争、苏联伟大卫国战争胜利和联合国成立80周年之际关于进一步深化中俄新时代全面战略协作伙伴关系的联合声明
  • 国家主席习近平同普京总统举行大范围会谈
  • 华为招聘:未与任何第三方开展过任何形式的实习合作
  • 又一日军“慰安妇”制度受害者去世,大陆登记在册幸存者仅剩7人
  • 暴雨蓝色预警:南方开启较强降雨过程
  • 央行:上市公司回购增持股票自有资金比例要求从30%下调至10%