Inteligență artificială Laboratorul 8 Perceptronul și rețele de perceptroni în Scikit-learn Stanga :multimea de antrenare a punctelor 3d; Dreapta : mu

Documente similare
Diapositive 1

Învățare automată Laborator 9 Rețele neuronale în TensorFlow TensorFlow (abreviat TF) este o bibliotecă open source ce permite efectuarea de calcule ș

Microsoft Word - Laboratorul 2.docx

Laborator 3

Seminar 05 Metode de învățare automată - clasificare

PHP (II)

PowerPoint Presentation

PowerPoint Presentation

Subiectul 1

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Procesarea Imaginilor Laborator 3: Histograma nivelurilor de intensitate 1 3. Histograma nivelurilor de intensitate 3.1. Introducere În această lucrar

4. Detectarea cantelor Calculul gradientului într-o imagine Detectorul de cante Canny Transformata Hough În această lucrare vor fi studiate metode de

Paradigme de programare

PPSD

Microsoft Word - Algoritmi genetici.docx

Tablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n= Cifre = {1,2,3,7} Se cere să s

Metode API - integrare FGO v.2.5 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 5 EMITERE... 5 PRINT... 6 S

SUBPROGRAME

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Slide 1

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

E_d_Informatica_sp_SN_2014_bar_10_LRO

Secţiunea 7-8 începători Concurs online de informatică Categoria PROGRAMARE PROBLEMA 1 ID 100 puncte Calculatoarele trebuie să se recunoască în rețeau

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea de Vest din Timișoara 1.2 Facultatea Matematică și Informa

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Microsoft PowerPoint - curs5-DPT-2010V97 [Compatibility Mode]

Inteligență artificială Laboratorul 5 Normalizarea datelor. Mașini cu vectori suport (SVM) 1. Normalizarea datelor Metode obișnuite de preprocesare a

Deep learning

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

20 SUBIECTE DE EXAMEN - De fapt, în pofida acestor probleme, până la urmă tot vom logaritma, căci aceasta este tehnica naturală în context. Trebuie do

Microsoft Word - Curs 11 - PHP.doc

Universitatea Politehnica din Bucureşti 2019 Disciplina: Geometrie şi Trigonometrie G1 * Varianta A 1. Ştiind cos x = 3 2, atunci sin2 x

Cuprins

Laborator 5 - Paradigme de Programare

Slide 1

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Microsoft Word - CarteC.doc

EXCEL FĂRĂ SECRETE Grafice şi diagrame

tehnologii web

7. Alinierea robustă a densităţilor de puncte 3D Măsurarea distanţei dintre diferite forme geometrice 3D Estimarea rotaţiei şi a translaţiei optime în

Matematici aplicate științelor biologie Lab06 MV

PROGRAMARE OBIECT-ORIENTATA LABORATOR 1 INTRODUCERE IN CLASE SI OBIECTE Introducere teoretica Prin intermediul unei Clase ne dorim sa construim tipuri

Microsoft Word _POO_Lab_1_Modificari_v01.htm

Lucrarea nr. 4 - Algoritmi de sortare şi ordonare Breviar teoretic Un algoritm de sortare este o metoda prin care se aranjează elementele unui tablou

SSC-Impartire

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

Programarea şi utilizarea calculatoarelor

Gestiunea serviciilor de recuperare a sănătăţii în sanatorii şi preventorii

Laborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând c

Noțiuni matematice de bază

Logică și structuri discrete Mulțimi Casandra Holotescu

Laborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 P

Microsoft Word - Laboratorul 1.docx

C++ Probleme

Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

Raportarea serviciilor de dializă la nivel CJAS

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

Curs 10 Aplicaţii ale calculului diferenţial. Puncte de extrem 10.1 Diferenţiale de ordin superior S¼a trecem acum la de nirea diferenţialelor de ordi

Tablouri (continuare)

COMISIA EUROPEANĂ DIRECȚIA GENERALĂ INFORMATICĂ Componenta de aplicare a politicii WiFi4EU Ghid de implementare v1.0 Cuprins 1. Introducere Br

Documentaţie Tehnică Verificare TVA API Ultima actualizare: 1 ianuarie / 92 1

Laborator Implementarea algoritmului DES - Data Encryption Standard. Exemplu DES Algoritmul DES foloseşte numere b

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

CONCURSUL NAŢIONAL DE MATEMATICA PANAITOPOL EDIŢIA a X-a, TULCEA, 21 aprilie 2018 Clasa a VII - a 1. Se consideră numerele reale x, y şi z, cel puţin

