Основные вопросы организации сети Pybrain
Я начал строить некоторые сети в Pybrain и получал массу удовольствия. Я не совсем в восторге от документов, поэтому я создал маленькие, простые сети и поиграл с ними, чтобы понять, как работает структура классов и поток данных.
У меня есть несколько вопросов:
Настроить:
n = FeedForwardNetwork()
inLayer = LinearLayer(1, name = 'Input node')
hiddenLayer = LinearLayer(1, name = 'Hidden node')
outLayer = LinearLayer(1, name = 'Output node')
n.addInputModule(inLayer)
n.addModule(hiddenLayer)
n.addOutputModule(outLayer)
1) Когда вы выполняете метод addInputModule, узлы в этом слое автоматически ограничиваются одним входом каждый? Есть ли способ иметь более одного?
2) Кажется, я не могу создать NN из одного узла с 4 входами и 1 выходом.... похоже, что я ДОЛЖЕН использовать по крайней мере 2 узла для любого NN, потому что веса связаны с классом ребра (т.е. соединения). И если у меня есть 4 входа, у меня должно быть 4 узла в InputModule....
Do I have this right?
3) В приведенном выше фрагменте кода, каковы пороговые функции по умолчанию для каждого узла в каждом слое? Как я могу показать, что такое TF?
4) Есть ли документация, которая описывает все доступные входные данные для каждого метода класса?
Спасибо!
Gregg
1 ответ
Ваш вопрос к широкому кругу, и по этой причине abit offtopic. Тем не менее, я постараюсь решить некоторые из ваших вопросов.
- Вы должны добавить связи между слоями с
n.addConnection
- Узел представляет собой вход, поэтому для 4 входов - 1 выходной NN необходим входной слой с 4 нейронами, см. Ниже. Обратите внимание, что 1 вывод означает, что это просто классификатор да-нет, так как он может предсказать, принадлежит ли выборка ровно одному классу. 4 входа означает, что NN классифицирует выборки с 4 признаками (то есть векторы в 4d пространстве)
NN с 4 входами и 1 выходом:
from pybrain import structure
fnn = structure.FeedForwardNetwork()
in_layer = LinearLayer(4, name = 'Input node')
out_layer = LinearLayer(1, name = 'Output node')
fnn.addInputModule(in_layer)
fnn.addOutputModule(out_layer)
fnn.addConnection(structure.FullConnection(in_layer, out_layer))
- О пороге нейрона
- PyBrain хорошо документирован