Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
svračak Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=4999&c=2)
Pridružen/a: 10. 02. 2011. (01:29:18) Postovi: (2)16
|
Postano: 15:26 čet, 16. 8. 2012 Naslov: generalni interpolacijski problem |
|
|
Bok ekipa, imam problemčić generalni koji me zanima. U naprijed samo kažem da nisam na PMF-u, ali mi se čini da bi ovdje mogli najbolje znati odgovor na pitanje.
Znači, imam varijabilno veliki set brojeva iz skupa N (tipični broj elemenata između 10-200x10^3) za koje bih htio napraviti funkciju, niz ili relaciju koja bi ih sve opisivala. Svi brojevi su cijeli, što znači da je preciznost nužna unutar određene decimale (recimo da je 5 sve od 4.5-5.49) i sa time da mora biti garantirano da dotična funkcija, relacija ili niz prolaze kroz SVE zadane točke, da ne proizvodi nepostojeće vrijednosti između prvog i zadnjeg elementa i nebitno je kakve vrijednost generira nakon posljednjeg elementa ili prije prvog. Set nije linearan, niti pravilno oscilirajući ili polinomski.
Da li postoji neka generička metoda sa kojom se dakle može napraviti fit, ali da ne bude polinomska metoda jer mislim da je jasno da nema smisla imati polinom reda 100k? Ono što znam jest da bih definitivno mogao napraviti nekakvu neuronsku mrežu koja bi ih sve naučila, ali to je dosta skupo što se tiče CPU-a, pa me zanima da li postoje neke jednostavnije metode (ovako ad hoc se kladim da ima neke veze sa gaussom ). Puno hvala na svakoj pomoći!
Bok ekipa, imam problemčić generalni koji me zanima. U naprijed samo kažem da nisam na PMF-u, ali mi se čini da bi ovdje mogli najbolje znati odgovor na pitanje.
Znači, imam varijabilno veliki set brojeva iz skupa N (tipični broj elemenata između 10-200x10^3) za koje bih htio napraviti funkciju, niz ili relaciju koja bi ih sve opisivala. Svi brojevi su cijeli, što znači da je preciznost nužna unutar određene decimale (recimo da je 5 sve od 4.5-5.49) i sa time da mora biti garantirano da dotična funkcija, relacija ili niz prolaze kroz SVE zadane točke, da ne proizvodi nepostojeće vrijednosti između prvog i zadnjeg elementa i nebitno je kakve vrijednost generira nakon posljednjeg elementa ili prije prvog. Set nije linearan, niti pravilno oscilirajući ili polinomski.
Da li postoji neka generička metoda sa kojom se dakle može napraviti fit, ali da ne bude polinomska metoda jer mislim da je jasno da nema smisla imati polinom reda 100k? Ono što znam jest da bih definitivno mogao napraviti nekakvu neuronsku mrežu koja bi ih sve naučila, ali to je dosta skupo što se tiče CPU-a, pa me zanima da li postoje neke jednostavnije metode (ovako ad hoc se kladim da ima neke veze sa gaussom ). Puno hvala na svakoj pomoći!
|
|
[Vrh] |
|
vjekovac Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=77&c=731)
![](images/avatars/133495534344917880a6f58.gif)
Pridružen/a: 23. 01. 2003. (18:26:55) Postovi: (2DB)16
Spol: ![kućni ljubimac kućni ljubimac](images/gender/pet.gif)
|
Postano: 19:58 čet, 16. 8. 2012 Naslov: |
|
|
Mislim da nisam dovoljno kompetentan dati kvalitetan odgovor na ovo pitanje. Svejedno, rekao bih da je problem suviše općenito postavljen da bi se o njemu išta netrivijalno uopće moglo reći. Zbog toga bih sugerirao da malo specificirate svoje pitanje pomoću jednog od tri dolje navedena prijedloga. Tada će se zasigurno naći ljudi koji će znati predložiti zanimljiva rješenja, bila ona standardna ili ne.
1) Specificirati oblik funkcije (tj. niza) koja treba opisivati dani skup brojeva. Sasvim općenitu funkciju ne možete spremiti nikako efikasnije nego naprosto kao niz njenih vrijednosti. Ukoliko baš želite imati zatvorenu formulu, onda je jedno rješenje polinomijalna interpolacijska formula, ali kao što ste primijetili, ona je sasvim nekorisna za veliki broj točaka.
Tipično se u takvim problemima ograničava na polinome malog stupnja, moguće dokomponiranih s eksponencijalnom ili kogaritamskom funkcijom. Tada se naravno ne može zahtijevati podudaranje u svim točkama nego se nastoji minimizirati greška (u nekom smislu, npr. najmanjih kvadrata itd).
2) Reći nešto više o obliku skupa koji je zadan. Da li je u bilo kojem smislu pravilan, ili je pak (kao drugi ekstrem) generiran slučajno obzirom na neku razdiobu. Tada se može bolje predložiti oblik funkcije koja opisuje niz. Naravno, u drugom slučaju je greška neizbježna.
3) Što predstavlja stvarni računski problem (u smislu korištenja procesora i memorije): kodiranje niza funkcijom ili pak efikasno računanje niza iz formule za funkciju? Naprimjer, možda možete jednokratno potrošiti mnogo vremena na generiranje opisujuće funkcije, npr. nekom heurističkom metodom nakon koje svaki put provjeravate da li ste pokrili sve članove skupa, što može biti jako sporo.
Mislim da nisam dovoljno kompetentan dati kvalitetan odgovor na ovo pitanje. Svejedno, rekao bih da je problem suviše općenito postavljen da bi se o njemu išta netrivijalno uopće moglo reći. Zbog toga bih sugerirao da malo specificirate svoje pitanje pomoću jednog od tri dolje navedena prijedloga. Tada će se zasigurno naći ljudi koji će znati predložiti zanimljiva rješenja, bila ona standardna ili ne.
1) Specificirati oblik funkcije (tj. niza) koja treba opisivati dani skup brojeva. Sasvim općenitu funkciju ne možete spremiti nikako efikasnije nego naprosto kao niz njenih vrijednosti. Ukoliko baš želite imati zatvorenu formulu, onda je jedno rješenje polinomijalna interpolacijska formula, ali kao što ste primijetili, ona je sasvim nekorisna za veliki broj točaka.
Tipično se u takvim problemima ograničava na polinome malog stupnja, moguće dokomponiranih s eksponencijalnom ili kogaritamskom funkcijom. Tada se naravno ne može zahtijevati podudaranje u svim točkama nego se nastoji minimizirati greška (u nekom smislu, npr. najmanjih kvadrata itd).
2) Reći nešto više o obliku skupa koji je zadan. Da li je u bilo kojem smislu pravilan, ili je pak (kao drugi ekstrem) generiran slučajno obzirom na neku razdiobu. Tada se može bolje predložiti oblik funkcije koja opisuje niz. Naravno, u drugom slučaju je greška neizbježna.
3) Što predstavlja stvarni računski problem (u smislu korištenja procesora i memorije): kodiranje niza funkcijom ili pak efikasno računanje niza iz formule za funkciju? Naprimjer, možda možete jednokratno potrošiti mnogo vremena na generiranje opisujuće funkcije, npr. nekom heurističkom metodom nakon koje svaki put provjeravate da li ste pokrili sve članove skupa, što može biti jako sporo.
|
|
[Vrh] |
|
svračak Forumaš(ica)
![Forumaš(ica) Forumaš(ica)](dyck.php?id=4999&c=2)
Pridružen/a: 10. 02. 2011. (01:29:18) Postovi: (2)16
|
Postano: 14:51 pet, 17. 8. 2012 Naslov: |
|
|
Da, svjestan sam problema općenitosti (što je samo za ebe problem), no na žalost problem i jest takve prirode.
1) set brojeva nema nikakav fiksni oblik, te unatoč tome što nisu nasumično generirani, praktično se mogu tretirati kao "random walk". Dapače, upravo zbog toga razmatram da l ibi se ti setovi dali opisati ovako nečime http://en.wikipedia.org/wiki/Fractional_Brownian_motion
2) Greška ne smije postojati osim na razini decimalne točke, ali ne smije se unutar intervala pojaviti niti jedan element koji tu ne pripada, niti se koji smije izostaviti. Doslovno niti jedan jedini. Eventualna iznimka bi bila ako bi znal ida će maksimalni broj grešaka biti malen što bi omogućilo implementaciju nekakvog sustava detekcije i korekcije greške, ali bih to htio izbjeći.
3) Ideja je da je funkcija/niz kao takva uvijek isti, ali da se mijenjaju koeficijenti koji bi se računali (recimo koeficijenti u gore spomenutom fBm). Drugim riječima, nije moguće generirati jednom i provjeravati za sve slučajeve. Problem kalkulacija koristeći neuronske mreže je veličina skupa koji obrađuje. Iako je moguće ubrzati stvari koristeći kaskadne metode, i dalje je sve to dosta suboptimalno.
Da, svjestan sam problema općenitosti (što je samo za ebe problem), no na žalost problem i jest takve prirode.
1) set brojeva nema nikakav fiksni oblik, te unatoč tome što nisu nasumično generirani, praktično se mogu tretirati kao "random walk". Dapače, upravo zbog toga razmatram da l ibi se ti setovi dali opisati ovako nečime http://en.wikipedia.org/wiki/Fractional_Brownian_motion
2) Greška ne smije postojati osim na razini decimalne točke, ali ne smije se unutar intervala pojaviti niti jedan element koji tu ne pripada, niti se koji smije izostaviti. Doslovno niti jedan jedini. Eventualna iznimka bi bila ako bi znal ida će maksimalni broj grešaka biti malen što bi omogućilo implementaciju nekakvog sustava detekcije i korekcije greške, ali bih to htio izbjeći.
3) Ideja je da je funkcija/niz kao takva uvijek isti, ali da se mijenjaju koeficijenti koji bi se računali (recimo koeficijenti u gore spomenutom fBm). Drugim riječima, nije moguće generirati jednom i provjeravati za sve slučajeve. Problem kalkulacija koristeći neuronske mreže je veličina skupa koji obrađuje. Iako je moguće ubrzati stvari koristeći kaskadne metode, i dalje je sve to dosta suboptimalno.
|
|
[Vrh] |
|
|