środa, marca 10, 2010

Rankingi, to nie takie proste ;-)

Zauważyliście jak lubimy znaki > i <?
Ubóstwiamy wprost wszystko klasyfikować i określać jako lepsze lub gorsze.

Powstają rankingi szkół, ludzi, samochodów, tosterów, dysków, komputerów, samolotów, statków..... ogólnie wszystkiego.

Taka nasza ludzka natura.

Jednak wartościowanie ma takie małe "ale" wpisane w swoje reguły. Może odbywać się tylko wtedy gdy da się ustawić wszystkie wartościowane elementy w kolejce tak że zaczniemy np. od najgorszego, a skończymy na najlepszym i o każdym z elementów da się powiedzieć, że jest lepszy lub gorszy [ewentualnie taki sam] jak jakiś inny element.
I tu się zaczynają problemy ;-)

No bo jeżeli możemy stwierdzić, że 6 jest mniejsze od 7, to już nie da się powiedzieć czy 6 jest mniejsze od 7i, albo tego który z poniższych "bloczków" jest większy [oba mają powierzchnię 8 cm kwadratowych].


8 cm2


8 cm2


Ogólnie gubimy się gdy istnieje kilka sposobów na ułożenie rankingu, lub gdy nie istnieje żaden jasny sposób na to.
Np. co jest lepsze, człowiek czy E. coli? Albo co jest bardziej zaawansowane człowiek czy żaba? Z automatu mówimy, że człowiek lepszy lub bardziej zaawansowany, ale przyjmujemy wtedy bardzo antropocentryczną skalę na szczycie której jesteśmy my.

O ten problem często rozbijają się ludzie zajmujący się algorytmami genetycznymi [ale nie tylko ;-)]. Same algorytmy genetyczne pozwalają nam szybko [szybciej niż inne metody] wyszukać rozwiązanie pewnych problemów gdyż w odróżnieniu do np. błądzenia losowego, albo prostego iterowania po wszystkich możliwych rozwiązaniach, nie przeszukują całej przestrzeni możliwych rozwiązań, a raczej tylko przestrzeń rozwiązań sensownych. Stąd wydaje się, że np. algorytmy genetyczne świetnie mogłyby się nadawać np. do łamania szyfrów. Przecież większość możliwych rozwiązań jest bez sensu, więc wystarczyłoby szukać tylko wśród rozwiązań sensownych.
Sęk właśnie w tym, że algorytmy genetyczne potrzebują tego by poszczególne rozwiązania dało się uszeregować wg. ich "dobroci", rozwiązania lepsze powinny mieć wyższą ocenę od tych gorszych. Dzięki temu do następnego pokolenia przejdzie statystycznie więcej tych dobrych.... tylko problem jest taki jak w przypadku takich szyfrów odróżnić które rozwiązanie jest lepsze, a które gorsze? Odszyfrowana wiadomość może być odszyfrowana poprawnie lub niepoprawnie, rozwiązanie pierwsze jest bardzo mało prawdopodobne, a to drugie o wiele bardziej ;-) a same złe rozwiązania wydają się być tak samo złe.

Dlatego algorytmy genetyczne świetnie sobie radzą w pewnych obszarach, a w innych już nie. Gdy udaje się uszeregować zawodników to AG działają świetnie.
Nie ma się zresztą co dziwić ;-) AG to przeniesienie do świata komputerów zasad natury, a w naturze ewolucja działa tak, że promowane są te rozwiązania, które potrafią się najlepiej mnożyć. My to wykorzystujemy w AG i określając "dobroć" rozwiązania określamy jak dużą będzie miało szansę na rozmnożenie się.
Wykorzystujemy to, że zamiast sprawdzać wszystkie możliwe układy sprawdzamy tylko te które są wynikiem krzyżowania [+ mutowania] dobrych rozwiązań.
Ale żeby to było możliwe musimy umieć określić co jest lepsze, a co jest gorsze.

Natura radzi tu sobie dość "prosto" to co się replikuje jest z definicji lepsze, bo za funkcję przystosowania "robi" tu wynik eksperymentu pod tytułem "czy dany coś da radę się skopiować?". Gdy coś potrafi się skopiować bardziej skutecznie niż kolega to w następnym pokoleniu będzie więcej cosiów prim, a w kolejnym bis i tak dalej, niż jego mniej kopiowalnego kolegi.
Ale gdy my tego używamy to niestety musimy sami określić co powinno się lepiej kopiować.

