Czy sieć neuronowa może dostarczyć więcej niż „tak” lub „nie” odpowiedzi?

11

Każda przykładowa sieć neuronowa do rozpoznawania obrazów, o której czytałem, wytwarza prostą odpowiedź „tak” lub „nie”. Jeden węzeł wyjściowy odpowiada „Tak, to jest ludzka twarz”, a drugi odpowiada „Nie, to nie jest ludzka twarz”.

Rozumiem, że jest to prawdopodobne ze względu na prostotę wyjaśnienia, ale zastanawiam się, w jaki sposób można zaprogramować taką sieć neuronową, aby uzyskać bardziej konkretny wynik. Załóżmy na przykład, że klasyfikowałem zwierzęta. Zamiast słowa „Zwierzę” lub „Nie zwierzę”, chciałbym uzyskać odpowiedzi takie jak „Pies”, „Ryba”, „Ptak”, „Wąż” itp., A jeden końcowy węzeł wyjściowy to „Nie zwierzę / nie rozpoznaj tego ”.

Jestem pewien, że to musi być możliwe, ale mam problem ze zrozumieniem, w jaki sposób. Wydaje się, że jest to spowodowane algorytmem szkoleniowym wstecznego propagowania błędu, gdy trenujesz jeden węzeł wyjściowy (tj. „To jest pies”) i zmieniane są wagi neuronów, a następnie idealny stan dla innego węzła wyjściowego, który poprzednio wyszkoleni (tzn. „To jest ptak”) zaczną się odchylać i odwrotnie. Zatem przeszkolenie sieci w rozpoznawaniu jednej kategorii spowodowałoby sabotaż każdego szkolenia przeprowadzonego dla innej kategorii, ograniczając nas w ten sposób do prostego projektu „Tak” lub „Nie”.

Czy to uniemożliwia takie rozpoznawanie? A może źle rozumiem algorytm? Jedyne dwie rzeczy, o których mogę myśleć, to:

  • Albo możemy wyszkolić jedną sieć neuronową dla każdej rzeczy, którą chcemy sklasyfikować, i w jakiś sposób wykorzystać je do zbudowania większej super-sieci (na przykład sieć dla „psa”, sieć dla „ptaka” itp. dodać razem, aby utworzyć super-sieć dla „zwierząt”); lub,

  • Stwórz absurdalnie skomplikowaną metodologię treningu, która wymagałaby niewiarygodnie zaawansowanej matematyki i w jakiś sposób wytworzyłaby idealny stan masy neuronu dla wszystkich możliwych wyników (innymi słowy insert math magic here).

(Uwaga dodatkowa 1: W szczególności patrzę na wielowarstwowe perceptrony jako rodzaj sieci neuronowej).

(Uwaga dodatkowa 2: Dla pierwszego wypunktowanego „możliwego rozwiązania” posiadanie każdej konkretnej sieci neuronowej i iterowanie przez nią aż do otrzymania odpowiedzi „Tak” nie jest wystarczająco dobre. Wiem, że można to zrobić dość łatwo, ale jest to proste funkcjonalne programowanie, a nie uczenie maszynowe. Chcę wiedzieć, czy możliwe jest posiadanie jednej sieci neuronowej do zasilania informacjami i otrzymywania odpowiedniej odpowiedzi).

asteri
źródło

Odpowiedzi:

15

Aby odpowiedzieć tylko na swój tytuł, tak. Sieci neuronowe mogą dawać odpowiedzi inne niż logiczne. Na przykład sieci neuronowe zostały wykorzystane do przewidywania wartości na giełdzie, co jest odpowiedzią numeryczną, a zatem więcej niż tylko tak / nie. Sieci neuronowe są również używane do rozpoznawania pisma ręcznego, w którym wyjściem może być jeden z całego zakresu znaków - cały alfabet, cyfry i znaki interpunkcyjne.

