Anonymní profil Petr Šlechta – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Petr Šlechta – Programujte.comAnonymní profil Petr Šlechta – Programujte.com

 

Příspěvky odeslané z IP adresy 92.62.229.–

Petr Šlechta
Matematika › Neuropočítač
31. 8. 2015   #204644

#16 Kit

Observer? Nezlob se, ale to mi nepřijde úplně ono. Za prvé, v tom učení to chce trochu dopilovat po matematické stránce (základ je podle mě dobře, ale má to mouchy, zatím se třeba všechny neurony učí totéž, chce to si s tím ještě chvíli hrát, ale já mám teď bohužel celkem horší problémy). Jak se přesně napíše ten for cyklus, to mi přijde celkem jako detail. A za druhé, ten observer mi přijde o něčem jiném - tam se na existující objekty registrují posluchači, kteří chtějí reagovat na jejich změny. Jenže ten neuron se má učit sám, váhy mu nemá měnit někdo zvenčí. Sám si je musí měnit. Observer by se mi zdál třeba vhodný ke sledování, že se vybudil výstup neuronu, a podle toho by se např. spustil motor nebo tak.

Petr Šlechta
Matematika › Neuropočítač
30. 8. 2015   #204606

#14 Kit
Až se to bude dělat vícevrstvé (ten můj program řeší jen jednu vrstvu, vrstvení bude trochu jinak než normálně), tak bych to asi už dělal spíš objektově. Nejlíp asi v té Javě. Ale v céčku by to šlo taky, to je pravda.

Ad komentáře: Vím, že můj přístup není úplně obvyklý. Nechci nikoho přesvědčovat, aby ho používal. Já to tak dělám, protože mi to vyhovuje. Testy jsou fajn.

Petr Šlechta
Matematika › Neuropočítač
30. 8. 2015   #204597

To "Komentáře označují místa, kde programátor udělal chybu." je pěkné.

Petr Šlechta
Matematika › Neuropočítač
30. 8. 2015   #204596

#11 Kit
Asi se to těžko vysvětluje a možná je to i subjektivní, ale zkusím napsat svůj pohled. Vlastně máme asi pravdu oba. Kdyby ty programy měly dělat totéž, tak ten objektový bude přehlednější. Ale já jsem radši udělal jednoduchý program v céčku, který toho neumí tolik, ale ten algoritmus je v něm lépe vidět. Konkrétně jde hlavně o to, že nemám neurony jako objekty, které si můžu libovolně provazovat do složitějších struktur apod. To jsem v tom objektovém přístupu měl a je to docela potřeba. V tom céčku to není, tam je prostě spojený každý neuron s každým. Pro praktické použití je to obrovský handicap, ale ten algoritmus se mi na tom lépe zkouší a modifikuje.

S těmi komentáři je to složité. Vím, že jdu docela proti proudu. Já je radši píšu. Docela se mi to osvědčilo, ke každému větvení psát nějaké vysvětlení. Když se časem k programu vrátím, trochu to pomůže. A když nepomůže, lze komentář vylepšit. Když tam vůbec není, tak už tam nikdo nic dopisovat nebude. Když tam je, je alespoň nějaká šance. Ono se říká, že program se jednou píše a hodněkrát čte, tak se podle toho snažím řídit. Taky se pak dá za každé větvení dát logování a dobře se sleduje, kudy přesně program běžel. To už se mi docela vyplatilo, třeba při ladění programu s více vlákny. Ale jak říkám, vím, že v tomhle jdu dost proti proudu, tak nechci nikoho přemlouvat. Mně to prostě vyhovuje, tak to tak dělám.

Petr Šlechta
Matematika › Neuropočítač
23. 8. 2015   #204498

#9 Petr Šlechta
Musím se trochu opravit - já jsem to objektově začal, ale to bylo před lety a tenkrát jsem ještě používal úplně jiný algoritmus. Tenhle jsem objektově ani nepsal, ten už jsem psal rovnou v céčku. Takže přepsat to do Javy má z tohohle pohledu smysl. Akorát ten algoritmus je potřeba ještě dopilovat, takže to je možná trochu předčasná práce. Rozhodně se tím přepsáním do objektů získá to, že nebude muset být spojen každý neuron s každým. To je dost důležitá věc. To jo.

Petr Šlechta
Matematika › Neuropočítač
23. 8. 2015   #204497

#6 peter
Jinak, k mému způsobu psaní.

Asi záleží na vkusu. Já jsem to objektově schválně nepsal. Mám to jako od lopaty, aby to bylo jednoduché. Ono to slouží k testování algoritmu. Pořád jsem to přepisoval. Já jsem to nejdřív objektově začal, v Javě, ale pak jsem toho nechal. Hlavně jsem si od toho sliboval lepší čitelnost, ale byla spíš horší.

Jinak, ten if - já používám radši if-else než ?:. Důvod je ten, že ke každé větvi můžu napsat komentář. Mně to pomáhá, když se pak k programu po čase vracím.

Petr Šlechta
Matematika › Neuropočítač
23. 8. 2015   #204496

#4 Kit
Omlouvám se za delší odmlku, mám teď toho moc. Jsem moc rád, že jste se na to koukli. Popis, proč se tam co dělá, jsem zkusil doplnit na http://piitr.sweb.cz dolů. Jsou tam nějaké výpočty, na lepší vysvětlení nemám teď čas, ale doufám, že se k němu dostanu. Ještě kolem toho mám hodně nedořešených věcí.

Petr Šlechta
Matematika › Neuropočítač
21. 7. 2015   #203778

#1 Petr Šlechta
Jelikož to nebylo úplně přehledné, program jsem zjednodušil

Je úplně dole na http://piitr.sweb.cz/index.html

Přidal jsem tam i výstup programu.

Posloupnost pěti vstupů to rozezná docela spolehlivě - výstup je asi 200x vyšší než normálně.

Petr Šlechta
Matematika › Neuropočítač
21. 7. 2015   #203750
Petr Šlechta
Matematika › Neuropočítač
21. 7. 2015   #203749

Ahoj, hraju si poslední dobou s umělými neuronovými sítěmi a vymyslel jsem si takový fajn algoritmus.

Co myslíte, mohlo by to k něčemu být?

Zatím to nemám popsané, mám jen program, přesné vysvětlení ještě dopíšu, ale ono to není složité.

Jde tam o to, že síť má sice jen jednu vrstvu (ty pak půjde skládat na sebe), ale neurony jsou propojené navzájem.

Výsledkem je, že síť se má chovat jako konečný automat (nebo i více nezávislých automatů).

Propojení mezi neurony v jedné vrstvě odpovídá tabulce přechodů mezi stavy automatu.

Vstupy přitom nejsou signály spojitě se měnící v čase, ale jednotlivé krátké pulzy.

Nesleduje se intenzita pulzů, ale pouze jejich časové návaznosti.

Ještě nemám úplně doladěné učení, ale vybavování již naučeného funguje docela dobře.

Vlastně to má vyhledávat posloupnosti pulzů a pro každou takovou posloupnost vybudit příslušný neuron.

Snaží se to vyhodnocovat, s jakou pravděpodobností mohla příslušná posloupnost pulzů přijít.

Co si o tom myslíte, mohlo by to k něčemu být?

Ale ono se jen v programu asi nikdo moc nevyzná, že jo?

Děkuju moc,

Petr

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý