A närvivõrgus, et mängib TicTacToe

link: http://www.tropicalcoder.com/NeuralNetwork.htm

Skeem BPN närvivõrgus

Ma leian, et mõiste närvivõrgud üsna facinating, kuid milline võiks ma tõesti ühe? Mul oli tekkinud paar erinevat tüüpi võrkude ja mängis nendega, teeme lihtsa klassikalise eksperimendid, nagu õpetamise Tagasi Levimise Võrgustik tunda tähestiku iga täht on kirjutatud lihtsa 5 7 võrku. Jooksin variatsioonid need kirjad läbi koolitatud võrk ja kindel, piisavalt, et see tunnustatud enamik neist. See on kõik, mis varem tehtud. Mida ma saaksin teha teisiti?

Siis see tuli mulle. Nüüd, et mul oli Võitmatu Geneetiline Algoritm mängivad Xs ja Os-i, et ma võiks kasutada see, et õpetada närvivõrgus mängu. Mul oli vähendada keerukust mäng alla 17 lauad -andmebaas- O-mängija, ja vastav tabel 17 vastust, et iga positsiooni. A BPN närvivõrgus ülesanne meeldejätmine need 17 lauad ja nende vastused peaksid olema lihtsam siis meeldejätmist tähestikku. See oleks vaja sisend kiht ainult 18 ühikut, ja väljund kiht vaid 9 tk. Valisin 15 ühikut peidetud kihi. Võib-olla oleks see maailma lihtsaim neural net võimeline mängima TicTacToe.

Nüüd on neid üheksa ruutu pardal, ja iga võib võtta väärtuse kohta X, O, või tühi. Võrgu oleks vaja 9 paari sisendid “näha” pardal. Iga ruut siis oleks lisatud sisend paari. Sisestage paari oleks aktiveeritud X, ütleme, ja sisend B aktiveeritud, kui seal oli O, ja ei input aktiveeritud puhul tühi ruut.

Seal oleks 9 väljundid. Neuraaltoru võrgu oleks koolitatud on esitatud iga juhatuse andmebaasi “isendit” see on sisend ja vajalik aktiveerida õige 9 väljundid, mis oli vastuseks geneetiline algoritm oli arenenud, et eelkõige muster.

Lõpuks, see oli lihtne. Võrku ühendatud andmete alusel määratud esimesel proovida. Kui BPN võrgu saime kõik lauad suurt usaldust.

Esimene versioon mäng, ma pööratud ja/või kajastuvad iga juhatuse sobitada konfiguratsiooni sätestatud koolituse enne saatmist neural net. Muidugi siis see oli täiuslik mäng. Ma kiiresti aru, et see oli tõesti loll. Olin kasutades neural net kui andmebaasi, kus lihtne üles otsida tabel teeks. See näitas midagi eesmärgil või võimu närvivõrgus lisaks asjaolule, et olin edukas koolitust.

Kogu idee kasutades BPN närvivõrgus on tööle see mustrite äratundmise võime. Üks esitab selle koos mõned näited mustrid üks tahab ta õppida ära tundma, ja neural net extrapolates sellest komplekt isendit liigitada tundmatu muster.

Kuidas ma saaksin teha seda tasub kasutada? Ma otsustasin, oleks huvitav näha, kui närvivõrgus võib olla võimalik tuvastada muster mäng olukord oli koolitatud olgugi, et pardal on pööratud teatud määral.

Kaaluda muster Xs ja Os mängu pardal. Saate pöörata, et juhatuse 90, 180 ja 270 kraadi. See ikka täpselt sama mängu olukorras, kuid sõltuvalt sümmeetriat, muster ilmuvad erinevad iga pöörde. Samuti saab mõelda, et juhatuse peegel (180-kraadine pööramine külgsuunas Z lennuk) ja muster näeb välja erinevad (kui see ei ole kahepoolne sümmeetria). Lisaks sellele, pärast kajastab juhatus võib teil olla võimalik teha veel kolm 90 kraadi pöördeid X -, Y-tasapinnal, jällegi olenevalt puudub sümmeetria mustri. Kokku on kuni kaheksa eri seisukohad võimalik sama pardal.

