Конкурентная нейронная сеть распознавания одного символа - PullRequest
1 голос
/ 15 марта 2012

Я работаю над заданием: я должен создать скрипт распознавания букв в Matlab

Я извлек 44 функции из букв, которые я ввел (26 различных букв), и я хочу использовать конкурентоспособную нейронную сеть

У меня есть матрица возможностей 44x26, по одной строке для каждой буквы, и я пытаюсь построить сеть, которая могла бы классифицировать буквы по 26 различным классам, но безуспешно

Набор функций каждой буквы отличается от других, так что я думаю, что что-то не так с параметрами обучения

вот код для сетевого обучения:

epochs = 1500;
kohonen_weights_learning_rate = 0.02;
conscience_bias_learning_rate = 0.001;

net = competlayer(26, kohonen_weights_learning_rate, conscience_bias_learning_rate);
net.trainParam.epochs = epochs;
net = train(net, Features);
outputs = net(Features);
classes = vec2ind(outputs);

проблема в том, что "классы" не содержат 26 разных классов, но обычно один или два повторяющихся класса

как я могу настроить свою сеть, чтобы она соответствовала 26 классам?

1 Ответ

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

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

Код правильный.

Вам следует попробовать поиграть с параметрами и эпохами, пока сеть не будет обучена в соответствии с вашими предпочтениями.

Наконец, если вам не удается обучить сеть, которая правильно распознает классы, вам следует рассмотреть вопрос о том, как извлечь функции.

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