Mākslīgais neironu tīkls
Neironu tīkls (saukts arī par ANN vai mākslīgo neironu tīklu) ir sava veida datorprogrammatūra, kas veidota pēc bioloģisko neironu parauga. Bioloģiskie smadzenes spēj atrisināt sarežģītas problēmas, bet katrs neirons ir atbildīgs tikai par ļoti nelielas problēmas daļas atrisināšanu. Līdzīgi arī neironu tīklu veido šūnas, kas sadarbojas, lai sasniegtu vēlamo rezultātu, lai gan katra atsevišķa šūna ir atbildīga tikai par nelielas problēmas daļas atrisināšanu. Tā ir viena no mākslīgi inteliģentu programmu izveides metodēm.
Neironu tīkli ir mašīnmācīšanās piemērs, kur programma var mainīties, mācoties risināt problēmu. Neironu tīklu var apmācīt un uzlabot ar katru piemēru, bet, jo lielāks ir neironu tīkls, jo vairāk piemēru tam ir nepieciešams, lai tas labi darbotos, bieži vien dziļas mācīšanās gadījumā tam ir nepieciešami miljoniem vai miljardiem piemēru.
Pārskats
Par neironu tīklu var domāt divējādi. Pirmais ir kā cilvēka smadzenes. Otrais ir kā matemātisks vienādojums.
Tīkls sākas ar ievadi, līdzīgi kā maņu orgāns. Pēc tam informācija plūst caur neironu slāņiem, kur katrs neirons ir savienots ar daudziem citiem neironiem. Ja konkrēts neirons saņem pietiekami daudz stimulu, tas nosūta ziņojumu jebkuram citam neironam, ar kuru tas ir savienots, izmantojot savu aksonu. Līdzīgi mākslīgajam neironu tīklam ir datu ieejas slānis, viens vai vairāki slēptie klasifikatoru slāņi un izejas slānis. Katrs slēptā slāņa mezgls ir savienots ar nākamā slāņa mezglu. Kad mezgls saņem informāciju, tas nosūta zināmu tās daļu uz mezgliem, ar kuriem tas ir savienots. Šo daudzumu nosaka ar matemātisku funkciju, ko sauc par aktivizācijas funkciju, piemēram, sigmoīda vai tanh.
Ja par neironu tīklu domājam kā par matemātisku vienādojumu, tad neironu tīkls ir vienkārši saraksts ar matemātiskām operācijām, kas jāpiemēro ievades datiem. Katras operācijas ieeja un izeja ir tenzors (precīzāk - vektors vai matrica). Katrs slāņu pāris ir savienots ar svaru sarakstu. Katrā slānī ir saglabāti vairāki tenzori. Atsevišķu slāņa tenzoru sauc par mezglu. Katrs mezgls ir savienots ar dažiem vai visiem nākamā slāņa mezgliem ar svaru. Katram mezglam ir arī vērtību saraksts, ko sauc par novirzēm. Katra slāņa vērtība tad ir kārtējā slāņa vērtību (ko sauc par X) aktivācijas funkcijas rezultāts, kas reizināts ar svariem.
A k t i v ā c i j a ( W ( e i g h t s ) ∗ X + b ( i a s ) ) {\displaystyle Aktivizēšana(W(eights)*X+b(ias))} }
Tīklam tiek definēta izmaksu funkcija. Zaudējumu funkcija mēģina novērtēt, cik labi neironu tīkls veic tam uzticēto uzdevumu. Visbeidzot, tiek izmantota optimizācijas metode, lai, mainot tīkla svērumus un novirzes, minimizētu izmaksu funkcijas izvadi. Šo procesu sauc par apmācību. Apmācību veic pa vienam mazam solim. Pēc tūkstošiem soļu tīkls parasti spēj diezgan labi izpildīt tam uzticēto uzdevumu.
Piemērs
Apskatiet programmu, kas pārbauda, vai persona ir dzīva. Tā pārbauda divas lietas - pulsu un elpošanu.Ja cilvēkam ir pulss vai viņš elpo, programma izdos "dzīvs", pretējā gadījumā izdos "miris". Programmā, kas laika gaitā nemācās, tas būtu rakstāms šādi:
Ļoti vienkāršs neironu tīkls, kas sastāv tikai no viena neirona un risina vienu un to pašu problēmu, izskatās šādi:
Pulsa, elpošanas un dzīvs vērtības būs vai nu 0, vai 1, kas apzīmē nepatiesu un patiesu vērtību. Tādējādi, ja šim neironam tiek dotas vērtības (0,1), (1,0) vai (1,1), tam būtu jāizraida 1, bet, ja tam tiek dotas vērtības (0,0), tam būtu jāizraida 0. Neirons to dara, izmantojot vienkāršu matemātisku operāciju - tas saskaita visas dotās vērtības kopā un tad pievieno savu slēpto vērtību, ko sauc par "novirzi". Sākumā šī slēptā vērtība ir nejauša, un laika gaitā mēs to koriģējam, ja neirons nesniedz vēlamo rezultātu.
Ja mēs saskaitītu kopā tādas vērtības kā (1,1), mēs varētu iegūt skaitļus, kas lielāki par 1, bet mēs vēlamies, lai mūsu rezultāts būtu no 0 līdz 1! Lai atrisinātu šo problēmu, mēs varam izmantot funkciju, kas ierobežo mūsu faktisko izvadi līdz 0 vai 1, pat ja neirona matemātikas rezultāts nav bijis šajā diapazonā. Sarežģītākos neironu tīklos mēs piemērojam neironam funkciju (piemēram, sigmoīda), lai tā vērtība būtu starp 0 vai 1 (piemēram, 0,66), un pēc tam šo vērtību nododam nākamajam neironam līdz pat brīdim, kad mums ir nepieciešams mūsu izvads.
Mācību metodes
Ir trīs veidi, kā neironu tīkls var mācīties: mācīšanās ar uzraudzību, mācīšanās bez uzraudzības un pastiprinājuma mācīšanās. Visas šīs metodes darbojas, vai nu minimizējot, vai maksimizējot izmaksu funkciju, bet katra no tām ir labāka noteiktos uzdevumos.
Nesen Hertfordšīras Universitātes (Apvienotā Karaliste) pētnieku komanda izmantoja pastiprināto mācīšanos, lai humanoīdais robots iCub iemācītos runāt vienkāršus vārdus, bļāstot.
Jautājumi un atbildes
J: Kas ir neironu tīkls?
A: Neironu tīkls (saukts arī par ANN vai mākslīgo neironu tīklu) ir sava veida datorprogramma, kas veidota pēc bioloģisko neironu parauga. To veido šūnas, kas sadarbojas, lai iegūtu vēlamo rezultātu, lai gan katra atsevišķa šūna ir atbildīga tikai par nelielas problēmas daļas atrisināšanu.
J: Kā neironu tīklu var salīdzināt ar bioloģiskajām smadzenēm?
A: Bioloģiskās smadzenes spēj atrisināt sarežģītas problēmas, bet katrs neirons ir atbildīgs tikai par ļoti mazas problēmas daļas atrisināšanu. Līdzīgi arī neironu tīklu veido šūnas, kas sadarbojas, lai sasniegtu vēlamo rezultātu, lai gan katra atsevišķa šūna ir atbildīga tikai par nelielas problēmas daļas atrisināšanu.
J: Kāda veida programmas var izveidot mākslīgi inteliģentas programmas?
A: Neironu tīkli ir mašīnmācīšanās piemērs, kur programma var mainīties, mācoties risināt problēmu.
J: Kā var apmācīt un uzlabot ar katru piemēru, lai izmantotu dziļo mācīšanos?
A: Neironu tīklu var apmācīt un uzlabot ar katru piemēru, bet, jo lielāks ir neironu tīkls, jo vairāk piemēru tam ir nepieciešams, lai tas labi darbotos, bieži vien dziļās mācīšanās gadījumā ir nepieciešami miljoniem vai miljardiem piemēru.
J: Kas nepieciešams, lai dziļā mācīšanās būtu veiksmīga?
A: Lai dziļā mācīšanās būtu veiksmīga, ir nepieciešami miljoniem vai miljardiem piemēru atkarībā no tā, cik liels ir jūsu neironu tīkls.
J: Kā mašīnmācīšanās ir saistīta ar mākslīgi inteliģentu programmu radīšanu?
A.: Mašīnmācīšanās ir saistīta ar mākslīgi inteliģentu programmu radīšanu, jo tā ļauj programmām mainīties, kad tās mācās risināt problēmas.