Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[MEKRAC] 4. domaća zadaća - 2021/2022

Tompa007

Zasto mi na genetskom algoritmu toliko jako varira rjesenje s razlicitim pocetnim populacijama ? kvadratna greska mi je minimalna za ta rjesenja a toliko su razlicita. (4 zadatak labos)

napprimjer:

  1. [1.8594551075230257, -2.450156112139978, -3.6778627269646282, 1.1547754888624002, -0.34301607811600743]
  2. [0.23778191882743815, -0.05369462915239609, -0.24912500576810892, -2.7367321448894275, 0.3173651304683647]
    greske za oba su manje od 0.01

micho

𝐓𝐇𝐄 𝐒𝐄𝐂𝐑𝐄𝐓 - 𝐂𝐋𝐔𝐁 Vjv jer ima više lokalnih minimuma, a inicijalizacija početne populacije je dovoljno stohastička za problem da utječe na konačan rezultat


Tompa007

M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽ kojim parametrima bi mogao smanjiti stohasticnost bez preuranjenog konvergiranja?
Koji su inace optimalni parametri za vjerojatnost mutacije? ja koristim 10%, selection mi je 3-k turnir, pocetna populacija 200,

odnosno jel ovo sto zasad imam gdje svaki put dobijem neko novo rjesenje sa dosta malom greskom okej kao rjesenje ?


Ducky

jel smijemo koristit ga ili pygad u pajtonu?


tonkec

𝐓𝐇𝐄 𝐒𝐄𝐂𝐑𝐄𝐓 - 𝐂𝐋𝐔𝐁 prevelika populacija (probaj 50) i prevelika mutacija (probaj 1 promil)


micho

𝐓𝐇𝐄 𝐒𝐄𝐂𝐑𝐄𝐓 - 𝐂𝐋𝐔𝐁 S ovim što si rekao probaj smanjiti populaciju, makar mislim da ta raznolika rješenja nisu problem sama po sebi.

Ja sam svojevremeno radio simulacije i s populacijom od 10, pa sam opet dobivao dovoljno dobre rezultate:

# Rješenje 1. [0.3712056, -0.12289254, 3.5152062, 1.31750053, -1.32588974] (MSE = 6e-7, 1000 iteracija)
# Rješenje 2. [0.37028343, -0.11768803, 3.46963318, 1.31324859, -1.32198286] (MSE = 1e-2, 1000 iteracija)

Moja rješenja su često konvergirala u ovaj specifični minimum, ali možda zato što sam ja imao jako dobru custom mutaciju, prije nje su išle u sve i svašta.


Tompa007

jeste ko globalni optimum dobili
[0.3713013148200785, -0.1196418836174594, 3.49322171792782, 1.3132657932434397, -1.3201762288567955]



Cubi

𝐓𝐇𝐄 𝐒𝐄𝐂𝐑𝐄𝐓 - 𝐂𝐋𝐔𝐁 Dobivao sam osim tog još neke minimume vjerojatno zbog periodicnosti sinusa

[0.3716098375679594, -0.12266472245630115, 3.5162387906120154, 1.3177075521853587, -1.3261765840444857] with loss: 1.6671128739085025E-7
[2.770784293503402, 0.12256865363848134, 3.5176495287161345, 1.317469740599704, -1.3253394282893025] with loss: 2.9374046879972064E-7
[-3.5124331864338245, 0.1225424381149127, 3.5177726467507826, 1.3174557388358044, -1.3249290266495395] with loss: 3.018603846283212E-7

bodilyfluids

angello2 jel pod to mislis na crossover? koristio sam krizanje s jednom tockom prekida

Rezultati su vrlo slicni ovima Cubi


feel_d_boot

Ja tek sad kužim da “normalni” roulette wheel selection funkcionira tako da je veća vjerojatnost da odabire jedinke s većom vrijednosti funkcije dobrote, no s obzirom da mi ovdje radimo s funkcijom kazne što je MSE, kako implementirati roulette wheel selection da zapravo uzima to u obzir?


