Force Learn Algorithm - obučavanje podacima sa najvećom greškom |
Autor:
Velibor Ilić
ABSTRAKT: U ovom radu su opisane metode za obučavanje neuronskih mreža sa backpropagation algoritmom učenja u kome se prioritet obučavanju daje oblicima iz trening skupa kod kojih se javlja najveća greška prilikom obučavanja.
ABSTRACT: This study describes training methods of the neural nets with the backpropagation algorithm of learning
in which the priority is given to the patterns of the training set with the maximum error during the training.
Date: Mart, 2000
Rad je prezentovan na 5-tom seminaru o neuronskim mrežama (NEUREL)
http://galeb.etf.bg.ac.rs/~NEUREL
Ilić, V. (2000): “Force learn algorithm – training neural networks with patterns which have highest errors”, Seminar on Neural Network Applications in Electrical Engineering “NEUREL 2000”, Belgrade, Sponsored by IEEE Signal Processing Society, IEEE Catalog Number 00EX278, pp 46-48, ISBN 0-7803-5512-1 (Softbounded Edition), ISBN 0-7803-5512-X (Microfishe Edition), Library of Congress: 99-60930, http://ieeexplore.ieee.org/iel5/7232/19516/00902382.pdf?arnumber=902382
|
Uvod
Force Learn algoritam
Force Learn algoritam i uobičajni način obučavanja
ANN - program za obučavanje neuronskih mreža
Literatura
Neuronska mreža se obučava tako što se na ulaz jedan po jedan dovode podaci iz trening skupa. Na izlazu mreže se dobijeni rezultati upoređuju sa očekivanim i koriguju težinski koeficijenti u cilju smanjivanja greške. Postupak se ponavlja sve dok greška na izlazu mreže za svaki od elemenata iz obučavajućeg skupa ne bude manja od dozvoljene. Uobičajeni način obučavanja podrazumeva da se iz trening skupa podaci predstavljaju konstantnim redosledom od prvog ka poslednjeg podatka. [1], [2], [6], [7], [8], [9]
Prilikom obučavanja neuronskih mreža često se javlja je problem “neravnomernog obučavanja”, neke od oblika iz trening skupa mreža veoma brzo nauči da ispravno prepoznaje, dok je za neke druge potreban veoma veliki broj iteracija. Ukoliko greška na pojedinim elementima
obučavajućeg skupa dostigne gotovo 100% veoma je teško smanjiti greške tih elemenata u daljem obučavanju čak ni posle relativno velikog broja iteracija. Idealno bi bilo da se greške ravnomerno smanjuju tokom obučavanja do dozvoljenih vrednosti.
Force learn algoritam predstavlja pokušaj da se problem neravnomernog obučavanja prevaziđe. Da se izbegla situacija u kojoj se mreža brže obuči za neke elemente od drugih, upotrebljena je sledeća taktika. Mreža se obučava samo ulaznim podacima kod koji se protekloj
iteracija javila najveća greška. [4], [5]
Slika 1. Kritičan period obučavanja neuronske mreže
Na slici 1. je prikazan karakterističan grafikon koji se dobija obučavanjem neuronske mreže. Na grafikonu se prate greške (prosečna i maksimalna) i procenat tačnih izlaza. Pravougaonikom je označen kritičan period obučavanja neuronske mreže. Ovo je kritičan period iz razloga što je kod nekih primera potreban veoma veliki broj iteracija da bi maksimalna greška počela da opada. U ovom periodu maksimalna greška ima veliku vrednost približno ili čak jednako 1, a procenat tačnih izlaza dostiže vrednost od oko 95-99% i dalje slabo raste ili gotovo da ne raste.
Upotrebom force learn algoritma se izbegavaju ovakve situacije tj. brže se izlazi iz kritičnog perioda jer tada maksimalna greška mnogo brže opada nego kada se upotrebljavaju uobičajeni načini obučavanja.
Glavni motiv za izradu force learn algoritma bio je da se poveća verovatnoća da se mreža uspešno obuči za oblike iz trening skupa, ali je primenom ovog algoritma postignut još jedan veoma važan efekat, a to je skraćivanje vremena i smanjivanje broja iteracija potrebnih za obučavanje mreže.
Algoritam se sastoji u sledećem:
u jednoj iteraciji umesto da se koriguju težinski koeficijenti za sve elemente obučavajućeg skupa.:
- Određuje se vrednost granice_obučavanja kao maksimalna greška protekle iteracije umanjena za 20%,
- Na ulaz se dovode elementi obučavajućeg skupa i određuje se greška na izlazu za svaki od njih.
- Ukoliko je za dati element greška dobivena na izlazu mreže veća od vrednosti granica_obučavanja mreža se više puta obučava za dati primer. U praksi se pokazalo da 3 obučavanja daju dobre rezultate.
U ovom primeru neuronska mreža se obučava da prepoznaje različite oblike veličine 3x3 (slika 3.) u matrici veličine 5x5. Ovi oblici se mogu nalaziti u 12 pozicija u matrici (slika 2). Obučavajući skup za ovu mrežu se sastoji od 108 elemenata (broj_pozicijaxbroj_oblika)
i čine ga samo tačni primeri (slike 2. i 3.). Ukoliko se kasnije u korišćenju mreže, nakon uspešnog obučavanja, na ulaz dovede oblik za koji mreža nije obučavana na izlazu će se barem na jednoj vrednosti pojaviti rezultat u intervalu od (limit_error)<x<(1-limit_error).
Ovaj primer je karakterističan, jer se na njemu vidi prednost force learn algoritma. Na slici 4. vidimo grafik obučavanja NM na standardan način. Vidi se da je maksimalna greška dostigla vrednost 1 i da se održava na toj vrednosti. Procenat tačnih izlaza je
dostigao vrednost od 99% i dalje gotovo da ne raste. Na slici 5. se vidi grafik obučavanja mreže iste konfiguracije sa istim primerima, ali sa upotrebom force learn algoritma i to slučajnim redosledom. Na slici se vidi da, i pored oscilacija, maksimalna greška opada mnogo brže.
Arhitektura mreže:
Troslojna neuronska mreža sa backpropagation algoritmom obučavanja:
Broj neurona na ulaznom sloju: 5×5 = 25 (broj ulaza)
Broj neurona na srednjem sloju: 20
Broj neurona na izlaznom sloju: 12 (broj izlaza)
Koeficijent učenja (alfa): 0.25
Broj primera kojima se mreža obučava: 12×9 = 108 (slike 2 i 3)
Trening skup:
a) ulazi
slika 2. Položaji objekata u matrici
slika 3. različiti objekti
Mreža ima 25 ulaza i svaki ulaz je pridružen jednom polju matrice. Na slici 2. je prikazano 9 položaja koje u matrici
mogu zauzimati objekti sa slike 3.
b) izlazni podaci:
Svakom od objekata na slici je dodeljen po jedan izlaz iz mreže koji ga detektuje. Što znači da se na izlazu mreže
uvek pojavljuje jedna 1, a ostale vrednosti predstavljaju 0.
Tip računara: Intel Celeron 400
Program kojim je vršeno obučavanje: ANN V2.3
Primer 1
Slika 4. Grafik obučavanja mreže uobičajenim metodom
Broj iteracija: 10000
Vreme obučavanja: 00:17:47
Prosečna greška: 0.01724
Maksimalna dozvoljena greška: 0.1
Maksimalna greška: 1
Mreža je prekinuta u obučavanju na 10000-toj iteraciji. U tom trenutku mreža se obučila sa tačnošću od 99% (1281/1296
tačnih izlaza). Na slici 6. vidimo da se primenom force learn algoritma mreža potpuno obučila za duplo manje iteracija.
Napomena:
broj 1296 označava broj izlaza mreže pomnožen brojem primera kojima je mreža obučavana. 108×12=1296 (broj_oblika×broj_izlaza)
broj 1281 označava trenutan broj tačnih izlaza. dobija kada se na kraju jedne iteracije obučavanja prebroje svi izlazni signali su u dozvoljenim granicama greške
Primer 2
Slika 5. Grafik obučavanja NM primenom force learn i random metode
Broj iteracija: 1229
Vreme obučavanja: 00:01:55
Prosečna greška: 0.01869
Maksimalna dozvoljena greška: 0.1
Maksimalna greška: 0.09535
Sa grafika možemo videti da primenom Force Learn i Random načina obučavanja maksimalna greška brže opada, iako ima više oscilacija tokom obučavanja.
Odnosi koji su prikazani na grafikonima 5. i 6. važe samo za ovaj konkretan primer. Ukoliko bi neuronsku mrežu
obučavali nekim drugim primerom, odnos između obučavanja normalnim redosledom i force learn metodom bi se razlikovao od prikazanih.
Force learn algoritam je praktično primenjen u programu za obučavanje neuronskih mreža ANN. Na primeru ovog programa se mogu praktično demonstrirati prednosti force learn algoritma.
Program ANN je napisan u programskom jeziku Delphi 5.0. Razvijan je objektnom metodologijom a postojeći objekti (Tniz, Tneuron, Tmreza) mogu se iskoristiti za razvoj drugih aplikacija.
Na slikama 6 i 7 su prikazani ekrani iz programa za obučavanje neuronskih mreža. Pomoću ovog programa su dobijeni rezultati prikazani na grafikonima u ovom radu. [4], [5]
Slika 6. Izgled prozora programa za obučavanje neuronskih mreža
[1] “Frequently asked questions about AI”, http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/ai/ai_general/top.html
[2] “Neural Network Frequently asked questions”, ftp://ftp.sas.com/pub/neural/FAQ.html
[3] Hotomski, P., (1995): “Sistemi Veštačke inteligencije”, Tehnički fakultet “Mihajlo Pupin”, Zrenjanin
[4] Ilić, V., (1999) “Obučavanje neuronskih mreža za prepoznavanje ćiriličnih slova”, magistarski rad, Tehnički Fakultet
“Mihajlo Pupin”, Zrenjanin
[5] Jocković, M., Ognjanović Z., Stankovski S. (1997) “Veštačka inteligencija inteligentne mašine i sistemi”, Grafomed,
Beograd
[6] Milenković, S., (1997): “Veštačke neuronske mreže”, Zadužbina Andrejević, Beograd
[7] Nikolić, T., Opačić, M., (1995): “Veštačka inteligencija i neuronske mreže”, IBN Centar, Beograd
[8] Sajić, I., (1995): “Neuronske mreže”, časopis “Računari” br 108, BIGZ, Beograd
[9] Subašić, P., (1998): “Fazi logika i neuronske mreže”, Tehnička Knjiga, Beograd
|