Ошибка обучения Encog для гибкого обратного распространения более 100%

У меня есть набор данных, который при загрузке, нормализации и передаче в нейронную сеть с прямой связью по умолчанию (без какого-либо обучения) дает мне ошибку более 100%. От 130% до 150% в зависимости от случайных весов. У меня сложилось впечатление, что процент ошибок может быть максимум 100%? Я ошибся?

Когда я запускаю итерации, ошибка падает чуть ниже 100%.

Также при обучении сети (функция активации скрытых слоев и вывод) я иногда получаю значение Result сверх лимита (-1, 1). Например, идеальное значение — 1, результат — 5,53042334202304 (выдуманное значение, но суть вы поняли). Я уверен, что это неправильно? Почему это происходит?

Что это за безобразие и почему оно происходит? Мои данные как-то не нормализуются должным образом? Я выбираю какую-то неправильную конфигурацию? Любое предложение приветствуется, так как у меня заканчиваются идеи.

Я также загрузил весь свой проект, чтобы вы могли увидеть и проверить сами.

Данные моего проекта

Я использую Encog Workbench 3.2.0 для выполнения всех этих тестов, хотя это может быть не связано с Encog, я просто не знаю, делаю ли я какую-то основную ошибку или просто неправильно настраиваю ее в Encog Workbench.


person RagingTroll    schedule 16.11.2015    source источник
comment
Вы можете опубликовать свой код для обучения этой модели?   -  person Felipe Oriani    schedule 17.11.2015
comment
я тренирую его с помощью encog workbench 3.2.0, это интерфейс для библиотеки машинного обучения encog, поэтому вы можете протестировать материал, прежде чем приступать к кодированию. Так что у меня нет кода, извините.   -  person RagingTroll    schedule 17.11.2015


Ответы (1)


Прежде всего, выполните нормализацию и масштабирование ваших данных. Вы можете сделать нормализацию самостоятельно или с помощью "Мастера аналитики". Обратите внимание, что здесь данные уже нормализованы перед анализом. Также я заметил, что в neuronetwork.eg, который вы прикрепили, последний слой помечен как «ActivationLinear», и его вывод может быть в некоторых случаях 5. Измените его на «ActivationTANH» и не будет больше 1

person Yuriy Zaletskyy    schedule 17.11.2015
comment
Делаю нормализацию. Все нормализуется с помощью мастера аналитики. Файл аналитики также находится в загруженных файлах. Я использую его для преобразования csv в нормализованную двоичную версию, готовую для ввода. Таким образом, все, что подается в сеть, нормализуется от -1 до 1. Линейная активация, которую вы видите, относится к входному слою, я не могу это изменить. Я верю, что это всегда так и что это не влияет на реальную сеть. Потому что, если вы посмотрите на конфигурацию NN немного дальше, вы увидите, что это просто tanh-›tanh и нигде в ней не применяется линейная функция. - person RagingTroll; 17.11.2015
comment
Я мог что-то упустить, дайте мне знать, если я ошибаюсь! Я надеялся, что линейная активация, которую вы заметили, была ошибкой, но после дальнейшего изучения я не думаю, что это так, поскольку ее вообще нельзя изменить, и я полагаю, что это просто для галочки? Не уверен, правда... - person RagingTroll; 17.11.2015