Jaster111

iNut
new_errs = [i-np.min(errors)+0.0001 for i in errors]
probabilities = [i/np.sum(new_errs) for i in new_errs]

Gdje je varijabla errors zapravo numpy array funkcija kazne za svaku jedinku. U probabilities onda dobijemo da negativna vrijednost najbliža nuli dobije najveću vjerojatnost.


Jaster111

Btw jel netko može objasnit riječima ili pseudokodom kako funkcionira troturnirska selekcija za eliminacijski algoritam?Nisam ni u prezentaciji ni u knjizi baš pronašao nešto detaljno objašnjeno.


bodilyfluids

Jaster111 kao inace, ima bezbroj varijanti.
Moguce rjesenje: nasumicno odabrati 3 jedinke, ubiti onu s najlosijim fitnesom, od preostale dvije napravit novo dijete i njega ubaciti u populaciju


feel_d_boot

Dragi prijatelj strojnog učenja
Je li ispravno ako bismo m puta izbacili najgoru od 3 nasumično izabrane jedinke iz populacije pa bismo onda tek krenili s nadopunjavanjem populcije novim jedinkama?
Odnosno ako je moratlitet 50%, a veličina populacije 50 jedinki, izbacimo 25 jedinki pa onda tek krenemo s popunjavanjem da nam populacija opet ima 50 jedinki?


Rene

Dragi prijatelj strojnog učenja mene buni sto je u tom slucaju “iteracija”, tj. ako je mortalitet 50% znaci da je jedna iteracija kada 50% populacije zamjenimo s djecom pobjednika turnira?
Tj. s obzirom da cuvamo samo jednu populaciju i nju mijenjamo, moguće je npr. da dijete koje si ubacio nakon ovog turnira izaberes u sljedecem turniru i izbacis kao najlosiju jedinku od te 3?


bodilyfluids

iNut može i to


micho

iNut Tako ćeš vjerojatno dobiti manji selekcijski pritisak, i semantički je to točnije. Generalno ne želiš imati veliki selekcijski pritisak da ga ne moraš kompenzirati jakom mutacijom


bodilyfluids

Rene postoje algoritmi koji rade s dvije generacije (populacije), trenutnom i “budućom”, to su tzv. generacijski GA. Pri radu s njima jedna iteracija znači stvaranje nove generacije iz stare.

Druga vrsta bi bila steady-state GA koji rade s jednom populacijom, u njima odabereš dva roditelja koja stvore dvoje djece, roditelji se brišu, a djeca se umeču. Jedno ponavljanje navedenog je jedna iteracija. Ovo možeš i shvatiti kao ajmoreć “eliminacijski” GA jer brišeš jedinku i na njeno mjesto stavljaš novu. Ipak, bitna razlika je da eliminacijski GA briše jedinku jer ima malen fitness, dok steady-state GA briše roditelje, a oni imaju velik fitness. Dakle roditelji nastave živjeti kroz svoju djecu, dok se u eliminacijskom GA loša jedinka briše bez da prenese svoje gene.

Poanta priče, nedajte se zbuniti. Postoji puno terminologije koja je isprepletena i glavna stvar za shvatiti je da svaka komponenta GA ima više implementacija, svaka sa svojim prednostima i manama.


bodilyfluids

Rene
Da odgovorim na pitanje…

mene buni sto je u tom slucaju “iteracija”, tj. ako je mortalitet 50% znaci da je jedna iteracija kada 50% populacije zamjenimo s djecom pobjednika turnira?

Ovo je ok, možda bi imalo smisla djecu dobivenu u jednoj iteraciji držati u priručnoj strukturi koju ćeš spojiti s populacijom tek na kraju iteracije. To bi onemogućilo da dijete u istoj iteraciji bude stvoreno i eliminirano.


Sljedeća stranica »