Московский государственный университет путей сообщения
Опубликован: 12.09.2011 | Доступ: свободный | Студентов: 3756 / 308 | Оценка: 4.67 / 4.33 | Длительность: 18:55:00
Специальности: Программист
Лекция 10:

Логическое программирование нейронной сети на базе языка ПРОЛОГ

< Лекция 9 || Лекция 10: 12 || Лекция 11 >

Нейронная сеть для решения задачи логического вывода

Рассмотрим предварительно один аспект обучения нейросети методом трассировки.

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

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

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

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

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

Фактографическая нейросеть отражает факты, содержащиеся в БЗ. Понятийная нейросеть отражает правила вывода, оперируя понятиями – процедурами БЗ.

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

Сформируем начальный вид фактографической нейросети (рис.10.1).

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

Для реализации правил построим понятийную нейросеть, фрагмент которой показан на рис.10.2.

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

Пусть задана та же сложная цель

дядя (X, Y).

Для нее необходимо сформировать все пары переменных X и Y, для которых справедливо утверждение "Х является дядей Y".

Выберем следующую функцию активации:

V=  \sum \limits_j{V_j}

V_j=\begin{cases}
V-h, если h \le V <1,\\
1=h,если V \ge 1\\
0,если V < h
\end{cases}

Порог h подбирается экспериментально, в данном случае, кажется, целесообразно положить h = 0,4.

Начальный вид фактографической нейросети

Рис. 10.1. Начальный вид фактографической нейросети
Понятийная нейросеть

Рис. 10.2. Понятийная нейросеть

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

Таким образом, надо реализовать ту же схему перебора с возвратом, что была рассмотрена ранее, — схему backtracking 'а.

Проследим по шагам необходимые действия.

  1. Полагаем Х = иван.
  2. В процедуре Родитель находим Q = мария.
  3. В той же процедуре находим Р = василий.
  4. Однако, в той же процедуре не находим указаний на то, что Василий является чьим-то родителем.
  5. Возвращаемся на шаг назад, пытаясь изменить связывание переменной Р, но не находим нового варианта связывания.
  6. Возвращаемся еще на шаг и т.д. – повторяем весь ход рассуждений, рассмотренных в подразделе 10.1.

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

Это может быть сделано двумя способами.

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

Как работать с этой сетью?

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

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

 База Знаний Антрополога – Исследователя

увеличить изображение
Рис. 10.3. База Знаний Антрополога – Исследователя

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

Но подозрительно высокого возбуждения достигнут нейроны, отвечающие за факт, что Марья — мать Ивана и она же — мать Василия.

Подозрительно возбудятся и нейроны, отвечающие за факты Иван — брат Василия и Василий — брат Ивана, Юрий — дядя Ивана и др. Тогда мы решаем: "А ну-ка, возбудим нейрон-рецептор, соответствующий Марье, и посмотрим, что интересного нам сеть сообщит!" И сеть возбуждением своих нейронов нам сообщает: "Да, действительно, Марья — мать Ивана и Василия".

Заметим, что мы можем подавать на входе и не единичные значения возбуждений. Например, установив, что в "деле" участвовал не то Иван, не то Василий (уж очень они похожи!), мы можем по принципу "фифти-фифти" задать соответствующие значения возбуждений равными 0,5 и установить высокую величину возбуждения нейрона, соответствующего дяде и того и другого — Юрию. И тогда логично возложить на него ответственность за нерадивое воспитание племянников.

Таким образом, составляя эту нейросеть, мы руководствовались желанием сохранить причинно-следственные логические связи, обусловленные правилами. Это отражает ориентацию нейросети на пытливый ум, методом индуктивного мышления старающийся выяснить, какие факты достаточны для установления, например, того, что Юрий — дядя Ивана. Мы даже назвали эту нейросеть Базой Знаний Антрополога-Исследователя. Здесь же мы пошли на организацию коры. Мы справедливо решили, что все выводы данной сети должны быть равноправными и служить как формированию выводов "внутри себя", так и применению "вне" — для решения некоторой глобальной задачи, сверхзадачи. Равноправность и внешнее использование, в том числе для логической надстройки сети, для получения новых знаний по новым вводимым фактам и правилам, требует ревизии и особого установления величин возбуждения нейронов, что мы и отразили в передаточной функции.

Но мы ловим себя на лукавом мудрствовании… "Зачем так сложно? — спросит рядовой гражданин, к каковому следует отнести жителя далекого села. — Какое мне дело до намеков твоих? Ты давай напрямик, факты давай!.."

Действительно, зачем нам знать и делать вывод о том, что Юрий — дядя Ивана, потому что он — брат Марьи? Мы можем эти два факта задать независимо, предварительно рассчитав по понятийной нейросети.

Тогда фрагмент БЗ, которую мы назвали Базой Знаний Участкового Уполномоченного, представлен на рис.10.4, и мы можем вздохнуть облегченно!

И не надо никакой коры! Строго, по-военному и как в анкете: посылка — следствие! Не надо сомнений, размышлений, ревизий и прочего вольнодумствия!

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

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

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

База Знаний Участкового Уполномоченного

увеличить изображение
Рис. 10.4. База Знаний Участкового Уполномоченного

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

Тогда нейросеть обретает возможность широкого развития. Ведь если население села пополнилось родившимся младенцем, то правильность построенного правила (гипотезы) может быть успешно проверена!

