Список форумов neuroproject.ru neuroproject.ru
Форум сайта компании НейроПроект
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Помогите новичку! Многослойный персептрон

 
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети
Предыдущая тема :: Следующая тема  
Автор Сообщение
sergey041691
Новый посетитель
Новый посетитель


Зарегистрирован: 02 Фев 2012
Сообщения: 1

СообщениеДобавлено: Чт Фев 02, 2012 11:12 pm    Заголовок сообщения: Помогите новичку! Многослойный персептрон Ответить с цитатой

Прошу помочь мне разобраться, так как я только начал изучать. Вобщем нейронные сети это тема моей курсовой(учусь на третьем курсе ФКТиПМ). Задача поставленна следующая: Определение возрастной группы человека по фотографии лица, с помощью естественно нейронной сети.
Для начала чтобы разобраться в теме, я решил реальзовать более простую задачу: на вход сети подается bmp картинка(градация серого) буквы английского алфавита, на выходе собственно разпознаная буква.


Структура сети следующая:

Многослойный персептрон из двух слоев (прогграмму писал на C++)

- bmp картинки размером 12х12 пикселей, т.е. входной вектор сети размером 144 и возможными значениями компонент от 0 до 255.
- Нейронов скрытого слоя сделал тоже 144 штуки.
- Нейронов выходного слоя сделал столько сколько существует букв - соответственно 26 штук.
- Функция активации нейронов - сигмоидальная униполярная, т.е. 1/(1+exp(-b*x))) коэффициент b равен 2.
- Начальные значения весов задаются в пределах -0.2 до 0.2.
- Для обучения использую алгоритм обратного распространения ошибки(последовательный режим). коэффициент "скорости обучение" выбирал 0.01, 0.02, 0.05

Проблема в следующем: При подачи в качестве обучающих выборок 30 картинок (по 5 для каждой буквы) сеть обучается за 500-1000 эпох, и значение глобальной ошибки(по всем 30 картинкам) можно минимизировать до 1 и даже меньше.

После этого эти первые 6 букв A,B,C,D,E,F распознаются сеть без проблем и даже картинки с этими буквами не входившие в обучающие выборки(нарисованные в фотошопе после обучения) распознаються на ура.(в качестве результата беру номер компоненты выходного вектора Y значение которой наибольшее).

Но если я подаю для обучения все 26 букв, неважно по сколько картинок для каждой, то ошибка ни как не сводиться к 1.
Например при 130 картинках(по 5 для каждой буквы) - глобальная ошибка достигала -20 при 50000 эпох обучения, при 52 картинках(по 2 для каждой буквы) глобальная ошибка достигала - 5.
Этого оказывается недостаточно и сеть неправильно распознает, даже картинки которые использовались при обучении .

Подскажите пожалуйста, что можно с этим сделать? Может мне нужно выбрать другое число скрытых нейронов или добавить еще один слой, а может что-то нетак с коэффицентами? Просто я не знаю какое количество нужно выбирать, а нигде про это не написано.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Rambler's Top100 Rambler's Top100