Kiedy powinienem używać algorytmów genetycznych w przeciwieństwie do sieci neuronowych? [zamknięte]

Czy istnieje zasada (lub zestaw przykładów) określająca, kiedy używać algorytmów genetycznych w przeciwieństwie do sieci neuronowych (i vice-versa) do rozwiązania problemu?

Wiem, że są przypadki, w których można mieszać obie metody, ale szukam porównania na wysokim poziomie między tymi dwoma metodami.

Author: nbro, 2009-09-10

8 answers

Z Wikipedii:

A algorytm genetyczny (GA) jest techniką wyszukiwania używaną w obliczeniach, aby znaleźć dokładne lub przybliżone rozwiązania do optymalizacji i problemów wyszukiwania.

I:

Sieci neuronowe są nieliniowymi narzędziami do modelowania danych statystycznych. Mogą być używane do modelowania złożonych relacji między wejściami i wyjściami lub do znajdowania wzorców w danych.

Jeśli masz problem gdzie możesz algorytm genetyczny może wykonać ukierunkowane wyszukiwanie przestrzeni rozwiązania. (Np. Znajdź najkrótszą trasę między dwoma punktami)

Gdy masz kilka przedmiotów w różnych klasach, sieć neuronowa może "nauczyć się" klasyfikować przedmioty, których wcześniej nie "widziała". (Np. rozpoznawanie twarzy, Rozpoznawanie głosu)

Należy również wziąć pod uwagę czas wykonania. Algorytm genetyczny zajmuje dużo czasu, aby znaleźć akceptowalny rozwiązanie. Sieć neuronowa zajmuje dużo czasu, aby" nauczyć się", ale wtedy może niemal natychmiast klasyfikować nowe wejścia.

 112
Author: Dawie Strauss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-15 20:01:43

Gaz generuje nowe wzorce w zdefiniowanej strukturze.

NNs klasyfikuje (lub rozpoznaje) istniejące wzorce na podstawie dostarczonych danych treningowych.

Gaz dobrze sprawdza się w efektywnym przeszukiwaniu dużej przestrzeni stanów rozwiązań i zbieżności na jednym lub kilku dobrych rozwiązaniach, ale niekoniecznie "najlepszym" rozwiązaniem.

NNs mogą nauczyć się rozpoznawać wzorce (poprzez szkolenie), ale notorycznie trudno jest dowiedzieć się, czego się nauczyli, tzn. wyodrębnić wiedza z nich raz przeszkolony, i ponownie wykorzystać wiedzę w innych (non-NN).

 34
Author: Steven A. Lowe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-04 19:18:46

Algorytm genetyczny (mimo swojej seksownej nazwy) jest dla większości celów techniką optymalizacji . Przede wszystkim sprowadza się do posiadania wielu zmiennych i chce 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. Podążają za uproszczonym modelem mózgu, a zmieniając kilka wag między nimi, próbują przewidzieć wyjścia oparte na wejściach.

Są to dwa zasadniczo różne byty, ale czasami problemy, które są w stanie rozwiązać, nakładają się na siebie.

 34
Author: zenna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-04 19:24:53

Porównujesz tu dwie zupełnie różne rzeczy.

Sieci neuronowe są używane do regresji / klasyfikacji - biorąc pod uwagę zbiór (X, y) przykładów, chcesz regresować nieznane y dla jakiegoś podanego x.

Algorytmy genetyczne są techniką optymalizacji. Biorąc pod uwagę funkcję f(x), chcesz określić x, które minimalizuje/maksymalizuje f (x).

 22
Author: bayer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-19 17:15:44

Istnieje wiele podobieństw między nimi, więc postaram się jedynie zarysować ich różnice .

Sieci neuronowe

Są w stanie analizować wzorce online (te, które zmieniają się w czasie). Ogólnie rzecz biorąc, jest to zmienna w czasie próbka, która musi być dopasowana i przewidywana.

Przykłady :

  • ekstrapolacja wykresu
  • Rozpoznawanie twarzy

Algorytmy genetyczne

Używane, gdy możesz kodować atrybuty, które Twoim zdaniem mogą przyczynić się do konkretnego, Nie zmieniającego się problemu. Nacisk kładziony jest na możliwość kodowania tych atrybutów (czasami wiesz, czym one są) i że problem jest w dużym stopniu niezmienny (inaczej ewolucje się nie zbiegają).

Przykłady :

  • planowanie samolotów / wysyłka
  • rozkład jazdy.
  • znalezienie najlepszych cech dla prostego czynnika w sztucznym środowisku
  • renderowanie przybliżenia obrazu z losowym wielokąty
 19
Author: Unknown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-04 19:22:24

Możesz użyć algorytmów genetycznych jako alternatywy dla algorytmu backpropagacji do aktualizacji wag w sieciach neuronowych. Przykładem tego jest: http://www.ai-junkie.com/ann/evolved/nnt1.html .

 13
Author: Amro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-04 19:20:38

Algorytmy genetyczne (zwykle) działają na danych dyskretnych (liczby, zakresy liczb całkowitych itp.). Typowym zastosowaniem gazu jest poszukiwanie dyskretnej przestrzeni dla "wystarczająco dobrego" rozwiązania, gdy jedyną dostępną alternatywą jest wyszukiwanie brute-force (ocena wszystkich kombinacji).

Z drugiej strony sieci neuronowe (zazwyczaj) pracują na danych ciągłych (pływaki, itp.). Typowym zastosowaniem NNs jest aproksymacja funkcji, gdzie mamy zestaw x wejść i zestaw y powiązanych wyjść, ale funkcja analityczna f: X → Y.

Oczywiście istnieją tysiące wariantów obu, więc granica między nimi jest nieco rozmyta.

 6
Author: nbro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-04 19:23:51

Nie ma żadnej reguły. W wielu przypadkach można sformułować swój problem, Aby skorzystać z jednego z nich. Uczenie maszynowe jest nadal aktywnym obszarem badań i jaki model uczenia się stosować może być dyskusyjny.

GA bierze seksowne języki z ewolucji, ale czekasz, aż Twój komputer natknie się na rozwiązanie w drodze losowego procesu. Studiuj swoje dane, dokonuj dobrych założeń, staraj się 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, wie, dlaczego tak było, i poprawić sam algorytm lub wybrać lepszy.

 4
Author: tilish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-16 17:20:18