Pull to refresh

Rule-based neural networks

Reading time3 min
Views6K
(В данной статье не объясняются базовые понятия теории нейронных сетей. Для тех, кто не знаком с ними, перед прочтением советую ознакомиться для исключения дальнейших заблуждений.)

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

  • Нейросети построенные на правилах (Rule-based neural networks, далее RBNN) – это нейросети, в основу которых закладываются базовые правила (вроде обычной импликации), благодаря чему, мы, грубо говоря, получаем готовую экспертную систему, однако, теперь уже обучаемую.
  • Логические нейросети, можно было бы отнести к совершенно другому типу, однако я предлагаю отнести их к одной из разновидностей RBNN. Концепция логических нейросетей впервые была описана в работе Барского А. Б. – «Логические нейронные сети».

Идея логических нейросетей, заключается в установлении на каждый нейрон скрытого слоя одну, из логических операций: конъюнкцию или дизъюнкцию.

image
Иллюстрация из книги «Логические нейронные сети», стр. 241
Почему подобный вид нейросетей стоит относить к RBNN? Потому что описанные выше логические операции и есть своеобразные правила, которые выражают отношения входных параметров между собой.

Описанное выше понятия «начальных правил» можно обозначить проще – база знаний. Для тех, кто знаком с системами нечеткого(Fuzzy)-управления это определение будет не ново.
База знаний – это место где находятся все наши правила в виде выражений «ЕСЛИ Х1 И\ИЛИ Х2 ТОГДА У» и.т.д. Почему я упомянула именно нечеткие системы? Потому что создание Fuzzy-регулятора можно представить в качестве первой стадии создания RBNN, также из-за того, что именно они натолкнули меня на идею о превращении обычных нейросетей в нечто подобное.

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


Источник: www.lund.irf.se/HeliosHome/rulebased.html
Теперь вопрос, как из этой строгой системы сделать обучающуюся нейросеть?

Во первых, важным моментом является внесение в подобную структуру веса, на каждое ребро. Каждый вес будет отражать вероятность отношения того, или иного элемента к группе других (например входной параметр А к первому нейрону скрытого слоя, соответственно к причастности к группе АВ ), или же к ответу X, Y, Z и.т.д.

Возможно читателю будет не совсем ясно где могут пригодится такие нейросети, — в таком случае я приведу довольно простой пример:

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

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

  • завтрак-омлет
  • обед-суп
  • ужин-каша

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

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

Ранее всегда было принято говорить о том, что нейросеть представляет из себя «черный ящик», и все, что находится внутри нее, доступным образом никак нельзя объяснить. Сейчас же, имея представленную выше структуру, есть возможность построить нейросеть которая была бы не только эффективной, но и доступной для понимания окружающих её же механизма.
Tags:
Hubs:
Total votes 19: ↑16 and ↓3+13
Comments2

Articles