Общая диаграмма ошибок обратного распространения с очень маленьким наклоном ... Это нормально? - PullRequest
2 голосов
/ 20 января 2012

Я тренирую нейронную сеть с алгоритмом обратного распространения, и это график общих ошибок:

enter image description here

(Я вычисляю общую ошибку по этой формуле: http://www.colinfahey.com/neural_network_with_back_propagation_learning/neural_network_with_back_propagation_learning_en.html Часть 6.3: Общая ошибка обучения)

Я использовал Power Trendline и после вычислений увидел, что если epoches = 13000 => общая ошибка = 0,2

Разве это не слишком высоко?

Этот график нормальный? Кажется, тренировочный процесс займет слишком много времени ... Верно? Что я должен делать? Разве нет более быстрого способа?

РЕДАКТИРОВАТЬ: моя нейронная сеть имеет скрытый слой с 200 нейронов. и мои входные и выходные слои имеют 10-12 нейронов. Моя проблема - кластеризация персонажей. (он группирует персидские символы в несколько кластеров с контролируемой подготовкой )

1 Ответ

1 голос
/ 05 марта 2012

Таким образом, вы используете ANN с 200 входными узлами с 10-12 скрытыми узлами в скрытом слое, какую функцию активации вы используете, если таковые имеются, для скрытого слоя и выходного слоя?

Это стандартный алгоритм обучения обратного распространения и какую функцию обучения вы используете? Каждый тип обучающей функции влияет на скорость обучения, а в некоторых случаях на его способность обобщать, вы не хотите тренироваться на основе ваших данных, так что ваша нейронная сеть полезна только для ваших тренировочных данных.

Так что в идеале вы хотите, чтобы приличные данные о тренировках были частью выборки ваших реальных данных, скажем, 15%. Вы можете тренировать свои данные, используя алгоритм на основе сопряженных градиентов: http://www.mathworks.co.uk/help/toolbox/nnet/ug/bss331l-1.html#bss331l-2 это быстро обучит вашу сеть.

10-12 узлов могут быть не идеальными для ваших данных, вы можете попробовать изменить число в блоках по 5 или добавить другой слой, в целом, большее количество слоев улучшит способность вашей сети классифицировать вашу проблему, но увеличит вычислительные сложность и, следовательно, замедлить обучение.

Предположительно, эти 10-12 узлов являются "функциями", которые вы пытаетесь классифицировать?

Если это так, вы можете захотеть их нормализовать, поэтому измените масштаб каждого из них в диапазоне от 0 до 1 или от -1 до 1 в зависимости от вашей функции активации (например, tan sigmoidal даст значения в диапазоне от -1 до +1): http://www.heatonresearch.com/node/706

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...