Tehisnärvivõrk

Neuronivõrk (ka ANN või tehisneuronivõrk) on omamoodi arvutitarkvara, mis on inspireeritud bioloogilistest neuronitest. Bioloogilised ajud on võimelised lahendama keerulisi probleeme, kuid iga neuron vastutab ainult väga väikese osa probleemi lahendamise eest. Samamoodi koosneb neurovõrk rakkudest, mis töötavad koos, et saavutada soovitud tulemus, kuigi iga üksik rakk vastutab ainult väikese osa probleemi lahendamise eest. See on üks meetod kunstlikult intelligentsete programmide loomiseks.

Neuronivõrgud on näide masinõppe kohta, kus programm võib muutuda, kui ta õpib probleemi lahendama. Neuronivõrku saab koolitada ja täiustada iga näite abil, kuid mida suurem on neuronivõrk, seda rohkem näiteid on vaja, et see hästi toimiks - süvaõppe puhul on sageli vaja miljoneid või miljardeid näiteid.

Ülevaade

Neuronivõrgustikust saab mõelda kahel viisil. Esimene on nagu inimese aju. Teine on nagu matemaatiline võrrand.

Võrgustik algab sisendist, mis sarnaneb mõnevõrra meeleelundile. Seejärel liigub teave läbi neuronite kihtide, kus iga neuron on ühendatud paljude teiste neuronitega. Kui konkreetne neuron saab piisavalt stiimuleid, siis saadab ta oma aksoni kaudu teate mis tahes teisele neuronile, millega ta on ühendatud. Samamoodi on tehisnärvivõrgul sisendkihi, üks või mitu varjatud klassifitseerimiskihti ja väljundkiht. Iga varjatud kihi iga sõlme on ühendatud järgmise kihi sõlmega. Kui sõlme saab teavet, saadab ta selle mingi osa edasi sõlmedele, millega ta on ühendatud. Kogus määratakse matemaatilise funktsiooniga, mida nimetatakse aktiveerimisfunktsiooniks, näiteks sigmoid või tanh.

Neuronivõrgustiku puhul on neuronivõrgustik lihtsalt matemaatiliste operatsioonide loetelu, mida rakendatakse sisendi suhtes. Iga operatsiooni sisend ja väljund on tensor (täpsemalt vektor või maatriks). Iga kihtide paar on ühendatud kaalude loeteluga. Igas kihis on salvestatud mitu tensorit. Üksikut tensorit kihis nimetatakse sõlmedeks. Iga sõlm on seotud mõne või kõigi järgmise kihi sõlmedega kaalu abil. Igal sõlmel on ka nimekiri väärtustest, mida nimetatakse eelarvamusteks. Iga kihi väärtus on siis praeguse kihi väärtuste aktiveerimisfunktsioonist (mida nimetatakse X) korrutatud kaaludega.

A k t i v a t i o n ( W ( e i g h t s ) ∗ X + b ( i a s ) ) {\displaystyle Activation(W(eights)*X+b(ias))} {\displaystyle Activation(W(eights)*X+b(ias))} {\displaystyle Activation(W(eights)*X+b(ias))}

Võrgule on määratletud kulufunktsioon. Kahjufunktsiooniga püütakse hinnata, kui hästi neurovõrk täidab talle määratud ülesannet. Lõpuks rakendatakse optimeerimistehnikat, et minimeerida kulufunktsiooni väljundit, muutes võrgu kaalusid ja eelarvamusi. Seda protsessi nimetatakse treenimiseks. Treenimine toimub üks väike samm korraga. Pärast tuhandeid samme on võrk tavaliselt võimeline oma määratud ülesannet üsna hästi täitma.

Näide

Mõelge programmile, mis kontrollib, kas inimene on elus. See kontrollib kahte asja - pulssi ja hingamist.Kui inimesel on kas pulss või ta hingab, siis annab programm tulemuseks "elus", vastasel juhul "surnud". Programmis, mis ei õpi aja jooksul, kirjutatakse see järgmiselt:

function isAlive(pulss, hingamine) { if(pulss || hingamine) { return true; } else { return false; } }

