Okej, ovo mi je posljednji pokušaj prije nego odustanem od ove zadaće jer sam previše vrimena potratija na nju, ko odgovori da odgovori, pomoć će uvelike. Da počnem, za primjer uzmimamo da imam mrežu arhitekture 2×8×3
Dakle ovih 8 neurona je neuron tipa 1. Mene sad zanima, ima li svaki neuron po 2 težine i 2 s-a pošto ima 2 ulaza?
Nadalje, kad treniram model, ja izvučem sve težine iz svih neurona u stavim ih u jedan flat vektor, dakle to je numpy array oblika (num_of_params, ) te je to jedna jedinka populacije koju ću izgenerirati.
Kako koristim eliminacijsku selekciju, koraci su mi sljedeći:
Eliminiraj M posto jedinki iz populacije koristeći 3-turnirsku selekciju tako da gledaš MSE za svaki generiranu mrežu u populaciji te će np.random.choice() odabrati 3 najvjerojatnije jedinke. Od te 3 jedinke, argmax-om se odabere ona s najvećom greškom te se izbaci iz populacije. Postupak se ponavlja dok god nije ukoonjeno M posto jedinki iz početne populacije.
Nadalje kad se to izvrši, obnavljam populaciju na način da skroz nasumično iz populacije odaberem 2 roditelja te obavim operaciju križanja i mutacije nad njihovim djetetom. To dijete onda dodam u populaciju (roditelje ne uklanjam) te se to ponavlja dok mi se broj jedinki u populaciji ne vrati na zadani pop_size nakon čega ide ponovno uklanjanje jedinki kao što je opisano gore.
Moj problem je što mi je početna greška najbolje jedinke u populaciji uvijek oko 0.65 te se nakon 10, 100 ili 1000 iteracija, greška najbolje jedinke neće spustiti ispod 0.62 ili 0.61, uglavnom ispod 0.6 ne ide, ne virujem da mi svaki put zapinje u lokalnom minimumu ili da trebam pustiti da se duže vrti jer već nakon 10ak iteracija se greška najbolje jedinke mijenja u 5 ili 6 decimali, dakle nezamjetno.
Eto moj problem, ja sumnjam na to da je problem možda u mom evolucijskom postupku, no ne znam, otvoren sam za sve prijedloge.
Jel itko imao ovakav problem čisto da mogu ovaj labos skiniti s kurca.