Matlab - низкая цель нейронной сети влияет на результат - PullRequest
0 голосов
/ 02 апреля 2011

Я создал OCR с помощью нейронных сетей Matlab.

Я использовал traingdx

net.trainParam.epochs = 8000;
net.trainParam.min_grad = 0.0000;
net.trainParam.goal = 10e-6;

Я заметил, что когда я использую разные цели, я получаю разные результаты (как и следовало ожидать).
Странно то, что я обнаружил, что мне нужно «играть» со значением цели, чтобы получить хорошие результаты.
Я ожидал, что чем ниже вы идете, тем лучше результаты и признание. Но я обнаружил, что если я понизю цель до 10e-10, то получу худшие результаты распознавания.

Есть идеи, почему снижение цели приведет к снижению правильности нейронной сети?

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

1 Ответ

2 голосов
/ 02 апреля 2011

Мои знания NN немного ржавые, но да, слишком много тренировок в сети приведет к их переобучению.Это улучшит работу сети на заданных вами векторах обучения, но ухудшит работу при разных входах.

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

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