@moonysleeps

Как рассчитать выход нейросети (Synaptic.js)?

5d3ca1a492aea634145744.png
Пытаюсь разобраться с нейросетями, но, похоже, не совсем правильно понимаю расчет выхода нейросети. Использую SynapticJS и, как видно на картинке, сеть обучена и работает правильно, судя по выходным данным. Но при попытке использования полученных весов сети в ручной пересчете, я получаю другое значение. Поправьте, пожалуйста, если мой алгоритм расчета выхода сети неверен:

Возможно, из картинки не совсем понятно, как выглядит сеть - это просто два входных нейрона, два нейрона в скрытом слое и один выходной.

Итак,
1. исходные данные идут от -100 до 100, значит необходимо произвести нормализацию сети, т.е. n[i] = n[i] / 200 + 0.5 => получаем диапазон значений от 0 до 1. Эти же данные идут на вход.
2. Затем я рассчитываю взвешенную сумму для каждого скрытого нейрона: сумма произведений каждого нейрона на его вес к скрытому нейрону, для которого рассчитывается взвешенная сумма. Беру от полученного числа сигмоиду и присваиваю скрытому нейрону полученное значение
3. Аналогично рассчитываю значение выходного нейрона, которое и будет считаться выходом сети.

Если алгоритм правильный, то значит буду предполагать, что ошибка либо в неправильном экспорте весов и они не являются конечными, либо такая нормализация сети не подходит и лучше использовать гиперболический тангенс в диапазоне [-1...1]
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы