kshana-bench
Um conjunto aberto de tarefas, divisões e métricas para a deteção de interferência GNSS e o 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 do conjunto de dados é 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 os seus resultados constam de xval/bench/RESULTS-v2.md.
Veredictos tal como aí registados: os limiares do avaliador, C1 a C3 e D2, são atingidos; A2 é NOT MET (agc_k_sigma AUC 0,766 contra pelo menos 0,80 na divisão de teste), D1 é NOT MET (maior diferença 0,0301) e a tarefa (b) R1 é NOT MET (transportado, não reexecutado). Nenhum limiar foi afrouxado.
O que é: uma forma de comparar métodos sobre os mesmos dados com o mesmo código de métricas. O que não é: uma classificação de produtos, uma aprovação, nem prova de que um método funciona no terreno. Toda a pontuação é MODELLED, e uma pontuação descreve um registo ou um corpus, nunca um produto. Os resultados do Kshana são consultivos.
Tarefas#
| Tarefa | Unidade | Dados | Métrica principal |
|---|---|---|---|
| (a) deteção em registos de recetor | uma época de um registo do JammerTest 2024 | obtido por scripts/fetch_jammertest2024.sh (GPL-3.0+, nunca incorporado) |
AUC |
| (b) deteçã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) diferença de otimismo fora da distribuição | um caso sintético | corpus impairment-eval, dentro e fora da distribuição |
AUC fora da distribuição 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 ficheiro (kshana-bench-predictions/1): scores (um número por identificador de caso; maior significa maior probabilidade de estar afetado) para as tarefas a, b e d, ou predictions (a variação de fase em ns a cada horizonte) para a tarefa c. Um ficheiro de resultados (kshana-bench-result/1) indica a versão da especificação, a divisão, o SHA-256 da referência e das previsões, e as métricas. Os resultados de diferentes versões principais da especificação nunca são colocados na mesma tabela.
Limites com honestidade#
- Os conjuntos reservados de dados reais (a e c) são públicos, porque qualquer pessoa pode descarregar os dados. Protegem contra a escolha de uma divisão depois de ver as pontuações, não contra o ajuste sobre essas pastas. O conjunto reservado selado da tarefa (d) é um compromisso e revelação: o proprietário compromete apenas o hash em
bench/holdout/COMMITMENTS.jsone guarda a semente (ainda nenhum está selado). - A referência da tarefa (a) são os intervalos de ataque programados dos registos de eventos com resolução de um minuto, pelo que uma probabilidade de deteção é um limite inferior; as métricas ao nível do evento (latência, alarmes omitidos, falsos alarmes) chegarão com o avaliador Jammertest de
kshana jammertest score. - A linha de base de IQ da tarefa (b) é transportada de
docs/design/DETECTION-ROC.md, não reexecutada para a v1. - O corpus da tarefa (d) é uma verificação de separabilidade e do pipeline; uma AUC sobre ele é uma AUC sobre etiquetas derivadas de modelo.