Metode API - integrare FGO v.2.8 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 4 EMITERE... 4 PRINT... 6 S

E_d_Informatica_sp_MI_2015_bar_02_LRO

PowerPoint Presentation

PowerPoint Presentation

Laborator 6 - Statistică inferenţială I. Inferenţă asupra mediei - Testul Z pentru media unei populaţii cu dispersia cunoscută Se consideră o populaţi

Top

L7

untitled

METODE NUMERICE ÎN INGINERIE

PowerPoint Presentation

Cuantizare Vectoriala.doc

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

Slide 1

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor

Информационная система персонализации, печати и учета документов об образовании

Update firmware aparat foto Mac Mulţumim că aţi ales un produs Nikon. Acest ghid descrie cum să efectuaţi acest update de firmware. Dacă nu aveţi încr

Cursul 1 1. Introducere Corpul numerelor complexe Dezvoltarea istorică a gândirii matematice a urmărit îndeaproape evoluţia ideii de număr. Această ev

Algoritmi elementari Metode de căutare secvenţială binară Metode de ordonare metoda bulelor metoda inserţiei metoda selecţiei metoda numărării Intercl

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

RAPORT ŞTIINŢIFIC Contract nr 33CI/2017, cod PN-III-P2-2.1-CI Titlu proiect: Sistem integrat de analiză și prognoză a consumului pentru dist

LOGICA MATEMATICA SI COMPUTATIONALA Sem. I,

Microsoft Word - comunicat nr 84 auto_psp_feb_2013.doc

Regulile jocului Hotline Hotline este un slot video cu 5 role, 3 rânduri și 30 de linii (fixe) care conține simboluri Wild și Expanding Wild, Re-Spins

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

Elemente de Web design

Microsoft Word - PI-L8r

-

Microsoft Word - Lab1a.doc

Manual utilizare incubator 8000 oua prepelita

Transcriere:

Perceptronul și rețele de perceptroni în Scikit-learn Stanga :multimea de antrenare a punctelor 3d; Dreapta : multimea de testare a punctelor 3d si planul de separare. In acest laborator vom antrena un perceptron cu ajutorul bibliotecii Scikit-learn pentru clasificarea unor date 3d, si o retea neuronala pentru clasificarea textelor dupa polaritate. Baza de date pe care o vom folosi, pentru clasificare textelor, este Movie Review Data. Datele de intrare pentru reteaua pe care o vom antrena sunt reprezentarile BOW (bag-of-words) ale documentelor. Multimile de antrenare si testare si script-ul care returneaza reprezentarea BOW se gasesc aici. Setul de date 3d, contine 1,000 de puncte 3d pentru antrenare, impartite in 2 clase (1- pozitiv, -1 negativ) si 400 de puncte 3d pentru testare. 1 Movie Review Data Set În cadrul laboratorului vom folosi setul de date Movie Review, care conține recenzii de filme, împărțite în două clase: pozitive și negative. În folderul txt_sentoken se regăsesc 2.000 de fișiere, 1.000 conținând recenzii pozitive și 1000 conținând recenzii negative. 50% din aceste date vor fi folosite pentru antrenare și 50% pentru testare. 1. Definirea unui perceptron in Scikit-learn. from sklearn.linear_model import Perceptron # importul clasei perceptron_model = Perceptron(penalty= None, alpha= 0.0001, fit_intercept= True, max_iter= None, tol= None, shuffle= True, eta0= 1.0, early_stopping= False, 1 http://www.cs.cornell.edu/people/pabo/movie-review-data/

