You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python-NEAT优化交通信号配时激活函数异常及配置咨询

问题:Python-NEAT优化交通信号配时的激活函数异常与配置疑问

背景与异常表现

我使用Python-NEAT算法,以交叉口四个方向的队列长度为输入,优化交通信号配时,目标是输出最优信号时长。但实现过程中,激活函数持续出现异常:

  • ReLU:输出值持续增大至极大,无法实际运行;
  • Sigmoid/tanh/sin:输出始终固定为[1.0,1.0,1.0,1.0],与输入完全无关;
  • Softplus:所有信号时长输出恒定为12。

尝试多代运行Sigmoid后,fitness值直接暴跌至负几十亿。

当前适应度计算逻辑

单方向fitness计算代码:

if queue_length_north_avg > 15:
    fitness_N += queue_length_north_avg + ((queue_length_north_avg - 15) ** 2)
else:
    fitness_N += queue_length_north_avg

汇总后更新genome.fitness的代码:

fitness = fitness_N + fitness_S + fitness_E + fitness_W / 4
genome.fitness -= fitness

核心疑问

  1. 激活函数异常的原因是什么?
  2. 如何配置算法以生成稳定输出,实现有效优化?
  3. 是否可以为四个方向设置不同的fitness权重?这对优化是否有帮助?

当前配置文件

[NEAT]
fitness_criterion     = max
fitness_threshold     = 1
pop_size              = 30
reset_on_extinction   = False

[DefaultGenome]
#compatibility_weight_coefficient = 1.0
activation_default      = softplus
activation_mutate_rate  = 0.0
activation_options      = softplus

aggregation_default     = sum
aggregation_mutate_rate = 0.0
aggregation_options     = sum

bias_init_mean          = 0.0
bias_init_stdev         = 1.0
bias_max_value          = 10.0
bias_min_value          = 0.0
bias_mutate_power       = 0.5
bias_mutate_rate        = 0.4
bias_replace_rate       = 0.1

compatibility_disjoint_coefficient = 1.0
compatibility_weight_coefficient   = 1.0

conn_add_prob           = 0.5
conn_delete_prob        = 0.5

enabled_default         = True
enabled_mutate_rate     = 0.01

feed_forward            = True
initial_connection      = full_direct

node_add_prob           = 0.2
node_delete_prob        = 0.2

num_hidden              = 4
num_inputs              = 4
num_outputs             = 4

response_init_mean      = 1.0
response_init_stdev     = 0.1
response_max_value      = 10.0
response_min_value      = 0.0
response_mutate_power   = 0.1
response_mutate_rate    = 0.1
response_replace_rate   = 0.05

weight_init_mean        = 0.0
weight_init_stdev       = 0.5
weight_max_value        = 10
weight_min_value        = 0.0
weight_mutate_power     = 0.5
weight_mutate_rate      = 0.4
weight_replace_rate     = 0.1

[DefaultSpeciesSet]
compatibility_threshold = 3.0

[DefaultStagnation]
species_fitness_func = max
max_stagnation       = 20
species_elitism      = 2

[DefaultReproduction]
elitism            = 2
survival_threshold = 0.3

内容的提问来源于stack exchange,提问作者Shaair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 15:56:19