Логические нейронные сети

Нейросетевые самообучающиеся системы управления

Показывать лекцию целиком

"Животное полагает, что все его дело – жить, а человек жизнь принимает только за возможность что-нибудь делать".

7.1. Самообучение на основе ситуационного управления

Известной основой аппаратной поддержки самообучающейся системы управления является ассоциативная вычислительная система .

Главное отличие ассоциативной ВС от обычной системы последовательной обработки информации состоит в использовании ассоциативной памяти или подобного устройства, а не памяти с адресуемыми ячейками.

Ассоциативная память (АП) допускает обращение за данными на основе их признака или ключевого слова: имени, набора характеристик, задания диапазона и т.д.

Распространенный вид АП – таблица с двумя столбцами: " запросное полеответное поле ". Строка таблицы занимает регистр памяти. По ключевому слову обрабатываются запросные поля: производится поиск на основе сравнений и выдается результат из одного (или более) ответных полей. При помощи маскирования можно выделить только те поля в ключевом слове, которые нужно использовать при поиске для сравнения.

Типичными операциями сравнения, выполняемыми ассоциативной памятью, являются: "равно – не равно", "ближайшее меньше чем – ближайшее больше чем", "не больше чем – не меньше чем", "максимальная величина – минимальная величина", "между границами – вне границ", "следующая величина больше – следующая величина меньше" и др. Т.е. все это – операции отношения и определения принадлежности.

Поскольку ассоциативные ВС характеризуются только активным использованием АП в вычислениях, то в целом эти ВС обладают обычными свойствами, могут производить сложные преобразования данных и принадлежать типу ОКМД (STARAN, PEPE) или МКМД. Для параллельного обращения (для ускорения поиска) АП разбита на модули (32 модуля – в STARAN).

Когда в 1980 г. был провозглашен т.н. "Японский вызов" о построении ВС сверхвысокой производительности, то одним из пунктов была указана необходимость самого широкого использования принципов самообучающихся систем – систем, способных накапливать опыт и выдавать результат решения задачи без счета самой задачи, – на основе ассоциации и интерполяции (экстраполяции). Это значит, что применение ассоциативных ВС неотделимо от проблемы искусственного интеллекта.

Покажем, что ничего существенно нового в практику человеческого мышления ассоциативные машины не вносят, что это привычный способ использования интерполяционных таблиц, например таблицы логарифмов.

Предположим, мы пользуемся значениями функции y = f(x). Мы можем запрограммировать счет этой функции на персональном компьютере, и каждый раз, когда нам надо, задаем x и запускаем программу, пользуясь прекрасным современным сервисом.

Предположим, та же функция сложна, а ее счет – важный элемент алгоритма управления в реальном времени. Решение приходит сразу: зададим эту функцию таблично, а для ускорения выборки включим в ВС ассоциативную память. Предусмотрим на ней операции, позволяющие производить простейшую интерполяцию. А именно, для данного значения x найти наибольший x1 <= x и наименьший x2 >= x . Для них выбрать f(x1) и f(x2) . Тогда вместо счета точного значения f(x) процессору остается произвести хотя бы линейную интерполяцию

$$\tilde{f}(x) = f(x_1)+\cfrac{f(x_2)-f(x_1)}{x_2-x_1}(x-x_1)$$

надо только быть уверенным в достижении нужной точности.

Однако в повседневной жизни мы очень часто решаем трудно формализуемые задачи, подобно предложенной дядей Рамзаем, когда составить алгоритм решения совсем не просто. Но мы учимся, обретаем опыт, затем оцениваем складывающуюся ситуацию на "похожесть" и принимаем решение.

Простейшая задача: как мы автоматически определяем, на сколько надо повернуть рулевое колесо, чтобы остаться на дороге? Ведь первый раз мы въезжали в бордюр! Значит, некая таблица постепенно сложилась и зафиксировалась в нашем сознании.

Пожалуй, наиболее полно автоматически и с наибольшей практичностью решение задачи самообучения представлено в артиллерии, точнее – в правилах стрельбы.

