A já bych chtěl zase nějaký do kódu zapsaný praktický příklad ... :)
Jinak, díky za pěkně podanou teorii.
Názory k článku
Biologické algoritmy (4) - Neuronové sítě
----
celé vláknoNeuronová síť je podstatě analogový počítač.
celé vláknoDělal jsem diplomku na Neuronové sítě v aplikačním nasazení. Do tét problematiky mě dostal učitel ve druháku na střední škole no a po čase mi to došlo, že jde jen o marketing neuronová síť je obyčejný analogový počítač. ( ještě , že Táta schovával skripta, ze své doby studia na FEI VUT) Analogový počítač se skládá ze zesilovačů, které mají různé zesílení, jsou integrační, derivační, lineární atp. tedy defakto vždy jde o základní interpretaci neuronu. Takže kdo chce pochopit jak to funguje bez keců okolo ať vytáhne stará skripta a má hned jasno.
Re: Neuronová síť je podstatě analogový počítač.
celé vláknoJedina vyhoda je pocet neuronu a ze je to software, tj neni potreba pro kazdou verzi stavet obvod. Jinak "neuro" chipy se take prodavaji ajsou castecne rekonfigurovatelne a ano neni to nic jineho nez varianta analogoveho pocitace v podobe chipu
Re: Neuronová síť je podstatě analogový počítač.
celé vláknonavic neuronova sit bez nauceni resp uciciho algoritmu je k nicemu
Re: Neuronová síť je podstatě analogový počítač.
celé vláknoA odkud je má vytáhnout?* :D
*nenápadné pošťouchnutí ve stylu oscannuj a hoď na uložto
Pekny clanek
celé vláknoDoufam, ze takto polopaticky bude vysvetlovana problematika i v dalsich dilech. Snad konecne pochopim jak vlastne back propagation a nebo jine algoritmy uceni funguji. Diky.
Re: Pekny clanek
celé vláknoBackpropagation (nebo aspoň její základní myšlenka) je celkem jednoduchá záležitost. U váhy každého vstupu každého neuronu spočítáme derivaci toho, jak ovlivňuje celkovou chybu na tréninkové množině. A v každém kroku posuneme váhu ve směru příslušné derivace. Prostě normální gradientní metoda, nic jiného v tom není. Po deseti milionech iterací uvíznete v nějakém lokálním minimu... Ale na to aby se spočítal třeba XOR to stačí. Samozřejmě pak jsou různá vylepšení, přidává se setrvačnost, v případě uvíznutí se s tím "zatřese", v případě přibližného nalezení minima se to "ochlazuje", řeší se automaticky počet vrstev a počet neuronů v každé vrstvě atd. atd. Jsem zvědavý, s čím autor přijde, až ukáže nějaký příklad. Abych řekl pravdu, na matfyzu byly ty praktické příklady, co jsme programovali, spíš demotivační.
Re: Pekny clanek
celé vláknozajemci najdou na webu hafo prikladu.
na zdejsim prikladu s muzi a zenami si muzete vytrenovat sit
na vstupni parametry vyska, delka vlasu a vytrenovana sit
vam pak bude vyhazovat vysledek muz, zena.
Re: Pekny clanek
celé vláknoAle jo, urcite se to da vygooglit. Ale od toho je tenhle serial, aby clovel googlit nemusel a mel to vysvetlene "pro blby" a v cestine a mohl si to precist bez velke dusevni namahy i treba v praci behem buildu projektu :-)
Priklad muz/zena je prave ten demotivacni priklad, kdy sit se bude desne dlouho ucit to, na co i kazdy polointeliget navrhne 1000x lepsi algoritmus. Nic proti tomu prikladu, na vysvetleni, jak funguje perceptron, je to ok. Ale neni to priklad motivujici (ktery ocekavam v nejakem z dalsich dilu a ktery jsem nedostal pred x lety ve skole). Motivujici priklad je takovy, aby clovek zjistil, ze sit je i na neco dobra. Ze spocita i neco, kde neni elementarni navrhnout nejaky lepsi algoritmus.
Treba pekny priklad byl ten s genetickymi algoritmy na 3 kruznice.
Re: Pekny clanek
celé vláknoja jsem si kdysi hral s prikladem pro rozeznavani pismenka A.
byla dana matice 5x5 pseudo-pixelu a kazdy pixel mohl mit hodnotu
sedi 0 az 255 a sit se naucila a pak mela rici zda je v matici pismenko A.
napriklad ciste A vypadalo v hex takto:
00 00 FF 00 00
00 FF 00 FF 00
00 FF 00 FF 00
00 FF FF FF 00
00 FF 00 FF 00
Re: Pekny clanek
celé vláknoJo, tohle jsou presne ty demotivacni pripady. Ja jsem si treba kdysi sam naprogramoval backpropagation a reseni XOR problemu. Krasne se to asi po 10000 iteracich vypocitalo. Ale pak jsem si uvedomil, ze to mam vlastne spatne. Treninkovou mnozinu jsem mel v matici 2x2 {((0,0),0), ((0,1),1), ((1,0),1), ((1,1),0)} a ta sit, mrcha jedna, se to naucila ne pres primky x = 1 a y = 1 (ocekavane reseni xor), ale pres dve rovnobezky x + y = 0.5 a x + y = 1.5. No ale hlavne me krkalo, ze se tady neco strasne slozite pocita a pritom kdejake ucho navrhne algoritmus na miru.
To same je s tim pismenkem A. Staci ho posunout nebo trochu zarotovat nebo dat do perspektivy nebo zmensit nebo udelat misto cerne na bile negativ a uz ho ta sit nenajde. Jo kdyby tohle sit umela, tak bych tleskal. Fixni pismenko s fixni barvou (coz predpokladam dela ta sit) vypocita i suma rozdilu od predepsane barvy pixelu.
Re: Pekny clanek
celé vláknoPrave na pismenka je to celkem dobry. Myslim na tom funguji (nebo fungovaly) OCRka.
Re: Pekny clanek
celé vláknos tim A to byl primitivni priklad, pokud by se vzaly vhodnejsi vstupni
parametry nez pixely, tak by to mohlo rozeznavat i rotovane A, deformovane atd.
Re: Pekny clanek
celé vláknona rozpoznavanie su dobre konvolucne neuronove siete, rucne pisane cislice rozpoznavaju skoro so 100percentnou uspesnostou
Re: Pekny clanek
celé vláknoAno, sit, ktera by poznavala pismenka po nejakych transformacich by uz byl velmi zajimavy priklad. (Aspon pro me.) Idealne treba jako kdyby to cetlo nafocene SPZ, ale uz i treba jen kdyby to zvladalo posun a zaroven i rotaci nejakeho fixniho pismenka 5 x 5 pixelu... Ale obavam se, ze nejekym normalnim modelem s backpropagation by si clovek ani neskrtnul.
Re: Pekny clanek
celé vláknoBackpropagation je na toto pouzitie absolutne nevhodna. Na taketo veci sa skor pouzivaju rozne "SOM" siete. Napriklad Kohonenova.
Re: Pekny clanek
celé vláknoTo se řeší poměrně snadno (alespoň teoreticky) :)
V rámci školního projektu jsem řešil rozpoznávání tvarů v obrázku pomocí neuronové sítě.
Zásadní pro řešení je, jak objekt popsat. Pokud ho popíšu maticí, pak při pootočení objektu jej již nemůžu popsat, protože matice mi popisuje objekt o konkrétní velikosti v konkrétní poloze. Proto je lepší objekt popsat pomocí vlastností, na které nemá změna měřítka, pootočení, případně umístění objektu vliv.
Já jsem používal tzv. invariantní momenty
(M. K. Hu, "Visual Pattern Recognition by Moment Invariants", IRE Trans. Info. Theory, vol. IT-8, pp.179–187, 1962), které popisují objekt nezávisle na jeho pozici, velikosti či natočení.
Síti se poté předkládají pro trénování objekty popsané těmito invariatními momenty. A při rozpoznávání pak vytahuji z obrazu objekty, spočítám invarianty a ty pak nechám vyhodnotit neuronovou sítí.
Pro upřesnění dodám, že můj projekt rozpoznával čtverec, obdélník, kruh, trojúhelník, hvězdičku. A rozpoznával jsem to pomocí sítě, která měla 7 vstupů(invarianty), 5 neuronů ve vnitřní vrstvě a tři neurony ve výstupní vrstvě(binárně kódovaný typ objektu, tj. např 000 čtverec, 001 obdélník, atd.)
Re: Pekny clanek
celé vláknoA co když nevím, co je derivace?
Re: Pekny clanek
celé vláknoNo tos mu teda pomohl...
Re: Pekny clanek
celé vláknoTak si představ, že je to něco jako sklon funkce. f(x) = x má (všude stejnou) derivaci 1. Konstanta 0. -x má 1. 2x má dva. Takže gradientní metoda znamená, že všemi váhami pohneš tím směrem, kterým se snižuje chyba. (Asi jako když půjdeš pořád přímo dolů, čím je svah prudší, tím rychleji, a budeš doufat, že dojdeš do nejhlubšího místa na světě.) U neuronové sítě s vhodně zvolenou aktivační funkcí se ty derivace i dají celkem v pohodě spočítat.
Re: Pekny clanek
celé vláknoPardon, -x má samozřejmě derivaci mínus jedna.
Re: Pekny clanek
celé vláknoPrůbeh funkce je výška cesty do kopce, po rovnice zkopce a tak. Derivace je průběh stoupání, tj. hodně, skoro nula, mínus.
Re: Pekny clanek
celé vláknoMožná by se ti mohla líbit brmiversity - http://video.hrach.eu/index.php?akce=7
Re: Pekny clanek
celé vláknoDiky za link, az bude cas urcite zkouknu.
Vecer sem nakonec k backpropagation nasel pochopitelny vysvetleni ... konecne ... vzdycky jsem mel totiz "stesti" a skoncil u textu psanych pravdepodobne nejakou formou mimozemstanstiny ... viz http://www.matematica.ciens.ucv.ve/dcrespin/Pub/backprop.pdf
Geneticke algoritmy a neuronove site
celé vláknoCelkem by me zajimalo, jestli se treba v praxi nepouzivaji geneticke algoritmy na nalezeni nejlepsi neurovone site pro dany problem.
Re: Geneticke algoritmy a neuronove site
celé vláknoV praxi nevim, ale ve skole nam rikali, ze se to takhle delat da.
Re: Geneticke algoritmy a neuronove site
celé vláknoJasne. Asi najkrajsi priklad na toto je http://is.gd/polyworld - Naozaj stoji za zhliadnutie!
Re: Geneticke algoritmy a neuronove site
celé vláknopouzivaji:
http://en.wikipedia.org/wiki/Neuroevolution
Re: Biologické algoritmy (4) - Neuronové sítě
celé vláknoPřečetl jsem jen začátek "Neurony v přírodě" (to je ale češtin) a dál už jsem nemohl. Idkyž připustím, že se jedná o velmi zjednodušující popis, musím konstatovat, že takto neuron nefunguje. Jak pak mám věřit zbytku článku, resp. seriálu, o neuronových sítích, kterým nerozumím?
Re: Biologické algoritmy (4) - Neuronové sítě
celé vláknoCo přesně je tam špatně a jak by to mělo být správně?
Pro upřesnění
Autor v článku dle mého názoru nepopisuje neuron McCulloch/Pitts, ale novější model, tzv. Perceptron.
Neuron McCulloch/Pitts, má 1..n vstupů, jeden inhibiční vstup, vnitřní potenciál a výstup. Vstupy se sčítají a pokud přesáhnou vnitřní potenciál a zároveň není signál na inhibičním vstupu, na výstupu je 1. V ostatních případech je na výstupu 0.
Použití neuronové síti v grafech
Dobrý den, chci se zeptat, jak se dá použít neuronová sít v teorii grafů. Například na spojování uzlů, zadal bych vstupní matici uzlů a výstupní matici se stupni uzlů a chtěl bych aby se sít naučila ten graf pospojovat. Děkuji za radu
Kedy bude pokracovanie?
Kedy bude pokracovanie k clanku?

