Twierdzenie o uniwersalnej aproksymacji - sieci neuronowe

23

Opublikowałem to wcześniej na MSE, ale zasugerowano, że może być lepsze miejsce do zapytania.

Uniwersalne twierdzenie o aproksymacji stwierdza, że ​​„standardowa wielowarstwowa sieć przesyłowa z pojedynczą ukrytą warstwą, która zawiera skończoną liczbę ukrytych neuronów, jest uniwersalnym aproksymatorem wśród funkcji ciągłych na zwartych podzbiorach Rn, przy łagodnych założeniach dotyczących funkcji aktywacji”.

Rozumiem, co to oznacza, ale odpowiednie artykuły są zbyt daleko od mojego zrozumienia matematyki, aby zrozumieć, dlaczego to prawda lub jak ukryta warstwa przybliża funkcje nieliniowe.

Zatem, w kategoriach nieco bardziej zaawansowanych niż rachunek podstawowy i algebra liniowa, w jaki sposób sieć sprzężenia zwrotnego z jedną ukrytą warstwą przybliża funkcje nieliniowe? Odpowiedź niekoniecznie musi być całkowicie konkretna.

Matt Munson
źródło
zobacz również w optymalizacji globalnej istnieją gradientu techniki zejście do znalezienia globalnego ekstrema
vzn
Znalazłem wizualny dowód przez Michael Nielsen bardzo użyteczny
pana Tsjolder

Odpowiedzi:

26

Wynik Cybenko jest dość intuicyjny, co mam nadzieję przekazać poniżej; trudniejsze jest to, że dążył zarówno do ogólności, jak i do minimalnej liczby ukrytych warstw. Wynik Kołmogorowa (wspomniany przez vzn) faktycznie zapewnia silniejszą gwarancję, ale jest nieco mniej istotny dla uczenia maszynowego (w szczególności nie buduje standardowej sieci neuronowej, ponieważ węzły są niejednorodne); ten wynik z kolei jest zniechęcający, ponieważ na powierzchni są tylko 3 strony rejestrujące pewne ograniczenia i funkcje ciągłe, ale w rzeczywistości konstruuje zestaw fraktali. Chociaż wynik Cybenko jest niezwykły i bardzo interesujący ze względu na dokładne techniki, których używa, wyniki tego smaku są bardzo szeroko stosowane w uczeniu maszynowym (i mogę wskazać innym).

Oto ogólne podsumowanie, dlaczego wynik Cybenko powinien się utrzymać.

  • Funkcja ciągła w zwartym zestawie może być aproksymowana przez funkcję częściową stałą.
  • Częściowo stała funkcja może być przedstawiona w następujący sposób jako sieć neuronowa. Dla każdego regionu, w którym funkcja jest stała, użyj sieci neuronowej jako funkcji wskaźnika dla tego regionu. Następnie zbuduj ostatnią warstwę z pojedynczym węzłem, którego wejściowa kombinacja liniowa jest sumą wszystkich wskaźników, o wadze równej stałej wartości odpowiedniego regionu w pierwotnej funkcji stałej częściowej.

Odnosząc się do pierwszego punktu powyżej, można to uznać za stwierdzenie „ciągła funkcja w zwartym zestawie jest jednolicie ciągła”. Dla nas oznacza to, że możesz wziąć swoją funkcję ciągłą ponad , i jakiś błąd docelowy , a następnie możesz gridować w skali (kończąc z zgrubnie podklubami), dzięki czemu funkcja, która jest stała w każdym podmodule, znajduje się w funkcji docelowej. ϵ > 0 [ 0 , 1 ] d τ > 0 ( 1 / τ ) d ϵ[0,1]dϵ>0[0,1]dτ>0(1/τ)dϵ

Teraz sieć neuronowa nie może dokładnie reprezentować wskaźnika, ale możesz podejść bardzo blisko. Załóżmy, że „funkcja przenoszenia” jest sigmoidem. (Funkcja przenoszenia to funkcja ciągła, którą stosuje się do liniowej kombinacji danych wejściowych w celu uzyskania wartości węzła sieci neuronowej.) Następnie, przez zwiększenie ciężarów, wyprowadzasz coś bliskiego 0 lub bliskiego 1, aby uzyskać więcej danych wejściowych. Jest to zgodne z rozwojem Cybenko: zauważ, że potrzebuje on funkcji, które mają być równe 0 lub 1 w limicie: z definicji limitu otrzymujesz dokładnie to, co mówię, co oznacza, że ​​popychasz rzeczy arbitralnie blisko 0 lub 1.

(Zignorowałem funkcję przenoszenia w końcowej warstwie; jeśli jest tam i jest ciągła, wówczas możemy dopasować dowolne odwzorowanie do poprzez zastąpienie stałych wag czymś na odwrotnym obrazie tej stałej zgodnie z transferem funkcjonować.)[0,1]

Zauważ, że powyższe może wydawać się obejmować kilka warstw: powiedzmy 2, aby zbudować wskaźniki na kostkach, a następnie ostatnią warstwę wyjściową. Cybenko starał się o dwa punkty ogólności: minimalną liczbę ukrytych warstw i elastyczność w wyborze funkcji przenoszenia. Opisałem już, jak on wypracowuje elastyczność w funkcji transferu.