Ma koolitanud neural net ainult kaks vaadet (view juhatuse nagu see juhtus ilmuvad andmebaasi, ja peegeldunud vaadata. Need kaks vaadet esindab ainult üks neljandik kõiki võimalikke seisukohti. Oleks neural net võimalik liigitada õigesti juhatuse pööratud asendisse, ta polnud kunagi näinud seda enne?

Vastus oli jah, kuigi sellise piiratud näiteid väga keeruline mõiste, see oli ilmselgelt päris raske. Tunnustamise määr oli ainult 30%, kuid see oli kaks korda nii hea kui võimalus üksi konto. See oli ka piisavalt hea, et kallutada tasakaalu kasuks närvivõrgus võitnud. Kaks mängijat tegemise juhuslik liigub mängija, kes läheb esimesena on suur eelis teiste üle, ja võidab kiirusega umbes kaks mängu ühes. Minu neural net mängitud O, mängija on määratud selleks, et minna teise, ja veel võita X rohkem kui pool aega.
Nüüd saad aru, et kui juhatus lihtsalt juhtub olema sama konfiguratsiooni nagu sätestatud koolituse, neural net kunagi teeb vea. Jaoks eksperiment, et näha, millist kasu see üksi annab oletame, et meil on see nii, et kui see on nii, me kasutame vastus neural net, ja kui pardal on positsioon neural net on kunagi näinud, lihtsalt juhuslik liikuda. Katsed näitasid, et vastu juhuslik mängija see ei ole piisavalt hea, et anda neural net ära, ja tema vastane (kes läheb alati esimene) võidab umbes 53% kõik mängud. Koolitatud närvivõrgus tunnistades vaid 30% mustreid, see oli kunagi näinud, see võidab umbes 52% ajast, kaotades X-i suur eelis esimese sammu.

Järgmise versiooni, ma suurenes koolituse komplekti isendit anda veel üks vaade esialgse loetelu lauad. Nüüd peale originaal 17 lauad ja külgsuunas 180-kraadise pöörde Z lennuk, lisasin 180 vertikaalse pööramine Z lennuk. Et pane see muul viisil, mul oli originaal juhatuse nimekirja, peegli pildid neist, ja nende muutused. Peale selle lisasin kõik 9 võimalikku esimest X liigub seal on (O reageerimine esimene käik on kõrgeim tähtsust.) Jällegi võrgu lähenesid selle laiendatud komplekt isendit.

Teine 100000 mängu turniiri sama juhuslik mängija, seekord O võitis 87% kõik mängud võitnud kumbki pool, jättes alles ainult 13% võidab X – juhuslik mängija, kes läheb alati esimene.

Kõik liigub saadetud neural net, 41% olid täpselt samad seisukohad on neural net oli koolitatud, ja seega otsene otsing. Siiski 58% kõigist liigub saadetud neural net olid pöördeid ta ei olnud kunagi näinud. Need lauad, neural net nüüd on sellele reageerinud, ning õige move ilmatu 81% ajast. 19% – ta ei suutnud liigitada, rohkem kui pooled olid ebaseaduslikud liigub ja tuli asendada juhuslik liigub. Ka, on väga vähe – umbes 1% – lauad käigus loodud mängud olid lauad, kus neural net ei olnud kunagi saanud mingit koolitust ja juhuslikult vastus oli loodud sellisel juhul samuti. Kokku siis umbes 7% kõik käigud on tegelikult juhuslik liigub.

Ma siis pane network code into a DLL, salvestatud kaalud saadud koolituse faili nii, et võrk võiks olla taastatud, ja vahukoor natuke liides, nii et saate näha, mida tema meeldib mängida närvivõrgus. Ta on kaval vastane! On ka võimalus, et mängida geneetiline algoritm, kuid teil on kiiresti avastada, see on mõttetu, et isegi mõelda, et peksmine. Mul on lisatud võimalus mängida random number generator. Et oleks huvitavam, algoritm oli lisatud veendumaks, et ei ole lihtne võidab on olla oli mängija ja võimalus visata lihtne plokk on kunagi vastamata arvuti. See “vastane” on seesama, mida kasutatakse, et kasvatada geneetilised algoritmid ja katsetada närvivõrgud.

Teil on võimalik alla laadida rakendus -siin- [vers. 1.2 – 43 Kb]. Lihtsalt paki failid kausta ja klõpsake exe mängida. Seal on midagi installida või peegeldushäirete oma Windowsi registrit. Ma kasutasin standardi rakendamise BPN võrgustik, David M. Skapura, autor suurepärane raamat, mida ma lugeda närvivõrgud. Lähtekoodi see on saadaval -siin- [6 Kb].

Leave a Reply