Составители:
Рубрика:
84
Для устранения эффекта переобучения можно использовать рас-
ширенный вариант команды train, в котором помимо обучающей
выборки указывается также проверочная выборка:
>> val.P = [–0.975: 0.05: 0.975]; % формирование проверочной
выборки
>> val.T = sin(2*pi*val.P) + 0.1*randn(size(val.P));
>> [net, tr] = train(net, p, t, [], [], val);
Результат обучения для этого варианта команды представлен на
рис. 3.14. Обучение здесь прекращается раньше, как только конт-
рольная ошибка начинает значительно превышать ошибку обуче-
ния. Благодаря этому выход нейронной сети не реагирует на от-
дельные аномальные точки обучающего множества (см. рис. 3.13).
3.5. Распознавание символов
Задача распознавания изображений является одной из наиболее
массовых задач, успешно решаемых с помощью ИНС. Возможны
самые разные постановки проблемы, одна из наиболее простых –
распознавание фиксированного набора символов.
Пример 3.10. Распознавание букв.
В системе MatLab предусмотрена специальная функция
>> [alphabet, targets] = prprob;
Эта функция возвращает две двоичные матрицы: в матрице
alphabet (размером 35×26) каждый столбец кодирует одну букву, а
матрица targets (размером 26×26) является диагональной и служит
для идентификации столбца.
Каждому столбцу alphabet соответствует матрица 7×5, представ-
ляющая собой двоичное изображение буквы.
Следующая функция отображает все столбцы alphabet в виде
букв (функцию требуется поместить в рабочий каталог MatLab):
function plotletters(alphabet)
fprintf('plotletters is plotting the first 25 letters\n');
[m,n]=size(alphabet);
if m~=35
error('plotletters needs columns 35 numbers long');
end
figure
MM=colormap(gray);
MM=MM(end:–1:1,:);
Страницы
- « первая
- ‹ предыдущая
- …
- 82
- 83
- 84
- 85
- 86
- …
- следующая ›
- последняя »