Cadru general pentru teme de
inteligenta computationala / artificiala
propuse de grupul Natural Computing

Se poate formula o tema avand ca obiectiv rezolvarea unei aplicatii de interes
din domeniul inteligentei artificiale (machine learning) pe platforme (hw/sw)
diferite, aplicatii diferite (sunt inclusiv concursuri - vezi Kaggle).
Proiectul presupune familiarizarea cu tehnologia (prioritar Keras) si bazele
ei teoretice, integrarea tehnologiei (tehnologiilor) cu bazele de date alese
pentru antrenare (se pot lua in considerare solutii cu antrenarea - de regula
intensiva - pe platforma "puternica" si implementarea modelului antrenat
pe platforma Android, RaspBerry-PI etc.)

Platforma (PC, Android/mobil, RaspberryPI - ultimele 2 in special
stimulate de coordonatorii seriilor ELA - B si F, Cloud - vezi Kaggle dar
mai sunt si altele, de ex. de la Google )

Baze de date: Kaggle (ofera inclusiv probleme de tip concurs), alte baze de date
incluisv cele utilizate in cadrul cursului de Inteligenta Computationala Integrata
(titular R. Dogaru, IVA, sem II) etc..

Tehnologii: Keras (cu backend Tensorflow) - aici va putem da o indrumare mai
in cunostinta de cauza), alte biblioteci Python (Scikit-learn, Scipy, OpenCV etc.)
dar si altele (Tensorflow in Java etc.., Octave / Matlab etc..)

Modele (structuri de retele neuronale si altele de tip machine learning) : "deep",
(aici gasiti foarte multe exemple de la care se poate pleca ..)
structuri simple dar foarte rapide (de ex. ELM si FSVC - acestea fiind puse la punct
in cadrul grupului nostru). Se pot alege si alte modele, din zona "natural computing"
de exemplu automate celulare cu aplicatii in prelucrari de imagini etc.. (se pot consulta
in aces sens listele mai vechi de teme)

Lucrarea presupune:  familiarizarea cu tehnologiile, dezvoltarea unei aplicatii prin
integrarea unor module pre-fabricate (cu contributii originale proprii care trebuiesc
reliefate in lucrarea de diploma) inclusiv
optimizarea acesteia (de ex. prin alegerea coresp. a parametrilor, a modelului de
retea neuronala) atat pentru performanta (de regula acuratetea) cat si pentru
viteza (mai ales pentru platforme critice gen mobil sau Raspberry PI)

Prin particularizarea celor de mai sus (platforma, tehnologie, model, aplicatie)
putem defini 6-10 teme (inclusiv pentru programul de masterat IISC pe care il
coordonez) in functie de solicitari.

Referinte

Kaggle - o platforma colaborativa - contine in afara de o gama foarte diversa de aplicatii (asociate cu date)
si posibilitatea de a lucra in cloud (Kernel) prin intermediul instrumentului Jupyter Notebook (cu
avantajul de a nu necesita instalare si mentenanta, ofera suport GPU etc..)
Collab

Keras - desi necesita cunostiinte de Python se poate invata relativ usor prin "learning by doing"
este si un atuu pentru a invata o tehnologie (Keras) si un limbaj (Python) ambele din ce
in ce mai populare.

Scikit-learn

Scurta introducere in inteligenta computationala (2017) / orientativ