Neuroewolucja
Neuroewolucja lub neuroewolucja to forma sztucznej inteligencji , która wykorzystuje algorytmy ewolucyjne do generowania sztucznych sieci neuronowych (ANN), parametrów i reguł. Jest najczęściej stosowany w sztucznym życiu , ogólnych grach i robotyce ewolucyjnej . Główną korzyścią jest to, że neuroewolucję można zastosować w szerszym zakresie niż algorytmy uczenia nadzorowanego , które wymagają programu nauczania poprawnych par wejście-wyjście. W przeciwieństwie do tego neuroewolucja wymaga jedynie pomiaru wydajności sieci w zadaniu. Na przykład wynik gry (tj. czy jeden gracz wygrał, czy przegrał) można łatwo zmierzyć bez podawania przykładowych pożądanych strategii. Neuroewolucja jest powszechnie stosowana jako część uczenia się przez wzmacnianie i można ją skontrastować z konwencjonalnymi technikami głębokiego uczenia, które wykorzystują opadanie gradientu w sieci neuronowej o stałej topologii.
Cechy
Zdefiniowano wiele algorytmów neuroewolucji. Jedno wspólne rozróżnienie dotyczy algorytmów, które rozwijają tylko siłę połączeń wag dla stałej topologii sieci (czasami nazywane konwencjonalną neuroewolucją), w przeciwieństwie do algorytmów, które rozwijają zarówno topologię sieci, jak i jej wagi (zwane TWEANN, od Topology and Weight Ewolucja algorytmów sztucznej sieci neuronowej).
Odrębnie można wyróżnić metody rozwijające strukturę SSN równolegle do jej parametrów (wykorzystujące standardowe algorytmy ewolucyjne) oraz metody rozwijające je oddzielnie (poprzez algorytmy memetyczne ).
Porównanie ze spadkiem gradientowym
Większość sieci neuronowych wykorzystuje opadanie gradientu zamiast neuroewolucji. Jednak około 2017 roku naukowcy z Uber stwierdzili, że odkryli, że proste algorytmy neuroewolucji strukturalnej są konkurencyjne w stosunku do wyrafinowanych, nowoczesnych algorytmów głębokiego uczenia się , będących standardami w branży , po części dlatego, że stwierdzono mniejsze prawdopodobieństwo utknięcia neuroewolucji w lokalnych minimach. W Science dziennikarz Matthew Hutson spekulował, że jednym z powodów, dla których neuroewolucja odnosi sukcesy tam, gdzie wcześniej zawodziła, jest zwiększona moc obliczeniowa dostępna w 2010 roku.
Można wykazać, że istnieje zgodność między neuroewolucją a zejściem gradientowym.
Kodowanie bezpośrednie i pośrednie
Algorytmy ewolucyjne operują na populacji genotypów (zwanych także genomami ). W neuroewolucji genotyp jest odwzorowywany na fenotyp sieci neuronowej , który jest oceniany w jakimś zadaniu w celu określenia jego przydatności .
W schematach bezpośredniego kodowania genotyp jest bezpośrednio odwzorowywany na fenotyp. Oznacza to, że każdy neuron i połączenie w sieci neuronowej jest określone bezpośrednio i jawnie w genotypie. Natomiast w pośredniego genotyp określa pośrednio, w jaki sposób ta sieć powinna być generowana.
Kodowania pośrednie są często używane do osiągnięcia kilku celów:
- modułowość i inne prawidłowości;
- kompresja fenotypu do mniejszego genotypu, zapewniająca mniejszą przestrzeń poszukiwań;
- odwzorowanie przestrzeni poszukiwań (genomu) na domenę problemową.
Taksonomia systemów embriogenicznych do kodowania pośredniego
Tradycyjnie kodowanie pośrednie, które wykorzystuje sztuczną embriogenezę (znaną również jako sztuczny rozwój ), zostało podzielone na kategorie według podejścia gramatycznego i podejścia opartego na chemii komórkowej . Ten pierwszy ewoluuje zestawy reguł w postaci gramatycznych systemów przepisywania. Ten ostatni próbuje naśladować, jak struktury fizyczne pojawiają się w biologii poprzez ekspresję genów. Pośrednie systemy kodowania często wykorzystują aspekty obu podejść.
Stanley i Miikkulainen proponują taksonomię systemów embriogenicznych, która ma odzwierciedlać ich podstawowe właściwości. Taksonomia identyfikuje pięć ciągłych wymiarów, wzdłuż których można umieścić dowolny system embriogeniczny:
- Los komórki (neuronu) : ostateczna charakterystyka i rola komórki w dojrzałym fenotypie. Wymiar ten zlicza liczbę metod stosowanych do określenia losu komórki.
- Kierowanie : metoda kierowania połączeń z komórek źródłowych do komórek docelowych. Zakres ten waha się od określonego kierowania (źródło i cel są wyraźnie identyfikowane) do względnego kierowania (np. na podstawie lokalizacji komórek względem siebie).
- Heterochronia : czas i kolejność wydarzeń podczas embriogenezy. Zlicza liczbę mechanizmów zmiany czasu zdarzeń.
- Kanalizacja : jak tolerancyjny jest genom na mutacje (kruchość). Zakres od wymagającego dokładnych instrukcji genotypowych do wysokiej tolerancji na nieprecyzyjne mutacje.
- Złożoność : zdolność systemu (w tym algorytm ewolucyjny i mapowanie genotypu do fenotypu) do umożliwienia złożoności genomu (a tym samym fenotypu) w czasie. Wacha się od dopuszczania tylko genomów o stałej wielkości do zezwalania na genomy o bardzo zmiennej długości.
Przykłady
Przykłady metod neuroewolucji (te z bezpośrednim kodowaniem są z konieczności nieembriogenne):
metoda | Kodowanie | Algorytm ewolucyjny | Aspekty ewoluowały |
---|---|---|---|
Ewolucja neurogenetyczna autorstwa E. Ronalda, 1994 | Bezpośredni | Algorytm genetyczny | Wagi sieciowe |
Kodowanie komórkowe (CE) autorstwa F. Gruau, 1994 | Pośrednie, embriogeniczne (drzewo gramatyczne przy użyciu wyrażeń S ) | Programowanie genetyczne | Struktura i parametry (symultaniczne, złożone) |
GNARL autorstwa Angeline i in., 1994 | Bezpośredni | Programowanie ewolucyjne | Struktura i parametry (symultaniczne, złożone) |
EPNet autorstwa Yao i Liu, 1997 | Bezpośredni | Programowanie ewolucyjne (w połączeniu z propagacją wsteczną i symulowanym wyżarzaniem ) | Struktura i parametry (mieszane, złożone i uproszczone) |
NeuroEvolution of Augmenting Topologies (NEAT) autorstwa Stanleya i Miikkulainena, 2002 | Bezpośredni | Algorytm genetyczny . Śledzi geny z oznaczeniami historycznymi, aby umożliwić krzyżowanie się różnych topologii, chroni innowacje poprzez specjację. | Struktura i parametry |
NeuroEvolution of Augmenting Topologies (HyperNEAT) oparta na hipersześcianie, autor: Stanley, D'Ambrosio, Gauci, 2008 | Pośrednie, nieembriogenne (wzorce przestrzenne generowane przez sieć tworzącą wzorce kompozycyjne (CPPN) w hipersześcianie są interpretowane jako wzorce łączności w przestrzeni o niższych wymiarach) | Algorytm genetyczny . Algorytm NEAT (powyżej) służy do ewolucji CPPN. | Parametry, struktura ustalona (funkcjonalnie w pełni połączona) |
Evolvable Substrate Hypercube-based NeuroEvolution of Augmenting Topologies (ES-HyperNEAT) autorstwa Risi, Stanley 2012 | Pośrednie, nieembriogenne (wzorce przestrzenne generowane przez sieć tworzącą wzorce kompozycyjne (CPPN) w hipersześcianie są interpretowane jako wzorce łączności w przestrzeni o niższych wymiarach) | Algorytm genetyczny . Algorytm NEAT (powyżej) służy do ewolucji CPPN. | Parametry i struktura sieci |
Ewolucyjne pozyskiwanie topologii neuronowych (EANT/EANT2) Kassahun i Sommer, 2005 / Siebel i Sommer, 2007 | Bezpośrednie i pośrednie, potencjalnie embriogenne (wspólne kodowanie genetyczne) | Programowanie ewolucyjne / Strategie ewolucyjne | Struktura i parametry (osobno, złożoność) |
Interaktywnie ograniczona neuroewolucja (ICONE), Rempis, 2012 | Bezpośredni, zawiera maski ograniczeń w celu ograniczenia wyszukiwania do określonych rozmaitości topologii/parametrów. | Algorytm ewolucyjny . Używa masek ograniczeń, aby radykalnie zredukować przestrzeń wyszukiwania poprzez wykorzystanie wiedzy o domenie . | Struktura i parametry (osobno, złożoność, interakcja) |
Sieć neuronowa Deus Ex (DXNN) autorstwa Gene'a Shera, 2012 | Bezpośredni/pośredni, obejmuje ograniczenia, lokalne strojenie i umożliwia ewolucję w celu integracji nowych czujników i elementów wykonawczych. | Algorytm memetyczny . Ewoluuje strukturę i parametry sieci w różnych skalach czasowych. | Struktura i parametry (osobno, złożoność, interakcja) |
Zróżnicowana widmowo zunifikowana architektura neuroewolucji (SUNA) — Danilo Vasconcellos Vargas, Junichi Murata ( Kod do pobrania ) | Direct, wprowadza Unified Neural Representation (reprezentację integrującą większość cech sieci neuronowych z literatury). | Algorytm genetyczny z mechanizmem zachowania różnorodności o nazwie Spectrum-diversity, który dobrze skaluje się z rozmiarem chromosomu, jest niezależny od problemu i koncentruje się bardziej na uzyskaniu różnorodności zachowań / podejść na wysokim poziomie. Aby osiągnąć tę różnorodność, wprowadzono koncepcję widma chromosomów, która jest używana wraz z Nową populacją na mapie. | Struktura i parametry (mieszane, złożone i uproszczone) |
Modular Agent-Based Evolver (MABE) autorstwa Clifforda Bohma, Arenda Hintze i innych. ( Pobierz kod ) | Bezpośrednie lub pośrednie kodowanie sieci Markowa , sieci neuronowych, programowania genetycznego i innych dowolnie konfigurowalnych kontrolerów. | Zapewnia algorytmy ewolucyjne, algorytmy programowania genetycznego i umożliwia tworzenie algorytmów niestandardowych wraz ze specyfikacją dowolnych ograniczeń. | Ewoluowalne aspekty obejmują model neuronowy i pozwalają między innymi na ewolucję morfologii i doboru płciowego. |
Adaptacja macierzy kowariancji z algorytmem siatki adaptacyjnej posortowanej w hiperobjętości (CMA-HAGA) autorstwa Shahina Rostamiego i innych., | Direct zawiera funkcję atawizmu , która umożliwia znikanie i ponowne pojawianie się cech w różnych pokoleniach. | Wielocelowa strategia ewolucji z artykulacją preferencji ( sterowanie obliczeniowe ) | Struktura, wagi i odchylenia. |
Zobacz też
- Automatyczne uczenie maszynowe (AutoML)
- Obliczenia ewolucyjne
- NeuroEvolution rozszerzających się topologii (NEAT)
- Noogeneza
- HyperNEAT (generatywna wersja NEAT)
- Ewolucyjna akwizycja topologii neuronowych (EANT/EANT2)
Linki zewnętrzne
- „Ewolucja 101: Neuroewolucja | BEACON” . beacon-center.org . Źródło 2018-01-14 .
- „Obszary NNRG - neuroewolucja” . nn.cs.utexas.edu . Uniwersytet Teksasu . Źródło 2018-01-14 . </ref> (ma dokumenty do pobrania na temat NEAT i aplikacji)
- „Ramy SharpNEAT neuroewolucji” . sharpneat.sourceforge.net . Źródło 2018-01-14 . dojrzały projekt neuroewolucji Open Source realizowany w C#/.Net.
- ANNEvolve to projekt badawczy AI Open Source (kod źródłowy do pobrania w C i Python z samouczkiem oraz różnymi pismami i ilustracjami
- „Nils T Siebel - EANT2 - Ewolucyjne uczenie się sieci neuronowych ze wzmocnieniem” . www.siebel-research.de . Źródło 2018-01-14 . </ref> Strona internetowa poświęcona ewolucyjnemu uczeniu się za pomocą EANT/EANT2] (informacje i artykuły na temat EANT/EANT2 z zastosowaniami do uczenia robotów)
- Zestaw narzędzi NERD. Zestaw narzędzi do rozwoju neurodynamiki i robotyki ewolucyjnej. Bezpłatna kolekcja oprogramowania typu open source do różnych eksperymentów dotyczących neurokontroli i neuroewolucji. Zawiera skryptowalny symulator, kilka algorytmów neuroewolucji (np. ICONE), obsługę klastrów, narzędzia do wizualnego projektowania sieci i analizy.
- „Komputer korowy (gen)” . GitHub . Źródło 2018-01-14 . Kod źródłowy systemu neuroewolucyjnego DXNN.
- „Strona użytkowników ES-HyperNEAT” . eplex.cs.ucf.edu . Źródło 2018-01-14 .