Методические указания по выполнению курсового проекта по курсу


Скачать 114.1 Kb.
НазваниеМетодические указания по выполнению курсового проекта по курсу
Дата публикации05.03.2013
Размер114.1 Kb.
ТипМетодические указания
userdocs.ru > Информатика > Методические указания



Московский авиационный институт

(национальный технический университет)

Факультет прикладной математики и физики

Кафедра 802

Специализация «Математическое и программное обеспечение интеллектуальных систем»

Методические указания
по выполнению
КУРСОВОГО ПРОЕКТА
по курсу

МЕТОДЫ НЕЙРОСЕТЕВЫХ ТЕХНОЛОГИЙ”


Разработал: доц.Головачев А.Г.

Москва 2008

Оглавление

Введение

Курсовая работа (проект) - это самостоятельное учебно-научное исследование студента, которое выполняется по определенному учебному курсу или по определенным его разделам.

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

Тематика курсовых работ должна отвечать задачам учебной дисциплины и быть тесно связана с практическими вопросами специализации. Она утверждается на заседании кафедры. Выполнение курсовых работ определяется графиком.

Курсовая работа помогает студенту систематизировать полученные теоретические знания по изучаемой дисциплине, а преподавателю проверить качество этих знаний.

При оформлении курсовых работ необходимо соблюдать требования ЕСПД.

Условные обозначения

ОРО – обратное распространение ошибки.

Matlab – матричная лаборатория.

CPU – центральный процессор (англ. central processing unit).
Постановка задачи

  • Реализовать алгоритм ОРО для обучения нейронной сети.

  • Получить оценки процесса обучения.

  • Исследовать методы ускорения обучения.

  • Исследовать различные архитектуры сети.

  • Реализацию выполнить в среде МАТЛАБ.

  • Исходными данными является наборы векторов.

  • Результатом должна быть обученная сеть для распознавания векторов.

  • Рекомендуется использовать GPU-ускорители.


Вариант задания
Варианты исходных векторов позволяют формировать индивидуальные задания для каждого студента, которые согласуются с преподавателем.

В частности, ими могут быть различные наборы изображения. Изображения алфавита естественных и программных языков.

В качестве примера выбран набор из 10 черно-белых изображений размером 25х25.


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



Рис. 1 Многослойная сеть с обратным распространением ошибки
Обучение алгоритмом ОРО предполагает два прохода по всем слоям сети: прямого и обратного. При прямом проходе входной вектор подается на входной слой нейронной сети, после чего распространяется по сети от слоя к слою. В результате генерируется набор выходных сигналов, который и является фактической реакцией сети на данный входной образ. Во время прямого прохода все веса сети фиксированы. Во время обратного прохода все веса настраиваются в соответствии с правилом коррекции ошибок, а именно: фактический выход сети вычитается из желаемого, в результате чего формируется сигнал ошибки. Этот сигнал впоследствии распространяется по сети в направлении, обратном направлению связей. Отсюда и название – алгоритм обратного распространения ошибки. Веса настраиваются с целью максимального приближения выходного сигнала сети к желаемому.

В качестве активационной функции в многослойных персептронах, как правило, используется сигмоидальная активационная функция, в частности логистическая:


Рис. 2 График функции активации


Алгоритм решения задачи

Обучение сети обратного распространения требует выполнения следующих операций:

  1. Выбрать очередную обучающую пару из обучающего множества; подать входной вектор на вход сети.

  2. Вычислить выход сети.

  3. Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей пары).

  4. Подкорректировать веса сети так, чтобы минимизировать ошибку.

  5. Повторять шаги с 1 по 4 для каждого вектора обучающего множества до тех пор, пока ошибка на всем множестве не достигнет приемлемого уровня.

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

На шаги 1 и 2 можно смотреть как на «проход вперед», так как сигнал распространяется по сети от входа к выходу.
Шаги 3, 4 составляют «обратный проход», здесь вычисляемый сигнал ошибки распространяется обратно по сети и используется для подстройки весов.

На шагах 3, 4 применяется дельта-правило.
где - коэффициент усилиения.
Для ускорения обучения использовать метод добавления нейронного смещения. Это позволяет сдвигать начало отсчета логистической функции, давая эффект, аналогичный подстройке порога персептронного нейрона, и приводит к ускорению процесса обучения.

.
Изменение весов в матричном виде:
.

.

