feat(ml): add KAN architecture + TLOB/KAN trainable/hyperopt adapters

Phase 2-3 of ensemble expansion:
- KAN (Kolmogorov-Arnold Network): B-spline basis, layer, network, trainable adapter
- TLOB UnifiedTrainable adapter with 3D input support (batch, seq, features)
- Hyperopt adapters for both KAN and TLOB (ParameterSpace + metrics)
- ModelType::KAN variant registered in common, coordinator, lib.rs
- 44 new tests, all passing, zero warnings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-02-23 01:32:25 +01:00
parent d777d714b2
commit 4eacd4e22f
14 changed files with 2146 additions and 0 deletions

View File

@@ -42,6 +42,8 @@ pub enum ModelType {
TGNN,
/// Ensemble of multiple models
Ensemble,
/// Kolmogorov-Arnold Network
KAN,
}
impl ModelType {
@@ -60,6 +62,7 @@ impl ModelType {
Self::PPO => "ppo",
Self::Transformer => "transformer",
Self::Ensemble => "ensemble",
Self::KAN => "kan",
}
}
@@ -76,6 +79,7 @@ impl ModelType {
Self::DistilledMicroNet => "distilled",
Self::Transformer => "transformer",
Self::Ensemble => "ensemble",
Self::KAN => "kan",
}
}
@@ -92,6 +96,7 @@ impl ModelType {
Self::TGGN | Self::TGNN => "tggn",
Self::DistilledMicroNet => "distilled",
Self::Transformer => "transformer",
Self::KAN => "kan",
}
}
@@ -110,6 +115,7 @@ impl ModelType {
Self::TLOB => "TLOB",
Self::Transformer => "TRANSFORMER",
Self::Ensemble => "ENSEMBLE",
Self::KAN => "KAN",
}
}
@@ -134,6 +140,7 @@ impl ModelType {
"ppo" => Some(Self::PPO),
"transformer" => Some(Self::Transformer),
"ensemble" => Some(Self::Ensemble),
"kan" => Some(Self::KAN),
_ => None,
}
}