hades Posted January 5, 2014 Report Posted January 5, 2014 (edited) Studiul asupra Retelelor Neurale Artificiale a inceput in anul 1940 de catre McCulloch si Pitts; Mai apoi, acest studiu a fost reluat in anul 1960 de catre Rosenblatt, Minsky si Papert dupa ce acestia au demonstrar limitariile unui perceptron.Mai jos, 2 imagini pentru a arata 'asemanarea' dintre un neoron biologic si o retea neurala artificiala:Figura1. Neuron Biologic:Figura2. Modelul unei Retele Neurale creat de McCulloch si Pitts:1. ANNs (Artificial Neural Networks)Pentru inceput: ANNs reprezinta o serie de sisteme 'inteligente' create dupa modelul biologic al Neuronilor. Aceste sisteme de tip ANN sunt folosite pentru rezolvarea problemelor in domenii precum:1.1. Pattern Recognition1.2. Prediction1.3. Optimization1.4. Associative Memory2. De ce tocmai ANNs?Probabil multi dintre voi se intreaba de ce aceste sisteme 'inteligente' sunt raspunsul probelemelor aparute in domeniile mentionate mai sus. Ei bine, ANNs se comporta foarte bine in rezolvarea acelor probleme datorita urmatoarelor caracteristici:2.1. Massive ParallelismANN-urile pot fi considerate ca fiind 'massively parallel distributed processor' intrucat acestea stocheaza datele experimentale ca mai apoi sa le faca disponibile pentru folosire. ANN-urle se aseamana cu Neuronii biologici si totodata copiaza comporamentul creierului uman, pentru ca datele finale sunt rezultatul unui proces de experimentare (sau invatare) facut de reteaua neurala.2.2. Consum mic de energie2.3. AdaptabilitateDeoarece rezultatul final este obtinut prin procesul de experimentare (dupa cum am precizat mai sus) sistemele neural se adapteaza in functie de parametrii de testare primiti.2.4. Posibilitatea de generalizare3. 'Probleme' rezolvate cu ajutorul ANNsDupa cum am mentionat si la punctul 1, sitemele inteligente de tip ANN sunt folosite pentru rezolvarea problemelor aparute in diferite domenii. Acum, doresc sa ofer o lista de exemple care sa va ajute sa intelegeti rolul acestor sisteme:3.1. Funnction approximationSa presupunem ca avem un set de 'n' training patters (grupate ca si input-output) de forma: ((x1,y1),(x2,y2),...(xn,yn)) generat de o functie y(x). Functia y(x) nu ne este cunoscuta, ci doar rezultatul generat de aceasta. Rolul acetei aproximari de functii (Funnction approximation) este de a gasi si a estima un y'(x) cat mai aproape de functia necunostuca y(x). Aproximarea functiilor este folosita in multe probleme de modelare stiintifica.3.2. Optimization (Optimizarea)Dupa cum bine stiti, o gama foarte variata de probleme din matematica, statistica, medicina, economie si programare pot intampina probleme de optimizare. Exemplu: Traveling Salesman Problem3.3. System ControlSa consideram un sistem dinamic definit de tuplul {u(t),y(t)} unde u(t) reprezinta control-inputul iar y(t) este output-ul sistemului la un timp t. Ceea ce dorim noi sa realizam, e deterimanrea unui input u(t) pentru sistemul nostru, in asa fel incat acesta sa urmeze o traiectorie definita de un model de referinta.3.4. Pattern Classification (Clasificarea Pattern-urilor)Problema de clasificare a pattern-urilor, transpusa intr-un mod mai usor de inteles, se refera la o relatie de tip one-to-many, adica, unu-i pattern de intrare (considerat ca input pentru systemul nostru) i se atribuie un output predefinit dintr-o lista. Aplicatiile acestui tip de pattern classification sunt variate si apar in domenii precum: 3.4.1. Speech recognition3.4.2. EGG waveform classification3.4.3. Blood cell classificationObservatii:1. De multe ori termenul de 'Inteligenta Artificiala' este folosit gresit, intrucat, la ora actuala orice model de AI nu este altceva decat o retea de ANNs-uri.2. Pentru nelamuriri cu privire la aceata prima parte a 'tutorialului' despre ANNs nu ezitati sa lasati un reply. Voi incerca sa ofer raspunsuri cat mai pertinente.Va urma. Edited January 5, 2014 by hades 1 Quote
AlMalalah Posted January 5, 2014 Report Posted January 5, 2014 Felicitari pentru inceperea unei serii interesante de tutoriale ! Ce ai zis pana acuma in acest prim tutorial stiam si eu asa in linii mari insa ceea ce nu stiu e cum naibii arata un exemplu practic de asa ceva spre exemplu in C++.Am mai intrebat si pe net legat de retelele astea neuronale, de algoritmi genetici si ce mai este pe internet.Raspunsul a fost foarte ambigu pentru mine ca si incepator in asa ceva. Unii mi-au zis ca sunt foarte complicate, altii ca "e grele" iar altii au zis ca nu este o chestie predefinita ptr. algoritmii astia AI ci ii "inventezi" tu in functie de ce ai nevoie si ei nu sunt nici macar ca un algoritm de backtracking. Asta m-a bagat si mai tare in ceata. Aia nu-s, aia nu-s si nici ailalta nu-s, si, mai mult de atat, ti-i faci tu singur. Atunci cum recunosti un algoritm de asta de AI intr-un cod ? Un algoritm de backtracking il recunosti intr-un cod sursa al unui program, dar unul de asta cum iti dai seama care e daca el e asa de "cetos" ?Am cautat si pe net ceva legat de algoritmii de AI si tin minte ca gasisem ceva dar mi-am prin urechile la prorpiu. Erau ceva legati de procesarea imaginilor etc. Foarte, foarte greu si dificil de inteles un articol deja explicat (cred ca era explicat).Ma gandesc ca poate ai putea sa dai un exemplu cat mai simplu de algoritm de asta, ceva foarte simplu gen sa poata continua un sir de numere sau ceva simplu, nu procesare de imagini, si sa explici:1. Care parte de cod ar fi algoritmul ? Si cum iti dai seama ca ala e ?2. Ce anume face ?3. Cum anume "invata" si "reactioneaza" el ?Multumesc anticipat ! Quote
yoyois Posted January 5, 2014 Report Posted January 5, 2014 Nice!As fi interesat daca poti scrie si ceva despre metodele de constructie.Cate straturi, cati neuroni pe strat, si ce obtii.Ca la orice lucru ANN-urile trebuie "tunate". In sensul: trebuie sa ai suficienti neuroni si aranjati dupa anumite tipare, pentru a rezolva un anumit tip de problema.SISelf-building ANN? Retele care isi adauga singure neuroni? Quote
ls-a Posted January 7, 2014 Report Posted January 7, 2014 Hai ba alecseu cu partea a doua ca chiar am nevoie,vb serios.Worm Valoare. Quote
hades Posted January 11, 2014 Author Report Posted January 11, 2014 Ce rol are "weight-ul" in neuron?Fiecare input din reteaua neurala este multiplicat cu un 'weight'. Outputul retelei fiind combinatia dintre toate weight-urile acestea. Asta ar fi o explicatie, mai 'in mare'. Quote
AlMalalah Posted January 18, 2014 Report Posted January 18, 2014 Fiecare input din reteaua neurala este multiplicat cu un 'weight'. Outputul retelei fiind combinatia dintre toate weight-urile acestea. Asta ar fi o explicatie, mai 'in mare'.Faci si partea a doua ? Cu raspunsurile/cerintele din acest topic incluse in cea de-a doua parte, eventual ? Quote
hades Posted January 19, 2014 Author Report Posted January 19, 2014 Faci si partea a doua ? Cu raspunsurile/cerintele din acest topic incluse in cea de-a doua parte, eventual ?Da. Am o parte din ea scrisa. Problema e ca am un program foarte incarcat pana marti. Apoi o voi putea publica. Quote
AlMalalah Posted February 2, 2014 Report Posted February 2, 2014 Da. Am o parte din ea scrisa. Problema e ca am un program foarte incarcat pana marti. Apoi o voi putea publica.Care marti ? Quote