ML Atlas

Blog · Zagadki ·

Zagadka: detektor deepfake'ów z czułością 98%

W skrócie

Detektor wyłapuje 98% deepfake'ów i myli się na 3% prawdziwych nagrań. Zapalił się alarm: jaka jest szansa, że to fałszywka? Zagadka o częstości bazowej.

Platforma wideo wdraża detektor deepfake'ów. Z testów producenta wiadomo, że:

  • wśród wgrywanych nagrań 1 na 200 (0,5%) to deepfake,
  • detektor oznacza 98% deepfake'ów (czułość, czyli recall, wynosi 98%),
  • detektor błędnie oznacza 3% prawdziwych nagrań (odsetek fałszywych alarmów to 3%, swoistość 97%).

Na ekranie moderatora zapala się czerwona lampka: detektor oznaczył nagranie.

Pytanie 1. Jakie jest prawdopodobieństwo, że to naprawdę deepfake? Zanim zaczniesz liczyć, zapisz swój strzał.

Pytanie 2. Platforma przepuszcza oznaczone nagranie przez drugi, niezależny detektor o tych samych parametrach. On też je oznacza. Jak zmienia się prawdopodobieństwo?

Pytanie 3. Do jakiej wartości trzeba zbić odsetek fałszywych alarmów (przy tej samej czułości 98%), żeby pojedynczy alarm oznaczał deepfake'a z prawdopodobieństwem co najmniej 90%?

Pytanie dodatkowe. Jaką trafność (accuracy) ma ten detektor, a jaką „detektor” odpowiadający zawsze „prawdziwe”?

Wskazówka. Wyobraź sobie 100 000 wgranych nagrań i policz, ile z nich trafi do każdej z czterech szufladek: deepfake oznaczony, deepfake przepuszczony, prawdziwe oznaczone, prawdziwe przepuszczone. Interesuje cię tylko to, co zapala lampkę.

Rozwiązanie

Pokaż rozwiązanie

Pytanie 1: tylko około 14,1%.

Na 100 000 nagrań przypada 500 deepfake'ów i 99 500 prawdziwych.

  • Detektor oznacza 98% deepfake'ów: 0,98 × 500 = 490 trafień.
  • Detektor oznacza 3% prawdziwych: 0,03 × 99 500 = 2985 fałszywych alarmów.

Lampka zapala się 490 + 2985 = 3475 razy, a deepfake'iem jest 490 z tych nagrań:

P(deepfake | alarm) = 490 / 3475 = 98/695 ≈ 0,1410, czyli 14,1%.

To samo daje twierdzenie Bayesa: 0,005 × 0,98 / (0,005 × 0,98 + 0,995 × 0,03) = 0,0049 / 0,03475. Mimo „98% skuteczności” ponad 6 na 7 alarmów to fałszywe alarmy. Winna jest niska częstość bazowa: prawdziwych nagrań jest 199 razy więcej, więc nawet małe 3% z ogromnej grupy przytłacza 98% z małej. To klasyczny błąd pomijania częstości bazowej. W języku metryk: przy czułości 98% precyzja wynosi tylko 14,1%.

Pytanie 2: około 84,3%.

Wynik pierwszego detektora (14,1%) staje się nowym prawdopodobieństwem a priori. Jeśli detektory mylą się niezależnie od siebie przy danej klasie nagrania, to oba oznaczają deepfake'a z prawdopodobieństwem 0,98² = 0,9604, a prawdziwe nagranie z prawdopodobieństwem 0,03² = 0,0009:

P = 0,005 × 0,9604 / (0,005 × 0,9604 + 0,995 × 0,0009) = 0,004802 / 0,0056975 = 9604/11395 ≈ 0,8428.

Uwaga na warunek niezależności. Dwa detektory wytrenowane na podobnych danych zwykle mylą się na tych samych nagraniach. Wtedy drugi alarm wnosi mniej informacji, a prawdziwy wynik leży gdzieś między 14,1% a 84,3%.

Pytanie 3: fałszywe alarmy na poziomie około 0,055%.

Szukamy f takiego, że 0,0049 / (0,0049 + 0,995 × f) ≥ 0,9. Po przekształceniu: 0,995 × f ≤ 0,0049 / 9, czyli f ≤ 49/89 550 ≈ 0,000547.

Odsetek fałszywych alarmów trzeba więc zmniejszyć z 3% do około 0,055%, czyli mniej więcej 55-krotnie. Dla porównania: przy f = 0,1% precyzja wynosi dopiero około 83,1%. Przy rzadkiej klasie to swoistość, a nie czułość decyduje o tym, czy alarmom da się wierzyć.

Pytanie dodatkowe: paradoks dokładności.

Detektor ma trafność 0,005 × 0,98 + 0,995 × 0,97 = 0,97005, czyli około 97,0%. „Detektor”, który zawsze mówi „prawdziwe”, ma trafność 99,5%, bo myli się tylko na 0,5% nagrań. Bezużyteczna reguła wygrywa w accuracy z narzędziem, które wyłapuje 98% fałszywek. To paradoks dokładności: przy niezbalansowanych klasach trafność nie mówi, czy model robi to, czego potrzebujemy.

Wszystkie wartości policzono dokładnie na ułamkach (Python, fractions.Fraction): 98/695, 9604/11395, 49/89 550.

Tagi: bayes prawdopodobienstwo metryki

W Atlasie