После занятия огневой позиции подготовка установок для ведения огня занимает много времени. На рассчитанных установках по каждой цели производится пристрелка, когда цель захватывается в широкую вилку, затем по наблюдениям вилка "половинится" до тех пор, пока на середине узкой вилки не переходят на поражение. После стрельбы следует замечательная команда "Стой, записать...", по которой наводчик на щите орудия пишет номер цели и все пристрелянные установки по ней. Такая работа проделывается и по фиктивным целям – реперам. Постепенно при "работе" на данной местности запоминаются пристрелянные установки по многим целям и реперам. С их появлением и развитием подготовка данных по вновь появляющимся целям резко упрощается, т.к. сводится к переносу огня от ближайшей цели или репера, т.е. к внесению поправок по дальности и направлению. Доказано, что при этом достаточно сразу назначать захват цели в узкую вилку, т.е. пристрелка упрощается. Правила стрельбы существуют века, однако вряд ли кто-то осознавал теоретически, что речь идет о реализации самообучающейся системы, у которой не существует аналога!

Для трудно формализуемых задач управления или для увеличения производительности вычислительных средств известно т.н. ситуационное управление, предложенное Д.А. Поспеловым [23]. Оно заключается в том, что для каждого значения вектора, описывающего сложившуюся ситуацию, известно значение вектора, описывающего то решение, которое следует принять. Если все ситуации отразить невозможно, должно быть задано правило интерполяции (аналог интерполяции, обобщенной интерполяции).

Пусть исходная ситуация характеризуется вектором X = {x1, ..., xm} . По значению X, т.е. по его компонентам, принимается решение Y, также представляющее собой вектор Y = {y1, ..., yn} .

(Значения X и Y могут определяться целыми и вещественными, булевыми. Изначально они могут иметь нечисловую природу: "темнее – светлее", "правее – левее", "ласковее – суровее" и т.д. Мы не будем рассматривать проблему численной оценки качественных или эмоциональных категорий.)

Предположим, для любых двух значений X1 и X2 , а также Y1 и Y2 определено отношение xi(1) <= xi(2) (или наоборот), yj(1) <= yj(2) (или наоборот).

Структура ассоциативной памяти и общий вид ее обработки показаны на рис. 7.1.

Пусть поступила входная ситуация Х, для которой необходимо найти решение Y. В АП находятся два вектора X1 и Х2 , минимально отличающиеся по всем координатам от вектора Х. Для этих векторов там же записаны векторы решения Y1 и Y2 соответственно. Однако если для компоненты xi выполняется условие xi <=xi(1) (xi?xi(1)) , то желательно выполнение условия xi>= xi(2) ( xi<= xi(2) ), i = 1, ..., m. Эта желательность обусловлена преимуществом интерполяции по сравнению с экстраполяцией. Таким образом, находится "вилка", которой принадлежит входная ситуация.

(рис 7.1) Управление с помощью ассоциативной памяти

Тогда, опираясь на известные решения на границах этой вилки, необходимо выдать промежуточное решение для данной ситуации. Это можно сделать методом той же обобщенной интерполяции:

$$y_i = y^{(1)}_i+ (y^{(2)}_i - y^{(1)}_i) \cfrac {r(X, X_2)} {r(X_1, X_2)}, i =1, \dots, n; \\ r(X, X_2) = \sqrt {\sum^m_{j=1}(x_j-x^{(2)}_j)_2}$$

Здесь r(X,X2) и r(X1,X2) (находится аналогично) – расстояния между векторами Х и Х2 , а также Х1 и Х2 .

Если известно, что точность Y достаточна, принципиально возможно дополнение АП новой строкой

т.е. информацией о новом полученном опыте.

Однако целесообразная динамика развития и уточнения АП как базы знаний представляется иной. Далеко не всегда будет правильным развитие базы знаний только на основе ошибочного принятия решений. "Учение на ошибках" может привести к трагедии (или к частному срыву процесса управления), особенно на этапе обучения системы.

Обучение системы целесообразно проводить на достаточно точной модели, максимально использующей точный расчет компонент решения. Применение модели для обучения используется не только на специально предусмотренном этапе обучения системы, но и вне реального цикла управления, т.е. когда система работает в режиме дежурства, параллельно с функциональным контролем. Такой алгоритм ее работы представлен на рис. 7.2.

