-
21. Data: 2011-07-01 00:20:54
Temat: Re: wy?arzanie
Od: Mariusz Marszałkowski <m...@g...com>
On Jun 28, 3:51 pm, "sielim" <s...@t...tez.wp.pl> wrote:
> Użytkownik "Mariusz Marszałkowski" <m...@g...com> napisał w
wiadomościnews:6460b30d-449c-49ea-8faa-db2800f8902a@
n5g2000yqh.googlegroups.com...
> On Jun 22, 12:29 pm, "sielim" <s...@t...tez.wp.pl> wrote:
>
> >> 'słabości' w porównaniu z innymi gatunkami. Wtedy jest szansa, że
> >> samoistnie wyizolują się z populacji różne podgatunki, które obsadzą
> >> Ci różne lokalne rozwiązania i będą je lokalnie optymalizować (będą
> >> obsadzać
> >> nisze ewolucyjne) z małą skłonnością do wychodzenia poza swój gatunek.
> >> To dość swobodny pomysł, jeden z wielu, jakie tu można poprowadzić.
> >Mozesz podac jakis konkrety przyklad, konkretne zastosowanie, gdzie
> >ten "swobodny pomysl" dzialal lepiej niz inne algorytmy?
> >Pozdrawiam
>
> Nie jestem w stanie - pomysł był bardzo swobodny :)
> I wcale nie było moim celem wskazanie, że będzie to działać lepiej niż inne
> algorytmy,
Ok, myslalem ze rowniez zaimplementowales i poparles pomysl jakims
eksperymentem.
> chciałem tylko wskazać, że pojęcie 'gatunku' (i idący za nim zakaz
> krzyżowania
> między gatunkami) jest odpowiedzią na pewien generalny problem pojawiający
> się w AG, który w klasycznej postaci albo dąży do uzyskania i optymalizacji
> jednego
> rozwiązania (obsadzenia jednego minimum lub blisko położonej grupy minimów,
> w którego okolicach "obsadza" całą populację) albo w najlepszym razie
> w populacji funkcjonuje kilka grup dobrych ale istotnie różnych rozwiązań,
> których
> krzyżowanie działa degenerująco, nie ma potencjału rozwojowego, a idzie na
> to
> masa energii (czyt: masa procesora pożarta na generowanie międzygrupowych
> degeneratów).
Ano tak jest z algorytmami genetycznymi. Krzyzowanie dwoch dobrych
rozwiazan daje trzecie kompletnie zdegenerowane...
Czesto, aby pokazac nieudolnosc AG, posluguje sie pewnym prostym
zadaniem. Zadanie polega na maksymalizacji pewnej funkcji. Funkcja
ta ma dwa maksima specjalnie rozmieszczone daleko od siebie.
Funkcja jako argument pobiera ciag bitow, zlicza ile jest jedynek i
ile zer, a potem zwraca ilosc tego czego bylo wiecej. Np. dla ciagu
00011 funkcja zwraca wartosc 3, a dla 11110 zwraca wartosc 4.
Ten pomysl, jesli jest sluszny, powinien szybko doprowadzic do
wytworzenia sie dwoch gatunkow - jednego w poblizu samych zer a
drugiego poblizu samych jedynek. Kazdy gatunek tworzy sie w
okolicach swojego maksimum. Wydaje sie ze jest to idealny
problem z ktorym poradzi sobie ten pomysl - ale nie wiem,
tak sie tylko wydaje.
Moze zrob taki eksperyment? Trzeba kazdy algorytm
odpalic tysiace razy na losowej populacji i podac srednia ilosc
wywolan funkcji celu dla obu algorytmow, zanim w procesie
uczenia osiagna maksimum - czyli zanim osiagna same
jedynki albo same zera.
> Strasznie długie to zdanie, ale może ktoś rozumie ... :)
Bez problemu mozna zrozumiec :)
Pozdrawiam
-
22. Data: 2011-07-01 08:06:44
Temat: Re: wy?arzanie
Od: "sielim" <s...@t...tez.wp.pl>
Użytkownik "Mariusz Marszałkowski" <m...@g...com> napisał w wiadomości
news:d34710db-c8b0-42a8-ac73-a8efe8ba17a4@eb1g2000vb
b.googlegroups.com...
> Moze zrob taki eksperyment? Trzeba kazdy algorytm
> odpalic tysiace razy na losowej populacji i podac srednia ilosc
> wywolan funkcji celu dla obu algorytmow, zanim w procesie
> uczenia osiagna maksimum - czyli zanim osiagna same
> jedynki albo same zera.
... ha, żeby mi płacili za takie eksperymenty, to plany miałbym znacznie
ambitniejsze :)
Ale może znajdę trochę czasu ...
Na chwilę obecną nie mam pomysłu (ale się nad tym głębiej nie
zastanawiałem),
jak zmusić funkcję oceny do tego, żeby robiła wskazaną wcześniej przeze mnie
'promocję' - czyli żeby za szybko nie wycinała niszowych gatunków, ale też
ich nie
ch(?)ołubiła za bardzo.
Mamy taką sytuację, że zaczyna się kształtować jakiś podgatunek i trafił w
okolice
jakiegoś ekstremum, ale jest dużo dalej od optimum, niż inne, wcześniej
powstałe
gatunki (funkcjonujące wokół innych ekstremów). Zastanawiam się, jak
wbudować
w AG proces decyzyjny, który będzie rozstrzygał, czy warto daną niszę
chronić
i drążyć temat, czy pozwolić podgatunkowi wymrzeć - i zrobić to tak, żeby
nie
zwiększać złożoności obliczeniowej.
Tak mi w trakcie pisania wpadło do głowy: oceniać średni postęp w stosunku
do wyników z poprzedniej iteracji. Tylko tu się pojawia problem taki, że
chciałbym to tak zaimplementować, żeby granice między (pod)gatunkami/rasami
nie były zbyt sztywne, żeby się same pogłębiały (lub nie). Tak więc
przynależność
do gatunku byłaby oceniana na podstawie nie jednego parametru, ale całego
ich zestawu
(nazwałbym to 'facjatą osobnika' - czyli zestawem cech fenotypowych, które
on eksponuje na zewnątrz, a jednocześnie posiada też swoje preferencje,
czyli zestaw cech oceniających facjaty innych osobników i na tej podstawie
wyliczajacy swoją skłonność do krzyżowania się z nimi). To trochę komplikuje
temat - jak ocenić, czy to osobny gatunek, czy jeszcze ciągle ten sam.
W naturze działa to jakoś tak, że po pierwsze mamy wielokryterialną, słabo
zdefiniowaną i ewoluującą funkcję(funkcje) oceny - co cieżko przenieść
na grunt, w którym dokładnie wiemy, co chcemy osiągnąć.
Ale jest jeszcze jedna sprawa: w naturze istnieje np. pojęcie ograniczeń
geograficznych,dryfu genetycznego i mobilności osobników - i tu by
już można się zastanowić nad sensem wprowadzenia takiego zjawiska.
Obie te sprawy powodują naturalną bezwładność procesu wymierania
nisz - wymierają one dopiero, kiedy jakiś już wyraźnie inny gatunek
(z którym się nie krzyżują) wchodzi na ten sam teren i rywalizuje w podobnej
przestrzeni oceny (jest oceniany wg. powiedzmy podobnych kryteriów,
rywalizuje w dostępie do tych samych zasobów) lub z jakicholwiek innych
powodów w okolicy będącej w zasiegu danego osobnika nie ma odpowiednich
partnerów do krzyżowania.
I takie tam :) Pewnie w innym życiu :)
Tematy zresztą chyba nie są jakieś odkrywcze, pewnie by się znalazła
literatura, w której podobne sprawy już badano.
Dla mnie osobiście najciekawsze w tym jest nie tyle szybkie wykrycie
optimów, co bardziej sam temat powstawania gatunków. Pokazanie,
że nawet w populacjach, które nie są specjalnie izolowane, mogą
się samoistnie pojawiać niezależnie ewoluujące gatunki - tylko do tego
prawdopodobnie jest potrzebna wielokryterialna funkcja oceny,
być może jakaś zmienna funkcja oceny zależna od lokalizacji geograficznej
(ale niekoniecznie nieciągła, nie spieszy mi się do wprowadzania w ocenę
elementu gwałtownych zmian, będących np. odpowiednikiem gwałtownej
zmiany środowiska - jak plaża i morze) oraz ten aspekt ewoluujących
preferencji osobistych u osobników.
-
23. Data: 2011-07-01 11:39:32
Temat: Re: wy?arzanie
Od: "sielim" <s...@t...tez.wp.pl>
Użytkownik "Grzegorz Wądzik." <g...@u...com> napisał w
wiadomości news:4613685.JppYqQ8rBU@2011...
> Ja bym zrobil tak. Na poczatku zalozyl kilkaset gatunkow i powiedzial, ze
> wprawdzie mozna zmieniac gatunek, ale nie za bardzo. Jesli gatunek przez
> jakis tam czas nie wylezie z grajdolka to albo zostaje, albo umiera i w
> ogole sie nim nie zajmujemy. Taka graniczna wielkosc trzeba by ustalic
> jako
> procent.
>
> Jako porownanie masz normalne modyfikacje nie podlegajace tym
> ograniczeniom
> (zakres i wymieranie). I juz da sie policzyc w miare dokladnie , ktory
> jest
> efektywniejszy. Lepiej/szybciej znajduje rozwiazanie. Jesli srodowisko sie
> nie bedzie zmieniac masz dobre przyblizenie.
Tak, pomysł jest bardzo prosty, dobrze by się go dało zgrać z ideą
preferencji:
początkowo preferencje ustawiamy jako słabe, a zróżnicowanie maksymalne
(praktycznie
każdy osobnik ma inną facjatę, ale prawie nie zwraca uwagi na to, z kim się
krzyżuje),
a potem już zarówno preferencja jak i cechy facjat ewoluują bez ingerencji.
Ewentualny
zakaz krzyżowania powinien wyewoluować w tych warunkach samodzielnie.
Zupełnie to 'nienaturalne' z punktu widzenia złożonych organizmów, ale z
punktu widzenia
pierwotnych pra-bakterii itp wygląda to chyba nawet dość realistycznie.