validation_fraction= 0.1, n_iter_no_change= 5 ) # toti parametrii sunt optionali avand valori setate implicit Parametri: - penalty ( None, l2 sau l1 sau elasticnet, default=none ): metoda de regularizare folosita - alpha ( float, default= 0.0001 ): parametru de regularizare. - fit_intercept ( bool, default=true ): daca vrem sa invatam si bias-ului. - max_iter ( int, default=5 ): numarul maxim de epoci pentru antrenare. - tol ( float, default=1e-3 ): - Daca eroarea sau scorul nu se imbunatatesc timp n_iter_no_change epoci consecutive cu cel putin tol, antrenarea se opreste. - shuffle ( bool, default=true ): amesteca datele la fiecare epoca. - eta0 ( double, default=1 ): rata de invatare. - early_stopping ( bool, default=false ): - Daca este setat cu True atunci antrenarea se va termina daca eroarea pe multimea de validare (care va fi setata automat) nu se imbunatateste timp n_iter_no_change epoci consecutive cu cel putin tol. - validation_fraction : (float, optional, default=0.1) - Procentul din multimea de antrenare care va fi folosit pentru validare (doar cand early_stopping=true ). Trebuie sa fie intre 0 si 1. - n_iter_no_change (int, optional, default=5, sklearn-versiune-0.20 ): - Numarul maxim de epoci fara imbunatatiri (eroare sau scor). Functiile si atributele modelului: - perceptron_model.fit(x, y) : antreneaza clasificatorul utilizand stochastic gradient descent (algoritmul de coborare pe gradient), folosind parametrii setati la definirea modelului - X - datele de antrenare, y - etichetele - X are dimensiunea (num_samples, num_features) - y are dimensiunea (num_features,) - returneaza modelul antrenat. - perceptron_model.score(x, y) : returneaza acuratetea clasificatorului pe multimea de testare si etichetele primite ca argumente - perceptron_model.predict(x) : returneaza etichetele prezise de model - perceptron_model.coef_ : ponderile invatate - perceptron_model.intercept_ : bias-ul - perceptron_model.n_iter_ : numarul de epoci parcurse pana la convergenta

2. Definirea unei retele de perceptroni in Scikit-learn. from sklearn.neural_network import MLPClassifier # importul clasei mlp_classifier_model = MLPClassifier(hidden_layer_sizes=( 100, ), activation= 'relu', solver= 'adam', alpha= 0.0001, batch_size= 'auto', learning_rate= 'constant', learning_rate_init= 0.001, power_t= 0.5, max_iter= 200, shuffle= True, random_state= None, tol= 0.0001, momentum= 0.9, early_stopping= False, validation_fraction= 0.1, n_iter_no_change= 10 ) Parametrii : - hidden_layer_sizes ( tuple, lungime= n_layers - 2, default=(100,) ): al i-lea element reprezinta numarul de neurori din a l i-lea strat ascuns. - activation( { identity, logistic, tanh, relu }, default= relu ) - Identity : f(x) = x - logistic : f(x) = 1 1 + ε x - tanh : f(x) = tanh(x) - relu : f(x) = max(0, x) - solver ( { lbfgs, sgd, adam }, default= adam ) : regula de invatare (update) - sgd - stochastic gradient descent (doar pe acesta il vom folosi). - batch_size: ( int, default= auto ) - auto - marimea batch-ului pentru antrenare este min(200, n_samples). - learning_rate_init ( double, default=0.001 ): rata de invatare - max_iter ( int, default=200 ): numarul maxim de epoci pentru antrenare. - shuffle ( bool, default=true ): amesteca datele la fiecare epoca - tol ( float, default=1e-4 ) : - Daca eroarea sau scorul nu se imbunatatesc timp n_iter_no_chage epoci consecutive ( si learning_rate!= adaptive ) cu cel putin tol, antrenarea se opreste. - n_iter_no_change : (int, optional, default 10, sklearn-versiune-0.20 ) - Numarul maxim de epoci fara imbunatatiri (eroare sau scor). - alpha (float, default=0.0001) : parametru pentru regularizare L2. - learning_rate ( { constant, invscaling, adaptive }, default= constant ): - constant : rata de invatare este constanta si este data de parametrul learning_rate_init. - invscaling : rata de invatare va fi scazuta la fiecare pas t, dupa formula: new_learning_rate = learning_rate_init / pow(t, power_t) - adaptive : pastreaza rata de invatare constanta cat timp eroarea scade. Daca eroarea nu scade cu cel putin tol (fata de epoca anterior) sau daca scorul pe multimea de validare ( doar daca