Алгоритм ОРО осуществляет градиентный спуск по поверхности ошибок. В данной точке поверхности находится направление скорейшего спуска, затем делается прыжок вниз на расстояние, пропорциональное коэффициенту скорости обучения и крутизне склона, при этом учитывается инерция, то есть стремление сохранить прежнее направление движения. Несмотря на некоторую случайность в выборе направлений, в результате получается достаточно хорошая аппроксимация спуска по совокупной поверхности ошибок. Определенную трудность здесь представляет вопрос о том, какую нужно брать длину шагов. При большой длине шага сходимость будет более быстрой, но имеется опасность перепрыгнуть через решение или (если поверхность ошибок имеет особо вычурную форму) уйти в неправильном направлении.

Искусственные нейронные сети являются важным расширением понятия вычисления. Существует несколько видов нейросетей и способов их обучения. На сегодняшний день они являются одним из приоритетных направлений исследований в области искусственного интеллекта. Но при существующем ажиотаже необходимо четко понимать достоинства и недостатки нейросетей.

Достоинства

  • Возможность обучения.

  • Параллелизм обработки информации.

  • Потенциальное сверхвысокое быстродействие

  • Надежность функционирования. Вывод из строя ограниченного числа нейронов или обрыв некоторых связей не сказываются критическим образом на качестве работы всей сети.

  • Решение задач при неизвестных закономерностях

  • Перепрограммируемость. Нейронные сети легко адаптируются к новым условиям экспериментов.

  • Устойчивость к шумам во входных данных.

Недостатки

  • Долгий процесс обучения (особенно в сетях с ОРО).

  • Паралич сети.

  • Локальные минимумы (сеть может попасть в локальный минимум (неглубокую долину), когда рядом имеется гораздо более глубокий минимум).

Возможность переобучения сети. При слишком большом количестве нейронов теряется свойство сети обобщать информацию

^ Программная реализация
Используемое программное обеспечение

Программная реализация может быть выполнена в среде Matlab в операционной системе Windows. Процессор 2,4 ГГц, ОЗУ 3 Гб.

Подготовка изображений

С помощью встроенных команд Matlab можно перевести изображение в матрицу.

dlmwrite('фотографии/0', im2bw(imread('фотографии/Бабочка.jpg'))).
Рассмотрим приведенные выше команды.

  • Команда imread считывает изображение из файла. Параметр команды – путь к файлу;

  • Команда im2bw заменяет все пиксели входного изображения на 0 (черный цвет) и 1 (белый цвет);

  • Команда dlmwrite записывает матрицу в ASCII-файл.



Сравним исходный и полученный файл:

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1description: c:\users\\элькаdesktop\правильная \\курсоваяфотографии0.jpg

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1

1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1

1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1

1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1

1,1,1,0,1,0,0,0,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1

1,1,1,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,1,0,1,1,1

1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1

1,1,1,1,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,1,1

1,1,1,1,0,0,0,1,1,1,1,1,0,0,1,0,1,1,1,0,0,1,1,1,1

1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,1,0,0,0,1,1,1,1

1,1,1,1,1,1,0,0,1,0,1,1,0,0,1,0,0,1,0,1,1,1,1,1,1

1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,0,1,0,0,1,1,1,1,1,1

1,1,1,1,1,1,0,0,1,0,0,1,0,0,0,0,1,1,0,1,1,1,1,1,1

1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1,1,1,1

1,1,1,1,1,0,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,1

1,1,1,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1

1,1,1,1,1,0,0,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1

1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1

1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1

1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

^ Исходные данные

Входные данные

На вход программе подаётся 10 матриц размером 25х25. Каждая матрица соответствует изображению, которое требуется распознать. Алгоритм получения матриц был подробно рассмотрен в пункте «Подготовка изображений».

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

Перед началом обучения всем весам должны быть присвоены небольшие начальные значения, выбранные случайным образом. Это гарантирует, что в сети не произойдет насыщения большими значениями весов, и предотвращает ряд других патологических случаев. Например, если всем весам придать одинаковые начальные значения, а для требуемого функционирования нужны неравные значения, то сеть не сможет обучиться.

function Y3= teaching(X, d)
global W1 W2 W3 B1 B2 B3 eta
%Проход вперёд

Y1 = out(W1*X + B1);

Y2 = out(W2*Y1 + B2);

Y3 = out(W3*Y2 + B3);
%Проход назад

e = Y3 - d;
%вычисляем дельта правило

delta3 = (ones(size(Y3)) - Y3).*Y3.*e;