Väga lihtne neuronivõrk, mis koosneb vaid ühest neuronist, mis lahendab sama probleemi, näeb välja selline:

Single neuron which takes the values of pulse (true/false) and breathing (true/false), and outputs value of alive (true/false).

Pulsuse, hingamise ja elusoleku väärtused on kas 0 või 1, mis tähendab valet ja tõde. Seega, kui sellele neuronile antakse väärtused (0,1), (1,0) või (1,1), peaks ta väljastama 1, ja kui talle antakse (0,0), peaks ta väljastama 0. Neuron teeb seda, rakendades sisendile lihtsat matemaatilist operatsiooni - ta liidab kõik talle antud väärtused kokku ja lisab seejärel omaenda varjatud väärtuse, mida nimetatakse "biasiks". Alguses on see varjatud väärtus juhuslik ja me kohandame seda aja jooksul, kui neuron ei anna meile soovitud väljundit.

Kui me liidame selliseid väärtusi nagu (1,1) kokku, võime saada arvud, mis on suuremad kui 1, kuid me tahame, et meie väljund oleks vahemikus 0 ja 1! Selle probleemi lahendamiseks võime rakendada funktsiooni, mis piirab meie tegeliku väljundi 0 või 1, isegi kui neuroni matemaatiline tulemus ei olnud vahemikus. Keerulisemates neuronivõrkudes rakendame neuronile funktsiooni (näiteks sigmoidi), nii et selle väärtus jääb vahemikku 0 või 1 (näiteks 0,66), ja siis anname selle väärtuse edasi järgmisele neuronile kuni meie väljundit vajame.

Õppemeetodid

Neuronivõrk saab õppida kolmel viisil: juhendatud õppimine, juhendamata õppimine ja tugevdav õppimine. Kõik need meetodid töötavad kas kulufunktsiooni minimeerimise või maksimeerimise kaudu, kuid iga meetod on teatud ülesannete puhul parem.

Hiljuti kasutas Ühendkuningriigi Hertfordshire'i ülikooli uurimisrühm tugevdavat õppimist, et panna iCub humanoidrobot õppima lihtsaid sõnu ütlema, lobisedes.

Küsimused ja vastused

K: Mis on närvivõrk?


V: Neuronivõrk (mida nimetatakse ka ANN või tehislikuks neuronivõrguks) on omamoodi arvutitarkvara, mis on inspireeritud bioloogilistest neuronitest. See koosneb rakkudest, mis töötavad koos, et saavutada soovitud tulemus, kuigi iga üksik rakk vastutab ainult väikese osa probleemi lahendamise eest.

K: Kuidas on neuronivõrk võrreldav bioloogiliste ajudega?


V: Bioloogilised ajud on võimelised lahendama keerulisi probleeme, kuid iga neuron vastutab ainult väga väikese osa probleemi lahendamise eest. Samamoodi koosneb närvivõrk rakkudest, mis töötavad koos, et saavutada soovitud tulemus, kuigi iga üksik rakk vastutab ainult väikese osa probleemi lahendamise eest.

K: Millist tüüpi programmiga saab luua kunstlikult intelligentseid programme?


V: Neuronivõrgud on näide masinõppe kohta, kus programm võib muutuda, kui ta õpib probleemi lahendama.

K: Kuidas saab treenida ja täiustada iga näidisega, et kasutada süvaõpet?


V: Neuronivõrku saab iga näitega treenida ja parandada, kuid mida suurem on neuronivõrk, seda rohkem näiteid on vaja, et see hästi toimiks - süvaõppe puhul on vaja sageli miljoneid või miljardeid näiteid.

K: Mida on vaja selleks, et süvaõpe oleks edukas?


V: Selleks, et süvaõpe oleks edukas, on vaja miljoneid või miljardeid näiteid, olenevalt sellest, kui suur on teie neuronivõrk.

K: Kuidas on masinõpe seotud kunstlikult intelligentsete programmide loomisega?



V: Masinõpe on seotud kunstlikult intelligentsete programmide loomisega, sest see võimaldab programmidel muutuda, kui nad õpivad probleeme lahendama.

AlegsaOnline.com - 2020 / 2023 - License CC3