… Да, мы вправе выбирать способ мышления как принцип жизни, — для ее облегчения…

Ключевые термины

ПРОЛОГ – язык логического вывода на основе процедур-фактов и процедур-правил. По заданной цели, объединяющей ряд признаков или отношений, обеспечивает выдачу всех объектов, обладающих этими признаками, или удовлетворяющих указанным отношениям.

Фактографическая база знаний – представленная логической нейронной сетью база знаний, содержащая только факты.

Понятийная база знаний – представленная логической нейронной сетью база знаний, объединяющая правила (вывода).

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

Краткие итоги

  1. Формализация базы знаний на основе логической нейронной сети, отображающей факты и правила вывода, позволяет производить формальные алгоритмические действия (удовлетворения целей) по получению новых фактов.
  2. База знаний мыслящего существа должна наряду с фактами хранить хотя бы начальные абстрагированные правила вывода, обобщения, сообщенные в процессе обучения (от рождения – до смерти). Только факты и правила вывода лежат в основе дедуктивного мышления.
  3. Следует отметить главенствующую роль перебора (поиска) в алгоритмах логического вывода. Перебор сопровождается анализом на противоречие промежуточных результатов фактам и правилам вывода, лежащим в основе базы знаний. (Здесь уже кроется возможность критического отношения к "современному" состоянию БЗ, противодействие сложившимся догмам!)
  4. В согласии с главенствующим перебором при поиске решения или всего лишь гипотезы, реализуются " backtracking " другие многочисленные методы "ветвей и границ".
  5. Понятно, что такого рода перебор, требующий высокого уровня ясности мышления, усидчивости и трудолюбия, не доступен широким массам трудящихся и нуждается в автоматизации.
  6. Понятийная база знаний, представленная логической нейронной сетью, является важным формальным механизмом не только для получения новых фактов, но и для построения алгоритма новых обобщений на основе накопленного опыта и результатов вывода по текущему состоянию БЗ. Так могут формироваться гипотезы о новых правилах вывода. Это – путь к автоматизированной реализации индуктивного мышления, на основе теории познания, использующей понятия анализа и синтеза (знаний).
  7. Проверка гипотез с помощью фактов, получаемых опытным путем, позволяет расширить понятийную нейронную сеть (базу знаний) новыми правилами вывода.
  8. Целью построения формальных алгоритмов индуктивного мышления и, следовательно, его автоматизации является ускоренное получение новых обобщенных знаний – прогресс человечества.
  9. ПРОЛОГ является гениальным языком, формализующим логический вывод. Формализация действий над ним с помощью механизмов логических нейронных сетей убеждает в продуктивности попыток автоматизации как дедуктивного, так и индуктивного мышления.
  10. На уровне оперирования только лишь фактами ПРОЛОГ обладает большими возможностями целевого выбора информации, чем реляционные базы данных. Жаль, что этот язык логического вывода, возникший в период появления серьезных задач и продемонстрировавший свою эффективность, предан забвению, по-видимому, в связи с кризисным исчезновением таких задач.

Вопросы:

  1. Что собой представляет ПРОЛОГ-программа и как реализуется backtracking ?
  2. Что представляет собой фактографическая нейронная сеть?
  3. Что представляет собой понятийная нейронная сеть?
  4. Достаточно ли в обыденной жизни пользоваться развитой фактографической нейронной сетью, осуществляя только дедуктивное мышление и пополняя ее новыми фактами?
  5. Осуществимо ли индуктивное мышление на основе анализа и обобщения связей, сложившихся в фактографической нейронной сети?
  6. Вопрос к размышлению: Достаточен ли аппарат логических нейронных сетей для анализа связей, сложившихся в фактографической нейронной сети – для их обобщения и формирования гипотез, или требуются алгоритмические механизмы мышления более высокого порядка?
< Лекция 9 || Лекция 10: 12 || Лекция 11 >
Кирилл Артамонов
Кирилл Артамонов

"Тогда как задать возбуждение рецепторов, если инспектор точно установил, что скорость автомобиля при наезде на пешехода была равна 114 км/час?
По-видимому, он рассуждает на основе близости скорости к границам указанного интервала: "Достоверность того, что скорость автомобиля составляет 100 км/час, я найду как (114 – 100):(120 – 100), а достоверность того, что скорость автомобиля составляет 120 км/час, я найду как (120 – 114):(120 – 100). Следует обратить внимание на то, что сумма найденных достоверностей равна единице."

Вопрос по расчёту скорости и сумме достоверности: этот математический (приведенный выше в виде контекста из материала лекции 1, страницы 3) метод справедлив к скоростным показателям выходящим за рамки диапазона 100-120. 
То есть, практически применяв к расчёту, скорости из диапазона 114-155, к диапазону 100-120, получал в результате суммирования достоверностей единицу.
Это похоже на то, как я видимые разные скоростные показатели своим рецептором, буду воспринимать линейно с помощью одного диапазона, так как он универсален. 
Правильно ли это ? 
И как манипулировать данными показателями, если есть универсальный диапазон, по результату выводящий в сумме постоянно единицу на разных скоростных показателях стремящегося.

Владислав Гладышев
Владислав Гладышев

А как проходить курс ? я же могу прямо сейчас все лекции прочитать и здать экзамен, к чему там даты ?