# =============================================================================
# 1. DEFINICIÓN DE CONFIGURACIONES A EXPERIMENTAR
# =============================================================================
experiment_configs = [
# Configuración 1: Línea Base (Baseline)
# Objetivo: Establecer un punto de referencia mínimo viable sin trucos.
{
"name": "Baseline_ReLU",
"hidden_units": [64, 32],
"activations": "relu",
"dropout_rates": 0.0,
"use_batchnorm": False,
"kernel_regularizer": None,
"kernel_initializer": "he_normal",
"optimizer": keras.optimizers.Adam(learning_rate=0.001),
"loss": "mse",
"metrics": ["mae"],
"seed": 42
},
# Configuración 2: Regularización L2 (Ridge)
# Objetivo: Evitar que los pesos crezcan demasiado, suavizando la función de decisión.
# Útil si sospechas de multicolinealidad en las features de entrada.
{
"name": "Regularization_L2",
"hidden_units": [128, 64, 32],
"activations": "relu",
"dropout_rates": 0.0,
"use_batchnorm": False,
"kernel_regularizer": keras.regularizers.l2(0.001),
"kernel_initializer": "he_normal",
"optimizer": keras.optimizers.Adam(learning_rate=0.001),
"loss": "mse",
"metrics": ["mae"],
"seed": 42
},
# Configuración 3: Dropout Agresivo + BatchNorm
# Objetivo: Maximizar la generalización en un dataset pequeño o ruidoso.
# BatchNorm estabiliza la distribución de entradas a cada capa.
{
"name": "BN_Dropout_Agg",
"hidden_units": [256, 128, 64],
"activations": "relu",
"dropout_rates": [0.3, 0.3, 0.5],
"use_batchnorm": True,
"kernel_regularizer": None,
"kernel_initializer": "he_normal",
"optimizer": keras.optimizers.Adam(learning_rate=0.001),
"loss": "mse",
"metrics": ["mae"],
"seed": 42
},
# Configuración 4: Arquitectura "Deep & Narrow" con ELU
# Objetivo: Probar si una arquitectura más profunda con activaciones que evitan el "dying ReLU problem" (ELU)
# captura mejor relaciones no lineales complejas en los datos psicológicos.
{
"name": "Deep_ELU_Huber",
"hidden_units": [64, 32, 16, 8],
"activations": "elu",
"dropout_rates": 0.1,
"use_batchnorm": False,
"kernel_regularizer": keras.regularizers.l2(0.0001),
"kernel_initializer": "he_normal",
"optimizer": keras.optimizers.Adam(learning_rate=0.0005),
"loss": "huber",
"metrics": ["mae"],
"seed": 42
},
# Configuración 5: Comparativa de Optimizadores (SGD vs Adam)
# Objetivo: Verificar si Adam converge a un mínimo más generalizable que SGD con Momentum.
# SGD suele encontrar mínimos más planos (mejor generalización) pero es más difícil de tuneear.
{
"name": "SGD_Momentum_BN",
"hidden_units": [128, 64],
"activations": "relu",
"dropout_rates": 0.2,
"use_batchnorm": True,
"kernel_regularizer": None,
"kernel_initializer": "he_normal",
"optimizer": keras.optimizers.SGD(learning_rate=0.01, momentum=0.9),
"loss": "mse",
"metrics": ["mae"],
"seed": 42
},
# Configuración 6: Ensemble-style (Modelo Ancho)
# Objetivo: Un modelo muy ancho puede actuar como un ensemble de sub-redes más pequeñas.
{
"name": "Wide_L2_Drop",
"hidden_units": [512, 256],
"activations": "relu",
"dropout_rates": 0.4,
"use_batchnorm": False,
"kernel_regularizer": keras.regularizers.l2(0.001),
"kernel_initializer": "he_normal",
"optimizer": keras.optimizers.Adam(learning_rate=0.001),
"loss": "mse",
"metrics": ["mae"],
"seed": 42
}
]
Last active
May 17, 2026 14:48
-
-
Save robintux/728e0041261139411f6bf70d59486785 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment