Новости

Фотки
Надписи на партах
Под гармошку
Обои для рабочего стола

Downloads
Компьютерные магазины
Фуфло

ЕЯС
НКС
ООП
СЦОД

Гостевая

Я ВКонтакте

Нейронные компьютерные сети

Рекомендую песетить этот раздел http://algolist.manual.ru/ai/neuro/ Там есть конспект лекций: 'основы проектирования систем искусственного интеллекта'. (ZIP, 0.4 Мб) По моему мнению, в нём дано более понятное описание алгоритма обратного распространения ошибки (back propagation), чем в лекциях по НКС, которые дам предоставила Наталья Баясхалановна. (Этот файл вы можете также скачать из раздела Downloads. У меня он весит меньше. (RAR, 0.3 Мб))

Для тех кто делает лабораторную работу связанную с задачей "Ирисы Фишера" выкладываю файл IRIS.DBF.

Здесь Вы можете посмотреть мою программу и описание к ней, Программа изменена так, чтобы она запускалась из аплета. Также Вы можете скачать эту программу вместе с исходниками (26 Кб). Несколько примеров с сетями я уже включил в архив. (там, помимо XOR, есть ещё и примеры функций AND и OR, а также задача об ирисах Фишера) При детальном рассмотрении примеров Вам самим станет понятно, как сделать свои.

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

Ещё один момент, из-за которого у меня очень долго не получалось обучить сеть с ирисами Фишера: Моя ошибка заключалась в том, что я не масштабировал входные данные. Дело в том, что размерность у входных данных может быть разная. Например, в тех же ирисах Фишера длина чашелистика изменяется от 43 до 79, а ширина лепестка - от 1 до 25. Если эти числа без изменений подавать на вход, будет нарушаеться баланс скорости обучения. Поэтому входные данные надо линейно отображать на какой-то общий диапазон (для каждого входа - свои коэффициенты отображения). И чем ближе к нулю будут границы этого диапазона, тем более различимы будут производные (это видно из графика сигмоидальной функции), и, соответственно, тем быстрее будет производиться обучение.

Думаю, что не надо напоминать про равномерное применение всех выборок для процесса обучения. Это и так понятно. По мере запоминания одних образов сеть не должна забывать другие. Я это реализовал так: пусть для обучения сети имеются N обучающих выборок. Понятно, что они будут использоваться по нескольку раз. Но!.. если этот порядок применения разбить на блоки по N выборок, то ни внутри каждого блока все выборки будут разные...

Просто меня не устраивало то, что генератор случайных чисел плохо обеспечивает равномерное случайное распределение.

^^ наверх ^^

Дизайн: Красиков Виктор, kv630@mail.ru, ICQ - 319227
Местонахождение: Россия, респ. Бурятия, г. Улан-Удэ
Время на сервере: 03.10.24 20:25
Время в Улан-Удэ: 04.10.24 01:25
Время генерации страницы 0.004942 сек.