Матричные вычисления на основе универсальной системы matlab
ПРЕДИСЛОВИЕ
Новая вычислительная процедура, называемая искусственные иммунные системы (ИИС), основанная на принципах иммунной системы, обладает способностью обучаться новой информации, запоминать ранее полученную информацию и осуществлять распознавание образов и анализ данных на основе принципов биомолекулярного узнавания в высоко распределенной манере. Эти системы предлагают мощные и робастные возможности обработки больших массивов информации для решения сложных задач. Строгий математический базис ИИС основан на биологическом прототипе иммунной сети и понятиях формального протеина и формальной иммунной сети (ФИС).
Эти математические модели были названы формальной иммунной системой или иммунокомпьютингом на основе свойств сингулярного разложения произвольных матриц.
Иммунокомпьютинг (ИК) позволяет с большой эффективностью решать следующие задачи: обучения с экспертом, самообучения (обучения без эксперта), группировки и классификации, представления результатов вычислений в пространстве образов.
Структурная схема ИК для решения вышеперечисленных задач представлена на рис. 1.
Как видно из структурной схемы, на основе исходной информации формируется база данных. База данных содержит фактографические данные об исследуемой системе.
База знаний содержит сведения, которые отражают закономерности, существующие в рассматриваемой предметной области, позволяют выводить новые знания и прогнозировать потенциально возможные состояния исследуемой области; сведения о структуре и содержании базы данных; сведения по языку общения; метазнания, определяющие способы представления и переработки знаний. В базу знаний помещаются как общедоступные данные, так и знания эксперта в данной предметной области, вычислительные алгоритмы реализации процедур иммунокомпьютинга, результаты группировки и автоматической классификации, а также интерпретация результатов вычислений.
Основные вычислительные процедуры: обучение с экспертом и самообучение (обучение без эксперта), автоматической классификации, основаны на свойствах сингулярного разложения произвольных матриц и математическом аппарате иммунокомпьютинга.
Ниже представлены описания взаимосвязанного комплекса из 11 лабораторных работ, первые 6 лабораторных работ выполняются всеми студентами, из последующих 5 лабораторных работ студенты по желанию выбирают одну, которая является прикладной и завершающей.
|
Рисунок 1. Структурная схема иммунокомпьютинга
Составители: С.П. Соколова, И.В. Усикова, Н.В. Зуева
Рецензент: кафедра менеджмента и маркетинга ГУАП
Методические указания содержат ряд лабораторных работ, целью выполнения которых является разработка пакета прикладных программ для комплексного оценивания состояния сложных систем на основе иммунокомпьютинга с использованием инструментария универсальных системы MATLAB. Эта система имеет дружественный интерфейс, реализует множество стандартных и специальных математических операций, снабжена мощными графическими средствами и обладает собственным языком программирования.
Математической основой комплексного оценивания состояния сложных систем служит подход иммунокомпьютинга с использованием сингулярного разложения произвольных матриц.
Методические указания предназначены для студентов очной, заочной и дистантной форм подготовки для выполнения лабораторных работ по дисциплине «Интеллектуальные информационные системы».
МАТРИЧНЫЕ ВЫЧИСЛЕНИЯ НА ОСНОВЕ УНИВЕРСАЛЬНОЙ СИСТЕМЫ MATLAB
Задание матриц
По умолчанию все числовые переменные в MATLAB считаются матрицами с комплексными числами. Скалярная величина есть матрица первого порядка, а векторы являются матрицами, состоящими из одного столбца. Матрицу можно ввести, задавая элементы матрицы или считывая данные из файла, а также в результате обращения к стандартной или написанной пользователем функции. Элементы матрицы в пределах строки отделяются пробелами или запятыми.
[ ] – квадратные скобки используются при задании матриц и векторов;
пробел служит для разделения элементов матриц;
, запятая применяется для разделения элементов матриц и операторов в строке ввода;
; точка с запятой отделяет строки матриц, а точка с запятой в конце оператора (команды) отменяет вывод результата на экран;
: двоеточие используется для указания диапазона (интервала изменения величины) и в качестве знака групповой операции над элементами матриц;
() круглые скобки применяются для задания порядка выполнения математических операций, а также для указания аргументов функций и индексов матриц;
. точка отделяет дробную часть числа от целой его части, а также применяется в составе комбинированных знаков;
… три точки и более в конце строки отмечают продолжение выражения на следующей строке;
% знак процента обозначает начало комментария.
Большую матрицу можно определить поэлементно при помощи оператора цикла или набрать ее в обычном редакторе в виде ASCII-файла (например, data.ext), а затем считать при помощи команды
>>load data.ext
В результате матрица будет присвоена переменной data.
Матричные вычисления
Функции описания матриц
eye единичная матрица;
zeros нулевая матрица;
ones матрица из единиц;
rand случайная матрица со значениями из интервала [0,1];
hilb гильбертова матрица;
diag создание диагональной матрицы или выделение диагонали;
triu выделение верхней треугольной части матрицы;
tril выделение нижней треугольной части матрицы.
Знаки операций
+,- символы плюс и минус обозначают знак числа или операцию сложения или вычитания матриц, причем матрицы должны быть одной размерности;
· знак умножения обозначает матричное умножение;
‘ апостроф обозначает операцию транспонирования (вместе с комплексным сопряжением);
/ левое деление;
\ правое деление;
^ оператор возведения в степень.
Матричные характеристики
det вычисление определителя;
trace вычисление следа матрицы;
rank определение ранга матрицы;
norm вычисление нормы матрицы;
normest оценка нормы матрицы.
Команды линейной алгебры
inv вычисление обратной матрицы;
pinv вычисление псевдообратной матрицы;
null определение ядра (нуль-пространства) матрицы;
orth вычисление ортонормированного базиса.
Команды факторизации
chol разложение Холецкого для симметричных, положительно-определенных матриц;
cholnc неполное разложение Холецкого (представление симметричной матрицы в виде произведения верхней треугольной и транспонированной матриц);
lu LU-разложение (для квадратных матриц);
hess приведение к форме Хессенберга;
rref приведение к треугольной форме;
qr QR-разложение (представление матрицы в виде произведения ортогональной и верхней треугольной матриц).
Команды вычисления спектра
poly вычисление характеристического полинома для квадратной матрицы. В результате выполнения команды будут получены коэффициенты нормированного характеристического полинома a1, a2, ….,an:
det(pE – A)=pn +a1pn-1 +a2pn-2 + ….+ an;
polyeig вычисление собственных значений матричного полинома;
eig вычисление собственных чисел и векторов;
schur декомпозиция (разложение) Шура;
svd сингулярное разложение матрицы (SVD-разложение).
Для определения собственных значений и собственных векторов матрицы А служит команда
[U, D] = eig(A)
Здесь диагональная матрица D состоит из собственных чисел, а матрица U составлена из собственных векторов-столбцов матрицы А. Если в левой части указан единственный выходной параметр, то результатом будет выступать вектор-столбец собственных чисел eig(A).
Функция svd определяет сингулярное разложение матрицы. Сингулярное число s и соответствующие ему векторы u и v матрицы А удовлетворяют равенствам
Av = su, AТ u = sv.
Здесь AТ – транспонированная матрица, s – вещественное число. Образуем матрицу S, в которой расположены на диагонали сингулярные числа. Тогда AV = US, AТU = VS, и A = USVТ. Диагональ матрицы S состоитиз положительных значений квадратных корней матрицы АТА. Если матрица А симметричная и положительно определенная, то сингулярные числа совпадают с собственными значениями матрицы А.
Вектор сингулярных чисел получается при обращении с одним выходным параметром S = svd(А)
Для выполнения сингулярного разложения заданной матрицы А служит команда
>>[U,S,V] = svd(A),
где U, V – соответственно, матрицы левых и правых сингулярных векторов, S – матрица сингулярных чисел.
Конфигурирование Excel
Перед тем как настраивать Excel на совместную работу с MATLAB, следует убедиться, что Excel Link входит в установленную версию MATLAB. В подкаталоге exclink основного каталога MATLAB или подкаталога toolbox должен находиться файл с надстройкой excllink.xla. Запустите Excel и в меню Tools выберите пункт Add-ins. Откроется диалоговое окно, содержащее информацию о доступных в данный момент надстройках. Используя кнопку Browse, укажите путь к файлу excllink.xla. В списке надстроек диалогового окна появится строка Excel Link 2.0 for use with MatLab с установленным флагом. Нажмите OK, требуемая надстройка добавлена в Excel.
Обратите внимание, что в Excel теперь присутствует панель инструментов Excel Link, содержащая три кнопки: putmatrix, getmatrix, evalstring. Эти кнопки реализуют основные действия, требуемые для осуществления взаимосвязи между Excel и MATLAB— обмен матричными данными, и выполнение команд MATLAB из среды Excel. При повторных запусках Excel надстройка excllink.xla подключается автоматически.
Согласованная работа Excel и MATLAB требует еще нескольких установок, которые приняты в Excel по умолчанию (но могут быть изменены). В меню Tools перейдите к пункту Options, открывается диалоговое окно Options. Выберите вкладку General и убедитесь, что флаг R1C1 reference style выключен, т.е. ячейки нумеруются A1, A2 и т.д. На вкладке Edit должен быть установлен флаг Move selection after Enter.
Программирование
М-файлы
Работа из командной строки MATLAB затрудняется, если требуется вводить много команд и часто их изменять. Ведение дневника при помощи команды diary и сохранение рабочей среды незначительно облегчают работу. Самым удобным способом выполнения групп команд MATLAB является использование М-файлов, в которых можно набирать команды, выполнять их все сразу или частями, сохранять в файле и использовать в дальнейшем. Для работы с М-файлами предназначен редактор М-файлов. С его помощью можно создавать собственные функции и вызывать их, в том числе и из командного окна.
Откройте меню File основного окна MATLAB и в пункте New выберите подпункт M-file. Новый файл открывается в окне редактора M-файлов, которое изображено на рисунке 4.
Рисунок 4. Окнo редактора M-файлов
М-файлы в MATLAB бывают двух типов: файл-программы (Script M-Files), содержащие последовательность команд, и файл-функции, (Function M-Files), в которых описываются функции, определяемые пользователем.
Файл-программа
Наберите в редакторе команды, приводящие к построению двух графиков на одном графическом окне
Рисунок 5 Команды файла в окне редактора.
Сохраните теперь файл с именем mydemo.m в подкаталоге work основного каталога MATLAB, выбрав пункт Save as меню File редактора. Для запуска на выполнение всех команд, содержащихся в файле, следует выбрать пункт Run в меню Debug. На экране появится графическое окно Figure 1, содержащее графики функций.
Команды файл-программы осуществляют вывод в командное окно. Для подавления вывода следует завершать команды точкой с запятой. Если при наборе сделана ошибка и MATLAB не может распознать команду, то происходит выполнение команд до неправильно введенной команды, после чего выводится сообщение об ошибке в командное окно.
Очень удобной возможностью, предоставляемой редактором М-файлов, является выполнение части команд. Закройте графическое окно Figure 1. Выделите при помощи мыши, удерживая левую кнопку, или клавишами со стрелками при нажатой клавише Shift, первые четыре команды и выполните их из пункта Text. Обратите внимание, что в графическое окно вывелся только один график, соответствующий выполненным: командам. Запомните, что для выполнения части команд их следует выделить и нажать клавишу F9.
Отдельные блоки М-файла можно снабжать комментариями, которые пропускаются при выполнении, но удобны при работе с М-файлом. Комментарии начинаются со знака процента и автоматически выделяются зеленым цветом, например:
Рисунок 6 Команды файла с комментариями.
Открытие существующего М-файла производится при помощи пункта Open меню File рабочей среды, либо редактора М-файлов.
Файл-функция
Рассмотренная выше файл-программа является только последовательностью команд MATLAB, она не имеет входных и выходных аргументов. Для использования численных методов и при программировании собственных приложений в MATLAB необходимо уметь составлять файл-функции, которые производят необходимые действия с входными аргументами и возвращают результат действия в выходных аргументах. Разберем несколько простых примеров, позволяющих понять работу с файл-функциями.
Для проведения предобработки данных многомерного анализа часто используют операцию центрирования. Имеет смысл один раз написать файл-функцию, а потом вызывать его всюду, где необходимо производить центрирование. Откройте в редакторе М-файлов новый файл и наберите
Рисунок 7 Пример файла – функции.
Слово function в первой строке определяет, что данный файл содержит файл-функцию. Первая строка является заголовком функции, в которой размещается имя функции и списка входных и выходных аргументов. В примере имя функции centering, один входной аргумент X и один выходной — Xc. После заголовка следуют комментарии, а затем — тело функции (оно в данном примере состоит из двух строк), где и вычисляется ее значение. Важно, что вычисленное значение записывается в Xc. Не забудьте поставить точку с запятой для предотвращения вывода лишней информации на экран. Теперь сохраните файл в рабочем каталоге. Обратите внимание, что выбор пункта Save или Save as меню File приводит к появлению диалогового окна сохранения файла, в поле File name которого уже содержится название centering. Не изменяйте его, сохраните файл функцию в файле с предложенным именем!
Теперь созданную функцию можно использовать так же, как и встроенные sin, cos и другие. Вызов собственных функций может осуществляться из файл-программы либо из другой файл-функции. Попробуйте сами написать файл-функцию, которая будет шкалировать матрицы, т.е. делить каждый столбец на величину среднеквадратичного отклонения по этому столбцу.
Можно написать файл-функции с несколькими входными аргументами, которые размещаются в списке через запятую. Можно также создавать и функции, возвращающие несколько значений. Для этого выходные аргументы добавляются через запятую в список выходных аргументов, а сам список заключается в квадратные скобки. Хорошим примером является функция, переводящая время, заданное в секундах, в часы, минуты и секунды.
Рисунок 8 Команды функции перевода времени.
При вызове файл-функций с несколькими выходными аргументами результат следует записывать в вектор соответствующей длины.
Создание графика
MATLAB имеет широкие возможности для графического изображения векторов и матриц, а также для создания комментариев и печати графиков. Приведем описание несколько важных графических функций.
Функция plot имеет различные формы, связанные с входными параметрами, например plot(y) создает кусочно-линейный график зависимости элементов y от их индексов. Если в качестве аргументов заданы два вектора, то plot(x,y) создаст график зависимости y от x.
Рисунок 9 Пример команд для построения графика функции sin в интервале от 0 до 2p
Программа построила график зависимости, который отображается в окне Figure 1
Рисунок 10 График функции sin в интервале от 0 до 2p
MATLAB автоматически присваивает каждому графику свой цвет (исключая случаи, когда это делает пользователь), что позволяет различать наборы данных.
Команда hold on позволяет добавлять кривые на существующий график. Функция subplot позволяет выводить множество графиков в одном окне
Рисунок 11. Пример использования функции subplot.
Рисунок 12. Результат использования функции subplot.
Печать графиков
Пункт Print в меню File и команда print печатают графику MATLAB. Меню Print вызывает диалоговое окно, которое позволяет выбирать общие стандартные варианты печати. Команда print обеспечивает большую гибкость при выводе выходных данных и позволяет контролировать печать из М-файлов. Результат может быть послан прямо на принтер, выбранный по умолчанию, или сохранен в заданном файле.
Лабораторная работа № 1
Цель работы:освоить операции матричного вычисления средствами универсальной системы MATLAB.
Порядок выполнения работы
Средствами универсальной системы MATLAB получить для исходной матрицы А размерности (3х4) следующие величины:
- транспонированную, псевдообратную, евклидову норму;
- собственные значения и собственные векторы;
- сингулярные числа, правые и левые сингулярные векторы.
Оформление отчета
Отчетом о лабораторной работе является файл с именем, совпадающим с фамилией студента с результатами работы в папке Мои документы/номер группы.
1.5.3. Контрольные вопросы
1. Что такое иммунокомпьютинг?
2. Перечислите основные вычислительные процедуры иммунокомпьютинга.
3. Свойства сингулярного разложения матриц.
4.
5.
6.
7.
8.
9.
10.
2.ВЫЧИСЛИТЕЛЬНАЯ ПРОЦЕДУРА СИНГУЛЯРНОГО РАЗЛОЖЕНИЯ МАТРИЦ
Математический аппарат
Как известно, для произвольной матрицы А размерности (m´ n) существует так называемое сингулярное разложение, т.е. представление матрицы в виде
A = USVT, | (1) |
где U ‑ (m ´ m) и V – (n x n)– ортогональные квадратные матрицы, удовлетворяющие критерию ортогональности:
VVT = VTV = Em´m, UUT = UT U = En´n,
где E ‑ единичные матрицы соответствующих размерностей.
Матрица S состоит из квадратного диагонального блока размерности r´r (r = min (m, n)) с неотрицательными элементами на главной диагонали и, если , из дополнительных нулевых строк или столбцов
S = [S’;0], если m < n,
S = [S’;0]T, если m > n,
S = S’, если m = n,
S’= diag {s1,s2,…,sr, s1 s2 … sr}.
Числа si, i = 1, 2,….,r называются сингулярными числами матрицы A, которые определяются матрицей A однозначно.
Сингулярное разложение вещественной прямоугольной матрицы A в покомпонентной форме имеет следующеепредставление:
A= s1U1V1T + s2U2V2T + …. +srUrVrT, (2)
где si –сингулярные числа матрицы A, Ui, Vi – соответственно, правые и левые сингулярные векторы, r –ранг матрицы. Эти сингулярные числа и сингулярные векторы удовлетворяют следующим соотношениям:
s1 ³ s2 ³…,sr ³ 0, si = UiT AVi, UiTUi = 1, ViT Vi = 1,
i = 1,….,r. (3)
Известно, что процессы сингулярного разложения для любой вещественной матрицы А обладают весьма полезными свойствами для теории и приложений, а именно, каждая матрица над полем вещественных чисел имеет вещественные сингулярные числа и векторы. Кроме того, сингулярное разложение матриц устойчиво к малым возмущениям матриц, т.е. сингулярное разложение каждой матрицы является хорошо обусловленной процедурой.
Относительно практических аспектов, сингулярное разложение матрицы в общем случае может быть получено по достаточно простой и надежной схеме:
VT(k+1) = UT(k)A, V(k+1) = V(k+1)/ /V(k+1)/
U(k+1) = AV(k+1), U(k+1) = U(k+1)/ /U(k+1)/ (4)
sk = UTkAVk, /sk+1 – sk/ ≤ ε
где k=0,1,2,... – номер итерации, |U(k+1)| - любая векторная норма, e - заданная точность вычисления. Можно показать, что для произвольных начальных векторов U(0) , V(0) итерации по схеме (4) сходятся в общем случае к сингулярным векторам U, V, соответствующим максимальному сингулярному числу smax= UTAV.
Следуют отметить, что такие свойства не свойственны спектральному разложению, которое в действительности формирует основу для многомерного статистического анализа. В отличие от сингулярного разложения матриц, собственные числа и собственные векторы спектрального разложения являются вещественными только для вещественных симметрических матриц, в общем случае не симметрические вещественные матрицы обладают комплексным спектром и определить его не просто.
С использованием вышеприведенного итеративного алгоритма (4) сингулярное разложение матрицы А, представленное в форме (2,3) может быть получено с использованием метода исчерпывания.
Сущность этого метода заключается в следующем:
· максимальное сингулярное число и соответствующие ему правый и левый сингулярный векторы матрицы А вычисляются с помощью итеративного алгоритма (4). Формируется матричная компонента А1 =s1U1VT1;
· формируется матрица невязки
А2 = А ‑ А1 = А ‑ s1U1VT1, (5)
для которой максимальное сингулярное число и соответствующие ему правый и левый сингулярный векторы матрицы А2 вычисляются с помощью итеративного алгоритма (4) и т.д.
Лабораторная работа № 2
Цель работы:создание программного модуля для сингулярного разложения произвольной матрицы.
Порядок выполнения работы
1. Открыть универсальную систему MATLAB.
2. Задать исходную матрицу А размерности (4 х 3).
3. Используя команду для сингулярного разложения MATLAB, получить представление для матрицы А через сингулярные числа, правые и левые сингулярные векторы в покомпонентной (в виде 2, 3) и в векторно-матричной формах (в виде 1).
4. Проверить условия ортогональности для вышеперечисленных форм представления.
5. Реализовать итеративную процедуру (4) вычисления максимального сингулярного числа и соответствующих ему правого и левого сингулярных векторов при произвольно заданных начальных значениях левого сингулярного вектора U0 и правого сингулярного вектора V0. Вычислить матричную компоненту, соответствующую найденным максимальному сингулярному числу и соответствующим ему правому и левому сингулярным векторам.
6. Используя процедуру метода исчерпывания, получить матричную невязку вида (5), для которой выполнить все перечисленные операции пункта 4.
7.Сохранить все результаты выполнения работы в файле на диске.
Пример выполнения лабораторной работы №2
В соответствии с п.2 формируем произвольную матрицу А размерности (3×4)с помощью генератора случайных чисел: A=rand(3,4), проверяемусловия ортогональности: U*UT, V*VT:
Рисунок 13
Получаем представление в покомпонентной форме:
- для первого слагаемого в (2) формируем следующие компоненты сингулярного разложения: первый левый сингулярный вектор ‑ U1=U(:,1), первое сингулярное число ‑ S1=S(1,1), первый правый сингулярный вектор ‑ V1=V(:,1), с использованием полученных компонент формируем первое слагаемое в (2): S1*U1*V1T;
- аналогично формируем компоненты сингулярного разложения для второго слагаемого: U2=U(:,2), S2=S(2,2), V2=V(:,2). Вычисляем второе слагаемое S2*U2*V2T и т.д.
Рисунок 14
В соответствии с п.4 для реализации интеративной процедуры вычисления максимального сингулярного числа и соответствующих правого и левого сингулярных векторов задаем исходные данные: матрицу А размерности (3×4), произвольные: левый сингулярный вектор U0 размерности (3×1), правый сингулярный вектор V0 размерности (4×1), число, характеризующее точность вычисления epsilon = 0.01. По заданным исходным данным вычисляем значение сингулярного числа S0=U0T*A*V0. Итеративный алгоритмвключает следующие шаги:
Шаг 1.V1T=U0T*A, V1/norm(V1) – вычисление правого сингулярного вектора и его нормировка;
U1=A*V1, U1=U1/norm(U1)‑ вычисление левого сингулярного вектора и его нормировка;
S1=U1T*A*V1 – вычисление сингулярного числа;
/S1-S0/≤epsilon=0.01 – проверка точности определения сингулярного числа, если условие выполняется, то вычисленные компоненты запоминаются, как первые компоненты сингулярного разложения, в противном случае переходим к шагу 2.
Шаг 2.V2T=U1T*A, V2/norm(V2) – вычисление правого сингулярного вектора и его нормировка;
U2=A*V2, U2=U2/norm(U1)‑ вычисление левого сингулярного вектора и его нормировка;
S2=U2T*A*V2 – вычисление сингулярного числа;
/S2-S1/≤epsilon=0.01 – проверка точности вычисления сингулярного числа и т.д.
Рисунок 15
После первой итерации модуль разности двух последующих сингулярных чисел не удовлетворяет заданной точности вычисления, поэтому необходимо следующие шаги до тех пор, пока неравенство не будет удовлетворено.
2.2.3. Порядок оформления отчета
Отчетом о лабораторной работе №2 является файл с именем, совпадающим с фамилией студента с результатами работы в папке Мои документы/номер группы.
2.2.4. Контрольные вопросы
1. Свойство сходимости вычислительной процедуры (4).
2. Преимущество сингулярного разложения матриц перед спектральным разложением матриц.
3. Условие останова итеративного алгоритма вычисления максимального сингулярного числа, правого и левого сингулярного вектора.
4. В чем заключается сущность метода исчерпывания?
5.
6.
7.
8.
9.
10.
3.ВЫЧИСЛИТЕЛЬНАЯ ПРОЦЕДУРА ОБУЧЕНИЯ С ЭКСПЕРТОМ
Математический аппарат
Пусть имеется сложная система (научная, техническая, экономическая и т.д.), которая может характеризоваться определенным набором признаков Xk, k = 1,2,3,…. Такой произвольный вектор значений признаков можно трактовать как образ, принадлежащий пространству признаков {X}.
Множество образов представляется в виде множества векторов, состоящего из k подмножеств или классов:
z1={X}1 ,..., zk={X}k .
Для процедуры обучения с экспертом исходной информацией служат векторы значений признаков ситуаций по каждому из рассматриваемых эталонных классов и сформированная на основе мнения эксперта обучающая выборка. Исследуя и анализируя указанным образом, ряд таких систем с привлечением эксперта-человека, можно на основании его знаний и личного опыта выстроить классификацию и оценить, к какому из классов принадлежит исследуемый объект. Набор признаков системы, перечисленный выше, эксперт может оценивать либо по 10-бальной системе, либо в пределах от 0 до 1, как в рассматриваемом ниже примере.
На основе полученной информации и с учетом мнения эксперта формируется обучающая выборка, которая представлена в таблице 1.
Таблица 1. Обучающая выборка
Номер объекта | Значения признаков | Классификация эксперта | ||||
z1 | z2 | z3 | zn | |||
0,3 | ||||||
0,1 | 0,6 | |||||
0,2 | 0,8 | 0,9 | 0,7 | |||
0,5 | 0,7 | 0,1 | ||||
: | ||||||
L | 0,5 | 0,1 |
Задача обучения сводится к разбиению пространства признаков на классы (т.е. к проведению классификации), а задача распознавания сводится к определению класса zj ={X}j , j=1,...,k, с помощью векторной нормы:
zk(X): mink //X - {X}k//.
В качестве векторной нормы могут быть использованы следующие известные нормы:
· евклидова норма //Xi – Xki//Е = (Σi(Xi – Xki)2)1/2;
· норма расстояния //Xi – Xki//М = (Σi/Xi – Xki/);
· норма Чебышева //Xi – Xki//С = maxi/Xi – Xki/.
В вычислительных процедурах иммунокомпьютинга в качестве аналога расстояния используется понятие энергии связи, основанное на сингулярном разложении матрицы. Энергия связи между объектами A и M представляется следующим образом:
ωi = - U Тi MVi, UiTUi = 1, ViT Vi = 1, i =1, ,r,
где Ui, Vi – соответственно, правые и левые сингулярные векторы
матрицы А, r –ранг матрицы.
Алгоритм вычислительной процедуры обучения с экспертом состоит их следующих шагов:
Шаг 1. Сворачивание вектора в матрицу. Заданный вектор Х размерности (n x 1) сворачиваем в матрицу M размерности nU x nV = n.
Шаг 2. Формируем матрицы A1, A2,….,Ak дляэталонных классов с = 1,…,к и вычисляем их сингулярные векторы:
{U1, V1} – для A1, {U2, V2} - для A2, {Uк, Vк} - для Ak.
Шаг 3. Распознавание. Для каждого входного образа М вычисляем к значений энергии связи между каждой парой сингулярных векторов:
ω1 = - U Т1 MV1, ….., ωk = - U Тк MVк.
Шаг 4. Определяем класс, к которому принадлежит входной образ М. Минимальное значение энергии связи ω* определяет этот класс,:
c = ω* = minc { ωc }.
Лабораторная работа № 3
Цель работы:создание программного модуля для реализации вычислительной процедуры обучения с экспертом на основе инструментария универсальной системы MATLAB.
Порядок выполнения работы
1. Открыть универсальную систему MATLAB.
2. Задать обучающие матрицы Аi и матрицу М размерности (4 х 3).
3. Программно реализовать шаги 1-4 алгоритма вычислительной процедуры обучения с экспертом.
4. Сохранить все результаты выполнения работы в файле на диске.
3.2.2. Порядок оформления отчета
Отчетом о лабораторной работе № 3 является файл с именем, совпадающим с фамилией студента с результатами работы в папке Мои документы/номер группы.
Пример выполнения лабораторной работы №3
В соответствии с п. 2 формируем обучающие матрицы трех эталонных классов Аi ,i=1,2,3 размерности (4 х 3)и анализируемую матрицу М размерности (4 х 3).
Рисунок 16 Обучающие матрицы трёх эталонных классов.
Для сформированных обучающих эталонных матриц Аi, i=1,2,3 вычисляем первые левые и правые сингулярные векторы Ui, Vi, i=1,2,3.
Рисунок 17
Используя эти компоненты, вычисляем значения энергии связи анализируемой матрицы М сэталонными обучающими матрицами Аi
Рисунок 18
Из вычисленных значений энергии связи формируем множество W=[W11, W21, W31], минимальное значение которого определяет принадлежность анализируемого объекта к соответствующему классу.
Вывод: анализируемый объект относится к первому классу.
3.2.4. Контрольные вопросы
1. Что такое энергия связи?
2. Роль эксперта при реализации вычислительной процедуры обучения с экспертом.
3. Что является мерой близости выбранного образа М к конкретному классу?
4.
5.
6.
7.
8.
9.
10.
4.ВЫЧИСЛИТЕЛЬНАЯ ПРОЦЕДУРА ОБУЧЕНИЯ С ЭКСПЕРТОМ
Обучение
1. Сформировать обучающую матрицу A=[X1,…,Xm]T размерности m×n.
2. Вычислить максимальное сингулярное число s, а также левый и правый сингулярные векторы U и V обучающей матрицы по следующей итеративной (эволюционной) схеме:
до выполнения условия
3. Хранить сингулярное число s.
4. Хранить правый сингулярный вектор V как антитело-пробу.
5. Для всякого i=1,…,m хранить компоненту ui левого сингулярного вектора U (как клетку формальной иммунной сети) и класс ci, соответствующий обучающему образу Xi.
Распознавание
6. Для всякого n-мерного образа Z вычисляется энергия связи с V:
<