文章目录
- 前言
- [什么是 Agent?](#什么是 Agent?)
- [什么是 End-to-End Approach?](#什么是 End-to-End Approach?)
- [Fuzzy Bayesian Reinforcement Learning (RB-RL)](#Fuzzy Bayesian Reinforcement Learning (RB-RL))
- 贝叶斯方法
- Q-learning强化学习算法
- [ε-greedy 策略](#ε-greedy 策略)
- [Policy Gradient强化学习算法](#Policy Gradient强化学习算法)
- [Softmax 函数](#Softmax 函数)
-
- 定义
- [表达式 σ ( z ) i = e z i ∑ j = 1 K e z j for i = 1 , 2 , ... , K \sigma(\mathbf{z})i = \frac{e^{z_i}}{\sum{j=1}^{K} e^{z_j}} \quad \text{for } i = 1, 2, \ldots, K σ(z)i=∑j=1Kezjezifor i=1,2,...,K各部分解释](#表达式 σ ( z ) i = e z i ∑ j = 1 K e z j for i = 1 , 2 , … , K \sigma(\mathbf{z})i = \frac{e^{z_i}}{\sum{j=1}^{K} e^{z_j}} \quad \text{for } i = 1, 2, \ldots, K σ(z)i=∑j=1Kezjezifor i=1,2,…,K各部分解释)
- 概率解释
- 例子
- [为什么Softmax 函数中使用指数化](#为什么Softmax 函数中使用指数化)
- 总结
前言
论文笔记------An analysis of Reinforcement Learning applied to Coach task in IEEE Very Small Size Soccer
published in IEEE
什么是 Agent?
定义
定义:在强化学习中,代理是一个可以采取行动并从环境中接收反馈的实体。它通过与环境的交互来学习如何实现目标。
Agent的组成部分
- 状态(State):代理所处的环境的描述。
- 动作(Action):代理可以选择执行的操作。
- 策略(Policy):代理决定采取哪个动作的规则或模型,可以是确定性的或随机的。
- 奖励(Reward):代理在某个状态下采取某个动作后收到的反馈,用于评估该动作的好坏。
- 价值函数(Value Function):代理对未来奖励的预期,为了衡量在某个状态下采取某个动作的好坏。
Agent的目标
最大化累积奖励:代理的主要目标是通过学习最优策略来最大化获得的奖励。
什么是 End-to-End Approach?
"End-to-end
approach"在强化学习和其他机器学习领域中是一种常见的方法。它指的是一个系统或模型能够直接从输入到输出进行处理,而不需要手动设计的中间步骤或特征工程。
定义
定义:在这种方法中,原始数据(例如图像、声音或状态信息)作为输入,经过一个复杂的模型(如深度神经网络),最终输出决策或预测。这个过程是连续的,没有人为干预。
特点
自动化:减少了对手动特征提取的依赖,允许模型自主学习最相关的特征。
简化流程:从输入到输出的流程更加直观,可以使用单个模型替代多个模块。
高效性:通过优化整个模型,可以提高性能,尤其是在大规模数据集上。
优势与挑战
优势:
灵活性:适用于多种类型的数据和任务。
通用性:可扩展到更复杂的任务,如视频游戏、机器人控制等。
挑战:
数据需求:通常需要大量的数据和计算资源来训练。
不稳定性:训练过程可能不稳定,难以收敛。
示例
自动驾驶:车辆通过摄像头获取环境信息,使用深度学习模型直接输出控制命令(例如转向、加速)。
AlphaGo:该系统将棋盘状态作为输入,经过深度神经网络后输出最佳走法。
Fuzzy Bayesian Reinforcement Learning (RB-RL)
Fuzzy Bayesian Reinforcement Learning (RB-RL)
是一种结合了模糊逻辑、贝叶斯方法和强化学习的系统,旨在处理不确定性并提高决策过程的灵活性和可靠性。
系统组成部分
- a. 强化学习 (RL)
基本概念:通过与环境的交互来学习一个策略,以最大化累积奖励。
代理:在 RL 框架中,代理根据当前状态选择动作,并基于环境反馈(奖励)更新其策略。 - b. 模糊逻辑
目的:处理不确定性和模糊性,使得系统能够在不完全信息下进行推理。
模糊集合:使用模糊集合来表示状态和动作,允许更为柔性的判断,而非传统的二元划分(如"真"或"假")。 - c. 贝叶斯方法
不确定性处理:利用贝叶斯推断来量化和更新对环境模型的信任度。通过先验知识和观察数据逐步调整对状态和动作的理解。
系统工作原理
- 状态感知:代理通过传感器获取环境状态,并将这些状态转换为模糊输入。
- 模糊推理:使用模糊规则库对模糊状态进行推理,以生成可能的动作输出。
- 贝叶斯更新:在接收到环境反馈后,使用贝叶斯更新来调整对环境模型的信任度,从而优化未来的决策。
- 强化学习更新:结合奖励信号,通过强化学习算法(如Q-learning或Policy Gradient方法)更新策略,以改善代理的表现。
贝叶斯方法
基础_条件概率
条件概率是指在已知某个事件发生的情况下,另一个事件发生的概率。
定义
如果有两个事件 A A A 和 B B B,则事件 A A A在事件 B B B发生的条件下的条件概率,记作 P ( A ∣ B ) P(A | B) P(A∣B),其定义为:
P ( A ∣ B ) = P ( A ∩ B ) P ( B ) ( P ( B ) > 0 ) P(A | B) = \frac{P(A \cap B)}{P(B)} \quad (P(B) > 0) P(A∣B)=P(B)P(A∩B)(P(B)>0)
其中:
- P ( A ∣ B ) P(A | B) P(A∣B):在事件 B B B 发生的情况下,事件 A A A 发生的概率。
- P ( A ∩ B ) P(A \cap B) P(A∩B):事件 A A A和事件 B B B同时发生的概率,即它们的交集。
- P ( B ) P(B) P(B):事件 B B B 发生的概率,且必须大于零。
贝叶斯定理
贝叶斯定理是贝叶斯方法的核心,它描述了如何通过新证据更新先验概率。定理的数学表达为:
P ( H ∣ E ) = P ( E ∣ H ) ⋅ P ( H ) P ( E ) P(H | E) = \frac{P(E | H) \cdot P(H)}{P(E)} P(H∣E)=P(E)P(E∣H)⋅P(H)
其中:
P ( H ∣ E ) P(H | E) P(H∣E):后验概率,即在观察到证据 ( E ) 后,假设 ( H ) 为真的概率。
- H H H是我们感兴趣的假设或事件。
- E E E 是我们观察到的证据或数据。
P ( E ∣ H ) P(E | H) P(E∣H):似然函数,即假设 ( H ) 为真时,观察到证据 ( E ) 的概率。
P ( H ) P(H) P(H):先验概率,即在未观察到证据之前,假设 ( H ) 为真的初始概率。
P ( E ) P(E) P(E):边际概率,即观察到证据 ( E ) 的总体概率,可以通过所有可能的假设计算得出:
P ( E ) = ∑ H i P ( E ∣ H i ) ⋅ P ( H i ) P(E) = \sum_{H_i} P(E | H_i) \cdot P(H_i) P(E)=Hi∑P(E∣Hi)⋅P(Hi)
示例
假设我们想估计某种疾病(假设 ( H ))在特定人群中的发病率。我们通过检测(证据 ( E ))来获取信息。使用贝叶斯定理,我们可以结合先前对疾病流行率的了解(先验 ( P(H) ))以及检测结果的准确性(似然 ( P(E | H) )),从而计算出在获得检测结果后,该人实际上患有该疾病的概率(后验 ( P(H | E) ))。
Q-learning强化学习算法
Q-learning是一种强化学习算法,用于使智能体(agent)在环境中通过与环境的互动来学习最优策略。它属于无模型的强化学习方法,不需要环境的具体模型,只依赖于智能体从环境中获得的奖励和状态信息。
Q-learning的基本概念
- 状态(State, S):智能体在环境中的一个特定情况或配置。
- 动作(Action, A):智能体可以在给定状态下采取的操作。
- 奖励(Reward, R):智能体执行某个动作后,环境反馈给智能体的分数或价值,用以指导学习。
- 策略(Policy, π):智能体选择动作的规则,可以是确定性(总是选择同一动作)或随机性(根据概率选择动作)。
- Q值(Q-value):表示在某一状态下执行某个动作所期望的累积奖励。Q值函数 Q ( s , a ) Q(s, a) Q(s,a)表示在状态 s s s 下执行动作 a a a 的预期回报。
Q-learning算法核心步骤
-
初始化
初始化Q值表 Q ( s , a ) Q(s, a) Q(s,a),通常将所有Q值设为零或小的随机值。
-
选择动作
智能体在某一状态 s s s 下选择一个动作 a a a。可以使用 ε-greedy 策略:
以概率 1 − ϵ 1 - \epsilon 1−ϵ选择当前Q值最高的动作(利用),即 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)。
以概率 ϵ \epsilon ϵ 随机选择一个动作(探索)。
-
执行动作
智能体在状态 s s s下执行动作 a a a,然后转移到新状态 s ′ s' s′,并接收到奖励 r r r。
-
更新Q值
使用贝尔曼方程更新Q值:
Q ( s , a ) ← Q ( s , a ) + α [ r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s, a) \leftarrow Q(s, a) + \alpha [r + \gamma \max_{a'} Q(s', a') - Q(s, a)] Q(s,a)←Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)]其中:
α \alpha α:学习率 0 < α ≤ 1 0 < α ≤ 1 0<α≤1,控制新信息对旧信息的影响程度。
r r r:即时奖励。
γ \gamma γ:折扣因子 0 ≤ γ < 1 0 ≤ γ < 1 0≤γ<1,衡量未来奖励的重要性。 -
状态转移
将状态更新为新状态 s ′ s' s′。
-
重复
重复步骤 2 至 5,直到达到终止条件(如收敛、达到固定的迭代次数等)。
表达式解析 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)
表达式 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)是强化学习中的一个重要概念,涉及到行为选择(action selection)和价值函数(value function)的计算。
符号解释
a a a:这是我们要选择的动作。
s s s:表示当前的状态。
Q ( s , a ) Q(s, a) Q(s,a):是一个称为"行动价值函数"(Action-Value Function)的函数,它表示在状态 s s s下采取动作 a a a所期望获得的累积奖励(即在该状态下执行该动作以及之后的最佳策略所得到的预期总回报)。
arg max a \arg\max_a argmaxa:这个符号表示"使得(maximize)某个函数的变量"的取值。在这里,它表示对于所有可能的动作 a a a,找出那个可以最大化 Q ( s , a ) Q(s, a) Q(s,a)的动作。
整体含义
整合以上内容,表达式 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)的意思是:
在给定状态 s s s的情况下,选择那个能够使得行动价值函数 Q ( s , a ) Q(s, a) Q(s,a)最大化的动作 a a a。
应用场景
这种选择方式通常用于强化学习中的贪婪策略 ( g r e e d y p o l i c y ) (greedy policy) (greedypolicy)或ε-贪婪策略 ( e p s i l o n − g r e e d y p o l i c y ) (epsilon-greedy policy) (epsilon−greedypolicy),其中智能体会倾向于选择当前认为最优的动作:
- 贪婪策略:始终选择能够最大化 Q ( s , a ) Q(s, a) Q(s,a) 的动作。
- ε-贪婪策略:大多数时间选择 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a),但有小概率随机选择其他动作,以探索新的可能动作。
例子
假设在一个特定的状态 s s s下,Q值如下:
Q ( s , a 1 ) = 10 Q(s, a_1) = 10 Q(s,a1)=10
Q ( s , a 2 ) = 15 Q(s, a_2) = 15 Q(s,a2)=15
Q ( s , a 3 ) = 8 Q(s, a_3) = 8 Q(s,a3)=8
在这种情况下,表达式 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)将返回 a 2 a_2 a2,因为它对应的 Q 值最大 15 15 15。
ε-greedy 策略
ε-greedy 策略是一种广泛应用于强化学习和多臂老虎机(multi-armed bandit)问题中的探索与利用平衡策略。它的核心思想是在决策过程中,既要利用已经知道的信息(即选择当前看来最优的动作),又要进行一定程度的探索,以发现可能更优的动作。
基本概念
在 ε-greedy 策略中,算法在每个决策时会以 ε 的概率进行随机选择(探索 ),而以 (1 - ε) 的概率选择当前已知的最佳动作(利用)。具体来说:
- ε:一个介于 0 和 1 之间的值,表示探索的概率。
- 利用:选择当前估计收益最高的动作。
- 探索:随机选择一个动作,不考虑其估计收益。
策略流程
- 初始化:为每个动作初始化一个价值估计(通常为0),并设置 ε 值。
- 每一步决策:
- 生成一个随机数(例如从均匀分布中取样)。
- 如果这个随机数小于 ε,则执行探索,随机选择一个动作。
- 否则,选择当前最优动作,即估计收益最高的动作。
- 更新:执行所选的动作后,根据获得的奖励更新对应行为的估计值。
数学表示
假设有 K K K 个动作,每个动作的真实期望奖励为 Q ∗ ( a ) Q^*(a) Q∗(a),其中 a a a是动作的索引。
选择动作: a = { argmax a Q ( a ) with probability 1 − ϵ random action with probability ϵ a = \begin{cases} \text{argmax}_a Q(a) & \text{with probability } 1 - \epsilon \\ \text{random action} & \text{with probability } \epsilon \end{cases} a={argmaxaQ(a)random actionwith probability 1−ϵwith probability ϵ
优缺点
优点
- 简单易实现:ε-greedy 策略非常直观,容易理解和编码。
- 有效的探索与利用平衡:通过调整 ε 的大小,可以控制探索的频率,适应不同场景的需求。
缺点 - 固定探索概率:当 ε 固定时,可能导致在学习阶段过早地陷入局部最优解。在某些情况下,可能需要动态调整 ε 值。
- 探索效率低:在一些复杂问题中,完全随机地选择动作可能不会有效地探索状态空间。
改进方法
为了克服固定 ε 值带来的不足,研究人员提出了一些改进版本的 ε-greedy 策略,例如:
-
自适应 ε − g r e e d y ε-greedy ε−greedy:根据学习过程动态调整 ε 值。例如,随着时间推移逐渐减小 ε,以增加对当前最优动作的利用。
-
D e c a y ε Decay ε Decayε:在训练期间,随着迭代次数的增多逐渐减少 ε 值,这样初期可以更多地探索,后期更集中于利用。
-
Upper Confidence Bound (UCB):使用基于置信区间的方法来平衡探索与利用。
应用场景
ε-greedy 策略被广泛应用于以下场景:
- 在线广告推荐:决定展示哪些广告以最大化点击率。
- 游戏智能体:训练自动玩游戏的智能体,通过探索新策略提升表现。
- 机器人控制:在不确定环境中进行决策。
Policy Gradient强化学习算法
Policy Gradient 方法是一类强化学习算法,直接优化策略(policy),以最大化某个性能指标(通常是累积奖励)。与基于值的方法(如 Q-learning)不同,Policy Gradient 方法不需要首先估计状态或动作的价值,而是通过对策略本身进行优化来学习。以下是对 Policy Gradient 方法的详细介绍。
基本概念
在强化学习中,策略(policy)是智能体决定在给定状态下采取何种动作的方法。Policy Gradient 方法通过参数化策略并优化这些参数来直接改进策略。一般来说,策略可以用以下形式表示:
- 确定性策略:给定状态 s s s,输出一个特定的动作 a a a,即 a = π ( s ; θ ) a = \pi(s; \theta) a=π(s;θ)。
- 随机策略:给定状态 s s s,输出一个概率分布 P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ),代表在状态 s s s下选择每个动作 a a a 的概率。
表达式 a = π ( s ; θ ) a = \pi(s; \theta) a=π(s;θ)分析
符号解释L:
a a a:代表智能体将要选择的动作(action)。
s s s:代表当前的环境状态(state)。
π \pi π:表示策略(policy),它定义了智能体在给定状态下应采取的行动。策略可以是确定性的(deterministic)或随机的(stochastic)。
θ \theta θ:代表策略的参数(parameters)。这些参数通常是由某种模型(如神经网络)学习得到的,用于调整策略以提高智能体的表现。
这个表达式的意思是:在当前状态 s s s 下,使用策略 π \pi π和其参数 θ \theta θ来决定智能体的动作 a a a。具体来说,这表明智能体的决策依赖于状态和策略参数。
例子
假设你有一个强化学习的任务,其中一个简单的策略可以用一个线性函数表示:
π ( s ; θ ) = softmax ( W ⋅ s + b ) \pi(s; \theta) = \text{softmax}(W \cdot s + b) π(s;θ)=softmax(W⋅s+b)
这里, W W W和 b b b是策略的参数, s o f t m a x softmax softmax 函数用于将输出转换为概率分布。给定状态 s s s,你可以通过上面的公式计算出各个可用动作的概率,进而选择相应的动作 a a a。
表达式 P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ)分析
符号解释
P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ):表示在给定状态 s s s和参数 θ \theta θ 的情况下,选择动作 a a a 的概率。
a a a:智能体可能采取的动作(action)。
s s s:当前的环境状态(state)。
θ \theta θ:策略的参数(parameters),通常由学习过程得到,用于调整策略以优化决策。
该表达式的意思是:在特定状态 s s s下,基于策略参数 θ \theta θ选择动作 a a a的概率。这种概率分布通常用于描述智能体在不同状态下如何选择动作。
策略的类型
根据策略类型的不同, P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ)可以有不同的表现形式:
随机策略 :在这种策略下,动作的选择是随机的。例如,你可以使用 S o f t m a x Softmax Softmax函数来定义概率分布:
P ( a ∣ s ; θ ) = e Q ( s , a ; θ ) ∑ a ′ e Q ( s , a ′ ; θ ) P(a|s; \theta) = \frac{e^{Q(s, a; \theta)}}{\sum_{a'} e^{Q(s, a'; \theta)}} P(a∣s;θ)=∑a′eQ(s,a′;θ)eQ(s,a;θ)
这里, Q ( s , a ; θ ) Q(s, a; \theta) Q(s,a;θ) 表示在状态 s s s 下采取动作 a a a 的估计价值。
确定性策略 :在某些情况下,策略可能是确定性的,即在给定状态下总是选择同一动作。在这种情况下,可以将 P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ)表示为 Dirac 函数:
P ( a ∣ s ; θ ) = { 1 if a = π ( s ; θ ) 0 otherwise P(a|s; \theta) = \begin{cases} 1 & \text{if } a = \pi(s; \theta) \\ 0 & \text{otherwise} \end{cases} P(a∣s;θ)={10if a=π(s;θ)otherwise
策略的优化目标
在 Policy Gradient 方法中,我们的目标是最大化预期奖励,通常定义为:
J ( θ ) = E τ ∼ π θ [ ∑ t = 0 T r t ] J(\theta) = \mathbb{E}{\tau \sim \pi{\theta}} \left[ \sum_{t=0}^{T} r_t \right] J(θ)=Eτ∼πθ[t=0∑Trt]
其中:
- θ \theta θ是策略的参数。
- τ \tau τ 是从策略 π \pi π中生成的轨迹(即一系列状态、动作和奖励的序列)。
- r t r_t rt是在时间步 t t t 收到的奖励。
梯度的计算
为了优化 J ( θ ) J(\theta) J(θ),我们使用梯度上升法。根据链式法则,策略梯度可以通过以下公式计算:
∇ J ( θ ) = E τ ∼ π θ [ ∑ t = 0 T ∇ log π θ ( a t ∣ s t ) R ( τ ) ] \nabla J(\theta) = \mathbb{E}{\tau \sim \pi{\theta}} \left[ \sum_{t=0}^{T} \nabla \log \pi_{\theta}(a_t|s_t) R(\tau) \right] ∇J(θ)=Eτ∼πθ[t=0∑T∇logπθ(at∣st)R(τ)]
其中:
- R ( τ ) R(\tau) R(τ) 是整个轨迹的回报,可以是从时间步 t t t开始的累计奖励。
- ∇ log π θ ( a t ∣ s t ) \nabla \log \pi_{\theta}(a_t|s_t) ∇logπθ(at∣st)是对数似然的梯度,用于更新策略。
这种方法利用了"强化学习中的策略梯度定理",表明通过乘以回报 R ( τ ) R(\tau) R(τ),我们可以将高奖励的动作增强,而低奖励的动作减弱。
常见的 Policy Gradient 算法
REINFORCE:
最基本的 Policy Gradient 算法。
在每次完成一次完整的轨迹后,利用轨迹的总回报更新策略。
Actor-Critic:
结合了值函数和策略的优点。
Actor(策略)负责选择动作,Critic(价值函数)评估动作的价值。
使用 TD 方法来估计价值,从而减少方差,提高学习效率。
Proximal Policy Optimization (PPO):
一种现代的、强大的 Policy Gradient 方法。
通过限制每次更新的幅度来提高稳定性,使用剪切损失函数来避免过大的参数更新。
Trust Region Policy Optimization (TRPO):
通过确保每次更新都在信任区域内,以达到更稳定的学习效果。
优缺点
优点
- 直接优化策略:与基于值的方法相比,更加自然且能处理连续动作空间。
- 适应性:可以灵活应用于多种问题,包括部分可观测环境。
缺点 - 高方差:梯度估计的方差可能很大,导致学习过程不稳定。
- 收敛速度慢:由于直接优化的性质,可能比较慢,尤其是在复杂任务中。
应用场景
Policy Gradient 方法被广泛应用于以下领域:
- 机器人控制:训练机器人在复杂环境中执行任务。
- 游戏 AI:在视频游戏中训练智能体。
- 推荐系统:个性化推荐内容时,通过考虑用户反馈进行优化。
总之,Policy Gradient 方法是强化学习中的重要类别,适合解决各种决策问题,其灵活性和强大能力使其成为研究和实际应用中的热门选择。
Softmax 函数
Softmax 函数是一个常用的数学函数,特别在机器学习和深度学习中,它用于将一组实数值转换为一个概率分布。Softmax 函数通常用于多类分类任务中,将模型的输出(例如神经网络的 logits)转化为每个类别的预测概率。
定义
给定一个实数向量 z = [ z 1 , z 2 , ... , z K ] \mathbf{z} = [z_1, z_2, \ldots, z_K] z=[z1,z2,...,zK],Softmax 函数定义为:
σ ( z ) i = e z i ∑ j = 1 K e z j for i = 1 , 2 , ... , K \sigma(\mathbf{z})i = \frac{e^{z_i}}{\sum{j=1}^{K} e^{z_j}} \quad \text{for } i = 1, 2, \ldots, K σ(z)i=∑j=1Kezjezifor i=1,2,...,K
其中:
- σ ( z ) i \sigma(\mathbf{z})_i σ(z)i是第 i i i个类别的概率。
- K K K 是类别的总数。
- e e e是自然对数的底。
表达式 σ ( z ) i = e z i ∑ j = 1 K e z j for i = 1 , 2 , ... , K \sigma(\mathbf{z})i = \frac{e^{z_i}}{\sum{j=1}^{K} e^{z_j}} \quad \text{for } i = 1, 2, \ldots, K σ(z)i=∑j=1Kezjezifor i=1,2,...,K各部分解释
-
e z i e^{z_i} ezi:
这个部分表示对 z i z_i zi 应用指数函数。对于输入向量中的每个元素 z i z_i zi,我们计算其指数值。这是因为指数函数可以将输入值放大,使得较大的 z i z_i zi 值在最终结果中占据更大的权重。
-
∑ j = 1 K e z j \sum_{j=1}^{K} e^{z_j} ∑j=1Kezj:
这个部分是对所有输入 z z z元素的指数值求和,从 j = 1 j = 1 j=1到 K K K(即所有类别的数量)。这个总和提供了一个归一化的基准,使得Softmax输出的概率能够被转换到一个有效的概率分布(所有概率值之和为1)。
-
整体的意思:
整个表达式 e z i ∑ j = 1 K e z j \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} ∑j=1Kezjezi是说,对于特定的类别 i i i的概率 P ( i ) P(i) P(i),它等于该类别的指数值 e z i e^{z_i} ezi 与所有类别指数值总和 ∑ j = 1 K e z j \sum_{j=1}^{K} e^{z_j} ∑j=1Kezj 的比值。这意味着我们关注的是类别 i i i 的"相对重要性"或"相对大小",以及它与其他类别的关系。
概率解释
通过这种方式,Softmax 函数确保了输出的概率能够反映模型对每个类别的信心:
如果某个 z i z_i zi很大, e z i e^{z_i} ezi 也会很大,相应的概率 P ( i ) P(i) P(i)也会高。
如果其他 z j z_j zj较小,那么它们的指数值就相对较小,导致 ∑ j = 1 K e z j \sum_{j=1}^{K} e^{z_j} ∑j=1Kezj 不会显著增加,从而使得概率 P ( i ) P(i) P(i)更高。
例子
假设有三个类别的 l o g i t s logits logits 为 z = [ 2.0 , 1.0 , 0.1 ] z = [2.0, 1.0, 0.1] z=[2.0,1.0,0.1]:
计算各类的指数值:
e 2.0 ≈ 7.39 e^{2.0} \approx 7.39 e2.0≈7.39
e 1.0 ≈ 2.72 e^{1.0} \approx 2.72 e1.0≈2.72
e 0.1 ≈ 1.11 e^{0.1} \approx 1.11 e0.1≈1.11
计算总和:
∑ j = 1 3 e z j = 7.39 + 2.72 + 1.11 ≈ 11.22 \sum_{j=1}^{3} e^{z_j} = 7.39 + 2.72 + 1.11 \approx 11.22 ∑j=13ezj=7.39+2.72+1.11≈11.22
计算各类的概率:
对于第一类: σ ( z 1 ) = e 2.0 11.22 ≈ 0.66 \sigma(z_1) = \frac{e^{2.0}}{11.22} \approx 0.66 σ(z1)=11.22e2.0≈0.66
对于第二类: σ ( z 2 ) = e 1.0 11.22 ≈ 0.24 \sigma(z_2) = \frac{e^{1.0}}{11.22} \approx 0.24 σ(z2)=11.22e1.0≈0.24
对于第三类: σ ( z 3 ) = e 0.1 11.22 ≈ 0.10 \sigma(z_3) = \frac{e^{0.1}}{11.22} \approx 0.10 σ(z3)=11.22e0.1≈0.10
通过这种方法,Softmax 将 logits 转换为概率分布,使得每个类别的输出可用于做出决策。
为什么Softmax 函数中使用指数化
在机器学习中,
logit
通常指的是未经过激活函数(如 Sigmoid 或 Softmax)处理的原始预测值。
原因:
- 放大差异性
增强分类效果:指数函数能够放大输入值之间的差异。对于 logits(模型的输出),较大的值会导致其对应的概率值显著高于其他类别。例如,如果某个类别的 logit 值非常大,而其他类别的 logit 值相对较小,指数化后,这个类别的概率会远远高于其他类别,使得分类器更加自信。这种放大效果有助于模型在区分不同类别时表现得更加明确。 - 确保正值
输出正数:通过应用指数函数,所有的输出值都会是正数 ( e x > 0 e^x > 0 ex>0对于任何实数 x x x)。这是处理概率分布时所必需的,因为概率本身必须是非负的。 - 归一化
简化计算:Softmax 的形式就是为了将 logits 转换为一个有效的概率分布,其总和为 1。通过在分母中使用所有类别的指数和,可以保证每个类别的概率是相对于其他类别的,这种归一化方式使得我们可以直接比较各个类别的概率。 - 平滑决策
避免过度自信:如果不使用指数化,类别间的微小差异可能不会显著影响最终的概率结果,从而导致模型在做决策时变得不够敏感。而使用指数化后,即使是微弱的差异也能被放大,这有利于模型做出更细致的判断。 - 数学性质
导数的便利性:在优化算法(如梯度下降)中,使用指数函数的连续性和可导性可以简化反向传播过程中的计算,使得更新权重时更加高效。