112

Czy istnieje pewna reguła lub zestaw przykładów określających, kiedy należy stosować algorytmy genetyczne, a kiedy używać sieci neuronowych do rozwiązania problemu?Kiedy używać algorytmów genetycznych a kiedy używać sieci neuronowych?

Wiem, że są przypadki, w których można mieszać obie metody, ale szukam wysokiego poziomu uzasadnienia między tymi dwoma metodami.

+3

Warto zauważyć, że istnieją dwa rodzaje sieci neuronowych - nadzorowanych i nienadzorowanych. Nadzorowani otrzymują dane treningowe od ludzkich, bezinte- ryzowanych informacji zwrotnych do siebie i bardziej przypominają GA w tym zakresie. –

+1

Czy możemy pracować nad wydostaniem nietypowych bitów z pytania? Jest dużo wokół "zestawu przykładów", ponieważ jest to bardzo lista i nie chcemy tego zachęcać. Odpowiedzi są dość dobre i chcielibyśmy zachować to w ten sposób. Z przyjemnością otworzymy go ponownie, gdy tylko się nim zajmiemy. – casperOne

+2

Nie sądzę, że to w ogóle "list-y". Odpowiedzi porównują dwie metody i wyjaśniają, kiedy użyć jednego z drugim. –

Odpowiedz

106

z Wikipedii:

genetic algorithm (GA) to technika wyszukiwania stosowany w informatyce do znaleźć dokładne lub przybliżonerozwiązania do optymalizacji i wyszukiwania problemów.

oraz:

Neural networks są nieliniowe narzędzia 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 wątpliwości, gdzie można określenia ilościowego o wartości roztworu, algorytm genetyczny może wykonywać skierowaną przeszukiwanie przestrzeni rozwiązań. (Na przykład.znalezienie najkrótszej drogi między dwoma punktami)

Kiedy masz wiele elementów w różnych klasach, a sieci neuronowej może „nauczyć się” do klasyfikować przedmioty nie „widział” wcześniej. (Np. Rozpoznawanie twarzy, rozpoznawanie głosu)

Czas wykonania musi być również rozważony. Algorytm genetyczny zajmuje dużo czasu, aby znaleźć akceptowalne rozwiązanie. Sieć neuronowa zajmuje dużo czasu, aby "się uczyć", ale wtedy może niemal natychmiast zaklasyfikować nowe wejścia.

+9

Po prostu chcę dodać trochę do definicji GA. Czasami ludzie myślą o przestrzeni rozwiązania problemu GA jako zbiorze stanów lub wartości. Takich jak "Znajdź wszystkie sposoby, w jakie zestaw czterech szachów można ułożyć na szachownicy, aby utworzyć szachownicę". Jednak przestrzeń rozwiązania może być również zestawem algorytmów. To tutaj wkracza prawdziwa moc algorytmów genetycznych. Pomagają ci odpowiedzieć na pytanie typu "Znajdź sekwencję ruchów z danym zbiorem szachów, które spowodują mata". – lfalin

30

GA generuje nowe wzorce w strukturze, które definiują

NNS klasyfikować/rozpoznać istniejące wzorce oparte na szkolenia, które dostarczają

GA wykonać również na efektywne poszukiwanie dużej przestrzeni stanu rozwiązań oraz zbieżnych z jednym lub kilkoma dobrymi rozwiązaniami, ale niekoniecznie z "najlepszym" rozwiązaniem

NN mogą nauczyć się rozpoznawać wzorce (poprzez trening), ale trudno jest dowiedzieć się, czego się nauczyli, tj. wyciągnąć z nich wiedzę raz wyszkolony i ponownie wykorzystaj wiedzę w innym (nie-NN).

+4

nie może odgadnąć, dlaczego został wycofany ... –

19

Istnieje wiele podobieństw między nimi, więc spróbuję tylko przedstawić ich różnice.

Sieci neuronowe

Są w stanie analizować wzorce internetowe (te, które zmieniają się w czasie). Zwykle jest to próbka zmieniająca się w czasie, którą należy dopasować i przewidzieć.

