ПОСТРОЕНИЕ НЕЙРОННОГО КЛАССИФИКАТОРА В ПАКЕТЕ 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 включает в себя следующие этапы:
- Создание входного и выходного векторов с помощью кнопки «NEW DATA» или импорт необходимых данных из рабочего пространства (workspace ) или из файла с помощью кнопки «IMPORT».
- Создание новой нейросети с помощью кнопки [NEW NETWORK] или импорт нейросети из рабочего пространства ( workspace ) или из файла с помощью кнопки «IMPORT».
- Выбор подходящей нейросети в списке и ее обучение, которое осуществляется при нажатии на кнопку «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).
- ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ.
- Создать матрицу входных векторов, содержащую по 15 векторов (64 отсчета) нормальных и желудочковых QRS-комплексов и соответствующую ей матрицу целевого вектора.
- Сформировать нейронную сеть и обучить ее на созданных примерах.
- Протестировать полученную нейронную сеть на матрице созданной из оставшихся 5 векторов нормальных и желудочковых QRS- комплексов.
- Аналогично для сжатого описания 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!