3
Tema 5 Sisteme care învaţă singure Laura Dioşan 1 Inteligenţă artificială, 2016-2017 Dezvoltarea sistemelor care învaţă singure bazate pe reţele neuronale artificiale sau pe algoritmi de programare genetică Obiective Dezvoltarea sistemelor care învaţă singure. Algoritmi de învăţare de tipul reţelelor neuronale artificiale şi de programare genetică. Specificarea, proiectarea şi implementarea sistemelor care învaţă singure cum să rezolve probleme de clasificare binară şi probleme de regresie. Aspecte teoretice Proiectarea şi dezvoltarea sistemelor care învaţă singure. Algoritmi de învăţare de tipul reţelelor neuronale artificiale: - Structura reţelei - Algoritmul de identificare a ponderilor optime - Stabilirea parametrilor Algoritmi de învăţare bazaţi pe programare genetică: - Schema algoritmului (generaţional sau steady-state) - Reprezentarea cromozomilor şi evaluarea lor - Operatori genetici implicaţi (selecţie, încrucişare, mutaţie) - Stabilirea parametrilor Rezolvarea dificultăţilor de supra şi sub-învăţare Termen de predare Cerința C1 - pe loc (in cadrul laboratorului 6) Cerința C2 - laborator 7 Cerinţe C1. Subalgoritmi de evaluare Implementați câte un subalgoritm pentru fiecare din cerințele următoare. Sub -algoritmii trebuie să respecte specificarea dată și vor fi evaluați cu ajutorul a 5 aserțiuni. 1. subalgoritm eroareRegresie: Descriere: Să se stabilească eroarea unui model de învățare în cazul unei probleme de regresie. Modelul este reținut sub forma unei expresii in forma prefixată (poate conține doar operatorii +, -, *, /). Datele de învățare se dau sub forma unei matrici cu N linii (N - nr de exemple de învățare) și M coloane (M - nr de caracteristici + o valoare de output). Input: Expresia în forma prefixată, matricea cu datele de antrenament Output: Eroarea de calcul Exemplu: In: expr=(- y * x z), data = [1, 2, 3, 4 2, 3, 4, 5] Out: |2-1*3 - 4| + |3 - 2 * 4 - 5| = 15 Punctaj: 50p pentru cod și 5x10p pentru aserțiuni

Tema 5 Sisteme care învaţă singurelauras/test/docs/school/IA/2016-2017/labs/tema05_ML.pdf · Tema 5 Sisteme care învaţă singure Laura Dioşan 3 Inteligenţă artificială, 2016-2017

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tema 5 Sisteme care învaţă singurelauras/test/docs/school/IA/2016-2017/labs/tema05_ML.pdf · Tema 5 Sisteme care învaţă singure Laura Dioşan 3 Inteligenţă artificială, 2016-2017

Tema 5 Sisteme care învaţă singure

Laura Dioşan 1 Inteligenţă artificială, 2016-2017

Dezvoltarea sistemelor care învaţă singure bazate

pe reţele neuronale artificiale sau pe algoritmi de programare genetică

Obiective

Dezvoltarea sistemelor care învaţă singure. Algoritmi de învăţare de tipul reţelelor neuronale artificiale şi de programare genetică. Specificarea, proiectarea şi implementarea sistemelor care învaţă singure cum să rezolve probleme de clasificare binară şi probleme de regresie.

Aspecte teoretice

Proiectarea şi dezvoltarea sistemelor care învaţă singure. Algoritmi de învăţare de tipul reţelelor neuronale artificiale: - Structura reţelei - Algoritmul de identificare a ponderilor optime - Stabilirea parametrilor Algoritmi de învăţare bazaţi pe programare genetică: - Schema algoritmului (generaţional sau steady-state) - Reprezentarea cromozomilor şi evaluarea lor - Operatori genetici implicaţi (selecţie, încrucişare, mutaţie) - Stabilirea parametrilor Rezolvarea dificultăţilor de supra şi sub-învăţare

Termen de predare

Cerința C1 - pe loc (in cadrul laboratorului 6)

Cerința C2 - laborator 7

Cerinţe C1. Subalgoritmi de evaluare Implementați câte un subalgoritm pentru fiecare din cerințele următoare. Sub-algoritmii trebuie

să respecte specificarea dată și vor fi evaluați cu ajutorul a 5 aserțiuni.

1. subalgoritm eroareRegresie:

Descriere: Să se stabilească eroarea unui model de învățare în cazul unei

probleme de regresie. Modelul este reținut sub forma unei expresii in

forma prefixată (poate conține doar operatorii +, -, *, /). Datele de