(рис 7.2) Схема самообучения с ассоциативной памятью и моделью

7.2. Нейросетевое воплощение

" $$\dots$$ Медузин сел за письменный стол и просидел с час в глубокой задумчивости; потом вдруг "обошелся посредством" руки, схватил бумагу и $$\dots$$ написал:

  • Российская грамматика и логика $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ много употребл.
  • История и география $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ употребляет довольно
  • Чистая математика $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ плох
  • Французский язык $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$. виноградн. много
  • Немецкий язык $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$.. пива очень много
  • Рисование и чистописание $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$. $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$.. одну настойку
  • Греческий язык $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$.. все употребляет
  • После этих антропологических отметок Иван Афанасьевич записал соответственную им программу:

    Ведро сантуринского $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$. 16 руб.

    1/2 ведра настойки $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$.. 8 "

    1/2 ведра пива $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$.. 4 "

    2 бутылки меду $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ 50 коп.

    Судацкого 10 бутылок $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ 10 "

    3 бутылки ямайского $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$.. 4 "

    Сладкой водки штоф $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$ $$\dots$$.. 2 " 50 коп.

    _____________________

    Итого: 45 руб."

    Упражнение:

    постройте нейросеть, позволяющую предсказывать действительные расходы учителя латинского языка и содержателя частной школы И.А. Медузина при оценке контингента гостей приближающегося дня тезоименитства.

    Мы уже построили нейросеть для важной задачи принятия решений и вручили ее Заказчику – дяде Рамзаю. Однако, задумчиво глядя в синее небо под бодрящий рокот набегающей волны теплого течения Гольфстрим, мы не можем прогнать мыслей об обобщениях, вариациях и применениях…

    Итак, еще раз тщательно проследим принцип динамического совмещения процесса обучения системы управления с процессом выдачи решений, изложенный выше, и установим в схеме на рис. 7.2 целесообразность, место и способ использования нейронной сети как основного реального средства искусственного интеллекта. Прежде всего, мы понимаем, что основным естественным и целесообразным местом применения нейросети здесь является база знаний, ранее реализованная с помощью ассоциативной памяти (рис. 7.1). Нам только надо позаботиться о том, чтобы "крутились" там не численные значения информации, а вес этой информации или ее достоверность. То есть не сама информация должна обрабатываться нейросетью, а ее логический эквивалент. Ведь мы поняли, что принцип искусственного интеллекта направлен на параллельную обработку логических высказываний, а вовсе не ориентирован напрямую на числовую обработку информации, как это делается при решении некоторых "нейроподобных" задач при использовании нейросети в роли спецпроцессора.

    Пусть нейросеть в роли базы знаний имеет текущий вид, представленный на рис. 7.3.

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

    Здесь могут фигурировать не точные значения параметров, а некоторые диапазоны их изменения, как это указывалось в 3.2.

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

    (рис 7.3) Управляющая система с нейросетью

    "Показывая" сети на этапе обучения различные эталоны, методом трассировки мы можем добиться установления соответствия вида {Входы xi} -> Rq , наполнив тем самым базу знаний. Каждое решение Rq при этом тоже указывает на определенное значение вектора – результата Yq, компоненты которого суть управляющие воздействия системы. То есть нейроны Rq фактически закрепляются за ситуациями, по которым мы знаем векторы характеристик или значений параметров принимаемых решений – векторы значений управляющих воздействий.

    Для нахождения этих значений управляющих воздействий в зависимости от значений исходных данных может быть использовано моделирование, наряду с экспериментом или с экспертными оценками. Таким образом, модель, эксперимент или эксперт играют роль учителя. (Мы ранее уже высказали сомнение насчет существования и действенности "чистого" самообучения.)

    Первоначально обученная таким образом нейросеть может быть уже использована в рабочем режиме (распознавания) и в режиме совместной работы с моделью. При этом мы понимаем, что нейросеть обучена недостаточно, и, подобно пристрелке реперов "в свободное от работы" время, мы пытаемся с помощью модели испытать и, в случае необходимости, дополнить знания нейросети.

    Модель случайно или направленно – по обоснованному плану "выбрасывает" некоторую ситуацию, характеризующуюся значением компонент входного вектора Х. По каждой компоненте определяется вес или достоверность того, что ее значение совпадает с подмножеством значений этой компоненты, представленных входным слоем нейросети, или с диапазонами значений этой компоненты.

    Например, сеть "знает" реакцию на значение (опустим индекс) x = 2, x = 5, x = 6. Модель выбросила значение х = 5,7. Это может означать необходимость формирования значений возбуждения Vx=2 = 0 , Vx=5 = 0,3 , Vx=6 = 0,7 . Здесь индексы возбуждений указывают нейроны входного слоя, закрепленные за данным значением параметра. Так делается по всем компонентам входного слоя.

    Пусть, "пройдя" по сети, данные возбуждения входного слоя привели к преодолению порога возбуждения нейронов выходного слоя R5 ( VR5 = a ), R7 ( VR7 = b ), R12 ( VR12 = c ). При этом нейрону R5 соответствует вектор управляющих воздействий Y5 = (y1(5), y2(5), ..., yn(5)) , нейрону R7 – вектор Y7 = (y1(7), ..., yn(7)) , нейрону R12 – вектор Y12 = (y1(12), ..., yn(12)) . Тогда мы находим предполагаемый ответ нейросети:

    $$\begin{array}{l} y_1 = \cfrac {ay^{(5)}_1 + by^{(7)}_1 + cy^{(12)}_1}{a+b+c}, \\ \dots\dots \dots \dots \dots \dots \dots \dots \dots \\ y_n = \cfrac {ay_n^{(5)} + by_n^{(7)} + cy_n^{(12)}}{a+b+c} \end{array}$$

    Подставляем данное решение в модель и устанавливаем, удовлетворяет ли нас оно, – например, по величине промаха. Если удовлетворяет, мы делаем положительный вывод об обученности нейросети и продолжаем ее испытание по другим исходным данным. Если нет – сеть необходимо "доучить", продемонстрировав самый высокий логический уровень обратной связи.

    Для этого мы должны ввести в действие новые рецепторы, закрепив их за теми значениями исходных данных или их диапазонами, которые ранее не были представлены. Например, нам придется закрепить рецептор за значением х = 5,7.

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

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

    Таким образом, сеть может обучаться до тех пор, пока не перестанет давать "сбоев". А поскольку в вероятностном аспекте это вряд ли возможно, то в таком режиме она должна работать в течение всего жизненного цикла, реализуя известную пословицу "Век живи – век учись"…

    Здесь наглядно представлена замечательная возможность нейросети: табличная аппроксимация функции многих переменных , снабженная процедурой интерполяции (экстраполяции) для нахождения произвольного значения вектора-аргумента и приближенного соответствующего значения векторной функции. При этом входной вектор возбуждений рецепторов преобразуется в максимальное или усредненное значение возбуждения нейронов выходного слоя, указывающего на соответствующее значение вектора-функции. Так что практически столь простым способом мы построили аппроксимацию векторной функции от векторного аргумента!

    Такую аппроксимацию можно выполнить и "в более явном виде", ибо каждая компонента yj решения Y = {y1,..., yп} может отыскиваться отдельно в результате предварительной трассировки (рис. 7.4). То есть сеть может быть построена и обучена так, чтобы заданное значение Х = {x1,..., xт} приводило к максимальному (или усредненному) значению возбуждения нейрона выходного слоя, указывающего соответствующее значение y1 , к максимальному (или усредненному) значению возбуждения другого нейрона выходного слоя, указывающего на значение у2 и т.д. Выходной слой оказывается разбит на области, каждая из которых закреплена за своим параметром уi , i =1,..., п. Тогда полученное преобразование можно условно записать X -> {Вых(у1), Вых(у2),..., Вых(уп)} .

    Следует обратить внимание не только на высокую производительность такого рода самообучающихся систем в рабочем режиме, но и на их адаптивность, развиваемость, живучесть и т.д.

    (рис 7.4) Раздельное нахождение управляющих параметров с помощью нейросети
    Вернуться к учебному плану