2013-04-01 30 views
19

Piyolin ile biraz oynamış ve özel mimarilerle sinir ağlarının nasıl üretileceğini anladım ve bunları geri yayma algoritması kullanarak denetlenen veri kümelerine eğitiyorum. Bununla birlikte, optimizasyon algoritmaları ve görevlerin, öğrenenlerin ve ortamların kavramları ile kafam karışmış durumdadır.Parakin siyah kutu optimizasyonunu kullanarak denetlenen veri kümesine sinir ağı nasıl eğitilir?

Örneğin: Örneğin, XOR veri kümesini pybrain genetik algoritması (2) kullanarak sınıflandırmak için (1) gibi bir sinir ağını nasıl uygularım?

(1) pybrain.tools.shortcuts.buildNetwork(2, 3, 1)

(2) pybrain.optimization.GA()

+0

Sen bilmek istiyorum tek değildir. –

cevap

20

Nihayet çalıştı !! Nasıl olduğunu bildikten sonra her zaman kolay!

Esasen GA'nın ilk argümü, argüman olarak (argüman olarak adlandırılan bir kişi) ikinci argümanı alması gereken fitness işlevidir (dokümanlardaki değerlendirici olarak adlandırılır). Bu örnekte

Yukarıdaki komut sonra

from pybrain.datasets.classification import ClassificationDataSet 
# below line can be replaced with the algorithm of choice e.g. 
# from pybrain.optimization.hillclimber import HillClimber 
from pybrain.optimization.populationbased.ga import GA 
from pybrain.tools.shortcuts import buildNetwork 

# create XOR dataset 
d = ClassificationDataSet(2) 
d.addSample([0., 0.], [0.]) 
d.addSample([0., 1.], [1.]) 
d.addSample([1., 0.], [1.]) 
d.addSample([1., 1.], [0.]) 
d.setField('class', [ [0.],[1.],[1.],[0.]]) 

nn = buildNetwork(2, 3, 1) 
# d.evaluateModuleMSE takes nn as its first and only argument 
ga = GA(d.evaluateModuleMSE, nn, minimize=True) 
for i in range(100): 
    nn = ga.learn(0)[0] 

Testi sonuçları XOR için eğitim verecek:

In [68]: nn.activate([0,0]) 
Out[68]: array([-0.07944574]) 

In [69]: nn.activate([1,0]) 
Out[69]: array([ 0.97635635]) 

In [70]: nn.activate([0,1]) 
Out[70]: array([ 1.0216745]) 

In [71]: nn.activate([1,1]) 
Out[71]: array([ 0.03604205]) 
+0

GA burada ne yapıyor? Xor'un basit backprop öğrenme ile çözülebilir olduğu bilinmektedir. –

+0

XOR sadece bir örnek veri kümesidir. Bunu kullandım çünkü iyi bilinen, küçük ve basit. GA ve BP, probleme bağlı olarak farklı performans gösterir. GA'lar da güzeldir çünkü nöral ağ ile birlikte kullanılmaları gerekmez. –

+2

Kodunuzu çalıştırdım, ancak XOR'u sınıflandıramadı ... – SomethingSomething

İlgili konular