Klick: verstecken · zwei Becher nacheinander anklicken oder ziehen: tauschen · M: Ton
Modellkarte
- Architektur: CNN (Bild + Differenz zum vorigen Bild; 3 Faltungsschichten) → 32 Merkmale → GRU (32 versteckt) → Wahrscheinlichkeit je Becherposition
- Parameter: 27.044
- Eingabe: Nur Pixel: ein 64×32‑Graustufenbild einer festen „Katzenkamera“ über dem Tisch, 30 Bilder pro Sekunde Spielzeit (Bilder, die dem vorigen gleichen, werden übersprungen). Spielzustand, Tausch‑Ereignisse und Becherpositionen bekommt das Modell nie. Sein Gedächtnis wird beim Verstecken zurückgesetzt (ab dann schaut die Katze zu).
- Trainingsdaten: 2.003 zufällige Runden, 561.703 Bilder, in Headless‑Chrome von derselben three.js‑Szene und derselben Katzenkamera gerendert. Tempo, Tauschanzahl und Licht zufällig.
- Training: PyTorch (CPU), 40 Epochen ≈ 94 min × 4 CPU‑Threads; Kreuzentropie pro Bild
- Genauigkeit (zurückgehaltene Runden): 100,0 % (240/240) · Raten: 33,3 %
- Ehrlichkeitstest: leere/konstante Kamera → Wahrscheinlichkeiten bleiben bei etwa 33 % (29,5 %–36,1 %) · gespiegelte Kamera → gespiegelte Antwort (240/240 Runden) · Spielzeug nach dem Verstecken aus jedem Bild gelöscht → trotzdem richtig (135/135): sie verfolgt die Becher, nicht das Spielzeug
- Größe: 111 KB ONNX
- Grenzen: In Tests ließ sie sich selbst bei der schnellsten Einstellung (164 ms pro Tausch) nicht täuschen: 100,0 % (180/180). Sie funktioniert aber nur in dieser Szene mit dieser Kamera; andere Becher, Licht oder Winkel machen sie blind. Die Gewichte veröffentliche ich vielleicht später auf Hugging Face.
- GitHub: hocestnonsatis/coinflip-ai
Genauigkeit: Tausche × Tempo (Tipp beim letzten Bild)
| Tausche | langsam 752 ms | mittel 526 ms | schnell 367 ms | sehr schnell 257 ms | Blitz 164 ms |
|---|
| 0 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
| 1 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
| 2 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
| 3 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
| 5 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
| 8 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
| 12 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
| 20 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
| 30 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
Jede Zelle = 20 zurückgehaltene Testrunden (nie trainiert), ein Druck auf Mischen ×N. Raten ergibt 33,3 %.
🎭 Gegen Schummeln (Modell nicht neu trainiert)
- Auf einem leeren Becher · vorher: 60/60 richtig · 0× auf Sticker reingefallen · mittlere Sicherheit 100 %
- Auf einem leeren Becher · nachher: 60/60 richtig · 0× auf Sticker reingefallen · mittlere Sicherheit 100 %
- Auf beiden leeren · vorher: 60/60 richtig · 0× auf Sticker reingefallen · mittlere Sicherheit 100 %
- Auf allen drei · vorher: 60/60 richtig · 0× auf Sticker reingefallen · mittlere Sicherheit 100 %
- Auf allen drei · nachher: 60/60 richtig · 0× auf Sticker reingefallen · mittlere Sicherheit 100 %
- Auf dem Becher mit Spielzeug · vorher: 60/60 richtig · 0× auf Sticker reingefallen · mittlere Sicherheit 100 %
- Auf dem Becher mit Spielzeug · nachher: 60/60 richtig · 0× auf Sticker reingefallen · mittlere Sicherheit 100 %
Jede Zeile: 60 Runden, die im Training nie vorkamen (0–20 Tausche, 3 Tempi). „vorher“ = Sticker klebte schon beim Verstecken; „nachher“ = danach aufgeklebt.
😴 Müde Katze (Modell nicht neu trainiert)
Genauigkeit: B/s × Tempo (1–30 Tausche)
| B/s | langsam 752 ms | mittel 526 ms | schnell 367 ms | sehr schnell 257 ms | Blitz 164 ms |
|---|
| 30 | 100 % | 100 % | 100 % | 100 % | 100 % |
|---|
| 15 | 100 % | 100 % | 100 % | 77 % | 38 % |
|---|
| 10 | 100 % | 100 % | 59 % | 42 % | 35 % |
|---|
| 5 | 61 % | 37 % | 33 % | 33 % | 41 % |
|---|
Genauigkeit: B/s × Tausche (alle 5 Tempi) · %
| B/s | 0 | 1 | 2 | 3 | 5 | 8 | 12 | 20 | 30 |
|---|
| 30 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 |
|---|
| 15 | 100 | 91 | 89 | 87 | 84 | 84 | 81 | 73 | 75 |
|---|
| 10 | 100 | 76 | 77 | 68 | 68 | 65 | 59 | 60 | 65 |
|---|
| 5 | 100 | 48 | 47 | 52 | 34 | 33 | 41 | 33 | 38 |
|---|
Dieselben 900 zurückgehaltenen Testrunden; 30 B/s = die normale Katze. Bildrate in Spielzeit; bei wenigen Bildern fällt die Mitte schneller Tausche zwischen zwei Bilder.