Как узнать, что Backpropagation может успешно тренироваться или нет? - PullRequest
2 голосов
/ 19 января 2012

У меня есть проект ИИ, который использует нейронную сеть Backpropagation.

Это обучение в течение примерно 1 часа, и он обучил 60-70 входов из всех 100 входов.Я имею в виду, что 60-70 входов верны в условиях обратного распространения.(количество обученных входов изменяется между 60 и 70).

И в настоящее время завершено более 10000 эпох, и каждая эпоха занимает почти 0,5 секунды.

Как узнать,Нейронную сеть можно успешно обучить, если я оставлю ее надолго?(или лучше тренироваться не может?)

1 Ответ

7 голосов
/ 19 января 2012

Проверьте мой ответ на этот вопрос: В чем разница между поездом, проверкой и набором тестов в нейронных сетях?

Вам следует использовать 3 набора данных:

  • Обучение
  • Проверка
  • Проверка

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

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

Хорошим методом проверки является использование 10-кратной (k-кратной) перекрестной проверки .Кроме того, существуют конкретные «стратегии» для разделения вашего набора данных на обучение, проверку и тестирование.Это что-то вроде науки само по себе, поэтому вы должны прочитать об этом тоже.

Обновление

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

  1. http://www.colinfahey.com/neural_network_with_back_propagation_learning/neural_network_with_back_propagation_learning_en.html
  2. http://www.willamette.edu/~gorr/classes/cs449/linear2.html

Раздел 5.9 статьи Колина Фахи описывает ее лучше всего:

Формула обратного распространения ошибок:
Значения ошибок на выходах нейронной сети рассчитываются по следующей формуле:

Error = (Output - Desired);  // Derived from: Output = Desired + Error;

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

ErrorAccumulator += Output * (1 - Output) * OutputError;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...