kshana-bench
Um conjunto aberto de tarefas, partições e métricas para detecção de interferência GNSS e holdover de temporização. A especificação é bench/SPEC.md (versão 2.0.0; licença do texto e dos manifestos: CC-BY-4.0 / CC0 propostas, decisão do proprietário pendente). A revisão das licenças dos conjuntos de dados está em bench/LICENCES.md. Os limiares das linhas de base foram fixados antes da primeira execução pontuada em xval/bench/PREREGISTRATION.md e, para a 2.0.0, em PREREGISTRATION-v2.md, e seus resultados estão em xval/bench/RESULTS-v2.md.
Veredictos conforme registrados ali: os limiares do pontuador, C1 a C3 e D2, são atingidos; A2 é NOT MET (AUC de agc_k_sigma 0,766 contra pelo menos 0,80 na partição de teste), D1 é NOT MET (maior diferença 0,0301) e a tarefa (b) R1 é NOT MET (herdada, não reexecutada). Nenhum limiar é afrouxado.
O que é: uma forma de comparar métodos nos mesmos dados com o mesmo código de métrica. O que não é: um ranking de produtos, uma aprovação ou evidência de que um método funciona em campo. Toda pontuação é MODELLED, e uma pontuação descreve um registro ou um corpus, nunca um produto. Os resultados do Kshana são consultivos.
Tarefas#
| Tarefa | Unidade | Dados | Métrica principal |
|---|---|---|---|
| (a) detecção em registros de receptor | uma época de um registro do JammerTest 2024 | obtido por scripts/fetch_jammertest2024.sh (GPL-3.0+, nunca incorporado ao repositório) |
AUC |
| (b) detecção em IQ | uma janela pontuada de uma cena | receita de cena sintética do Kshana; TEXBAT apenas como referência | AUC por tipo de alarme |
| (c) previsão de holdover de temporização | (satélite, origem) | relógios IGS a 300 s (extrato versionado, hash fixado) | RMSE a 3600 s |
| (d) lacuna de otimismo fora da distribuição | um caso sintético | corpus impairment-eval, dentro e fora da distribuição |
AUC de saída e a diferença |
Comandos#
kshana bench spec
kshana bench cases --task d --split test --scale 0.5 --out cases/ # cases.json + truth.json
kshana bench cases --task c --split test --out cases/
kshana bench truth --task a --data <extracted JammerTest 2024> --split test --out truth.json
kshana bench score --truth truth.json --predictions my-scores.json --out my.result.json
kshana bench baseline --task d --split test --out results/ # the built-in baselines
kshana bench validate results/*.result.json
kshana bench leaderboard results/ --out bench/site/index.html
kshana bench seal --task d --seed-file secret.txt --new # owner: make a seed, print only its hash
kshana bench reveal-check --task d --seed-file secret.txt --commitment <hex>
kshana bench manifest --task a --data <extracted dir> --out manifest.json
kshana bench verify-manifest manifest.json --root <dir>
Uma submissão é um arquivo (kshana-bench-predictions/1): scores (um número por id de caso; quanto maior, mais provável que esteja comprometido) para as tarefas a, b e d, ou predictions (a variação de fase em ns em cada horizonte) para a tarefa c. Um arquivo de resultado (kshana-bench-result/1) indica a versão da especificação, a partição, o SHA-256 da verdade de referência e das previsões, e as métricas. Resultados de versões principais diferentes da especificação nunca são colocados em uma mesma tabela.
Limites honestos#
- Os conjuntos reservados de dados reais (a e c) são públicos, porque qualquer pessoa pode baixar os dados. Eles protegem contra a escolha de uma partição depois de ver as pontuações, não contra o ajuste nessas pastas. O conjunto reservado selado da tarefa (d) é um compromisso e revelação: o proprietário registra apenas o hash em
bench/holdout/COMMITMENTS.jsone guarda a semente (nenhum está selado ainda). - A verdade de referência da tarefa (a) são as janelas de ataque programadas dos registros de eventos, com resolução de um minuto, de modo que uma probabilidade de detecção é um limite inferior; as métricas em nível de evento (latência, alarmes perdidos, alarmes falsos) chegam com o pontuador do Jammertest de
kshana jammertest score. - A linha de base de IQ da tarefa (b) é herdada de
docs/design/DETECTION-ROC.md, não reexecutada para a v1. - O corpus da tarefa (d) é uma verificação de separabilidade e de pipeline; uma AUC nele é uma AUC sobre rótulos derivados de modelo.