Kiedy należy używać algorytmów genetycznych, a nie sieci neuronowych? [Zamknięte]
139
Czy istnieje praktyczna reguła (lub zestaw przykładów), aby określić, kiedy należy używać algorytmów genetycznych, a nie sieci neuronowych (i odwrotnie) do rozwiązania problemu?
Wiem, że są przypadki, w których można mieszać obie metody, ale szukam porównania między nimi na wysokim poziomie.
Warto zwrócić uwagę, że istnieją dwa typy sieci neuronowych - nadzorowane i nienadzorowane. Nadzorowane otrzymują dane treningowe od człowieka, nienadzorowane informacje zwrotne do siebie i pod tym względem bardziej przypominają GA.
Chris S,
3
Nie sądzę, że to w ogóle „lista-y”. Odpowiedzi porównują dwie metody i wyjaśniają, kiedy należy używać jednej, a kiedy drugiej.
Neil N,
Krótka odpowiedź: użyj GA, gdy funkcja modelowania jest nieciągła / dyskretna lub gdy zbiór danych jest astronomicznie wielowymiarowy. Do końca użyj sieci neuronowych lub GA (lub innego modelu), w zależności od tego, co daje najlepsze wyniki. Aby uzyskać więcej informacji, zobacz moją odpowiedź tutaj: stackoverflow.com/a/49684833/1121352
gaborous
Odpowiedzi:
130
Z Wikipedii:
Algorytm genetyczny (GA) jest techniką wyszukiwania do wyliczenia się znaleźć dokładnie lub przybliżone rozwiązania optymalizacji i wyszukiwania problemów.
i:
Sieci neuronowe to nieliniowe narzędzia do statystycznego modelowania danych. Można ich używać do modelowania złożonych relacji między danymi wejściowymi i wyjściowymi lub do znajdowania wzorców w danych.
Jeśli masz problem, w którym możesz oszacować wartość rozwiązania, algorytm genetyczny może przeprowadzić ukierunkowane przeszukiwanie przestrzeni rozwiązań. (Np. Znajdź najkrótszą trasę między dwoma punktami)
Gdy masz wiele elementów w różnych klasach, sieć neuronowa może „nauczyć się” klasyfikować elementy, których wcześniej nie „widziała”. (Np. Rozpoznawanie twarzy, rozpoznawanie głosu)
Należy również wziąć pod uwagę czas realizacji. Algorytm genetyczny zajmuje dużo czasu, aby znaleźć akceptowalne rozwiązanie. Sieć neuronowa potrzebuje dużo czasu na „naukę”, ale wtedy może niemal natychmiast sklasyfikować nowe wejścia.
Chcę tylko trochę dodać do definicji GA. Czasami ludzie myślą o przestrzeni rozwiązania problemu AH jako o zbiorze stanów lub wartości. Na przykład „Znajdź wszystkie sposoby ułożenia zestawu czterech szachów na szachownicy, aby stworzyć mata”. Jednak przestrzeń rozwiązań może być również zbiorem algorytmów. W tym miejscu do gry wkracza prawdziwa moc algorytmów genetycznych. Pomagają ci odpowiedzieć na pytanie typu „Znajdź sekwencję ruchów z danym zestawem szachów, które spowodują mata”.
lfalin
44
Algorytm genetyczny (pomimo swojej seksownej nazwy) jest w większości przypadków techniką optymalizacji . Sprowadza się przede wszystkim do tego, że masz wiele zmiennych i chcesz znaleźć najlepszą kombinację wartości dla tych zmiennych. Po prostu zapożycza techniki z naturalnej ewolucji, aby się tam dostać.
Sieci neuronowe są przydatne do rozpoznawania wzorców . Kierują się uproszczonym modelem mózgu i zmieniając kilka wag między sobą, próbują przewidzieć wyniki na podstawie danych wejściowych.
Są to dwie zasadniczo różne jednostki, ale czasami problemy, które są w stanie rozwiązać, nakładają się.
W rzeczywistości sieci neuronowe to tylko technika interpolacji. :)
Don Reba
3
+1 dla algorytmów genetycznych (optymalizacja) i sieci neuronowe (uczenie nadzorowane) nie mają prawie nic wspólnego.
alfa
2
Jedynym wspólnym elementem jest to, że dynamicznie przestawiają się, gdy zbliżają się do celu.
lfalin
1
Naprawdę nie jestem pewien, czy coś się pokrywa. Sieć neuronowa to model z funkcją kosztu, a GA to technika optymalizacji, którą można wykorzystać do zminimalizowania tej funkcji kosztu, jak powiedział @zenna.
Matthieu Brucher
37
GA generują nowe wzorce w strukturze, którą definiujesz.
Sieci NN klasyfikują (lub rozpoznają) istniejące wzorce na podstawie dostarczonych danych szkoleniowych.
GA dobrze radzą sobie z efektywnym przeszukiwaniem dużej przestrzeni stanów rozwiązań i konwergencją na jednym lub więcej dobrych rozwiązań, ale niekoniecznie na „najlepszym” rozwiązaniu.
NN mogą nauczyć się rozpoznawać wzorce (poprzez szkolenie), ale notorycznie trudno jest dowiedzieć się, czego się nauczyli, tj. Wydobyć z nich wiedzę po przeszkoleniu i ponownie wykorzystać ją w innym (innym niż NN).
W rzeczy samej. Są to naprawdę techniki „ortogonalne”. Możesz użyć GA, aby znaleźć wagi sieci neuronowych i / lub architekturę.
redcalx
23
Jest między nimi wiele podobieństw, więc spróbuję jedynie nakreślić ich różnice .
Sieci neuronowe
Potrafisz analizować wzorce online (te, które zmieniają się w czasie). Ogólnie jest to próbka zmienna w czasie, którą należy dopasować i przewidzieć.
Przykłady :
Ekstrapolacja wykresów
Rozpoznawanie twarzy
Algorytmy genetyczne
Używane, gdy możesz zakodować atrybuty, które Twoim zdaniem mogą przyczynić się do określonego, niezmiennego problemu. Nacisk kładziony jest na umiejętność kodowania tych atrybutów (czasami wiesz, czym one są) i na to, że problem jest w dużej mierze niezmienny (w przeciwnym razie ewolucje nie zbiegają się).
Przykłady :
Planowanie samolotów / żeglugi
Rozkłady jazdy.
Znalezienie najlepszych cech prostego agenta w sztucznym środowisku
Renderowanie przybliżenia obrazu z przypadkowymi wielokątami
Możesz użyć algorytmów genetycznych jako alternatywy dla algorytmu wstecznej propagacji do aktualizacji wag w sieciach neuronowych. Przykład tego można znaleźć pod adresem :
http://www.ai-junkie.com/ann/evolved/nnt1.html .
Algorytmy genetyczne (zwykle) działają na danych dyskretnych (wyliczenia, zakresy liczb całkowitych itp.). Typowym zastosowaniem dla AH jest poszukiwanie w dyskretnej przestrzeni „dostatecznie dobrego” rozwiązania, gdy jedyną dostępną alternatywą jest przeszukiwanie siłowe (ocena wszystkich kombinacji).
Z drugiej strony sieci neuronowe (zwykle) działają na danych ciągłych (float itp.). Typowym zastosowaniem dla NN jest aproksymacja funkcji, gdzie mamy zbiór X wejść i zbiór Y powiązanych wyjść, ale funkcję analityczną f: X → Y.
Oczywiście istnieje tysiące wariantów obu, więc granica między nimi jest nieco rozmyta.
Nie ma praktycznej zasady. W wielu przypadkach możesz sformułować swój problem, aby skorzystać z jednego z nich. Uczenie maszynowe jest nadal aktywnym obszarem badań, a wybór modelu uczenia się może być dyskusyjny.
AH przejmuje seksowne języki z ewolucji, ale ty czekasz, aż Twój komputer znajdzie rozwiązanie w losowym procesie. Zbadaj swoje dane, dokonaj dobrych założeń, spróbuj wiedzieć, czego chcesz i wybierz podejście, które może je dobrze wykorzystać. Jeśli Twój pierwszy wybór daje słabe wyniki, wiedz, dlaczego tak było i popraw sam algorytm lub wybierz lepszy.
Odpowiedzi:
Z Wikipedii:
i:
Jeśli masz problem, w którym możesz oszacować wartość rozwiązania, algorytm genetyczny może przeprowadzić ukierunkowane przeszukiwanie przestrzeni rozwiązań. (Np. Znajdź najkrótszą trasę między dwoma punktami)
Gdy masz wiele elementów w różnych klasach, sieć neuronowa może „nauczyć się” klasyfikować elementy, których wcześniej nie „widziała”. (Np. Rozpoznawanie twarzy, rozpoznawanie głosu)
Należy również wziąć pod uwagę czas realizacji. Algorytm genetyczny zajmuje dużo czasu, aby znaleźć akceptowalne rozwiązanie. Sieć neuronowa potrzebuje dużo czasu na „naukę”, ale wtedy może niemal natychmiast sklasyfikować nowe wejścia.
źródło
Algorytm genetyczny (pomimo swojej seksownej nazwy) jest w większości przypadków techniką optymalizacji . Sprowadza się przede wszystkim do tego, że masz wiele zmiennych i chcesz znaleźć najlepszą kombinację wartości dla tych zmiennych. Po prostu zapożycza techniki z naturalnej ewolucji, aby się tam dostać.
Sieci neuronowe są przydatne do rozpoznawania wzorców . Kierują się uproszczonym modelem mózgu i zmieniając kilka wag między sobą, próbują przewidzieć wyniki na podstawie danych wejściowych.
Są to dwie zasadniczo różne jednostki, ale czasami problemy, które są w stanie rozwiązać, nakładają się.
źródło
GA generują nowe wzorce w strukturze, którą definiujesz.
Sieci NN klasyfikują (lub rozpoznają) istniejące wzorce na podstawie dostarczonych danych szkoleniowych.
GA dobrze radzą sobie z efektywnym przeszukiwaniem dużej przestrzeni stanów rozwiązań i konwergencją na jednym lub więcej dobrych rozwiązań, ale niekoniecznie na „najlepszym” rozwiązaniu.
NN mogą nauczyć się rozpoznawać wzorce (poprzez szkolenie), ale notorycznie trudno jest dowiedzieć się, czego się nauczyli, tj. Wydobyć z nich wiedzę po przeszkoleniu i ponownie wykorzystać ją w innym (innym niż NN).
źródło
Porównujesz tutaj dwie zupełnie różne rzeczy.
Sieci neuronowe są używane do regresji / klasyfikacji - biorąc pod uwagę zestaw (x, y) przykładów, chcesz cofnąć nieznane y dla jakiegoś podanego x.
Algorytmy genetyczne to technika optymalizacji. Mając funkcję f (x), chcesz określić x, który minimalizuje / maksymalizuje f (x).
źródło
Jest między nimi wiele podobieństw, więc spróbuję jedynie nakreślić ich różnice .
Sieci neuronowe
Potrafisz analizować wzorce online (te, które zmieniają się w czasie). Ogólnie jest to próbka zmienna w czasie, którą należy dopasować i przewidzieć.
Przykłady :
Algorytmy genetyczne
Używane, gdy możesz zakodować atrybuty, które Twoim zdaniem mogą przyczynić się do określonego, niezmiennego problemu. Nacisk kładziony jest na umiejętność kodowania tych atrybutów (czasami wiesz, czym one są) i na to, że problem jest w dużej mierze niezmienny (w przeciwnym razie ewolucje nie zbiegają się).
Przykłady :
źródło
Możesz użyć algorytmów genetycznych jako alternatywy dla algorytmu wstecznej propagacji do aktualizacji wag w sieciach neuronowych. Przykład tego można znaleźć pod adresem : http://www.ai-junkie.com/ann/evolved/nnt1.html .
źródło
Algorytmy genetyczne (zwykle) działają na danych dyskretnych (wyliczenia, zakresy liczb całkowitych itp.). Typowym zastosowaniem dla AH jest poszukiwanie w dyskretnej przestrzeni „dostatecznie dobrego” rozwiązania, gdy jedyną dostępną alternatywą jest przeszukiwanie siłowe (ocena wszystkich kombinacji).
Z drugiej strony sieci neuronowe (zwykle) działają na danych ciągłych (float itp.). Typowym zastosowaniem dla NN jest aproksymacja funkcji, gdzie mamy zbiór X wejść i zbiór Y powiązanych wyjść, ale funkcję analityczną f: X → Y.
Oczywiście istnieje tysiące wariantów obu, więc granica między nimi jest nieco rozmyta.
źródło
Nie ma praktycznej zasady. W wielu przypadkach możesz sformułować swój problem, aby skorzystać z jednego z nich. Uczenie maszynowe jest nadal aktywnym obszarem badań, a wybór modelu uczenia się może być dyskusyjny.
AH przejmuje seksowne języki z ewolucji, ale ty czekasz, aż Twój komputer znajdzie rozwiązanie w losowym procesie. Zbadaj swoje dane, dokonaj dobrych założeń, spróbuj wiedzieć, czego chcesz i wybierz podejście, które może je dobrze wykorzystać. Jeśli Twój pierwszy wybór daje słabe wyniki, wiedz, dlaczego tak było i popraw sam algorytm lub wybierz lepszy.
źródło