Aby bardziej skupić się na swoim przykładzie - rozpoznawaniu zwierząt - powiedziałbym, że jest to możliwe. Jest to głównie rozszerzenie przykładu rozpoznawania pisma ręcznego; rozpoznajesz cechy kształtu i porównujesz je z kształtami „idealnymi”, aby zobaczyć, które pasują. Zagadnienia są raczej techniczne niż teoretyczne. Pismo odręczne, gdy jest uruchamiane przez oprogramowanie rozpoznające, jest zwykle mapowane do zestawu linii i krzywych - przyjemne i proste. Twarze zwierząt są trudniejsze do rozpoznania, więc potrzebujesz logiki przetwarzania obrazu, aby wydobyć takie cechy, jak oczy, nos, usta, szorstki kontur czaszki itp. Mimo to zapytałeś tylko, czy to możliwe, a nie jak, więc odpowiedź brzmi tak.

Najlepiej jest spojrzeć na takie rzeczy, jak teoria rezonansu adaptacyjnego. Ogólna zasada jest taka, że ​​dane sensoryczne (w tym przypadku dane dotyczące względnego rozmiaru, kształtu i odstępów między różnymi rysami twarzy) są porównywane z „prototypem” lub szablonem, który określa tę klasę rzeczy. Jeżeli różnica między czujnikiem i zapamiętanym szablonem jest poniżej pewnego progu (zdefiniowanego przez „parametr czujności”), zakłada się, że obserwowany obiekt należy do grupy reprezentowanej przez szablon; jeśli nie można znaleźć dopasowania, system deklaruje, że jest to typ wcześniej niewidziany. Zaletą tego rodzaju sieci jest to, że kiedy rozpozna, że ​​obiekt jest, powiedzmy, koniem, może dowiedzieć się więcej o rozpoznawaniu koni, aby móc odróżnić, powiedzmy,

EDYTOWAĆ:

(W interesie pełnego ujawnienia: wciąż badam to sam w ramach projektu, więc moja wiedza jest wciąż niepełna i miejscami trochę niepewna.)

w jaki sposób łączy się to z wagami ustawiania propagacji wstecznej dla jednego węzła wyjściowego, niszcząc wagi dla innego, wcześniej przeszkolonego węzła?

Z tego, co przeczytałem do tej pory, paradygmat ART jest nieco inny; jest podzielony na dwie sekcje - jedną, która uczy się danych wejściowych, a drugą, która uczy się danych wyjściowych dla nich. Oznacza to, że gdy natrafi na zestaw wejściowy, który nie pasuje, niezaangażowany neuron jest aktywowany i dostosowywany do wejścia, dzięki czemu neuron wyzwoli dopasowanie następnym razem. Neurony w tej warstwie służą wyłącznie do rozpoznania. Gdy ta warstwa znajdzie dopasowanie, dane wejściowe są przekazywane do warstwy poniżej, która oblicza odpowiedź. W twojej sytuacji ta warstwa byłaby prawdopodobnie bardzo prosta. System, na który patrzę, uczy się prowadzić. To właściwie dwa rodzaje uczenia się; jedna uczy się jeździć w różnych sytuacjach, a druga uczy się rozpoznawać sytuację. Na przykład,

Pomysł uczenia się nowych danych wejściowych bez rujnowania wcześniej poznanych zachowań jest znany jako dylemat stabilności / plastyczności. Sieć musi być wystarczająco stabilna , aby zachować wyuczone zachowanie, ale wystarczająco plastyczna , aby można było nauczyć jej nowych rzeczy, gdy zmieniają się okoliczności. Właśnie to mają rozwiązać sieci ART.

anaksymander
źródło
Dzięki za wspaniałą odpowiedź! Jak więc ma się to do powiązania z wagami ustawiania propagacji wstecznej dla jednego węzła wyjściowego, niszcząc wagi dla innego, wcześniej wyszkolonego węzła? Czy też myślę o tym w niewłaściwy sposób?
asteri
@Jeff Dodałem trochę do mojej odpowiedzi. Obawiam się, że nie jest to zbyt szczegółowe - sam wciąż się tego uczę. Twoje pytanie dotyczy jednak dylematu stabilności / plastyczności, polegającego na tym, że chcesz trenować sieć rozpoznawania czegoś nowego, nie zapominając o tym, jak rozpoznać coś, co już zna, a teoria rezonansu adaptacyjnego ma właśnie na celu rozwiązanie tego problemu, więc prawdopodobnie warto się temu przyjrzeć.
anaximander
3

Odpowiedź Anaximandera jest całkiem dobra. Pomyślałem, że skomentuję tę część twojego pytania:

