ПОСТРОЕНИЕ НЕЙРОННОГО КЛАССИФИКАТОРА В ПАКЕТЕ MATLAB.



В пакете Matlab предусмотрен набор функций для синтеза и обучения нейронных сетей. Этапы, необходимые для создания нейронной сети включают в себя:

- подготовку данных для тренировки сети;

-  собственно создание сети;

- обучение сети;

- тестирование сети;

- использование сети для решения поставленной задачи.

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

Этот этап может быть выполнен с помощью различных функций пакета Matlab не относящихся к нейросетевому анализу. Например, удаление трендов из данных можно выполнить с помощью команды detrend (x), где x- вектор данных

Для создания нейросети предусмотрен следующий набор функций:

network – создание нейронной сети пользователя;

newc – создание конкурентного слоя;

newcf – создание каскадной направленной сети;

newelm – создание сети обратного распространения Элмана (Elman);

newff – создание однонаправленной сети;

newfftd – создание однонаправленной сети с входными задержками;

newgrnn – создание обобщенной регрессонной нейронной сети;

newhop – создание рекуррентной сети Хопфилда;

newlin – создание линейного слоя;

newlind – конструирование линейного слоя;

newlvq – создание квантованной сети;

newp – создание перцептрона;

newpnn – конструирование вероятностной нейронной сети;

newrb – конструирование сети с радиальным базисом;

newrbe – конструирование точной сети с радиальными базисными функциями;

newsom – создание самоорганизующейся карты.

Так, net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) задает новую сеть прямого распространения, (например, многослойный перцептрон). Получить более подробную информацию о параметрах функции можно получить, набрав в командной строке пакета Matlab help newff. Получить более подробную информацию о наборе функций для работы с нейронными сетями можно по адресу http://matlab.exponenta.ru/neuralnetwork/book2/index.php.

Соответственно, для выполнения всех этапов создания нейросети необходимо написать скрипт, который выполняет вся последовательность этапов создания нейросети.

В данной лабораторной работе для создания и обучения нейронной сети используется встроенная в пакет Matlab утилита Network/Data manager, которая упрощает создание и обучение нейросети.

УТИЛИТА NETWORK/ DATA MANAGER

Утилита Network/Data manager обеспечивает графический интерфейс, в котором интегрированы необходимые функции для создания нейросети. Для доступа к утилите необходимо выбрать в меню Matlab «View» элемент «Launch Pad» (рис.11).

 

 

Рисунок 11- Выбор Launch Pad.

Далее, необходимо выбрать Neural Network Toolbox и в нем NNTool. После этого появится окно утилиты Network/Data manager (рис.12). Создание новой нейросети и ее обучение с помощью утилиты Network/Data manager включает в себя следующие этапы:

  1. Создание входного и выходного векторов с помощью кнопки «NEW DATA» или импорт необходимых данных из рабочего пространства (workspace ) или из файла с помощью кнопки  «IMPORT».
  2. Создание новой нейросети с помощью кнопки [NEW NETWORK] или импорт нейросети из рабочего пространства ( workspace ) или из файла с помощью кнопки  «IMPORT».
  3. Выбор подходящей нейросети в списке и ее обучение, которое осуществляется при нажатии на кнопку «TRAIN».

Получить подсказку по использованию утилиты Network/Data manager можно с помощью кнопки «HELP».

Рисунок 12- Интерфейс утилиты Network/Data manager

 

       Рассмотрим подробнее этапы создания и обучения нейросети с помощью Network/Data manager на примере обучения распознаванию QRS комплексов. Сначала сформируем набор входных векторов. Этот набор должен быть задан в виде матрицы NxM, где N- количество признаков QRS- комплекса, M- количество обучающих примеров: .

Предположим, что такая матрица сформирована и записана в файл INPUTS с расширением mat. При нажатии кнопки «IMPORT» откроется окно загрузки этого файла (рис13). Выберем далее загрузку с диска и откроем файл INPUTS. В среде помощью Network/Data manager появиться переменная «A», которую необходимо пометить, задать в следующем столбце ее назначение (destination), в данном случае inputs, и нажать кнопку «LOAD». В окне «INPUTS» Network/Data manager появиться переменная «A».

       Так как обучение с учителем, то необходимо сформировать матрицу «B», в которой указано, чему должен соответствовать выход сети, при подаче на вход вектора, принадлежащего определенному классу. Пусть в наборе входных векторов присутствуют два класса. Тогда выходной вектор может быть, например, таким «1»- если входной вектор принадлежит первому классу, «0»- если второму. В данном случае матрица будет иметь вид 1xM.

Рисунок 13- Загрузка обучающих векторов в Network/Data manager

Так, если  принадлежит первому классу, то значение  будет равно единице.

