Kezdőoldal » Számítástechnika » Programozás » Mesterséges neurális hálózatot...

Mesterséges neurális hálózatot, ami evolúcióval tanul, hogyan lehet létrehozni? Milyen programozási nyelvvel?

Figyelt kérdés
Voltam egy előadáson és ott saját szememmel láttam, hogy egy mesterséges neurális hálózat 20 perc alatt megtanult snake-ezni. Egyenlőre sokkal egyszerűbb feladatra szeretném programozni, max 4-5 inputtal.

2017. márc. 20. 16:47
1 2
 1/18 Derwer ***** válasza:
Kb bármiben. Mi egyetemen C#ban csináltunk/használtunk neutrális hálót. (BMF-NIK)
2017. márc. 20. 16:49
Hasznos számodra ez a válasz?
 2/18 anonim ***** válasza:
35%

[link]

[link]

[link]


Örülök, hogy nelyetted guglizhattam! Külön megtiszteltetés a részemre.


(és bármely neumann elvű programozási nyelven természetesen)

2017. márc. 20. 16:50
Hasznos számodra ez a válasz?
 3/18 anonim ***** válasza:
0%
*egyelőre
2017. márc. 20. 16:51
Hasznos számodra ez a válasz?
 4/18 anonim ***** válasza:
#2 ha már ennyire belejöttél a gúglizásba mondd már el milyen idő lesz holnap, mert én is elég lusta vagyok megnézni.
2017. márc. 20. 16:52
Hasznos számodra ez a válasz?
 5/18 anonim ***** válasza:
#4 átlagos
2017. márc. 20. 16:57
Hasznos számodra ez a válasz?
 6/18 A kérdező kommentje:

C-ben kezdtem el.

Eddig itt tartok:



#include <stdio.h>

#include <stdlib.h>

#include <math.h>


int main(){

int index;

double input[5];

double suly[5];

double output;

double szorzat[5];

double osszeg;

for( index=0;index<5;index++ ){

printf("%d. input = ", index+1 );

scanf("%lf", &input[index]);

printf("%d. suly = ", index+1 );

scanf("%lf", &suly[index]);

printf("\n");

}

for( index = 0; index < 5; index = index + 1 ){

szorzat[index] = input[index] * suly[index];

osszeg = osszeg + szorzat[index];

}

output = tanh(osszeg);

printf("%lf",output);

return 0;

}



Hogyan tovább? Azthiszem most még csak 1 neuronnnak a kimenetét tudom, de egy hálót kéne generálni.

2017. márc. 20. 17:44
 7/18 A kérdező kommentje:
Ja, és még csak 7.-es vagyok, de bármilyen új anyagra nyitott vagyok, amiket ehhez meg kéne tanulni.
2017. márc. 20. 17:45
 8/18 anonim ***** válasza:

Mivel tanulni, próbálgatni szeretnél, nem biztos, hogy alkalmas a válaszom, de élesben az ember ritkán programoz le ilyesmit: sokan megcsinálták már sokkal jobban is. Én csak a Python modulokat ismerem, de a Tensorflow, Theano, vagy az ezekre épülő Keras, és még száz másik modul mindent tud, amit te ezen a szinten akarhatsz.


Nyilván C-ben, C++-ban is van egy csomó.

2017. márc. 20. 17:53
Hasznos számodra ez a válasz?
 9/18 sharkxxx ***** válasza:

Én ilyeneket készítek az utóbbi időben.

Azt javaslom, hogy ne ugorjál fejest a közepébe, mert csak bele zavarodsz.

Először tanulj meg olyan algoritmust írni, ami evolúcióval tanul. De a génjében ne legyen neurális háló. Tehetel oda bármilyen más adatstruktúrát, például tömböt.

Majd tanulj meg neurális hálót készíteni. Az is tud tanulni önmagában, csak meg kell neki mutani egy táblázat formájában, hogy te hogyan csinálnád. (pl: te hogyan játszanál snaket, Need4Speed-et, vagy akármit) Ez az úgynevezett: Backpropagation Neural Network

Ha már mind a kettőt megértetted, akkor csak beteszel az evolúciós algoritmus génjébe egy fix neuronokból álló neurális hálót.

Ha még tovább akarsz menni, akkor olyan evolúciós algoritmust is készíthetel, aminek a génje nem fix neuronokból áll, hanem a neuronak, és a köztük levő kapcsolatok az evolúció folyamán jönnek létre.

2017. márc. 20. 17:55
Hasznos számodra ez a válasz?
 10/18 A kérdező kommentje:
Köszönöm szépen a válaszokat!
2017. márc. 20. 18:12
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!