Wydaje się, że jest to spowodowane algorytmem szkoleniowym wstecznego propagowania błędu, gdy trenujesz jeden węzeł wyjściowy (tj. „To jest pies”) i zmieniane są wagi neuronów, a następnie idealny stan dla innego węzła wyjściowego, który poprzednio wyszkoleni (tzn. „To jest ptak”) zaczną się odchylać i odwrotnie. Zatem przeszkolenie sieci w rozpoznawaniu jednej kategorii spowodowałoby sabotaż każdego szkolenia przeprowadzonego dla innej kategorii, ograniczając nas w ten sposób do prostego projektu „Tak” lub „Nie”.

Cóż, myślę, że twoje założenie jest tutaj błędne; jeśli dobrze rozumiem, masz NN z jednym wyjściem na kategorię, którą próbujesz sklasyfikować. Idealnie byłoby, gdyby działały one prawie niezależnie, aby klasyfikacja „pies” i „ptak” nie strzelała jednocześnie. Tak naprawdę podczas treningu to, co się wydarzy, to to, że kiedy trenujesz NN z wynikiem „psim”, propagacja wsteczna będzie próbowała upewnić się, że „ptak” i inne neurony wyjściowe nie wytwarzają fałszywych wyników pozytywnych. Więc teoretycznie będzie to działać dobrze, w przeciwieństwie do twojego komentarza; wzmocnienie negatywnego wyniku dla „ptaka” jest prawidłowe.

Twoim problemem będzie jednak skalowalność tego podejścia. W miarę dodawania kolejnych kategorii do sieci szkolenie stanie się bardziej złożone przynajmniej w sposób liniowy (ale prawdopodobnie znacznie gorszy). Z tego powodu wiele osób stosuje podejście polegające na szkoleniu poszczególnych NN dla każdej kategorii; dzięki temu wszystko jest proste i stosunkowo skalowalne. Meta-poziom ich łączenia należy do Ciebie. Możesz po prostu przejść przez wszystkie NN i zobaczyć, które produkują dodatnie wyniki, możesz stworzyć heurystyczne NN na średnim poziomie, które próbują zawęzić dla ciebie rodzaj zwierzęcia, lub możesz nawet mieć gigantyczną NN, która łączy poszczególne NN jako neurony . Zasadniczo próbuję powiedzieć, że posiadasz wcześniejszą wiedzę na temat struktury problemu - poszczególne klasyfikacje najprawdopodobniej różnią się od siebie;

EDYCJA: Aby odpowiedzieć na pytanie tytułowe, NN mogą oczywiście dostarczyć więcej niż tak / nie odpowiedzi. W modelach „standardowych” każdy neuron wyjściowy zwykle odpala tak / nie (chociaż zachowanie to można by zmienić, gdybyś miał taką skłonność), reprezentując jeden bit informacji; ale tak jak w przypadku komputera, bity można łączyć, aby uzyskać szereg dyskretnych wartości, które można interpretować w dowolny sposób. Dość wizualnym przykładem danych niebinarnych jest mapa samoorganizująca się , która zazwyczaj ma wyjście 2D.

Daniel B.
źródło
Dziękuję za odpowiedź. Wiedziałem, że mogę mieć tyle węzłów wyjściowych, ile chciałem, ale martwiłem się, że ze względu na naturę algorytmu błędu wstecznego (korygowanie wszystkich wag w celu uzyskania pożądanego wyniku), uczenie się jednej klasyfikacji oduczę się od drugiej.
asteri
1

Krótka i niezbyt sztywna odpowiedź: tak, każdy NN może dostarczyć więcej informacji niż tylko yes, lub no. Wynika to z progu. Jeśli wagi są wyższe niż pewien próg, odpowiedź jest jedną z klas klasyfikacyjnych, jeśli jest niższa, odpowiedzią jest druga klasa klasyfikacyjna. Gruntownie:

    0..threshold 
    threshold..1

Wyjście neuronu jest w przedziale [0..1] (lub [-1,1] zależy) i nie chcesz uzyskać odpowiedzi, czy wyjście jest niższe czy wyższe niż próg, ale wyjście (wyjście można łatwo przekonwertować na interwał 0..1, co oznacza%)


źródło