Zwykle tego nie potrafimy ;-) i wtedy oszukujemy.
Jeżeli to co chcemy uszeregować ma kilka parametrów po których jesteśmy w stanie zbudować ranking nadajemy im wagi i szeregujemy po wyniku powstałym ze zsumowania iloczynów parametrów z ich wagami. Ale to nie zawsze działa.
Bo np. wzrost ceny [czemu zwykle nadajemy wagę ujemną ;-)] wpływa liniowo na naszą ocenę tylko w pewnym zakresie. Gdy kupujemy bułkę, to jesteśmy w stanie zapłacić 2 razy więcej za większą i smaczniejszą bułkę, ale gdy bułka będzie nawet 5 razy smaczniejsza możemy mieć opory przed zapłaceniem za nią 10 razy więcej.
Albo gdy mamy 2 programistów, oboje dobrych, ale jedno z tych programistów ma świetne pomysły, które dają dużo pieniążków, jednak problemy z trzymaniem porządku w kodzie i pewną niedbałością przekładającą się na gorszą jakość kodu, a drugie pomysłów nie ma, ale pisze ładny i czytelny kod, który zwykle jest bezbłędny. Które z tej dwójki jest lepsze?
OK, to nie jest najlepszy przykład ;-) bo mamy tutaj dość dobrą funkcję agregującą czyli to ile która z tych osób przyniesie pieniędzy firmie. Jeśli nasz pomysłowy i bałaganiarski developer doda do kodu funkcje, które pozwolą zarobić 1 mln złotych, a drugi swoim zgrabnym pisaniem zaoszczędzi 100 tysięcy to mamy prosty sposób na ocenę.
Gdy mamy tylko 2 parametry, które są w pewien sposób sprzeczne to mamy łatwo, bo możemy użyć ilorazu. Świetnie znany wszystkim miłośnikom komputerów współczynnik jakoś/cena jest taki. Ale on bazuje na tym, że już jakoś tą jakość oceniliśmy ;-)

Wracając do ceny, cena jest dobrym sposobem na szeregowanie niektórych rzeczy. Np. możemy stworzyć ranking uczelni w danym mieście czy kraju mierząc średnią zarobków absolwentów, choć można tu budować tylko rankingi per specjalizacja/kierunek. Zapewne przeciętny absolwent medycyny po 10 latach zarabia mniej w przeliczeniu na godzinę pracy od przeciętnego absolwenta informatyki, jednak mimo wszystko wydaje się, że lekarz jest jednak bardziej wartościowy. W ostateczności lekarz może zostać programistą, ale programista z zostaniem lekarzem może mieć pewne problemy ;-)
Pewnie nie jeden ekonomista mógłby dużo opowiedzieć o cenie, ważne jest to, że jest ona wynikiem kolektywnej decyzji rynku, dzięki czemu mamy tu mądrość tłumu w działaniu. Czyli nie ma jakiejś pojedynczej formuły na szeregowanie, ale istnieje ich wiele i dopiero ich uśredniony wynik daje jakieś w miarę rozsądne rezultaty.

[btw. tu dotarłem do ściany bo choć o tym wpisie myślałem już od jakiegoś czasu nigdy nie umiałem znaleźć przyczyny tego czemu chcę go napisać ;-)]

Ogólnie rzecz ujmując, rankingi jako takie są zawsze subiektywne, opierają się na jakichś założeniach. Anemia sierpowata jest "zła", ale chroni przed malarią więc bycie chorym na anemię sierpowatą w niektórych rejonach świata oznacza de facto większe szanse na dożycie etapu gdy się będzie miało potomstwo niż szanse na to samo kogoś kto anemii sierpowatej nie ma. Siłą rzeczy w tych rejonach jest więcej ludzi z anemią sierpowatą niż w innych rejonach świata. "Po prostu" ich przodkowie byli lepsi w zostawianiu potomstwa i choć chorzy to jednak dorobili się go więcej niż zdrowi, których zabiła jeszcze przed spłodzeniem potomstwa malaria.

Istotne jest to, że bez przyjęcia założeń o tym wg. czego zbudujemy nasz ranking nie możemy powiedzieć czy to jest coś "dobrego" czy "złego". To tak samo jak z tym 6 i 7i, czy nawet 7 i 7i, albo 7 i -7i. Gdy przyjmiemy jakiś sposób szeregowania to wtedy uda nam się je uszeregować, ale to szeregowanie będzie tylko naszym założeniem. Przez to nie da się powiedzieć czy człowiek jest lepszy od żaby. Z punktu widzenia człowieka tak, z punktu widzenia żaby nie. Z punktu widzenia kosmity zapewne też, ale tu też przyjmuję, że kosmici podobnie jak my uznaliby wyższy intelekt i wyższą samoświadomość za bardziej wartościowe.

Ewolucja ma prościej ;-) "Robi kopie?" To dobrze, niech robi, jak będzie lepsze w robieniu kopi i wykorzystaniu zasobów to przegoni inne replikatory i będzie rosło. A, że jak jeden replikator zaczyna być lepszy od innych to po pewnym czasie cała zabawa powtarza się wśród jego kopi i konieczne jest kolejne "usprawnienie", które pozwoli na lepszą konkurencję z kolegami, albo na przerzucenie się na zasoby, których koledzy nie używają.
My musimy jednak robić założenia i warto czasem pamiętać, że wartościowanie jest czynnością całkowicie subiektywną ;-)


Podobne postybeta
Dobór naturalny, albo my
Teoria ewolucji vs hipoteza kosmicznych siewców życia vs hipoteza kreatora vs hipoteza kreatora na młodej Ziemi - mecz przy pomocy Bayesa :-)
Czy rynek z automatycznymi systemami transakcji to jeszcze rynek?
Prześladowcy ;-)
Algorytmy Genetyczne szukają Symbolu Newtona ;-)