învățare se dau sub forma unei matrici cu N linii (N - nr de exemple de

învățare) și M coloane (M - nr de caracteristici + o valoare de output).

Input: Expresia în forma prefixată, matricea cu datele de antrenament

Output: Eroarea de calcul

Exemplu:

In: expr=(- y * x z),

data = [1, 2, 3, 4

2, 3, 4, 5]

Out: |2-1*3 - 4| + |3 - 2 * 4 - 5| = 15

Punctaj: 50p pentru cod și 5x10p pentru aserțiuni

Page 2: Tema 5 Sisteme care învaţă singurelauras/test/docs/school/IA/2016-2017/labs/tema05_ML.pdf · Tema 5 Sisteme care învaţă singure Laura Dioşan 3 Inteligenţă artificială, 2016-2017

Tema 5 Sisteme care învaţă singure

Laura Dioşan 2 Inteligenţă artificială, 2016-2017

2. subalgoritm eroareClasificare:

Descriere: Să se stabilească eroarea unui model de învățare în cazul unei

probleme de clasificare. Modelul este reținut ca o combinație liniară

de forma ∑wixi (se rețin doar ponderile wi). Datele de învățare se dau

sub forma unei matrici cu N linii (N - nr de exemple de învățare) și M

coloane (M = nr de caracteristici + o valoare de output (clasa)).

Input: Vectorl cu ponderi, matricea cu datele de antrenament, pragul de

decizie θ

Output: Eroarea de calcul

Exemplu:

In: ponderi=(0.5, 0.0001, 0.025),

data = [1, 2, 3, clasa1

2, 3, 4, clasa2

0.01, 0.1, 1, clasa1], Θ = 0.6

Out: 0.5*1+0.0001*2 +0.025*3 = 0.57 prin sigmoid => 0.63 => clasa 2 =>1 eroare

0.5*2+0.0001*3 +0.025*4 = 1.1 prin sigmoid => 0.75 => clasa 2 => 0 erori

0.5*0.01+0.0.001*0.1 +0.025*1 = 0.03 prin sigmoid =>0.50=> clasa 1 => 0 erori

=> eroarea generala = (1+0+0)/3 = 0.33

Punctaj: 50p pentru cod și 5x10p pentru aserțiuni

C2. Probleme de învățare Specificaţi, proiectaţi şi implementaţi o aplicaţie pentru rezolvarea uneia dintre problemele următoare cu ajutorul unui sistem care învaţă singur să rezolve problema. Sistemul se bazează pe algoritmul de învăţare precizat în enunţul problemei:

- reţea neuronală artificială (RNA) – o RNA de tipul x-y-z reprezintă o RNA cu x noduri pe stratul de intrare, cu 1 strat ascuns (cu y noduri) şi un strat de ieşire cu z noduri

- programare genetică (PG) Aplicaţia trebuie să permită:

- Încărcarea datelor problemei (probleme cu date deja definite de către programator, probleme cu date definite de utilizator)

- Alegerea şi parametrizarea metodei de rezolvare a problemei - Alegerea modalităţilor de rezolvare a problemei supra sau sub-învăţării - Prezentarea rezultatelor procesului de învăţare

Aplicaţia poate fi realizată în 2 variante: varianta 1. Tehnica inteligenta (RNA sau PG) se bazeaza pe un tool deja existent.

Punctaj: 100p pentru cod, 50 pentru interfață și 5x20p pentru aserțiuni varianta 2. Tehnica inteligenta (RNA sau PG) se bazeaza cod dezvoltat de student.

Punctaj: 200p pentru cod, 50 pentru interfață și 5x40p pentru aserțiuni Studenţii pot alege care variantă de aplicaţie doresc să o realizeze. Sisteme disponibile care implementează RNA sau algoritmi de PG:

1. Weka http://www.cs.waikato.ac.nz/ml/weka/ 2. Matlab http://www.mathworks.com/products/neural-network/ 3. OpenCV http://docs.opencv.org/modules/ml/doc/neural_networks.html 4. Scikit-learn http://scikit-learn.org/stable/ 5. GPLAB http://gplab.sourceforge.net/ 6. ECJ http://cs.gmu.edu/~eclab/projects/ecj/

Page 3: Tema 5 Sisteme care învaţă singurelauras/test/docs/school/IA/2016-2017/labs/tema05_ML.pdf · Tema 5 Sisteme care învaţă singure Laura Dioşan 3 Inteligenţă artificială, 2016-2017

Tema 5 Sisteme care învaţă singure

Laura Dioşan 3 Inteligenţă artificială, 2016-2017

