2015-08-04 2 views
1

Я устанавливаю простой нейронный сценарий sayinh: сеть имеет 3 слоя, 3 входа и 2 выхода. Он должен быть обучен распознавать простой шаблон - если входы соответственно 6.0,7.0 и 8,0, то результаты должны быть 3,0 и 4,0, в противном случае результаты должны быть 23,0идентификация входной последовательности с использованием нейронной сети

3 layered neural network

Что я понимаю, скрытый слой должен проверить входной шаблон в последовательности с простым условием else.

if in1 == 6 and in2 == 7 and in3 ==8: 
    out1, out2 = 3, 4 
else 
    out = 5 

Насколько я понимаю проблему правильно или что-то не хватает?

ответ

1

Его трудно понять на основе вашего описания и предполагая, что я не пропущу что-то очень очевидное, если вы предназначены для разработки и обучения ANN-движку, то вы определенно не можете делать это с помощью простого оператора if/else , Если вы хотите сделать это классически, тогда вам нужно построить/использовать что-то вроде, например, контролируемого алгоритма обучения, который использует функцию стоимости, которая должна быть минимизирована.

+0

спасибо за ответ, но, как здесь, в моем случае у меня есть только простая проверка состояния, не могли бы вы дать какой-то намек, какой вид обучения я могу применить здесь? – puncrazy

0

Это не то, как работает нейронная сеть, и скрытые узлы, конечно, не просто делать, если/иначе проверяет

Это очень большая тема, поэтому я настоятельно рекомендую вам проверить что-то вроде машинного обучения бесплатно Coursera класс (или что-то в этом роде), чтобы понять, что делает нейронная сеть (https://www.coursera.org/learn/machine-learning/home/welcome)

По существу ваши входные узлы являются переменными/функциями, так что да, возможно, что для данного учебного примера вы вводите 6, 7, и 8. Но ваши скрытые узлы не выполняют условные проверки. Каждый скрытый узел по существу представляет собой линейную комбинацию ваших входных функций, где каждая функция умножается на определенный вес. Процесс обучения сети определяет идеальные значения этих весов, чтобы максимизировать точность классификации на выходном уровне.

Если вы ожидаете, что ваши выходы будут чем-то вроде 3, 4, 23 (т.е. непрерывные, а не дискретные категории), вы можете проверить модели линейной регрессии, которые по существу совпадают с регрессионными моделями, которые вы изучаете в средней школе : http://aimotion.blogspot.ca/2011/10/machine-learning-with-python-linear.html

ближе всего к тому, если/иначе это что-то вроде дерева решений классификатора, но даже тогда его не строга если/иначе: https://en.wikipedia.org/wiki/Decision_tree_learning

Смежные вопросы