delta2 = (ones(size(Y2)) - Y2).*Y2.*(W3'*delta3);

delta1 = (ones(size(Y1)) - Y1).*Y1.*(W2'*delta2);
%Обновление весов

W1 = W1 - eta*delta1*X'; %матрица весов первого слоя

W2 = W2 - eta*delta2*Y1'; %матрица весов второго слоя

W3 = W3 - eta*delta3*Y2'; %матрица весов третьего слоя
B1 = B1 - eta*delta1;

B2 = B2 - eta*delta2;

B3 = B3 - eta*delta3;







Выводы по настройке параметров нейронной сети

По прежнему, η - коэффициент скорости обучения, служащий для управления средней величиной изменения веса. В данном примере значение η равно 0.1.

Если увеличить коэффициент до 0.75 обучение весов будет происходить быстрее.



Если взять слишком большую η, то процесс обучения будет расходиться.



Так же возникала проблема с выбором количества эпох обучения. При выборе небольшого количества эпох создаётся ощущение, что ошибка растёт и сеть построена неправильно. Если же выбрать большое количество, то может возникнуть возможность переобучения сети.
Список всех используемых функций

Написанные функции:

  • out – функция активации;

  • teaching – функция обучения;

  • Toline – функция записи матрицы в строку;

Встроенные функции Matlab:

  • rand (n,m) – заполняет матрицу размерами nxm случайными числами из интервала, по умолчанию, (0,1);

  • zeros (n,m) – создает нулевую матрицу размерами nxm;

  • strcat - горизонтальное объединение строк;

  • dlmread – чтение из ASCII-файла;

  • logsig – сигмоидальная функция активации;

  • size – возвращает размер массива;

  • ones – формирование массива единиц;

  • imread - считывает изображение из файла;

  • im2bw - заменяет все пиксели входного изображения на 0 (черный цвет) и 1 (белый цвет);

  • dlmwrite - записывает матрицу в ASCII-файл;

  • str2num – преобразует строку в число;

  • plot – построение графика.



Результаты выполнения курсовой работы

Выводы по работе программы

Эмпирическим способом было установлено, что 200 эпох достаточно для того, чтобы обучить нейронную сеть распознавать 10 фотографий.


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

Список литературы


  • А. Г. Головачев «Лекции по курсу «Нейросетевые технологии», 2008 год.

  • Ф. Уоссермен «Нейрокомпьютерная техника: Теория и практика», 1992 год

Похожие:

Методические указания по выполнению курсового проекта по курсу iconМетодические указания по выполнению курсового проекта по дисциплине...
Методические указания предназначены для студентов специальности 11. 03. 00 «Теплофизика, автоматизация, экология» имогут быть использованы...
Методические указания по выполнению курсового проекта по курсу iconМетодические рекомендации по выполнению курсового проекта
Методические указания предназначены для студентов, выполняющих курсовой проект «Газоснабжение района города». Выполнение курсового...
Методические указания по выполнению курсового проекта по курсу iconМетодические указания к выполнению курсового проекта для студентов...

Методические указания по выполнению курсового проекта по курсу iconМетодические указания к выполнению курсового проекта для студентов...
Методические указания предназначены для самостоятельной работы студентов при выполнении курсового проекта по технологии швейных изделий...
Методические указания по выполнению курсового проекта по курсу iconМетодические указания по выполнению курсового проекта для студентов специальности с 2-740601
Планирование и организация проведения технических обслуживании и ремонта тракторов
Методические указания по выполнению курсового проекта по курсу iconМетодическая разработка по выполнению курсового проекта
«Технология и организация строительного производства», а также выработка единых требований к выполнению курсового проекта в соответствии...
Методические указания по выполнению курсового проекта по курсу iconМетодическая разработка по выполнению курсового проекта
«Технология и организация строительного производства», а также выработка единых требований к выполнению курсового проекта в соответствии...
Методические указания по выполнению курсового проекта по курсу iconМетодическая разработка по выполнению курсового проекта
«Технология и организация строительного производства», а также выработка единых требований к выполнению курсового проекта в соответствии...
Методические указания по выполнению курсового проекта по курсу iconМетодическая разработка по выполнению курсового проекта
«Технология и организация строительного производства», а также выработка единых требований к выполнению курсового проекта в соответствии...
Методические указания по выполнению курсового проекта по курсу iconМетодические указания по выполнению курсового проекта по дисциплине...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2020
контакты
userdocs.ru
Главная страница