РОССИЙСКОЙ ФЕДЕРАЦИИ
Методические указания
к выполнению лабораторных работ
ПЕНЗА 2007
Даны указания к выполнению лабораторных работ по курсу «Системы
искусственного интеллекта» по следующей тематике: разработка экспертных
систем в среде Visual Prolog и на языке CLIPS, системы естественно-
языкового общения, нейронные сети, обучение нейронной сети выполнению
заданной операции, разработка программы распознавания изображений с
использованием нейронных сетей.
Методические указания подготовлены на кафедре «Системы
автоматизированного проектирования» и предназначены для студентов
специальности 010503 (351500).
Ил. 16, табл. 1, библиогр. 10 назв.
2
Лабораторная работа №1
Общие сведения
3
База знаний в ЭС предназначена для хранения долгосрочных данных,
описывающих рассматриваемую предметную область (а не текущих данных),
и правил, описывающих целесообразные преобразования данных этой
области.
Для конструирования ЭС используются различные инструментальные
средства: универсальные языки программирования, языки искусственного
интеллекта, инструментальные системы и среды и системы-оболочки.
Системы-оболочки являются наиболее простым средством формализации
(автоформализации) экспертных знаний, практически не требующие участия
посредников в лице инженера по знаниям или программиста при их
использовании. Инженер по знаниям только помогает эксперту выбрать
наиболее подходящую для его проблемной области оболочку.
Рассматриваемая в данной работе экспертная система функционирует
следующим образом. Например, при работе с предметной областью «Бытовая
техника», определяется предикат technique_is(string), позволяющий
идентифицировать бытовую технику, которая более всего удовлетворяет
указанным пользователем признакам. При этом БЗ экспертной системы
задается перечислением свойств объектов, которые у них имеются или же
отсутствуют:
technique_is("CD-плейер"):-
it_is("аудио"),
positive("работает с","CD-дисками"),
negative("имеет","динамик").
negative(X,Y):-
4
xnegative(X,Y),!.
negative(X,Y):-
not(xpositive(X,Y)),
ask(X,Y,Answer),
remember(X,Y,Answer),
Answer = no.
ask(X,Y,yes):-
write(X," ",Y,"? "),
readln(Reply),
frontchar(Reply,'y',_),!.
ask(_,_,no).
remember(X,Y,yes):-
assertz(xpositive(X,Y)).
remember(X,Y,no):-
assertz(xnegative(X,Y)).
Содержание отчета
Контрольные вопросы
Литература
5
1. Попов Э. В. Экспертные системы: Решение неформализованных задач
в диалоге с ЭВМ. – М.: Наука, 1987.
2. Уотермен Д. Руководство по экспертным системам. Пер. с англ. – М.:
Мир, 1989.
3. Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных
систем. – СПб.: Питер, 2001.
4. Марселлус Д. Программирование экспертных систем на ТурбоПрологе:
пер. с англ. – М.: Финансы и статистика, 1994.
Лабораторная работа №2
Общие сведения
7
Пользователь может осуществлять выборку всей информации или ее
части путем постановки правильно сформулированных вопросов на
естественном языке. Приведем несколько примеров запросов, которые
система GEOBASE может обработать:
· Штаты (states)
· Перечислить города в Калифорнии (give me the cities in California)
· Какой самый большой город в Калифорнии? (what is the biggest city in
California?)
· Какова самая длинная река в США? (what is the longest river in the
USA?)
· Какие реки имеют длину более 1000 км? (which rivers are longer than 1
thousand kilometers?)
· Каково название штата с наименьшей географической высотой? (what
is the name of the state with the lowest point?)
· С какими штатами граничит Алабама? (which states border Alabama?)
· Какие реки не протекают через Техас? (which rivers do not run through
Texas?)
· Какие реки протекают через штаты, граничащие со штатом, столицей
которого является Остин? (which rivers run through states that border the
state with the capital Austin?)
8
Вся информация, относящаяся к штату, компонуется в этот один факт
со многими аргументами. Города, указанные в конце, являются
крупнейшими по численности населения.
Факт по городу выглядит следующим образом:
city("california","ca","san francisco",678974)
9
и поиск шаблонов. Программа синтаксического анализа должна установить
основные связи, составляющие сущность вопроса. Она должна также
определить другие виды структурной информации в вопросе, которые
позволяют использовать основные связи для сбора данных с целью
получения ответа на вопрос. В результате этого процесса получается шаблон
с реализованными (конкретизированными) аргументами. Шаблон
представляет собой единичный сложный объект данных, который передается
на следующую стадию обработки.
Фактически шаблон является нормализированной формой
первоначального запроса. Структура была воспринята правильно, а лишняя
или случайная информация игнорировалась. После преобразования вопроса в
эту форму синтаксическим анализатором система использует функцию под
названием eval для получения доступа к базе данных и выдаче ответов.
Для каждой связи, которая представляется важной для получения
ответа на вопрос, существует низкоуровневая функция доступа, которая
заново комбинирует информацию в базе данных, чтобы программа могла
быть написана так, как будто эта связь присутствует в явной форме.
Например, если нам нужно узнать названия рек длиной более 1000 км, в базе
данных необходимо иметь подобные факты:
length-of-river(columbia,453).
length-of-river(hudson,257).
Всякий раз при вызове функции eval она генерирует один возможный
ответ. Шаблон, ассоциированный с начальным запросом, используется для
управления процессом. Эта функция применяется в предложении findall для
10
того, чтобы все ответы могли быть собраны вместе в случае, если вопрос
допускает несколько вариантов ответов. Остальные части предиката удаляют
избыточные данные на выходе, затем компонуют его и распечатывают
выходные данные.
На рис. 2.1 показана блок-схема с основными информационными
потоками в системе.
Начало
Получение запроса
Фильтр
Неформализованная форма
Синтаксический вопроса, содержащая связи и
анализатор информацию о его структуре
Низкоуровневые
функции реляционного Конкретизация
доступа связей
11
Ядро программы содержится в подпрограммах pars и eval.
Синтаксический анализатор pars имеет три аргумента:
pars(Data, E, Q)
12
ассоциации. Шаблон является нормализованной, внутренней формой данного
вопроса. Мы могли бы задать этот вопрос и другими способами, но в любом
случае результат, выдаваемый программой pars, был бы тем же. Например:
· Как велик Гудзон? (How big is Hudson?)
· Какова длина Гудзона? (What is the length of Hudson?)
Пример 3. Запрос: Какие реки не протекают через Техас? (What rivers
do not run through Texas?)
В этом случае ввод для программы анализа pars будет несколько более
сложным. Могут быть проигнорированы только два слова. Аргумент ввода
имеет вид:
["rivers","not","run","through","texac"]
13
Здесь также выбираются вложенные шаблоны. Внутренний шаблон
определяет базовую связь, а внешний выражает способ использования этой
связи для генерации ответов.
Имеется два предиката, служащие низкоуровневыми функциями
доступа к базе данных. Обработка на более высоких уровнях происходит с
помощью этих функций и никогда не затрагивает базу данных
непосредственно.
Система обладает знаниями о некоторых низкоуровневых сущностях
(объектах): река, город, штат, дорога, озеро и т.п. Функция доступа к
сущности (ent) берет тип объекта в качестве своего первого параметра и
возвращает во втором параметре одно значение, которое эта сущность может
принять. Например, если тип объекта город (city), то последовательные
вызовы ent дадут следующую информацию:
ent(city,albuquerque)
ent(city,arlington)
ent(city,austin)
14
db(state,with,river,STATE,RIVER):-
river(RIVER,_,LIST),
member(STATE,LIST).
дорога в штате
db(road,in,state,ROAD,STATE):-
road(ROAD,LIST),
member(STATE,LIST).
15
В некоторых ситуациях на запрос может быть выдано несколько
ответов, что обеспечивается главной программой путем вложения eval в
предложение findall, которое собирает все ответы в список:
findall(A,eval(Q,A),L), где L – список ответов.
17
Порядок выполнения работы
Содержание отчета
Контрольные вопросы
Литература
18
Лабораторная работа №3
Общие сведения
19
то, что вся конструкция представляет собой список, состоящий из четырех
полей. Этим CLIPS похож не только на С, но и на LISP.
Эвристический механизм представления знаний в CLIPS реализуется
при помощи правил в форме
ЕСЛИ условие_1 и ... и условие_N выполняются,
ТО
ВЫПОЛНИТЬ действие_1 и ... и действие_N.
20
Работа правила очень напоминает условный оператор if-then,
присутствующий во многих процедурных языках программирования.
Принципиальная разница заключается в том, что оператор if-then выполнится
в любом случае, когда до него дойдет очередь в программе. Что касается
правила, то интерпретатор CLIPS еще “подумает”, выполнять его или нет.
Так, при старте программы, содержащей множество фактов и правил,
интерпретатор CLIPS запускает машину логического вывода, которая
выясняет, какие из правил можно активизировать. Это выполняется
циклически, причем каждый цикл состоит из трех шагов:
· сопоставление фактов и правил;
· выбор правила, подлежащего активизации;
· выполнение действий, предписанных правилом.
21
Пример 1
22
имеет значение Kiev, то содержимое соответствующего счетчика
увеличиваем на единицу. Для других городов – аналогично. Программа на
языке CLIPS, реализующая указанный алгоритм, может быть, например,
такой:
(defglobal ?*odessa* = 0)
(defglobal ?*kiev* = 0)
(defglobal ?*lvov* = 0)
(defrule start
(initial-fact)
=>
(printout t crlf «REPRESENTATIVES» crlf)
(defrule odessa
(rep ? Odessa)
=>
(bind ?*odessa* (+ ?*odessa* 1)))
(defrule kiev
(rep ? Kiev)
=>
(bind ?*kiev* (+ ?*kiev* 1)))
(defrule lvov
(rep ? Lvov)
=>
(bind ?*lvov* (+ ?*lvov* 1)))
(defrule result
(declare (salience -1))
(initial-fact)
=>
(printout t «from Odessa: « ?*odessa* crlf)
(printout t «from Kiev: « ?*kiev* crlf)
(printout t «from Lvov: « ?*lvov* crlf))
23
по команде (reset) до запуска программы на выполнение. Для чего он нужен?
Дело в том, что в CLIPS-программах распространенными правилами
являются такие, которые добавляют факты в базу данных, либо, наоборот,
удаляют их. Типичной является ситуация, когда при старте программы в базе
данных нет фактов, удовлетворяющих хотя бы одному правилу. В этом
случае программа ничего не выполнит. Для того чтобы начать вычисления и
используется системный начальный факт, который, независимо от фактов в
базе данных, активизирует некоторое правило, добавляющее такие факты,
которые, в свою очередь, активизируют правила, условия которых не
выполнялись в начальный момент.
В данной программе (initial-fact) запускает правило start, которое
активизируется независимо от фактов в файле rep и присутствует в
программе только с одной целью – вывести заголовок. Для этого в его правой
части вызывается встроенная функция printout с ключом t, выводящая на
стандартное устройство вывода (монитор) заголовок, заключенный в
кавычки. Комбинация символов crlf является аналогом endl в С++ и служит
для перевода курсора на следующую строку.
Следующие три правила с именами odessa, kiev и lvov можно назвать
ядром программы. В них производится подсчет количества участников –
соответственно, из Одессы, Киева и Львова.
Рассмотрим правило lvov. Оно активизируется в том случае, когда в
базе данных находится факт (rep ? Lvov). Не трудно догадаться, что символ
“ ? “ во втором поле этого списка означает символ универсальной
подстановки и заменяет собой любую фамилию. Отсюда следует, что
правило lvov активизируется столько раз, сколько раз факт (rep ? Lvov)
присутствует в базе данных. При этом столько же раз выполнятся действия,
содержащиеся в правой части правила. Встроенная функция bind – аналог
оператора присваивания. Следовательно, содержимое переменной ?*lvov*
увеличивается на единицу и результат сохраняется в этой же переменной.
Аналогично работают правила odessa и kiev.
24
Действия, которые выполняются в последнем правиле программы,
отражены в его названии. Правая часть правила особых комментариев не
требует, в то время как левая часть заслуживает подробного рассмотрения. В
CLIPS существует несколько стратегий очередности выполнения правил, а
сами правила могут иметь приоритет, который задается встроенной
функцией declare с параметром salience (особенность). Этот параметр может
принимать целочисленные значения от –10000 до +10000. По умолчанию для
всех правил величина salience равна нулю. Если в правиле result не указать
приоритет, оно будет конфликтовать с правилом start за очередность
выполнения, так как у этих правил одинаковая левая часть. Для устранения
конфликта в правиле result приоритет указан явно и со знаком минус, в связи
с чем это правило выполнится последним.
Используя любой текстовый редактор, наберем и сохраним текст
программы в ASCII-файле со стандартным для CLIPS-программ
расширением .clp и с именем represent. Командой clips вызовем
интерпретатор CLIPS, командой (load имя_файла) загрузим в интерпретатор
файлы rep и represent.clp, командами (reset) и (run) запустим программу
represent.clp на выполнение.
CLIPS (V6.21 06/15/03)
CLIPS> (load rep)
.........
TRUE
CLIPS> (load represent.clp)
.........
TRUE
CLIPS> (reset)
CLIPS> (run)
REPRESENTATIVES
from Odessa: 5
from Kiev: 2
from Lvov: 4
CLIPS>
25
Многоточием представлены другие сообщения интерпретатора, которые в
данном случае опущены.
Как следует из описанных действий, в интерпретаторе CLIPS находятся
два файла. Первый, с именем rep, является базой данных. Второй, с именем
represent.clp, содержит сведения (правила) о том, как эти данные могут быть
использованы. Таким образом, вместе файлы образуют базу знаний, которая
содержит, по крайней мере, два знания. Первое – общий состав участников
конференции. Его можно посмотреть, не выходя из интерпретатора по
команде (facts). Второе знание – количество участников от каждого города.
В рассмотренном примере база знаний состоит из двух программных
модулей. Однако ничто не мешает использовать одну программу,
сохраненную в одном файле. В следующем примере показано, как это
делается. В нем же эвристический механизм представления знаний
используется вместе с процедурным.
Пример 2
26
(printout t “Input strait value: “)
(bind ?u (read))
(assert (numbers ?i ?u)))
28
You must take resistor Rb.
CLIPS> (run)
CLIPS>
29
3. Разработать на основе примера (файл auto.clp) экспертную систему для
требуемой предметной области согласно заданию.
4. Получить распечатки примеров работы программы.
5. Оформить отчет.
Содержание отчета
Контрольные вопросы
Литература
30
Лабораторная работа №4
Общие сведения
31
Рис. 4.1
32
Кнопки View, Delete, Initialize..., Simulate..., Train..., Adapt...
становятся активными после создания и активизации самой нейронной сети.
Они позволяют просмотреть, удалить, инициализировать, промоделировать,
обучить или адаптировать нейронную сеть и будут описаны ниже.
Прежде всего, рассмотрим назначение и способы работы с
перечисленными выше окнами. Окно Network/Data Manager Help. Это окно
подсказки описывает правила работы с диспетчером Network/Data Manager
при создании нейронной сети.
Чтобы создать нейронную сеть, необходимо выполнить следующие
операции:
· Сформировать последовательности входов и целей (кнопка New Data),
либо загрузить их из рабочей области системы MATLAB или из файла
(кнопка Import).
· Создать новую нейронную сеть (кнопка New Network), либо загрузить
ее из рабочей области системы MATLAB или из файла (кнопка
Import).
· Выбрать тип нейронной сети и нажать кнопку Train…, чтобы открыть
окно для задания параметров процедуры обучения.
· Открыть окно Network для просмотра, инициализации, моделирования,
обучения и адаптации сети.
Окно Create New Data. Это окно показано на рис. 4.2 и включает 2
области редактирования текста для записи имени вводимых данных (область
Name) и ввода самих данных (область Value), а также 6 кнопок для указания
типа вводимых данных.
33
Рис. 4.2
34
Рис. 4.3
Таблица 4.1
№ Число Обучаемые
п/п Тип сети Название сети слоев параметры
1 Competitive Конкурирующая сеть 1 IW{1, 1}, b{1}
Каскадная сеть с прямым
Cascade- распространением сигнала и IW{1, 1}, b{1},
forward обратным распространением LW{2, 1},
2 backprop ошибки 2 IW{2, l}, b{2}
35
IW{1, 1}, b{1},
Elman Сеть Элмана с обратным LW{2, l}, b{2},
3 backprop распространением ошибки 2 LW{1, 1}
Сеть с прямым распространением
Feed-forward сигнала и обратным IW{1, 1}, b{1},
4 backprop распространением ошибки 2 LW{2, l}, b{2}
Time delay Сеть с запаздыванием и обратным IW{1, 1}, b{1},
5 backprop распространением ошибки 2 LW{2, l}, b{2}
Generalized IW{1, 1}, b{1},
6 regression Обобщенная регрессионная сеть 2 LW{2, 1}
7 Hopfield Сеть Хопфилда 1 LW{1, l}, b{1}
Linear layer
8 (design) Линейный слой (создание) 1 IW{1, 1}, b{1}
Linear layer
9 (train) Линейный слой (обучение) 1 IW{1, 1}, b{1}
Сеть для классификации входных IW{1, 1},
10 LVQ векторов 2 LW{2, 1}
11 Perceptron Персептрон 1 IW{1, l}, b{1}
IW{1, 1}, b{1},
12 Probabalistic Вероятностная сеть 2 LW{2, 1}
Radial basis Радиальная базисная сеть с IW{1, 1}, b{1},
13 (exact fit) нулевой ошибкой 2 LW{2, 1}
Radial basis
(fewer Радиальная базисная сеть с IW{1, l}, b{1},
14 neurons) минимальным числом нейронов 2 LW{2, l}, b{2}
Self-organizing Самоорганизующаяся карта
15 map Кохонена 1 IW{1, 1}
36
· Performance function (Функция качества обучения) – список функций
оценки качества обучения.
· Number of layers (Количество слоев) – количество слоев нейронной
сети.
· Properties for (Свойства) – список слоев: Layer 1 (Слой 1), Layer 2
(Слой 2).
· Number of neurons (Количество нейронов) – количество нейронов в
слое.
· Transfer function (Функция активации) – функция активации слоя.
Рис. 4.4
37
Если выбрана первая кнопка, то в поле Select a Variable вы можете
видеть все переменные рабочей области и, выбрав одну из них, например Р1,
можете определить ее в поле Destination (Назначение) как
последовательность входа Inputs (Входы).
Если выбирается кнопка Load from disk file, то активизируется поле
MAT-file Name и кнопка Browse, что позволяет начать поиск и загрузку
файла из файловой системы.
Окно Export or Save from Network/Data Manager. Это окно показано
на рис. 4.5 и позволяет передать данные из рабочей области GUI-интерфейса
NNTool в рабочую область системы MATLAB или записать их в виде файла
на диске.
Рис. 4.5
38
Рис. 4.6
39
Выполним инициализацию сети, для чего выберем закладку Initialize,
откроется диалоговая панель, показанная на рис. 4.7. Диапазоны значений
исходных данных выберем по входам из ниспадающего меню Get from
input. Для ввода установленных диапазонов и инициализации весов надо
воспользоваться кнопками Set Ranges (Установить диапазоны) и Initialize
Weights (Инициализировать веса). Если требуется вернуться к прежним
диапазонам, то следует выбрать кнопки Revert Ranges (Вернуть диапазоны)
и Revert Weights (Вернуть веса).
Рис. 4.7
40
Рис. 4.8
Рис. 4.9
41
Последняя закладка применяется, когда в процессе обучения
используются контрольные и тестовые последовательности.
Рис. 4.10
Рис. 4.11
42
Качество обучения сети с прямой передачей сигнала на выбранной
обучающей последовательности поясняется на рис. 4.11. Практически
нулевая точность достигается за 13 циклов обучения.
Соответствующие веса и смещения можно увидеть, если выбрать
закладку Weights (рис. 4.12).
Рис. 4.12
43
Рис. 4.13
44
компонента входного вектора (входной сигнал), y – выходной сигнал
нейрона, N – число входов нейрона, f – нелинейное преобразование (функция
активации).
Содержание отчета
1. Вариант задания.
2. Структура используемой нейронной сети.
3. Распечатки экрана Excel с результатами моделирования (в качестве
входных данных использовать также данные, которые не входили в
обучающую выборку).
4. Выводы по работе.
Контрольные вопросы
Литература
45
4. Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и
практика. – М.: Горячая линия - Телеком, 2001.
Лабораторная работа №5
Общие сведения
1 w0
x1 w1 y
.. å f
xn wn
46
Приведенная модель искусственного нейрона игнорируют многие
известные свойства биологического прототипа. Например, она не учитывает
временные задержки нейронов, эффекты частотной модуляции, локального
возбуждения и связанные с ними явления подпороговой временной и
пространственной суммации, когда клетка возбуждается не одновременно
пришедшими импульсами, а последовательностями возбуждающих сигналов,
поступающих через короткие промежутки времени. Не учитываются также
периоды абсолютной рефрактерности, во время которых нервные клетки не
могут быть возбуждены, т.е. как бы обладают бесконечно большим порогом
возбуждения, который затем за несколько миллисекунд после прохождения
сигнала снижается до нормального уровня. Этот список отличий, которые
многие биологи считают решающими, легко продолжить, однако
искусственные нейронные сети все же обнаруживают ряд интересных
свойств, характерных для биологических прототипов.
Искусственные нейронные сети, предназначенные для решения
разнообразных конкретных задач, могут содержать от нескольких нейронов
до тысяч и даже миллионов элементов. Однако уже отдельный нейрон
(рис. 5.1) с биполярной функцией активации (на выходе имеется сигнал "1"
или "–1") может быть использован для решения простых задач распознавания
и классификации изображений.
Если выходной сигнал у нейрона принимает только два значения, то
нейрон можно использовать для классификации предъявляемых
изображений на два класса.
Пусть имеется множество М изображений, для которых известна
корректная классификация на два класса Х1 = {X11, X12, ..., X1q}, X2 = {X21, X22,
..., Х2р }, X 1 U X 2 = M , X 1 I X 2 = 0 , и пусть первому классу Х1 соответствует
выходной сигнал у = 1, а классу X2 – сигнал у = –1. Если, например,
предъявлено некоторое изображение X a= (X e
1 )
,..., X na , Xa Î M и его
взвешенная сумма входных сигналов превышает нулевое значение:
47
n
S = å xia wi + w0 > 0
i =1
48
В соответствии с правилом Хебба, если предъявленному биполярному
изображению X = (х1, ..., хп) соответствует неправильный выходной сигнал,
то веса wi ( i = 1, n ) связей нейрона адаптируются по формуле
wi (t + 1) = wi (t ) + xi y i = 0, n
где wi(t), wi (t+ 1 ) соответственно вес i-й связи нейрона до и после адаптации;
( )
xi 1, n – компоненты входного изображения; X0 = 1 – сигнал смещения; у –
Шаг 1. Задается множество М = {(X1, tl), ..., (Хт, tm)} состоящее из пар
{входное изображение X k = (x1k ,..., x nk ), необходимый выходной сигнал
нейрона tk, ( k = 1, m )}. Инициируются веса связей нейрона:
wi = 0, i= 0, n
Шаг 2. Для каждой пары (Xk , t k ), k = 1, m пока не соблюдаются условия
останова, выполняются шаги 3-5.
Шаг 3. Инициируется множество входов нейрона: x 0 = 1, xi = xik , i = 1, n
Шаг 4. Инициируется выходной сигнал нейрона: у = tk .
Шаг 5. Корректируются веса связей нейрона по правилу:
wi (new
= ) wi (old ) + xi y,=i 0, n
Шаг 6. Проверка условий останова. Для каждого входного изображения Хk
рассчитывается соответствующий ему выходной сигнал ук:
ìï1, если S k > 0
yk = í , k = 1, m
ïî- 1, если S k £ 0
где
n
S k = å x k i wi + w0
i =1
Если вектор (у1, ..., у т) рассчитанных выходных сигналов равен
вектору (t1, ..., tm) заданных сигналов нейрона, т. е. каждому
входному изображению соответствует заданный выходной сигнал, то
вычисления прекращаются (переход к шагу 7), если же (у1, ..., ут)
1 m
¹ (t , ..., t ), то переход к шагу 2 алгоритма.
Шаг 7. Останов.
49
сети и распознавать до 2т различных изображений. Правда, применение этой
сети для распознавания 2т (или близких к 2т чисел) различных изображений
может приводить к неразрешимым проблемам адаптации весов связей
нейросети. Поэтому часто рекомендуют использовать данную
архитектуру для распознавания только т различных изображений, задавая
каждому из них единичный выход только на выходе одного A-элемента
(выходы остальных при этом должны принимать значение "–1").
w11 y1
A1
.. w1m
w1j wj1
wm1
..
wjj yj
Aj
.. wmj ..
wjm ym
wmm Am
Шаг 1. Задается множество М = {(X1, tl), ..., (Хт, tm)} состоящее из пар
{входное изображение X k = (x1k ,..., x nk ), необходимый выходной сигнал
нейрона tk, ( k = 1, m )}. Инициируются веса связей нейрона:
w ji = 0, j= 1, n, i= 1, m
Шаг 2. Каждая пара (Xk, tk ), проверяется на правильность реакции
нейронной сети на входное изображение. Если полученный
выходной вектор сети (y1k ,..., y nk ) , отличается от заданного
t 1= (t1k ,..., t nk ), то выполняют шаги 3-5.
Шаг 3. Инициируется множество входов нейронов: x0 = 1, x j = x kj , j = 1, n
Шаг 4. Инициируются выходные сигналы нейронов: y i = t ik , i = 0, m
50
Шаг 5. Корректируются веса связей нейронов по правилу:
w ji (new
= ) w ji (old ) + xi y, =j 0, n, =i 0, m
Шаг 6. Проверяются условия останова, т. е. правильности функциониро-
вания сети при предъявлении каждого входного изображения. Если
условия не выполняются, то переход к шагу 2 алгоритма, иначе –
прекращение вычислений (переход к шагу 7).
Шаг 7. Останов.
Содержание отчета
Контрольные вопросы
Литература
51
3. Горбань А. Н. Обучение нейронных сетей. – М.: СП Параграф, 1990.
4. Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и
практика. – М.: Горячая линия - Телеком, 2001.
52
Содержание
53