Kod czynnikowy

Większość zestawów danych świata rzeczywistego składa się z wektorów danych, których poszczególne składniki nie są statystycznie niezależne . Innymi słowy, znajomość wartości elementu dostarczy informacji o wartości elementów w wektorze danych. Kiedy to nastąpi, może być pożądane utworzenie kodu czynnikowego danych, tj. nowej reprezentacji każdego wektora danych o wartościach wektorowych, tak aby był on jednoznacznie zakodowany przez wynikowy wektor kodu (kodowanie bezstratne), ale kod składniki są statystycznie niezależne.

Późniejsze uczenie nadzorowane zwykle działa znacznie lepiej, gdy surowe dane wejściowe są najpierw tłumaczone na taki kod czynnikowy. Załóżmy na przykład, że ostatecznym celem jest sklasyfikowanie obrazów z wysoce nadmiarowymi pikselami. Naiwny klasyfikator Bayesa przyjmie, że piksele są statystycznie niezależnymi zmiennymi losowymi i dlatego nie da dobrych wyników. Jeśli jednak dane zostaną najpierw zakodowane w sposób czynnikowy, wówczas naiwny klasyfikator Bayesa osiągnie optymalną wydajność (porównaj Schmidhuber i in. 1996).

Aby stworzyć kody silniowe, Horace Barlow i współpracownicy zasugerowali zminimalizowanie sumy entropii bitowych składowych kodu kodów binarnych (1989). Jürgen Schmidhuber (1992) ponownie sformułował problem w kategoriach predyktorów i detektorów cech binarnych , z których każdy otrzymuje surowe dane jako dane wejściowe. Dla każdego detektora istnieje predyktor, który widzi inne detektory i uczy się przewidywać wyjście własnego detektora w odpowiedzi na różne wektory wejściowe lub obrazy. Ale każdy wykrywacz wykorzystuje uczenia maszynowego , aby był jak najbardziej nieprzewidywalny. Globalne optimum tej funkcji celu odpowiada kodowi czynnikowemu reprezentowanemu w sposób rozłożony na wyjściach detektorów cech.

Painsky, Rosset i Feder (2016, 2017) dalej badali ten problem w kontekście niezależnej analizy składowej na skończonych rozmiarach alfabetu. Za pomocą szeregu twierdzeń pokazują, że problem kodowania czynnikowego można dokładnie rozwiązać za pomocą algorytmu gałęzi i powiązanego drzewa wyszukiwania lub ściśle przybliżyć za pomocą szeregu problemów liniowych. Ponadto wprowadzają prostą transformację (mianowicie permutację rzędów), która zapewnia zachłanne, ale bardzo efektywne przybliżenie rozwiązania optymalnego. W praktyce pokazują one, że przy starannej implementacji korzystne właściwości permutacji rzędu można osiągnąć przy asymptotycznie optymalnej złożoności obliczeniowej. Co ważne, dają teoretyczne gwarancje, pokazując, że chociaż nie każdy wektor losowy można skutecznie rozłożyć na niezależne składowe, to większość wektorów rozkłada się bardzo dobrze (czyli przy niewielkim koszcie stałym) wraz ze wzrostem wymiaru. Ponadto demonstrują użycie kodów czynnikowych do kompresji danych w wielu konfiguracjach (2017).

Zobacz też

  • Horace Barlow , TP Kaushal i GJ Mitchison. Znajdowanie kodów minimalnej entropii. Obliczenia neuronowe, 1:412-423, 1989.
  • Jürgena Schmidhubera . Uczenie się kodów czynnikowych poprzez minimalizację przewidywalności. Obliczenia neuronowe, 4(6):863-879, 1992
  • J. Schmidhuber i M. Eldracher i B. Foltin. Minimalizacja półliniowej przewidywalności daje dobrze znane detektory cech. Obliczenia neuronowe, 8(4):773-786, 1996
  • A. Painsky, S. Rosset i M. Feder. Uogólniona analiza składowych niezależnych nad skończonymi alfabetami. IEEE Transactions on Information Theory, 62(2):1038-1053, 2016
  • A. Painsky, S. Rosset i M. Feder. Kodowanie źródłowe dużego alfabetu przy użyciu niezależnej analizy komponentów. IEEE Transactions on Information Theory, 63(10):6514 - 6529, 2017