Aby uzyskać minimalną liczbę warstw, unika powyższej konstrukcji i zamiast tego używa analizy funkcjonalnej, aby rozwinąć sprzeczność. Oto szkic argumentu.

  • Ostatni węzeł oblicza liniową kombinację elementów warstwy poniżej i stosuje do niego funkcję przenoszenia. Ta liniowa kombinacja jest liniową kombinacją funkcji i jako taka sama w sobie jest funkcją, funkcją w ramach pewnej podprzestrzeni funkcji, rozpiętej przez możliwe węzły w ukrytej warstwie.

  • Podprzestrzeń funkcji jest jak zwykła podprzestrzeń o skończonych wymiarach, z tą główną różnicą, że potencjalnie nie jest to zamknięty zbiór; dlatego argumenty cybenko zamykają tę podprzestrzeń. Próbujemy udowodnić, że to zamknięcie zawiera wszystkie funkcje ciągłe; oznacza to, że jesteśmy arbitralnie blisko wszystkich funkcji ciągłych.

  • Gdyby przestrzeń funkcji była prosta (przestrzeń Hilberta), moglibyśmy argumentować w następujący sposób. Wybierz docelową funkcję ciągłą, która nie powinna leżeć w podprzestrzeni, i rzutuj ją na ortogonalne dopełnienie podprzestrzeni. Ta reszta musi być niezerowa. Ale ponieważ nasza podprzestrzeń może przedstawiać takie rzeczy jak te małe kostki powyżej, możemy znaleźć jakiś obszar tej resztki, dopasować do niej małą kostkę (jak wyżej), a tym samym zbliżyć się do naszej funkcji celu. Jest to sprzeczność, ponieważ projekcje wybierają minimalne elementy. (Zauważ, że zostawiam coś tutaj: argument Cybenko nie buduje żadnych małych kostek, zajmuje się tym również ogólnie; tutaj używa formy twierdzenia o reprezentacji Riesza i właściwości funkcji przenoszenia (jeśli pamiętam poprawnie, dla tego kroku istnieje osobny lemat,

  • Nie znajdujemy się w przestrzeni Hilberta, ale możemy użyć twierdzenia Hahna-Banacha, aby zastąpić powyższy krok projekcji (zauważ, że Hahn-Banach używa aksjomatu wyboru).

Teraz chciałbym powiedzieć kilka rzeczy o wyniku Kołmogorowa. Chociaż wynik ten najwyraźniej nie potrzebuje tego rodzaju tła Cybenko, osobiście uważam, że jest on znacznie bardziej onieśmielający.

Oto dlaczego. Wynik Cybenko jest gwarancją przybliżenia : nie oznacza, że ​​możemy dokładnie reprezentować cokolwiek. Z drugiej strony wynik Kołmogorowa zapewnia równość . Co śmieszniejsze, mówi rozmiar sieci: potrzebujesz tylko węzłów. Aby osiągnąć to wzmocnienie, istnieje oczywiście pewien haczyk, o którym wspomniałem powyżej: sieć jest heterogeniczna, co oznacza, że ​​wszystkie funkcje przenoszenia nie są takie same.O(d2)

Okej, więc z tym wszystkim, jak to możliwe?

Wróćmy do naszych kostek powyżej. Zauważ, że musieliśmy piec z precyzją: na każde musimy wracać i wybierać bardziej wyrafinowane . Ponieważ pracujemy z (skończonymi) liniowymi kombinacjami wskaźników, nigdy dokładnie nie reprezentujemy niczego. (sytuacja pogorszy się tylko wtedy, gdy uwzględnisz przybliżone działanie sigmoidów).τ > 0ϵ>0τ>0

Więc jakie jest rozwiązanie? A może poradzimy sobie ze wszystkimi skalami jednocześnie? Nie zmyślam tego: dowodem Kołmogorowa jest skuteczne konstruowanie ukrytej warstwy jako zestawu fraktali. Innymi słowy, są to zasadniczo krzywe wypełniające przestrzeń, które odwzorowują na ; w ten sposób, mimo że mamy kombinację funkcji jednowymiarowych, możemy dopasować dowolną funkcję wielowymiarową. W rzeczywistości możesz heurystycznie uzasadnić, że jest „poprawny” za pomocą absurdalnego argumentu liczenia: piszemy funkcję ciągłą od do za pomocą funkcji ciągłych jednowymiarowych i dlatego, aby uchwycić wszystkie interakcje między współrzędnymi, potrzebujemy[ 0 , 1 ] d O ( d 2 ) R d R O ( d 2 )[0,1][0,1]dO(d2)RdRO(d2) Funkcje...

Zauważ, że wynik Cybenko, ze względu na użycie tylko jednego rodzaju funkcji przesyłania, jest bardziej odpowiedni dla uczenia maszynowego. Twierdzenia tego typu są bardzo powszechne w uczeniu maszynowym (vzn zasugerował to w swojej odpowiedzi, jednak odniósł się do wyniku Kołmogorowa, który jest mniej przydatny ze względu na niestandardowe funkcje przenoszenia; jest to osłabione w niektórych bardziej fantazyjnych wersjach wyniku Kołmogorowa (wytworzonych przez inni autorzy), ale nadal dotyczą fraktali i co najmniej dwóch funkcji przenoszenia).

Mam kilka slajdów na te tematy, które mógłbym opublikować, jeśli jesteś zainteresowany (mam nadzieję, że mniej chaotyczny niż powyższy, i mam kilka zdjęć; napisałem je, zanim jeszcze opanowałem Hahna-Banacha). Myślę, że oba dowody są bardzo, bardzo ładne. (Mam też kolejną odpowiedź na te tematy, ale napisałem ją, zanim omieszałem wynik Kołmogorowa).

matus
źródło
1
ABϕfA:ϕ(f)1gB:ϕ(g)>1
Sasho Nikolov
3
SfSLL(g)=0gSL ( f )L(f)=fL(f)
matus
3
@SashoNikolov, warunek Cybenko jest taki, że biorąc pod uwagę każdą podpisaną miarę, która nie jest dokładnie zerowa, istnieje pewna funkcja afiniczna, tak że integracja funkcji przeniesienia złożonej z tej funkcji afinicznej w stosunku do tej miary nie jest równa zero. Następnie musi udowodnić, że lemat, który uogólniał sigmoidy (jak podałem powyżej: ograniczenia do 0 i 1 po lewej i prawej stronie) pasuje do rachunku. (ciąg dalszy w następnym komentarzu).
matus
2
@SashoNikolov. Powyżej powiedziałem „plopując sześcian wzdłuż resztek”. Ułatwiłoby to nieco naszą pracę, ponieważ podpisana miara nie jest dokładnie zerowa, po prostu wybraliśmy kawałek i umieściliśmy tam wskaźnik. W jego przypadku musi trochę popracować, ale podobnie sprowadza się to do poruszania się po sigmoidzie z funkcją afiniczną, aby znalazł jakiś łatwy region, uzyskując w ten sposób niezerową całkę, co zaprzecza Hahn-Banachowi (który jest zerowy nad naszą podprzestrzenią) ; w sensie Hilberta zmniejszyliśmy naszą resztkę, sprzeczność.
matus
1
Wow, to bardzo miła odpowiedź. Oczywiście mam kilka pytań, jeśli nie masz nic przeciwko, aby na nie odpowiedzieć. Wynik Cybenko (jak mówisz) wydaje się najbardziej przydatny dla aplikacji, ale trochę się zagubiłem, zajmując się podprzestrzenią funkcji. Jak rzutujemy dowolną funkcję ciągłą na dopełnienie ortogonalne podprzestrzeni kombinacji liniowych możliwych węzłów. W tym sensie, jak konceptualizujemy ortogonalny komplement tej podprzestrzeni? Czy funkcje bliżej przestrzeni bliżej się zbliżają? (Nieprzerwany).
Matt Munson
3

Istnieje zaawansowany wynik, klucz do uczenia maszynowego, znany jako twierdzenie Kołmogorowa [1]; Nigdy nie widziałem intuicyjnego szkicu, dlaczego to działa. Może to mieć związek z różnymi kulturami, które do tego podchodzą. Stosowany uczący się tłum uważa twierdzenie Kołmogorowa za twierdzenie o istnieniu, które jedynie wskazuje, że NN mogą istnieć, więc przynajmniej struktura nie jest nadmiernie ograniczająca, ale twierdzenie to nie gwarantuje znalezienia tych NN. Matematycy nie przejmują się niskopoziomowymi zastosowaniami twierdzenia.

Twierdzenie to było również historycznie używane do wzywania / obrony nieodłącznego wyrafinowania wielowarstwowych NN w celu odparcia krytyki ze strony Perceptrons (Minsky / Papert), że istnieją podstawowe funkcje [tj. Nieliniowe], których nie mogli się nauczyć.

Informatycy teoretyczni wolą nie traktować NN jako „przybliżeń” , ponieważ termin ten ma specjalne / inne znaczenie. Prawdopodobnie istnieje pewna zgrubna analogia z fragmentaryczną interpolacją liniową, ale znowu nie widziałem, żeby została wyjaśniona.

[1] Kolmogorov, AN (1957). O reprezentacji funkcji ciągłych wielu zmiennych przez nałożenie funkcji ciągłych jednej zmiennej i dodanie. Doklady Akademii Nauk SSSR, 144, 679-681; American Mathematical Society Translation, 28, 55–59 [1963]

[2] 2.3 Możliwości aproksymacyjne sieci neuronowych typu feedforward dla funkcji ciągłych

[3] Twierdzenie Kołmogorowa i wielowarstwowe sieci neuronowe Kurkova

vzn
źródło
„ten zaawansowany wynik [...] nie widział intuicyjnego szkicu, dlaczego to działa”. Czy taki szkic byłby znaczącym przedsięwzięciem dla kogoś w zaawansowanym tłumie matematyki? Czy zaawansowani ludzie matematyki nawet intuicyjnie rozumieją, dlaczego to działa? Wydaje się, że intuicyjne zrozumienie tego twierdzenia jest czymś, czego tłum uczący się powinien zastosować, aby opracować lepsze topologie i algorytmy uczenia dla ANN.
Matt Munson
7
Edytowane pod kątem gramatyki, pisowni, interpunkcji i wielkich liter.
Jeffε