Предположим, что такая матрица сформирована и записана в файл TARGET. При нажатии кнопки «IMPORT» откроется окно загрузки этого файла (рис13). Выберем далее загрузку с диска и откроем файл TARGET. В среде помощью Network/Data manager появиться переменная «B», которую необходимо пометить, задать в следующем столбце ее назначение (destination), в данном случае targets, и нажать кнопку «LOAD». В окне «TARGETS» Network/Data manager появиться переменная «B» (рис.14).

       Далее, необходимо создать новую нейронную сеть с помощью кнопки «New Network». После ее нажатия появиться окно выбора типа и параметров нейронной сети (рис.15). Для построения многослойного, в данном случае двухслойного, перцептрона необходимо выбрать в окне «Network type» тип  «feed-forward backprop». Далее, необходимо задать входной диапазон, выбрав источник входных векторов. Остальные параметры можно оставить установленными по умолчанию. После установки параметров необходимо нажать кнопку «Create» и в окне Network/Data manager появиться созданная нейронная сеть, структуру которой можно посмотреть, нажав кнопку «View» (рис.16).

Рисунок 14- Загрузка целевого вектора в Network/Data manager

 

Рисунок 15- Окно выбора типа и параметров нейронной сети.

Рисунок 16- Пример нейронной сети, созданной с помощью Network/Data manager

 

После задания входной и выходной матриц и создания нейронной сети обучение сети осуществляется при помощи процедуры «Train». Результатом выполнения процедуры являются набор весов и смещений нейронов нейронной сети.

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

 

       3. ОПИСАНИЕ ДАННЫХ И ЭКСПОРТ ДАННЫХ В ПАКЕТ MATLAB.

Данные представляют собой записи нормальных QRS- комплексов и желудочковых экстрасистол в формате Matlab. Длина каждой записи составляет 64 отсчета. Соответственно, каждый QRS- комплекс можно представить точкой в 64-х мерном пространстве. Записи желудочковых экстрасистол находятся в файлах 1V.mat-20V.mat, записи нормальных QRS- комплексов- в файлах 1.mat-20.mat. На рисунке 17 приведен нормальный QRS- комплекс, на рисунке 18- желудочковая экстрасистола.

 

Рисунок 17- Нормальный QRS- комплекс

 

Рисунок 18- Желудочковая экстрасистола.

Загрузить файлы в среду Matlab можно с помощью команды load. Например, load 1 загружает данные из файла 1.mat  и автоматически создает переменную в рабочем пространстве (workspace) A1. Соответственно load 1V загружает файл 1V.mat  и создает переменную A1v. Просмотреть загруженные данные можно с помощью команды plot. Так, plot (A1v) выведет желудочковую экстрасистолу, хранящуюся в файле 1V.mat.

Визуально видно, что существуют различия между QRS- комплексами на рисунках 17 и 18 и они могут быть отнесены к разным группам (например, длительность желудочковой экстрасистолы примерно в 2 раза больше нормального комплекса).

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

В качестве пространства признаков использовать:

1) вектор исходного сигнала (размерность пространства=64);

2) сжатое описание QRS-комплекса в пространстве меньшей размерности. В качестве параметров сжатого описания выбрать максимальное значение, дисперсию и среднее значение QRS-комплекса (размерность пространства=3).

  1. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ.
  1. Создать матрицу входных векторов, содержащую по 15 векторов (64 отсчета) нормальных и желудочковых QRS-комплексов и соответствующую ей матрицу целевого вектора.
  2. Сформировать нейронную сеть и обучить ее на созданных примерах.
  3. Протестировать полученную нейронную сеть на матрице созданной из оставшихся 5 векторов нормальных и желудочковых QRS- комплексов.
  4. Аналогично для сжатого описания QRS- комплекса повторить пункты 1-3.

СОДЕРЖАНИЕ ОТЧЕТА

1. Наименование и цель работы.

2. Матрицы для двух видов описания QRS комплекса, соответствующие им целевые матрицы и обученные нейронные сети.

3. Графики ошибки обучения для нейронных сетей.

4. Значение ошибки распознавания, полученную в п.3.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Что такое искусственные нейронные сети. В чем их отличие от биологических нейронных сетей?

2. Нарисуйте модель нейрона МакКаллока- Питса.

3. Каким образом формируется выходной сигнал в модели нейрона МакКаллока- Питса?

4. Чем определяется выбор функции активации?

5. Приведите примеры наиболее часто используемых функций активации.

6. Приведите примеры нейронных сетей прямого распространения.

7. Приведите примеры нейронных сетей с обратными связями.

8. Какие основные типы задач можно решать с помощью нейронных сетей?

9. Какие задачи в общем случае решают многослойные перцептроны?

10. Каким образом можно использовать одиночный нейрон для распознавания образов?

11. В каких случаях линейный дискриминатор является наилучшим?
12. Сколько точек в d-мерном пространстве можно разделить гиперплоскостью произвольным образом?

13. Как связаны число нейронов в скрытом слое и число классифицируемых точек в d-мерном пространстве?

14. Как зависит точность аппроксимации от числа нейронов скрытого слоя?

15. В чем заключается обучение перцептрона?

16. В чем заключается алгоритм back-propagation?

17. В каком случае достигается минимум ошибки обобщения нейронной сети?

18. Как оценить сложность обучения нейронной сети?

 

СПИСОК ЛИТЕРАТУРЫ

1. А.А. Ежов, С.А. Шумский. «Нейрокомпьютинг и его применение в экономике и бизнесе», Москва.  1998, 222 С.


Учебное издание

 


Дата добавления: 2019-02-22; просмотров: 1257; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!