David-Egea/Creditcard-fraud-detection
Viewer • Updated • 285k • 817 • 1
Encoders pré-treinados com JEPA em janelas de 32 transações do dataset ULB e cabeça de fine-tune supervisionado para detecção de fraude. Duas variantes, com o mesmo pipeline, mudando apenas o regularizador anti-colapso:
vicreg/: variância + covariância (VICReg), como no estudo de 29/10/2026.sigreg/: SIGReg (LeJEPA), que testa se as projeções do embedding seguem uma gaussiana padrão.encoder.pt: ctx (state dict do encoder), cfg (argumentos de treino) e meta.fraud_best.pt: net (encoder + cabeça de fraude), cfg e meta.| Item | Valor |
|---|---|
| Encoder | Transformer pré-norm, 4 camadas, dimensão 128, 4 cabeças |
| Preditor | 2 camadas |
| Janela | 32 transações consecutivas, positiva se tiver ao menos uma fraude |
| Pré-treino | 2000 passos, lr 3e-4, máscara 40%, EMA inicial 0,996 |
| Anti-colapso | VICReg: var 1,0 e cov 0,04. SIGReg: peso 0,05, 256 projeções |
| Fine-tune | 5 épocas, lr 1e-4 no encoder e 1e-3 na cabeça, BCE com peso de classe |
| Regularizador | AP | AUC | recall@1%FPR |
|---|---|---|---|
| VICReg | 0,801 | 0,913 | 0,779 |
| SIGReg (LeJEPA) | 0,806 | 0,913 | 0,779 |
A diferença de AP é 0,005. Com uma semente só, não é possível afirmar que um regularizador é melhor que o outro.
--eval_split val). A época escolhida foi a última nas duas variantes, então a seleção não mudou o resultado, mas os números são otimistas.Não redistribuímos o dataset. Use David-Egea/Creditcard-fraud-detection e respeite a licença original.
import torch
ck = torch.load("sigreg/fraud_best.pt", map_location="cpu", weights_only=False)
cfg, meta = ck["cfg"], ck["meta"]
# reconstruir o módulo com cfg["dim"], cfg["layers"], cfg["heads"] e carregar ck["net"]
O código de treino é privado. Para reprodução, consulte a Mangaba AI.
Mangaba AI · Estudo de novembro de 2026.