簡體   English   中英

如何使用pybrain黑盒優化訓練神經網絡到監督數據集?

[英]How to train a neural network to supervised data set using pybrain black-box optimization?

我已經玩過pybrain,了解如何使用自定義架構生成神經網絡,並使用反向傳播算法將它們訓練到監督數據集。

但是我對優化算法以及任務,學習代理和環境的概念感到困惑。

例如:我如何實現神經網絡,如(1)使用pybrain遺傳算法(2)對XOR數據集進行分類?

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

(2) pybrain.optimization.GA()

我終於解決了!! 一旦你知道如何,它總是很容易!

基本上,GA的第一個arg是適應度函數(在docs中稱為求值者),它必須將第二個參數(一個個體,在docs中稱為可評估)作為其唯一的arg。

在這個例子中將訓練到異或

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]

上述腳本后的測試結果:

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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM