Jump to content
hades

Artificial Neural Networks - Scurta Introducere [Part I]

Recommended Posts

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:

270077fc160140ac355eec99fd74659d.png

Figura2. Modelul unei Retele Neurale creat de McCulloch si Pitts:

7c2f696d618cd7b33ecf5b4849683e6c.png

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 Recognition

1.2. Prediction

1.3. Optimization

1.4. Associative Memory

2. 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 Parallelism

ANN-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 energie

2.3. Adaptabilitate

Deoarece 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 generalizare

3. 'Probleme' rezolvate cu ajutorul ANNs

Dupa 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 approximation

Sa 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 Problem

3.3. System Control

Sa 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 recognition

3.4.2. EGG waveform classification

3.4.3. Blood cell classification

Observatii:

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 by hades
  • Upvote 1
Link to comment
Share on other sites

Felicitari pentru inceperea unei serii interesante de tutoriale ! :D

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 !

Link to comment
Share on other sites

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.

SI

Self-building ANN? Retele care isi adauga singure neuroni?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...