Ilustrarea și simularea unor algoritmi legați de inteligența artificială folosind programarea orientată pe obiect în limbajul java

Cuprins licență

Introducere ...2
Capitolul 1 Machine Learning . 4
1.1 Scurt istoric .. 4
1.2 Tehnici de inva.are ... 4
1.2.1 Inva.are nesupravegheata .. 5
1.2.2 Inva.are supravegheata .. 5
1.2.3 Consolidarea inva.arii ... 6
1.2.4 Re.elele neurale .i inva.area profunda .. 7
Capitolul 2 Programare orientata obiect. Java Eclipse 8
2.1 Java Eclipse scurta prezentare .. 8
2.2 Structura programului .. 8
2.2.1 Compilator 9
2.2.2 Editarea surselor 9
2.2.3 Refactoring .. 10
2.2.4 Cautare 11
2.2.5 Executia programelor .. 12
2.2.6 Depanare . 12
2.2.7 Informa.ii suplimentare .i ajutor . 13
2.3 Programare orientata pe obiect ... 14
2.3.1 Clase 14
2.3.2 Obiecte 15
2.3.3 Pachete standard in Java . 16
2.3.4 Pachetul ACM Graphics . 18
2.3.5 Gestionarea si generarea interfetei grafice cu utilizatorul .. 21
Capitolul 3 Algoritmi utiliza.i 26
3.1 Algoritmul de grupare K-means . 26
3.2 Regresia liniara ... 28
3.2.1 Metoda celor mai mici patrate 28
3.2.2 Metoda gradientului 29
Capitolul 4 Ilustrarea algoritmilor de inteligenta artificiala .. 32
1
4.1 Algoritmul K-means ... 32
4.2 Algoritmul de regresie liniara 41
Concluzii .,, 51
Bibliografie ...52
Anexe .53


Extras din licență

Introducere
Am ales lucrarea intitulata ,,Ilustrarea si simularea unor algoritmi de inteligenta artificiala folosind programarea orientata pe obiect in limbajul Java" pentru ca imi place matematica si programarea, iar algoritmii de inteligenta artificiala sunt la ordinea zilei. Am observat ca de cele mai multe ori sunt dificili de inteles si mi s-a parut buna ideea de a ilustra acesti algoritmi printr-o aplicatie ce foloseste elemente grafice si limbajul Java.
Lucrarea este structurata intr-un numar de patru capitole: capitolul 1 Machine learning, capitolul 2 Programare orientata obiect. Java Eclipse, capitolul 3 Algoritmi utilizati, respectiv capitolul 4 Ilustrarea algoritmilor de inteligenta artificiala.
In primul capitol am vorbit despre ,,Machine lerning" deoarece aceasta in ultimul deceniu a devenit un stalp important al tehnologiei informatiei. Invatarea masinilor este o aplicatie a inteligentei artificiale (AI) care ofera sistemelor capacitatea de a invata si de a imbunatati in mod automat experienta fara a fi programata in mod explicit. Procesul de invatare incepe cu observatii sau date, cum ar fi exemple, experienta directa sau instruire, pentru a cauta modele in date si pentru a lua decizii mai bune in viitor pe baza exemplelor pe care le oferim. Scopul principal este de a permite calculatoarelor sa invete in mod automat fara interventia si asistenta umana si sa ajusteze actiunile in consecinta.
Exista mai multe tipuri de invatare automata, printre care invatarea supravegheata si nesupravegheata. Cea supravegheata prezinta date de intrare cu iesiri puse la dispozitie, invatarea modulului de asociere intrare-iesire si predictia asupra iesirii a unor date noi, iar cea nesupravegheata prezinta date de intrare fara iesiri si invatarea structurii de date.
In al doilea capitol am prezentat elementele de baza ale limbajului de programare Java Eclipse. Elementele fundamentale pe care le-am folosit in aplicatiile lucrate sunt mostenirea care se refera la aranjamentul ierarhic al fragmentelor implementate, polimorfismul care ne indica ca entitatile abstracte sunt implementate in mai multe moduri, clasa care defineste rolurile comune ale diferitelor obiecte care ii apartin si obiectul.
Am putut sa folosesc pachetul ACM Graphics si clase precum GObject, GImage, GLabel, GRect, GLine, GOval, GPolygon, GCompound care sunt deja dezvoltate si testate.
In cel de-al treilea capitol am descris algoritmul K-means si algoritmul de regresie liniara. Algoritmul K-means este un algoritm de grupare nesupravegheat care alege k clustere si repartizeaza punctele la acestea alegand centroid-ul cel mai apropiat de punctul respectiv. Pe masura ce punctele sunt pozitionate la un cluster, centroid-ul poate migra.
Regresia liniara se poate rezolva prin metoda celor mai mici patrate ceea ce presupune rezolvarea unui sistem de k ecuatii si cu k necunoscute, unde k este numarul de variabile de
intrare. Aceasta metoda are o solutie bine definita, dar care in practica, in momentul in care avem foarte multe date de intrare si foarte multi parametri, cum ar fi de exemplu in genetica sau in meteorologie, presupune un volum foarte mare de calcul pentru a rezolva acel sistem de sute de mii de ecuatii cu sute de mii de necunoscute, iar atunci modele iterative sunt preferate in invatarea automata.
Metoda pe care am ilustrat-o in lucrare este metoda gradientului cu doua variante: varianta folosind setul complet de date si varianta cu iteratie folosind punctele pe rand.
Iar in ultimul capitol am programat cei doi algoritmi de invatare nesupravegheata in limbajul de programare Java unde am ilustrat prin enunt pasii prin care am trecut, ce reprezinta fiecare parte de cod si am exemplificat prin poze procesul fiecarui program.


Fisiere în arhivă (1):

  • Ilustrarea si simularea unor algoritmi legati de inteligenta artificiala folosind programarea orientata pe obiect in limbajul java.pdf

Imagini din acest licență

Bibliografie

[1] E. S. Roberts, The Art and Science of Java, Stanford University, January 2006
[2] R. Wiener, L.Pinson, Fundamentals of OOP and Data Structures in Java
[3] S. Shalev-Shwartz, S. Ben-David, Understanding Machine Learning from Theory to Algoritms, Cambridge University Press
[4] T. Vasilache, Curs Programare orientata obiect, Facultatea de Stiinte Aplicate, 2014
[5] V. Neagoe, Retele neuronale pentru explorarea datelor, Matrix Rom, 2018
Surse online [6] https://cs.stanford.edu/people/eroberts/jtf/documents/License.pdf
[7] https://cs.stanford.edu/people/eroberts/jtf/javadoc/student/acm/graphics/GObject.html
[8] https://docs.oracle.com/javase/7/docs/api/javax/swing/package-use.html [9] https://web.stanford.edu/class/archive/cs/cs106a/cs106a.1178/eclipse/
[10] https://www.geeksforgeeks.org/classes-objects-java/


Ne pare rau, pe moment serviciile de acces la documente sunt suspendate.


Hopa sus!