1. Să se rezolve problema aproximării calităţii betonului pe baza ingredientelor folosite la prepararea lui cu

ajutorul unei reţele neuronale artificiale. RNA va avea o structură (minimală) de genul 7-H-3 (nr de straturi

ascunse poate fi modificat), va fi antrenată cu algoritmul Backpropagation, iar neuronii de calcul vor avea

asociate funcţii de activare liniare. Antrenarea reţelei se termină când eroarea medie pătratică este mai mică

decât (dat ca parametru al problemei). Datele de test se vor lua de aici

http://archive.ics.uci.edu/ml/datasets/Concrete+Slump+Test sau de pe labor.

2. Să se rezolve problema aproximării scorului UPDRS de evaluare a bolii Parkinson pe baza unor informaţii

preluate de la pacienţii bolnavi (sex, vârstă, semnalele vocale) cu ajutorul unei reţele neuronale artificiale.

RNA va avea o structură (minimală) de genul 18-H-2 (nr de straturi ascunse poate fi modificat), va fi antrenată

cu algoritmul Backpropagation, iar neuronii de calcul vor avea asociate funcţii de activare sigmoidale.

Antrenarea reţelei se termină când eroarea medie pătratică este mai mică decât (dat ca parametru al

problemei). Datele de test se vor lua de aici

http://archive.ics.uci.edu/ml/datasets/Parkinsons+Telemonitoring sau de pe labor.

3. Să se aproximeze poziţia relativă pe axă a unor imagini de tomografie pe baza unor informaţii preluate de la

pacienţi (id, histrograma structurii osoase, histograma regiunilor cu aer) cu ajutorul unui algoritm de

programare genetică. Setul de funcţii va conţine cel puţin operatorii +, -, *, sin, cos, iar setul de terminale va

conţine pe langă datele de intrare ale problemei şi 10 constante din [0,1]. Antrenarea algoritmului se termină

când eroarea medie pătratică este mai mică decât (dat ca parametru al problemei). Datele de test se vor lua

de aici http://archive.ics.uci.edu/ml/datasets/Relative+location+of+CT+slices+on+axial+axis sau de pe labor.

4. Să se clasifice o cardiotocogramă fetală ca fiind normală, suspectă sau patologică pe baza diferitelor

măsurători înregistrate în decursul sarcinii cu ajutorul unei reţele neuronale artificiale. RNA va avea o

structură (minimală) de genul 21-H-3 (nr de straturi ascunse poate fi modificat), va fi antrenată cu algoritmul

Backpropagation, iar neuronii de calcul vor avea asociate funcţii de activare liniare. Antrenarea reţelei se

termină când acurateţea clasificării devine mai mare decât (dat ca parametru al problemei). Datele de test

se vor lua de aici http://archive.ics.uci.edu/ml/datasets/Cardiotocography sau de pe labor.

5. Să se stabilească dacă un pacient suferă de hernie de disk, de spondiloză sau dacă este sănătos pe baza

informaţiile preluate anterior de la mai mulţi pacienţi (privind forma şi orientarea pelvisului şi a părţii

lombare din coloana vertebrală) şi cu ajutorul unei reţele neuronale artificiale. RNA va avea o structură

(minimală) de genul 6-H-3 (nr de straturi ascunse poate fi modificat), va fi antrenată cu algoritmul

Backpropagation, iar neuronii de calcul vor avea asociate funcţii de activare sigmoidală. Antrenarea reţelei

se când acurateţea clasificării devine mai mare decât (dat ca parametru al problemei). Datele de test se vor

lua de aici http://archive.ics.uci.edu/ml/datasets/Vertebral+Column sau de pe labor.

6. Să se stabilească direcţia de deplasare a unui robot (în faţă, viraj uşor la dreapta, viraj puternic la dreapta,

viraj uşor la stânga) dotat cu senzori pe baza informaţiilor colectate anterior (sub forma unor citiri a 24 de

senzori de ultrasunete plasaţi în diferite poziţii pe robot – poziţia unui senzor fiind dată de unghiul de deviaţie

- 180 (faţă), -165, -150,....,15, 0 (spate), 15, 30, ..., 150, 165) şi cu ajutorul unui algoritm de

programare genetică. Setul de funcţii va conţine cel puţin operatorii +, -, *, sin, cos, iar setul de terminale va

conţine pe langă datele de intrare ale problemei şi 10 constante din [0,1]. Antrenarea algoritmului evolutiv se

termină când acurateţea clasificării este mai mare decât (dat ca parametru al problemei). Datele de test se

vor lua de aici http://archive.ics.uci.edu/ml/datasets/Wall-Following+Robot+Navigation+Data sau de pe

labor.