Przykłady: Ekstrapolacja wykresu. Rozpoznawanie twarzy.

Algorytmy genetyczne

Używane kiedy można kod przypisuje że myślisz może przyczynić się do konkretnego, nie zmienia 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 (w przeciwnym razie ewolucje nie zbiegają się).

Przykłady: Planowanie samolotów/wysyłek. Rozkłady jazdy. Znalezienie najlepszych cech prostego środka w sztucznym środowisku. Renderowanie przybliżenia obrazu z losowymi wielokątami.

33

Algorytm genetyczny, pomimo swojej seksownej nazwy, jest dla większości celów po prostu metodą optymalizacji. To przede wszystkim sprowadza się do ciebie, ż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 wzorów. Podążają one za uproszczonym modelem mózgu, a zmieniając między sobą kilka wag, próbują przewidywać wyniki na podstawie danych wejściowych.

Są to dwie zasadniczo różne jednostki, ale czasami problemy, które są w stanie rozwiązać, pokrywają się.

+3

.. "po prostu technika optymalizacji" ... To wszystko? –

+4

"po prostu technika optymalizacji" nie miała na celu umniejszania możliwości optymalizacji. Chodzi o to, aby pokazać, że GA spełniają tę samą funkcję, co wiele innych technik optymalizacji, takich jak wspinaczka górska. – zenna

+17

Sieci neuronowe to właściwie tylko technika interpolacji. :) –

6

Algorytmy genetyczne (zwykle) działają na dyskretnych danych (wyliczenia, zakresy całkowite itp.). Typową aplikacją dla GA jest przeszukiwanie przestrzeni dyskretnej dla "wystarczająco dobrego" rozwiązania, gdy jedyną dostępną alternatywą jest wyszukiwanie siły brutalnej (ocena wszystkich kombinacji).

Sieci neuronowe z drugiej strony (zwykle) pracują na danych ciągłych (pływaki itp.). Typowa aplikacja dla NNs to aproksymacja funkcji, gdzie masz zestaw X wejść i zbiór Y powiązanych wyjść, ale funkcja analityczna f: X → Y.

Oczywiście są tysiące wariantów obu, więc linia między nimi jest nieco niewyraźna.

12

W rzeczywistości można użyć algorytmów genetycznych jako alternatywy dla algorytmu wstecznej propagacji, aby zaktualizować wagi w sieciach neuronowych. Na przykład:
http://www.ai-junkie.com/ann/evolved/nnt1.html

+1

A także NEAT (http://www.cs.ucf.edu/~kstanley/neat.html). Z implementacją C# na http://sharpneat.sourceforge.net) – redcalx

+0

Dla javascript, sprawdź https://github.com/wagenaartje/neataptic. Implementuje również NEAT. –

21

Porównywasz tutaj dwie zupełnie różne rzeczy.

Sieci neuronowe są używane do regresji/klasyfikacji - biorąc pod uwagę zestaw przykładów (x, y), chcesz cofnąć nieznane y dla niektórych podanych x.

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

+5

Rzeczywiście. Są to naprawdę "ortogonalne" techniki. Możesz użyć GA, aby znaleźć wagi sieci neuronowej i/lub architekturę. – redcalx

4

Nie ma żadnej reguły. W wielu przypadkach możesz sformułować swój problem, aby skorzystać z któregoś z nich. Uczenie maszynowe jest nadal aktywnym obszarem badań i który model uczenia się może być dyskusyjny.

GA bierze sexy języki z ewolucji, ale czekasz, aż komputer natknie się na rozwiązanie w wyniku przypadkowego procesu. Zbadaj swoje dane, zrób dobre założenia, spróbuj wiedzieć, czego chcesz i wybierz podejście, które może z nich dobrze wykorzystać. Jeśli Twój pierwszy wybór daje słabe wyniki, wiedz, dlaczego tak się stało, i ulepszyć sam algorytm lub wybrać lepszy.