поддержка
проекта:
разместите на своей странице нашу кнопку!И мы
разместим на нашей странице Вашу кнопку или ссылку. Заявку прислать на
e-mail
код нашей кнопки:
Обучение (продолжение)
Еще один пример. Рассмотрим модель процесса обучения собаки. Ситуации
обучения будем описывать векторами, компоненты которых соответствуют
характеристикам ситуаций: 1-й компонент - тип учителя, 2-й - место
обучения, 3-й - одежда учителя, 4-й - время суток. Пусть примеры
ситуаций, в которых собака должна выполнять команду, представлены
следующими описаниями:
1) хозяин, двор, куртка, вечер,
2) хозяйка, лес, плащ, утро,
3) инструктор, двор, куртка, утро.
Будем называть такие описания положительными примерами, а отрицательными
примерами - ситуации, в которых собака не должна выполнять команду.
Пусть в нашем случае они представлены векторами (4), (5), (6):
4) неизвестный человек 1, двор, куртка, вечер,
5) неизвестный человек 2, лес, куртка, утро,
6) неизвестный человек 3, двор, плащ, вечер.
Обучающаяся программа, имитирующая собаку, может, например, находить
сходства разных подмножеств множества положительных примеров. Будем
выражать эти сходства векторами того же типа, но с дополнительным знаком
*, означающим произвольное значение. В нашем случае сходствами
положительных примеров будут вектора:
хозяева, *, *, * (сходства 1 и 2);
свой мужчина, двор, куртка, * (сходства 1 и
3);
свой, *, *, утро (сходства 2 и 3);
свой, *, *, * (сходства 1, 2 и 3); а сходствами отрицательных:
чужой, *, куртка, * (сходства 4 и 5);
чужой, двор, *, вечер (сходства 4 и 6);
чужой, *, *, * (сходства 5 и 6, совпадающие со сходствами 4, 5 и 6).
Из этих обобщений следует, что решающие правила, имеющие форму
продукций, выглядят следующим образом:
"свой, *, *, * - выполняй его команду" и "чужой, *, *, * - не выполняй
его команду".
Заметим, что в процессе обучения решается задача обобщения, т. е.
строится процедура, позволяющая заменять хозяина, хозяйку и инструктора
на понятие "свой", а всех остальных людей - на понятие "чужой". Собаки,
как показывает опыт работы с ними, с такой задачей обобщения справляются
прекрасно.
Все дальнейшие примеры, в векторах описания которых 1-й компонент
содержит слово "свой", будут классифицироваться системой как
положительные ситуации (т. е. система будет "выполнять команды"), а
описания, содержащие слово "чужой", - как отрицательные (команда "не
выполняется"). Решающими правилами будут векторы, содержащие символ *, а
"гарантированность" их может оцениваться, скажем, количеством
положительных примеров, участвовавших в их порождении, и количеством
отрицательных примеров, на которых закономерность не выполняется.
Обучающимся субъектом может быть нейронная сеть. Ситуации для нее будут
представляться множествами сигналов на входных ячейках, а классификация
примеров, т. е. действия системы, - сигналами на ячейках выхода.
Обучение нейронной сети заключается в установлении в сети таких весов на
связях между ячейками, при которых входные сигналы одного класса будут
приводить к появлению определенного сигнала на выходе. Описание всех
установившихся при этом весов связей (т. е. указание того, какие веса
приписаны всем существующим связям между ячейками) и будет
соответствовать решающему правилу.
Предположим, что перед нами стоит задача обучения сети распознаванию
рукописных букв или букв из разных шрифтов. Сперва необходимо провести
кодирование изображений, например, с помощью представлений изображения
буквы, помещенного в достаточно мелкую сетку (см. рис. 2), где черному
квадрату (или квадрату, большая часть которого черная) будет
соответствовать сигнал "1", а светлому - сигнал "О".
В результате каждое изображение будет закодировано последовательностью
сигналов из нулей и единиц. Последовательности сигналов, соответствующие
одной букве, будут образовывать множество положительных примеров, а
последовательности сигналов, соответствующие другим буквам, - множество
отрицательных примеров.
Рис 2
Опишем один из возможных сценариев обучения нейронной сети.
Предположим, что сети необходимо обучиться букве А. Некто (мы будем
называть его учителем) снабжает сеть примерами различных букв из
различных шрифтов. При подаче кода очередного примера на входные ячейки
учитель указывает, какая вводится буква: А или не А, подавая сигналы,
имеющие соответственно величины а и Ь, на ячейку выхода сети. Алгоритм
обучения может быть устроен следующим образом: если сигнал, порождаемый
на очередном примере буквы А, поданном на вход, составляет Ь, то для
каждой ячейки, связацной с выходной ячейкой (см. рис. 3), вес связи
изменяется в а/Ь раз (т. е. при прежних выходных сигналах на ячейках
суммарный сигнал, подаваемый на ячейку выхода е, был бы а).
Рис 3
Далее для каждой из ячеек j1
..., i* проделывается то же самое, что и для ячейки е, т. е.
соответствующим образом изменяются веса связей, "входящих" в эти ячейки.
Так веса всех связей сети постепенно перенастраиваются в направлении от
выхода ко входу сети. При поступлении новых примеров процесс
повторяется. Для обучения многим простым понятиям такой алгоритм
обучения нейронной сети дает хорошие результаты.
Приведем теперь примеры моделей обучения, про которые трудно (хотя и
возможно) говорить в терминах распознавания.
Предположим, например, что некоторая информационная система содержит
некоторые утверждения: А->В, В->С, С D, D ->Е. Формула X ->Y обозначает:
"Если верно, что наступило событие X, то также верно, что наступило
событие Y". На вход системы поступают сообщения о том, что наступили
некоторые события. В задачу системы входит быстрая выдача информации о
тех наступивших событиях, о которых не было явных сообщений. Например,
если на вход системы поступило сообщение о наступлении события С, то
система сообщает, что наступили также события D и Е.
По законам логики высказываний из исходных правил мы можем построить
другие, например:
A ->D, В->Е.
Не все такие правила могут оказаться полезными для нашей системы.
Например, если событие В наступает без появления события А довольно
редко, то формула В -* D будет редко использоваться системой, а ее
хранение увеличит необходимый объем машинной памяти. Кроме того, на
порождение самой формулы требуется затратить некоторое количество
машинного времени. Если же, к примеру, событие А наступает очень часто,
а информация о событии Е очень существенна, то правило А -*Е может
оказаться полезным (так как его порождение и применение в среднем
требуют меньше машинных операций, чем применение последовательности
правил: А В, В С, С D, D Е). Таким образом, система может выбрать
вспомогательные правила, приносящие экономию машинного времени в
дальнейших действиях системы. В этом случае можно говорить о том, что
система обучилась правилу А ->Е, так как его приобретение "приводит к
успешным действиям системы в дальнейшем". В данном случае действия
заключаются в выводе всех возможных следствий из фактов, поступивших на
вход системы, а успешность действий понимается как возможность вычислять
все следствия из фактов в среднем за время, не превышающее некоторого
значения.
Еще одним примером может служить обучение числовым закономерностям,
когда по набору значений некоторых переменных система устанавливает
алгебраические соотношения между ними. Еще в 70-х гг. получила
известность система, "перекрывшая" ряд законов физики (например, закон
сохранения импульса в механике, закон уравнения идеального газа, законы
Кеплера и др.). Основной прием работы этой системы заключается в
введении новых переменных, соответствующих частному двух переменных,
если их значения увеличиваются монотонно, или их произведению, если
значение одной переменной растет, а другой уменьшается. Так, например,
по ряду значений масс и скоростей тел до и после столкновения система
обнаружила противоположное направление в изменении масс и скоростей,
ввела новую переменную - импульс, после чего "открыла" закон сохранения
импульса. При этом обучающей информацией будут значения масс и
скоростей, а действия системы, в которых заинтересованы ее пользователи,
- решение некоторых кинематических задач. Если успех действий понимается
как быстрое решение этих задач, то получение системой закона сохранения
импульса будет облегчать успех действий.
Наконец, важный вид обучения - это обучение в динамической, т. е.
постоянно изменяющейся, обстановке, когда системе необходимо производить
последовательности действий и заранее невозможно определить действия,
приводящие к конечному успеху. В таких ситуациях оказываются, например,
системы, играющие в шахматы, а также роботы, передвигающиеся в не
полностью известной среде. Алгоритм обучения в таких случаях должен быть
устроен так, чтобы система запоминала не только действия, приводящие к
немедленному успеху, но и к отдаленным по времени победам (если
немедленный успех не представляется возможным).