文章总结: 本文详解深度强化学习核心超参数Gamma、Alpha及Epsilon在虚拟网络映射中的作用。Gamma权衡长期奖励,Alpha控制学习步长,Epsilon平衡探索与利用。结合论文公式与Java代码,阐明参数设置对模型收敛的影响及动态调整策略。 综合评分: 83 文章分类: AI安全,网络安全
深度强化学习求解虚拟网络映射设计与Java实现(三)
原创
豆豆 豆豆
豆豆咨询
2026年1月24日 08:34 浙江
一、超参数介绍
1. γ (gamma) – 折扣因子 – gamma = 0.99
作用:
- 未来奖励的折扣率,决定智能体对未来奖励的重视程度
- 取值范围:
0 ≤ gamma ≤ 1
详细解释:
-
gamma = 0.99:智能体高度关注未来奖励(长期规划)
-
当前奖励权重:1.0
-
1步后的奖励权重:0.99
-
10步后的奖励权重:0.99¹⁰ ≈ 0.904
-
100步后的奖励权重:0.99¹⁰⁰ ≈ 0.366
-
gamma = 0:智能体只关心即时奖励(贪婪策略)
-
gamma = 1:智能体平等对待所有未来奖励(无限视野)
注意:未来奖励有一个初始值,然后不断地学习更新,是一个动态变化的值。
在论文中的应用:
在论文的公式(18)和(19)中,虽然没有直接出现gamma,但在计算长期收益(long-term revenue)时,隐含了对未来奖励的考量:
math
\mathcal{LR} = \lim_{T\to \infty}\frac{\sum_{i=1}^{|\mathrm{DGRs}|}\sum_{t=0}^{T}\mathcal{R}(G_i^\nu)}{T}
gamma控制着这个无限求和的有效范围。
2. α (learningRate) – 学习率 – learningRate = 0.001
作用:
- 控制参数更新的步长
- 决定每次梯度下降时参数变化的幅度
详细解释:
-
学习率 = 0.001:较小但常用的值,适合稳定的训练
-
太小(如0.00001):收敛过慢,需要大量训练时间
-
太大(如0.1):可能导致振荡或不收敛
-
自适应:可以使用Adam优化器自动调整
论文对应:
在论文的算法1和训练过程中,虽然没有明确指定学习率,但深度学习模型必然需要这个参数来更新网络权重。
根据上述公式我们可以看到,如果学习率ηη较大,那么参数的更新速度就会很快,可以加快网络的收敛速度,但如果学习率过大,可能会导致参数在最优解附近震荡,代价函数难以收敛,甚至可能会错过最优解,导致参数向错误的方向更新,代价函数不仅不收敛反而可能爆炸(如图1a所示)。如果学习率ηη较小,网络可能不会错过最优点,但是网络学习速度会变慢。同时,如果学习率过小,则很可能会陷入局部最优点(如图1b所示)。因此,只有找到合适的学习率,才能保证代价函数以较快的速度逼近全局最优解。
3. ε (epsilon) – 探索率 – epsilon = 0.1
作用:
- ε-greedy策略中的探索概率
- 控制智能体在”利用已知知识”和”探索新策略”之间的平衡
详细解释:
- epsilon = 0.1:10%的时间随机探索,90%的时间选择最优动作
- 探索(Exploration):随机选择动作,发现新策略
- 利用(Exploitation):选择当前认为最优的动作,最大化即时奖励
代码实现:
public int selectAction(INDArray probabilities, double epsilon) {
if (random.nextDouble() < epsilon) {
return random.nextInt(probabilities.size(1)); // 探索
} else {
return Nd4j.argMax(probabilities, 1).getInt(0); // 利用
}
}
论文对应:
论文中提到softmax函数和温度参数来控制探索与利用的权衡(第13页),ε-greedy是另一种常用方法。
4. ε衰减率 (epsilonDecay) – epsilonDecay = 0.995
作用:
- 每个训练回合后减少探索率的系数
- 实现从”广泛探索”到”精细利用”的过渡
详细解释:
-
每回合更新:
epsilon = epsilon * epsilonDecay -
epsilonDecay = 0.995:每回合探索率减少0.5%
-
初始探索率 = 0.1时的衰减过程:
-
回合1:0.100
-
回合100:0.100 × 0.995¹⁰⁰ ≈ 0.061
-
回合200:≈ 0.037
-
回合500:≈ 0.008
代码实现:
// 每回合后衰减
epsilon = Math.max(minEpsilon, epsilon * epsilonDecay);
作用:
- 探索率的下限值
- 确保训练后期仍保持少量探索,避免完全停止探索
详细解释:
- minEpsilon = 0.01:即使训练了很多回合,仍有1%的概率进行随机探索
- 防止过拟合:避免智能体陷入局部最优解
- 适应环境变化:如果环境动态变化,需要持续探索
二、代码例子解释相关作用
// 针对论文中描述的IoT数据生成场景
private double gamma = 0.97; // 中等长期规划
private double learningRate = 0.0005; // 较小学习率,稳定训练
private double epsilon = 0.15; // 初期较多探索
private double epsilonDecay = 0.998; // 缓慢衰减(2000回合训练)
private double minEpsilon = 0.02; // 保持少量探索
public void trainEpisode() {
// 训练前:epsilon = 0.10,较多探索
for (int step = 0; step < maxSteps; step++) {
// 1. ε-greedy选择动作(10%探索,90%利用)
int action = agent.selectAction(probs, epsilon);
// 2. 执行动作,获得奖励
// 3. 学习更新(使用learningRate=0.001)
}
// 训练后:epsilon = 0.10 * 0.995 = 0.0995(轻微衰减)
}
三、总结表格
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:豆豆咨询 豆豆 豆豆《深度强化学习求解虚拟网络映射设计与Java实现(三)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论