ealy_stopping=true) nu creste cu cel putin tol (fata de epoca anteriora), rata de invatare curenta se imparte la 5. - power_t ( double, default=0.5 ): parametrul pentru learning_rate= invscaling. - momentum (float, default=0.9): - valoarea pentru momentum cand se foloseste gradient descent cu momentum. Trebuie sa fie intre 0 si 1. - early_stopping ( bool, default=false ): - Daca este setat cu True atunci antrenarea se va termina daca eroarea pe multimea de validare nu se imbunatateste timp n_iter_no_chage epoci consecutive cu cel putin tol. - validation_fraction (float, optional, default=0.1) : - Procentul din multimea de antrenare care sa fie folosit pentru validare (doar cand early_stopping=true ). Trebuie sa fie intre 0 si 1. Atribute: - classes_ : array sau o lista de array de dimensiune (n_classes,) - Clasele pentru care a fost antrenat clasificatorul. - loss_ : float, eroarea actuala - coefs_ : lista, lungimea = n_layers - 1 - Al i -lea element din lista reprezinta matricea de ponderi dintre stratul i si i + 1. - intercepts_ : lista, lungimea n_layers - 1 - Al i -lea element din lista reprezinta vectorul de bias corespunzator stratului i + 1. - n_iter_ : int, numarul de epoci parcurse pana la convergenta. - n_layers_ : int, numarul de straturi. - n_outputs_ : int, numarul de neuroni de pe stratul de iesire. - out_activation_ : string, numele functiei de activare de pe stratul de iesire. Functii : - mlp_classifier_model.fit(x, y) : - Antreneaza modelul pe datele de antrenare X si etichetele y cu parametrii setati la declarare. - y este un vector sau o matrice de dimensiune (n_samples, ) - pentru clasificare binara si regresie, (n_samples, n_outputs) pentru clasificare multiclass. - Returneaza modelul antrenat. - mlp_classifier_model.predict(x): - Prezice etichetele pentru X folosind ponderile invatate. - Returneaza clasele prezise intr-o matrice de dimensiune (n_samples,)- pentru clasificare binara si regresie, (n_samples, n_outputs) pentru clasificare multiclass. - mlp_classifier_model.predict_proba(x):

- Prezice probabilitatea pentru fiecare clasa. - Returneaza o matrice de (n_samples, n_classes) avand pentru fiecare exemplu si pentru fiecare clasa probabilitatea ca exemplul sa se afle in clasa respectiva. - mlp_classifier_model.score(x, y): - Returneaza acurateta medie in functie de X si y. - y are dimeniunea (n_samples, ) - pentru clasificare binara si regresie, (n_samples, n_outputs) pentru clasificare multiclass. Exerciții 1. Antrenati un perceptron pe multimea de puncte 3d, pana cand eroare nu se imbunatateste cu 1e-5 fata de epocile anterioare, cu rata de invatare 0.1. Calculati acuratetea pe multimea de antrenare si testare, apoi afisati ponderile, bias-ul si numarul de epoci parcuse pana la convergenta. Plotati planul de decizie al clasificatorului cu ajutorului functiei plot3d_data_and_decision_function. from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt def plot3d_data_and_decision_function (X, y, W, b): ax = plt.axes(projection= '3d' ) # create x,y xx, yy = np.meshgrid(range( 10 ), range( 10 )) # calculate corresponding z # [x, y, z] * [W[0], W[1], W[2]] + b = 0 zz = (-W[ 0 ] * xx - W[ 1 ] * yy - b) / W[ 2 ] ax.plot_surface(xx, yy, zz, alpha= 0.5 ) ax.scatter3d(x[y == -1, 0 ], X[y == -1, 1 ], X[y == -1, 2 ], 'b' ); ax.scatter3d(x[y == 1, 0 ], X[y == 1, 1 ], X[y == 1, 2 ], 'r' ); plt.show() 2. Antrenati o retea de perceptroni care sa clasifice textele dupa polaritate (setul de date Movie Review Data) folosind ca date de intrare reprezentarea BOW a documentelor. Datele trebuie normalizate prin scaderea mediei si impartirea la deviatia standard. Reteaua trebuie sa foloseasca algoritmul de coborare pe gradient, sa aiba 2 straturi ascunse cu cate [30, 20] perceptroni pe fiecare strat, functia de activare tanh, rata de invatare 0.01 si dezactivati momentum (setati valoarea lui cu 0). Calculati acuratetea pe multimea de antrenare si de testare, apoi afisati numarul de epoci efectuate.

a. La reteaua anterioara adaugati early stopping cu procentul de validare implicit, apoi reantrenati reteaua. Ce observati? b. La reteaua de la exercitiul 2 adaugati learning_rate= adaptive, apoi reantrenati. Cum influenteaza acuratetea? c. La reteaua anterioara adaugati momentum cu valoarea 0.9, apoi reantrenati. Cum influenteaza acuratetea? d. La reteaua anterioara setati parametrul de regularizare alpha cu 0.5, apoi reantrenati. Cum influenteaza acuratetea? e. La reteaua anterioara adaugati early stopping, vedeti cate epoci are nevoie reteaua pentru a converge, apoi reantrenati reteaua cu acelasi numar de epoci, dar fara early stopping. Cum influenteaza acuratetea?