Dlaczego krzyżowa entropia jest dobrą funkcją straty dla wstępnego uczenia języka? uwaga: to wszystko jest znane, nawiasem mówiąc; co ciekawe, mimo że istnieje wiele punktów widzenia i intuicji na temat "dlaczego x-ent", wszystkie można wyprowadzić z jednego punktu wyjścia. Oto prosta derivacja z pierwszych zasad, która nie zakłada nic o rozkładzie danych. Pochodzi z bardzo rozsądnego wymogu operacyjnego :) "Chcę, aby mój model brzmiał inteligentnie" ale nie możemy tego zmierzyć, więc pytamy "Chcę, aby mój model brzmiał jak człowiek" Chociaż mamy dostęp do wszystkich tekstów kiedykolwiek napisanych, nie możemy tego również dokładnie zmierzyć, więc zamiast tego pytamy "Chcę, aby mój model był jak najbardziej prawdopodobny do wygenerowania jednego z tekstów kiedykolwiek napisanych" Lub bardziej dosadnie: "Chcę, aby mój model zapamiętał dane treningowe." Rozważmy ten eksperyment myślowy: Mając zbiór danych S wszystkich tekstów kiedykolwiek napisanych przez ludzi, przeprowadzamy niezależne próby dla każdego "tekstu" w S: Próbka: "próbkowy tekst" z naszego modelu Pr( ;W) Sprawdź: czy "próbkowy tekst" dokładnie pasuje do oryginału? Uwaga: nie warunkujemy niczym! po prostu pytamy, z całego materiału, który model mógłby wygenerować, czy otrzymaliśmy "tekst". Zdefiniuj sukces jako zdarzenie E = "wszystkie kontrole na próbki się powiodły" Prawdopodobieństwo E to iloczyn prawdopodobieństw przypisanych do prawidłowej prawdy przez twój model W Pr(E) = Π_{tekst w S} Pr(tekst; W) Maksymalizowanie log Pr(E) względem W daje ci cel krzyżowej entropii. Jak optymalizujesz to za pomocą SGD? próbkowy tekst z korpusu oblicz grad log Pr(token|prefix) dla każdego prefiksu tekstu aktualizuj model Co jest eleganckie, to to, że to samo jednocześnie: 1) Minimalizuje długość opisu danych pod modelem P( ;W) (widok kompresji) 2) Minimalizuje rozbieżność KL do prawdziwego rozkładu—jeśli taki istnieje (choć nigdy nie zakładaliśmy, że istnieje) 3) Wdraża estymację największej wiarygodności Derivacja jest prosta i dobrze znana, ale podkreśla coś ważnego: krzyżowa entropia naturalnie wyłania się z chęci dokładnej reprodukcji danych treningowych. P.S. mogłeś zamiast tego zapytać o maksymalizację Pr(tekst wygenerowany przez model jest w prawdzie) co ciekawe, optymalizacja tego może prowadzić do zapadnięcia się trybu, ponieważ optymalne rozwiązanie polega na zawsze przewidywaniu jednego tekstu z korpusu. Jednak gradienty znów wyglądają jak x-entropia, ale z mnożnikiem tzn. Pr(tekst;W) grad log Pr(tekst;W)
61,42K