Tema 5 Sisteme care învaţă singurelauras/test/docs/school/IA/2016-2017/labs/tema05_ML.pdf ·...
Transcript of 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 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ţă 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/
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.