Нейронная сеть, кажется, работает нормально, пока не используется для обработки данных (все результаты практически одинаковы)

Недавно я реализовал типичную трехслойную нейронную сеть (вход -> скрытый -> выход), и для активации я использую сигмовидную функцию. Пока что в хост-программе есть 3 режима:

  1. Создание, которое, кажется, работает нормально. Он создает сеть с указанным количеством входных, скрытых и выходных нейронов, инициализирует веса либо случайными значениями, либо нулем.
  2. Обучающая программа, которая загружает набор данных, вычисляет выходные данные сети, затем распространяет ошибку обратно и обновляет весовые коэффициенты. Насколько я могу сказать, это работает нормально. Веса меняются, но не очень, после обучения на наборе данных.
  3. Обработка, которая, кажется, работает нормально. Однако вывод данных для набора данных, который использовался для обучения, или любого другого набора данных в этом отношении очень плохой. Обычно это либо непрерывный поток из 1, со случайным 0.999999, либо каждое выходное значение для каждого входа составляет 0.9999, причем последние цифры различаются между входами. Насколько я могу судить, не было никакой корреляции между этими двумя последними цифрами и тем, что предполагалось выдать.

Как мне понять, что не работает правильно?

1

Решение

Вам нужно найти набор параметров (количество нейронов, скорость обучения, количество итераций для обучения), который хорошо подходит для классификации ранее невидимых данных. Люди часто достигают этого, разделяя свои данные на три группы: обучение, проверка и тестирование.

Что бы вы ни решили сделать, просто помните, что на самом деле не имеет смысла проводить тестирование на тех же данных, с которыми вы тренировались, потому что любой метод классификации, близкий к разумному, должен получить все на 100% прямо при такой настройке.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]