Как построить нейронную сеть с помощью pybrain?

Я новичок в pybrain, и у меня много проблем с построением нейронной сети. Документация мне не очень понятна, и я не нашел много примеров в Интернете.

Я хотел бы нейронную сеть с одним входом, 1 скрытым слоем, 1 выходом.

x--->f1(x),f2(x),...,b---->g(z)

Это должен быть простой пример. Скрытый слой имеет другую функцию и единицу смещения. Для этого примера мы можем рассмотреть f1=f2=sigmoid , g — это пользовательская функция.

Это то, что я делал до сих пор, но я совсем не уверен, что то, что я делаю, правильно.

И я понятия не имею, как добавить единицу смещения на скрытый слой.

class gLayer(NeuronLayer):

    def _forwardImplementation(self, inbuf, outbuf):
        outbuf[:]=g(inbuf)


    def _backwardImplementation(self, outerr, inerr, outbuf, inbuf):
      inerr[:]=derivative(g,inbuf)*outerr


print "build a network"

#Layer
inLayer=LinearLayer(1)
hLayer=SigmoidLayer(2)
outLayer=gLayer(1)
net=FeedForwardNetwork()
net.addInputModule(inLayer)
net.addModule(hLayer)
net.addOutputModule(outLayer)
#connection
in_to_hidden = FullConnection(inLayer, hLayer)
hidden_to_out = FullConnection(hLayer, outLayer)
net.addConnection(in_to_hidden)
net.addConnection(hidden_to_out)
net.sortModules()

person Donbeo    schedule 10.03.2014    source источник


Ответы (1)


Вы можете добавить BiasUnit. как еще один скрытый слой.

hBiasLayer=BiasUnit()

net.addModule(hBiasLayer)
person BoshWash    schedule 10.03.2014
comment
Вы уверены, что мне нужно подключить hlayer к hbiaslayer? - person Donbeo; 10.03.2014
comment
извините, но я думаю, что я должен как-то сказать, чтобы связать блок смещения с выходом или нет? - person Donbeo; 10.03.2014
comment
я хочу, чтобы смещение сместило выходную функцию, да - person BoshWash; 10.03.2014
comment
Я хочу сместить вход функции вывода. Что я могу сделать? - person Donbeo; 10.03.2014
comment
bias_to_out = полное соединение (hBiasLayer, outLayer) - person BoshWash; 10.03.2014