…письмоводитель градоначальника, вошедши утром с докладом в его кабинет, увидел такое зрелище: градоначальниково тело, облечённое в вицмундир, сидело за письменным столом, а перед ним, на кипе недоимочных реестров, лежала, в виде щегольского пресс-папье, совершенно пустая градоначальникова голова.
М.Е. Салтыков-Щедрин. История одного города.
Пусть некоторая система характеризуется значениями трёх параметров x, y, z, которые принято называть факторами факторного пространства. Оценка эффективности этой системы сводится к определению некоторых финансовых затрат $, сопряжённых со значениями этих параметров. Математические зависимости для данной оценки отсутствуют, задача является трудно формализуемой.
Пусть значение фактора x определяется в сантиметрах (см), значение фактора y – в килограммах (кг), значение фактора z – в количестве человек (чел.), занятых в эксперименте. Составим схему, связав стрелками значения параметров, для которых известны оценки, с этими оценками, как показано на рис. 8.1. Таким образом, схематично представлена некоторая база данных, которую необходимо преобразовать в базу знаний (БЗ), дополнив возможностью логического вывода.
(рис 8.1) Логическая нейронная сеть, реализующая базу знаний
Представим построенную схему, как схему однослойной логической нейронной сети, где слева показан рецепторный слой, а справа – единственный выходной слой нейронов. "Оживим" эту сеть, введя функцию активации нейронов:
$$V_i = \left \{ \begin{matrix} \frac{1}{3}\sum_{j}v_j \text{ если это значение не меньше порога h}\\ 0, в противном случае \end{matrix} \right.$$Здесь Vi (i = 1, 2, 3, 4) – величина возбуждения нейрона выходного слоя, $$v_j (j\in {1, ..., 7})$$ – величина возбуждения рецептора. Выберем h = 0,5.
Таким образом, на основе опытных данных, в виде обученной логической нейронной сети с единичными весами связей сформирована база знаний, отображающая некоторые финансовые расходы. С помощью данной сети можно производить ассоциативные вычисления для точек факторного пространства, первоначально не представленных на рецепторном слое. Ведь перед пользователем или исследователем возникает вопрос: можно ли для произвольной ситуации в области задания параметров хотя бы приблизительно предсказать связанные с ней расходы?
Рассмотрим пример ассоциативных вычислений для значений x = 0,2 см, y = 30 кг, z = 6 чел. Значение х лежит как раз посредине, между представленными на рецепторном слое значениями х = 1 и х = 3. Тогда полагаем v1 = v2 = 0,5, v3 = 0. Заданное значение y находится между 25 и 40, но ближе к первому. Распределим единицу обратно пропорционально "расстоянию" y = 30 до указанных двух значений и положим v4 = 0,66, v5 = 0,33. Аналогично примем v6 = 0,8, v7 = 0,2. Находим V1 = 0,65, V2 = 0,65, V3 = 0, V4 = 0 и среднее ожидаемое значение затрат
Теперь усложним пример, введя, на основе накопленного опыта и экспериментов, веса связей, как показано на рис. 8.2. (Непомеченные связи – единичные.)
С учётом весов связей целесообразно выбрать другую функцию активации i-го нейрона:
$$V_i = \left \{ \begin{matrix} \frac{\sum_{j}v_j\omega_{ji}}{\sum_{j}\omega_{ji}} \text{ если это значение не меньше порога h}\\ 0, в противном случае \end{matrix} \right.$$Здесь Vi – величина возбуждения i-го нейрона, vj – величина возбуждения рецептора, связанного с i-м, $$\omega_{ji}$$ – вес связи j-го рецептора с i-м нейроном.
(рис 8.2) Логическая нейронная сеть с весами связей
Рассчитаем среднее количество затрат для той же ситуации. Возбуждение рецепторов остаётся тем же, и при том же значении h находим V1 = 0,63, V2 = 0,5, V3 = 0, V4 = 0,
Учитывая, что решение могло быть не численным, или допускало бы нечисловую компоненту, сформируем простейшую методику проведения ассоциативных вычислений по логической нейронной сети:
1) Задание исследуемой ситуации на рецепторном слое.
2) Расчёт величины возбуждения нейронов с помощью пороговой функции активации.
3,а) Если все нейроны своим возбуждением указывают на численное значение некоторой величины, находится среднее значение (по возбуждению всех нейронов) в качестве ответа решаемой задачи.
3,б) Если нейроны указывают не на численные значения, например, на текст, символ объекта, качественное значение и пр., находится нейрон с максимальным значением возбуждения (не единственность такового разрешается пользователем, например, уточнением ситуации или рассмотрением дополнительных факторов). Принимается ответ, на который указывает максимально возбудившийся нейрон. Этот процесс выбора подобен голосованию в пользу предпочтительного решения по данной ситуации.
3,в) Если решение представляет собой вектор, то пункты 3,а и 3,б выполняются отдельно для каждой компоненты этого решения. Это означает, что где можно выполнить усреднение, оно производится, где нельзя, на решение указывает максимально возбудившийся нейрон.
Однако ощущение неудовлетворённости мучает нас. Хорошо, действительно – всё так просто! Но как такую нейросеть всунуть в компьютер? Средства мультимедиа, что ли использовать?
Нет. Всё гораздо проще! Логическая нейронная сеть представляется и обрабатывается с помощью матрицы связей. Для рассмотренного примера она представлена в табл. 8.1.
| Рецепторы | x=0,1 | x=0,3 | x=0,5 | y=25 | y=40 | z=5 | z=10 |
|---|---|---|---|---|---|---|---|
| Пример | 0,5 | 0,5 | 0 | 0,66 | 0,33 | 0,8 | 0,2 |
| Решение 1 | 1 | 1 | 0,6 | ||||
| Решение 2 | 1 | 1 | 1 | 0,8 | |||
| Решение 3 | 1 | 1 | 0,5 | ||||
| Решение 4 | 1 | 1 | 0,5 |
Подобно сетчатке глаза, сформируем экран 8 x 16 клеток. Каждую клетку будем рассматривать в качестве рецептора, способного воспринимать извне величину возбуждения в диапазоне 0 – 1.
(рис 8.3) Ловушка для захвата буквы О
Для обучения букве О условно нарисуем на экране эталон этой буквы. Окружим линию этого эталона клетками (рецепторами) с некоторым запасом по толщине линии (как показано на рис. 1.3) так, чтобы создать "ловушку" для захвата основной части нечётко и с искажениями изображаемой буквы О. Соединим все рецепторы "ловушки" буквы О связями (с единичными весами) с нейроном, отвечающим за вывод: "Это буква О".
Выберем функцию активации этого нейрона $${f_O} = {1 \over {{N_O}}}\sum\limits_i {{f_i} - h}$$ при отрицательном значении разности принимающую нулевое значение. Здесь NO – количество рецепторов, образующих "ловушку" буквы О, fi – величина возбуждения i-го рецептора, h – единый порог, подбираемый экспериментально для всех букв, распознаванию которых производится обучение. По рисунку NO = 64.
На этом же экране построим "ловушку" для искажённой, "зашумлённой" буквы А, как показано на рис. 8.4. Все рецепторы "ловушки" свяжем с нейроном, отвечающим за вывод: "Это буква А".
Функция активации этого нейрона имеет тот же вид $${f_A} = {1 \over {{N_A}}}\sum\limits_i {{f_i} - h}$$, однако, в нашем примере NA = 74. (Данное нормирование производится для уравнивания значимости всех букв, которым обучается нейросеть.)
По чётко заданным эталонам букв (с единичной засветкой клеток экрана по правильному контуру) предварительно подберём порог h так, чтобы существенно возбуждался лишь тот нейрон, который соответствует предъявляемой букве. Показ "чужого" символа, которому нейросеть не обучалась, должен приводить к нулевому возбуждению нейронов. В процессе эксперимента и при добавлении новых букв значение порога может уточняться.
(рис 8.4) Ловушка для захвата буквы А
Перейдём к рабочему режиму распознавания. На рис. 8.5 показан вариант зашумлённой засветки экрана. Слева наложена "ловушка" для распознавания буквы О. Справа – "ловушка" для распознавания буквы А.
Сумма сигналов в "ловушке" О равна 49,2. Пусть h = 0,7. Тогда fO = 0,77 - 0,7 = 0,07. Сумма сигналов в "ловушке" А равна 36,9, fA = 0. Нейросеть высказалась за то, что ей была предъявлена "зашумлённая" буква О.
Расширьте эксперимент, произведя обучение для трёх, четырёх и т.д. символов. Выбор набора значительно отличающихся символов определяет вариант выполняемой лабораторной работы. Для представления экрана и для расчётов целесообразно использовать EXEL.
(рис 8.5) Распознавание с помощью ловушек
Вы, несомненно, столкнётесь с малой разрешающей способностью экрана 8 x 16. Кроме того, данная лабораторная работа ограничена центровкой и масштабированием образов. Так что перед экспериментатором открываются неограниченные возможности!
Рассмотрим увлекательную детскую игру "Железнодорожная рулетка", основанную на так хорошо знакомой Вам задаче о встрече. Помните: "Из пунктов А и В навстречу друг другу…" и т.д.?
Начальник станции Кукуевка (ведущий) и начальник станции Пырловка одновременно выпускают навстречу друг другу два паровоза (рис. 8.6) со скоростью либо 60, либо 80 км/час. Длина перегона составляет 4 км. Небольшой нюанс заключается в том, что пути перегона то сходятся в один, на протяжении одного километра, то расходятся. И тогда, в зависимости от точки встречи, со станции Кукуевка надо выслать на соответствующий километр либо линейного - даму с приветственным платочком, либо линейного с подстилочной соломкой.
Решение о такой посылке усложняется помехами в линии передачи данных, в связи с чем скорости паровозов сообщаются с достоверностью, меньшей единицы. Кроме того, необходимо каждый эксперимент связать с ожидаемыми денежными затратами на единовременную добавку к пенсии линейных.
(рис 8.6) Интеллектуальная игра "Железнодорожная рулетка"
Тогда Вы понимаете, что без элементов искусственного интеллекта не обойтись. Вы ищете что-то похожее на табличный метод, но с автоматической интерполяцией, что-то связанное с ассоциативным мышлением… И Вы решаетесь…
Произведём предварительные расчёты, чтобы представить себе все варианты будущего поведения нашей системы принятия решений — для её обучения. Представим (рис. 8.7) графически структуру логического функционирования создаваемой системы принятия решений для каждой возможной ситуации.
Ситуация 1. Кукуевский паровоз имеет скорость 60 км/ч (Событие А1). Пырловский паровоз имеет скорость 60 км/ч (Событие В1). Одновременное выполнение этих событий обозначим А1В1. Тогда точка встречи находится как раз посредине перегона, что, скорее всего, требует помощи линейного с соломкой. Но возможно и везение за счёт неточного определения скоростей. Тогда на всякий случай потребуется дама с платочком. Принимаемое решение, заключающееся в отправлении обоих линейных на границу второго и третьего километров, назовём решением R1. С ним связаны расходы на единовременное пособие М1.
(рис 8.7) Система принятия решений и её Нейросетевая интерпретация
Ситуация 2. Кукуевский паровоз имеет скорость 60 км/ч (Событие А1), но пырловский паровоз имеет скорость 80 км/ч (Событие В2). (Выполняется условие А1В2.) Тогда их точка встречи находится на втором километре пути, и, следовательно, требует решения R2: "Отправить даму с платочком на второй километр!" В активе указанной дамы появляется сумма М2 условных единиц.
Ситуация 3. Кукуевский паровоз имеет скорость 80 км/ч (Событие А2), пырловский паровоз имеет скорость 60 км/ч (Событие В1). (Выполняется условие А2В1.) Тогда их точка встречи находится на третьем километре пути, что требует сочувственного вмешательства линейного с соломкой (решение R3), с оплатой труда в М3 условных единиц.
Ситуация 4. Кукуевский и пырловский паровозы имеют скорость 80 км/ч (Событие А2В2), что, ввиду высокой скорости перемещения линейных в середину перегона, требует решения R4 с затратами М4.
А теперь оживим эту структуру, заставим её действовать, как, по-видимому, на логическом уровне действуют структуры нашего мозга.
Представим себе, что на месте каждого овала (потом — кружочка, на рисунке 8.7 справа) действует нейроподобный элемент (просто нейрон). Нейроны входного слоя — рецепторы приходят в возбуждённое состояние извне (подобно сетчатке глаза) в соответствии с той ситуацией, которую мы задаём на входе системы. Например, мы хотим испытать ситуацию А1В2. Тогда мы полагаем величины возбуждения рецепторов А1 и В2 равными единице и записываем: VA1 = VB2 = 1. При этом мы не забываем позаботиться о том, чтобы величины возбуждений нейронов А2 и В1 остались равными нулю.
Для нейронов, "принимающих" возбуждение рецепторов в соответствии со стрелками, введём функцию активации, в результате выполнения которой формируется величина V возбуждения каждого нейрона. Для нашего случая, не долго думая (ибо существует большой произвол в выборе вида функции активации, на любой вкус), определим вид такой функции
где i — индекс нейрона (в данном случае – рецептора), "передающего" своё возбуждение данному нейрону, h — порог.
Положим h = 1 и рассчитаем величины возбуждения нейронов R1 ( R4 для чётко заданной единицами, эталонной, ситуации А1 В2
VR1: 1 + 0 - 1 = 0, VR1 = 0; VR2: 1 + 1 - 1 = 1, VR2 = 1; VR3: 0 + 0 - 1 = -1, VR3 = 0; VR4: 0 + 1 - 1 = 0, VR4 = 0.
Таким образом, "высветилось" то решение, которое необходимо принять, и старт линейным должен быть дан. Продолжим верификацию проверкой, что так же работает наша сеть по всем эталонам, по которым мы её обучили, проложив "проводочки" от каждой исходной посылки к следствию.
Теперь поэкспериментируем.
Задавая события по принципу "да - нет", "1 - 0", мы предполагали булевский тип исходных данных. А что, если поменять, обобщить тип исходных данных, допустив рассмотрение нечётких значений возбуждения рецепторов, интерпретируемых как достоверность? Или даже каких-то других взаимных оценок, которые используются часто в быту людьми, не сведущими в теории вероятности и не знакомых с понятием "исчерпывающее множество событий"?
Например, в результате искажения информации начальник станции Кукуевка принял решение считать скорость пырловского паровоза равной не то 60, не то 80 км/ч. Но, скорее всего — 60! И подойдя к компьютеру, он по наитию набирает: А1 = 1, А2 = 0, В1 = 0,7, В2 = 0,4. На какую ситуацию это указывает, и какое решение наиболее правильно? Считаем:
VR1: 1 + 0,7 - 1 = 0,7, VR1 = 0,7; VR2: 1 + 0,4 - 1 = 0,4, VR2 = 0,4; VR3: 0 + 0,7 - 1 = -0,3, VR3 = 0; VR4: 0 + 0,4 - 1 = -0,6, VR4 = 0.
Мы видим, что максимальной величины возбуждения достиг нейрон R1, определивший главное решение. Но мы вправе учесть и решение R2 с меньшим приоритетом, дав даме с платочком дополнительные указания. И в этом проявится наша мудрость.
По известной формуле нахождения среднего мы можем оценить математическое ожидание того, на сколько облегчится карман начальника Кукуевской станции:
$$M = {{M1 \cdot 0,7 + M2 \cdot 0,4 + M3 \cdot 0 + M4 \cdot 0} \over {0,7 + 0,4 + 0 + 0}}$$где М1 – М4 – конечно же неизвестные нам (и налоговому инспектору) суммы.
В России революция — дрогнула мать
сыра земля, замутился белый свет…
Артём Весёлый. Россия, кровью умытая
Будем считать, что рассматриваемый пример был актуален в суровые, но славные 90-е годы прошлого столетия, и с этим покончено навсегда!
Вася и Петя — друзья. Нет, не в том смысле, а в смысле вечной святой мужской дружбы, без смущения применяющей слово "друг". Обозначим А — множество друзей,
А = {Вася, Петя}.
Вася и Петя — крутые парни. Они плохо учились в школе, и это хорошо! Они создали "крышу", под которой успешно трудится ряд палаток
С = {"Оксана", "Роксана", "Марина", "Регина", "Св. Аполлинария"},
заботливо опекаемые хозяйками, соответственно, Оксаной и Роксаной, Мариной и Региной, а также Аполлинарией. Палатки реализуют продукцию фирм
В = {Красный Киллер, Пират, Ночная Бабочка}.
Фирма Красный Киллер в секретных подвалах славных подразделений бойцов холодной войны на основе бабушкиного самогона и контрабандного синтетического спирта гонит всемирно известную вино-водочную продукцию отличного качества. Фирма Пират производит ауди- и видеопродукцию и другие культурные ценности. Фирма Ночная Бабочка выдаёт отличную французскую косметику из мосластых московских дворняг.
Ситуацию контролирует дядя Рамзай из налогового ведомства, который имеет свой маленький частный бизнес. С каждой сложившейся ситуацией, определяемой тем, кто из друзей какие палатки посетил, и какая продукция там находилась на реализации, дядя Рамзай связывает свою долю прибыли, основанную, мягко говоря, на шантаже. Дядя Рамзай имеет свой штат осведомителей: пару бомжей — жертв предыдущей амнистии, и пару-тройку голопузых апологетов трудного детства, которые с некоторой долей достоверности, за небольшую мзду и мелкое попустительство, доставляют ему информацию.
Дядя Рамзай – прогрессивный бизнесмен, ему не чужды идеи инновационной политики в области предпринимательства, и оценки прибыли он решает проводить на высоком математическом уровне, обратившись за помощью к нам (рис. 8.8). Мы хорошо учились в школе, и это — плохо! Мы, как истинные альтруисты и учёные-бессеребренники, с радостью поможем ему, — бесплатно.
А информации приходится обрабатывать дяде Рамзаю много. Он, прямо скажем, работает в условиях неопределённости и усиленных помех. Судите сами. Оксана делит любовь между Васей и Петей. Роксана — пока нет. Марина и Регина, жалея, подкармливают юных следопытов. Аполлинария вообще закадрила хахаля из местной мэрии и разъезжает в длиннющем "линкольне". Тщетно пытаясь разрушить узы бескорыстной дружбы, фирма Пират напрямую подмазала Васю, снизив нагрузку вымогательства на свою продукцию. Петя, кажется, пошёл на нарушение Конвенции и вторгается в область, контролируемую конкурентами. (Ох, не избежать благородной разборки, со стрельбой и окровавленными трупами!) Скоро отмотает свой срок Никита, и предприятие расширится и т.д., и т.д., и т.д.…
(рис 8.8) Предмет исследования
Все такие обстоятельства прямо или косвенно влияют на долю прибыли дяди Рамзая.
Разбираясь в столь сложной ситуации, — для демонстрации действительно очень трудно формализуемой задачи, — мы чувствуем, как чем-то липким покрываются наши честные ладошки. А потому мы решительно отталкиваемся от … и со сладким упоением возносимся на уровень милого сердцу абстрактного, математического, формально-логического мышления.
Но, прежде всего, принимая столь ответственный заказ, мы хотим чётко уяснить, что хочет дядя Рамзай, — чтобы всё же максимально формализовать задачу. И после долгих согласований мы устанавливаем:
1. Он хочет, задавая исходную информацию на входе той системы, которую мы для него создадим, на основе, возможно, не полной или недостоверной информации своих агентов, всё-таки распознать с наибольшей определённостью, что это за ситуация (на какую ситуацию в наибольшей степени указывают сложившиеся обстоятельства), чтобы знать, на какой навар можно рассчитывать;
2. Он хочет, задавая исходную ситуацию на входе системы, установить среднюю величину прибыли, так как в разной степени определённости речь идёт о нескольких возможных ситуациях;
3. Он хочет сделать вывод о частоте появления различных ситуаций, чтобы перераспределить тарифные ставки за умолчание о шалостях Васи и Пети.
Пусть по стечению обстоятельств, которые мы будем называть событиями, принимаются решения. Решения образуют конечное множество. Каждое решение соответствует некоторой, в общем случае не единственной, комбинации событий. Предположим наличие нескольких вариантов одного события. Считаем, что варианты каждого вида событий образуют исчерпывающее множество, т.е. сумма их вероятностей равна единице.
Перебрав все возможные ситуации, получим систему логических высказываний, как основу формализации задачи при построении нейросети:
$$ A1\land B1\land (C1\lor C2\lor C3\lor C4\lor C5) \rarr R1;\\ A1\land (B2\lor B3)\land (C1\lor C2\lor C3) \rarr R2;\\ A1\land (B2\lor B3) \land (C4\lor C5) \rarr R3;\\ A2\land B3\land (C1\lor C2\lor C3\lor C4\lor C5) \rarr R4;\\ A2\land (B1\lor B2)\land (C1\lor C2\lor C3\lor C4\lor C5) \rarr R5. $$Здесь R1 - R5 — принимаемые решения.
Первое логическое высказывание означает: "Если Вася отправился в одну из пяти палаток, и все они торгуют сегодня продукцией фирмы Красный Киллер, то следует принять решение R1 (например, заказать туристическую путевку)". Второе логическое высказывание означает: "Если Вася посетил одну из палаток С1, С2 или С3, торгующих сегодня продукцией фирм В2 и (или) В3, то следует принять решение R2" и т.д.
Построим (рис. 8.9) схему, реализующую алгоритм счета значения выражения (8.3), если на вход подаются значения булевых переменных, обозначающих события.
(рис 8.9) "Электронная" схема системы принятия решений
Такая электронная схема могла бы верно служить в качестве основного механизма системы принятия решений, способствуя быстрому определению необходимой реакции на сложившуюся, вполне определённую, ситуацию, Но ведь не зря мы обращаем внимание на те помехи и неопределённость, в условиях которых приходится жить и работать. Мы должны оперировать только достоверностями либо другими оценками событий, пытаясь определить, какой ситуации более всего соответствуют сложившиеся обстоятельства.
Значит, мы должны из точного, детерминированного представления перейти в область ассоциативного, неточного, приблизительного мышления! Но степень (частота) угадывания должна быть достаточно высока.
Именно здесь должна помочь нейросеть, реализующая нечёткую логику.
В Лекции 1, в которой представлена теоретическая часть проблемы логических нейронных сетей, показывается, как построить нейроны, специализированные для приближённого выполнения операций конъюнкции и дизъюнкции. Однако выясняется, что один "стандартный" нейрон, подобный рассмотренным выше, способен с достаточной точностью заменить обе операции. (Это не совсем так; в [7] подробно рассмотрены меры повышения достоверности выводов, полученных с помощью структурированных логических нейронных сетей, нейроны в которых первоначально отражают либо конъюнкцию, либо дизъюнкцию.)
Изобразим логическую нейронную сеть, воспользовавшись нейронами вместо приборов, выполняющих операции конъюнкции и дизъюнкции.
Введём функцию активации без ограничения по величине возбуждения, но не отрицательную (отрицательное значение разности примем нулевым):
$$V_i = \sum_{j=1}^{m}V_j \omega_{ji} - h$$Положим (по наитию) $$\omega_{ji} = 0,8, h = 0,2$$. Сеть, на которой отслеживается счёт варианта для её верификации, представлена на рис. 8.10. Максимальное возбуждение действительно достигается предусмотренным нейроном.
(рис 8.10) Нейронная сеть и пример расчёта по ней
Однако, как говорилось ранее, преобразование логического описания системы принятия решений приводит к получению упрощённой однослойной логической нейронной сети, предполагающей имитацию с помощью нейрона лишь операции конъюнкции. Последуем этим путём. Раскроем скобки в (1.3) и получим окончательный вид однослойной логической нейронной сети, который может быть представлен дяде Рамзаю (рис. 8.11).
Однако наш первый опыт построения системы принятия решений, где успешно действуют Вася, Петя Ko, нельзя считать совершенным. Придётся поглубже погрузиться в специфику бизнеса дяди Рамзая!
(рис 8.11) Окончательный вид однослойной логической нейронной сети
Во-первых, задача невнятно сформулирована дядей Рамзаем: что означает информация о том, что, например, Марина торговала товаром В1, когда её навестил Вася? Что, другого товара не было? Но если был и товар В2, то какое решение из этого следует? Каковы предпочтения? Как количественно учитывается наличие разных товаров?
Во-вторых, наличие сложных логических конструкций, определяющих одно решение, затрудняет развитие и модернизацию системы принятия решений, включение новых факторов, изменение условий. Целесообразно при построении системы принятия решений применить принцип разумной избыточности, что свойственно мозгу.
Хорошо усвоив главную рекомендацию об упрощении подхода, об упрощении логических выражений, об избыточном размножении решений, о сведении сети к однослойной и даже – к совершенной, где каждое решение связано с единственной точкой факторного пространства, приступим к уточнению системы принятия решений, взывая к опыту дяди Рамзая.
А именно, заставим его объём своей прибыли поставить в зависимость от количественных оценок товара, находящегося на реализации в каждой торговой точке. Продукцию В1 будем отображать ящиками, разбив их количественно на значимые, возможные интервалы. Аналогично, сотнями кассет будем измерять продукцию В2, а килограммами – продукцию В3.
Например, существенно влияющими на "результат" могут быть следующие оценки поступившей на реализацию продукции В1:
до 5 ящиков, от 5 до 10 ящиков, от 10 и выше.
Продукцию В2 можно учитывать следующим образом:
до 5 сотен кассет, от 5 до 10 сотен, от 10 сотен и выше.
Продукцию В3 по характеру значимости целесообразно рассматривать:
до 10 кг, от 10 до 100 кг, от 100 кг и выше.
Предположим, что в результате длительного опыта "проб и ошибок" дядя Рамзай нашёл оптимальную шкалу соотношений между складывающимися ситуациями и значениями личной прибыли.
Для составления обученной однослойной логической нейронной сети свяжем напрямую все возможные ситуации (задаваемые на рецепторах), для которых дядя Рамзай знает ответы, с нейронами, "отвечающими" за рекомендуемые решения. Закрепление рецепторов за значениями факторов и некоторые примерные связи показаны на рис. 8.12.
(рис 8.12) Примерный вид нейронной сети
Несомненно, работа с нечёткими данными значительно усложнилась. Ведь дядя Рамзай может "работать" только на уровне предположений, опираясь на совесть недобросовестных осведомителей. Накопив достаточный опыт, дядя Рамзай может ввести веса, с которыми разные ситуации или значения отдельных факторов влияют на рекомендуемые решения. Он легко пополнит нейросеть новыми фигурантами. Возможности развития СПР поистине неограничены!
Определим возбуждение рецепторного слоя, учитывая то, что по нейросетевым технологиям решаются сложные, чаще всего трудно формализуемые задачи. Исходная информация этих задач может быть настолько несовместима по смыслу, типам данных и единицам измерения, что приведение ее к некоторому количественному воплощению — величине возбуждения нейронов входного слоя — представляет серьёзную проблему.
Например, как объединить величину превышаемой водителем скорости и тип автомобиля иностранного производства со вчерашним неудачным выступлением любимой автоинспектором футбольной команды, — при нахождении величины штрафа? Ведь каждый из перечисленных факторов должен определить некоторые общие, приведенные значения возбуждения.
Такое приведение также зависит от задачи. Поскольку нейроны — нечто стандартное для данной задачи или класса задач, то каждая характеристика нейрона — величина возбуждения, веса его синапсических связей, порог, функция активации — должны быть одинаковы или принадлежать общему (по каждой характеристике) для всех нейронов диапазону возможных значений.
Дадим рекомендации, основанные на "событийном" принципе.
Разобьем скорость на диапазоны штрафования, например, [90, 100), [100, 110), [110, 120), [120, 200] . За каждым диапазоном скорости закрепим нейрон входного слоя — рецептор.
Универсальный подход основан на связывании величины возбуждения рецептора с достоверностью – вероятностью того, что величина скорости принадлежит одному или нескольким диапазонам. Такому подходу будем следовать в дальнейшем.
А именно, хотя бы интуитивно (а интуиция основана на тщательном изучении Инструкции) определим достоверность того, что интересующая нас величина принадлежит данному диапазону. С какой достоверностью она принадлежит второму диапазону? А третьему?
Грамотный инспектор помнит, что должен исходить из свойств ИМС - исчерпывающих множеств событий, с которыми имеет дело. Для ИМС сумма вероятностей событий равна единице. Тогда, в соответствии с высказанными положениями, инспектор не должен, например, задавать значение достоверности того, что скорость автомобиля находится в пределах 100 – 120 км/ч, равной 0,8, и в то же время достоверность того, что она находится в пределах 120 – 140 км/ч, равной 0,7. Более того, в соответствии с рекомендациями теории нечётких множеств он следует нормальному закону распределения плотности вероятностей (рис. 8.13).
(рис 8.13) Распределение возбуждения рецепторов по нормальному закону
А именно, если он считает, что, скорее всего, скорость принадлежит диапазону 100 – 120 км/ч, и полагает достоверность этого высказывания равной 0,6 (математическое ожидание), то куда деть остальные 0,4? Инспектор распределяет эту величину между "смежными" по смыслу событиями, имитируя нормальный закон, например, полагая значения возбуждения рецепторов, как показано на рисунке.
В случае не столь высокой грамотности, полагаясь на универсальность аппарата логических нейронных сетей, имитирующего массовое ассоциативное мышление, можно даже уйти от понятия достоверности, как вероятностной категории. Все ли мы на бытовом уровне знакомы с понятием исчерпывающего множества событий, связанным с условием нормировки, т.е. – с условием равенства единице суммы их вероятностей? Ведь часто можно услышать: "Даю голову на отсечение, что это так, хотя и допускаю, что все наоборот…" Главное, чтобы исходные оценки информации были относительными, отражающими принцип "больше – меньше". Это расширит популярность нейросетевых технологий, исключит необходимость специальных знаний. Ведь какие-то начальные возбуждения рецепторов, при их относительном различии, распространятся по нейросети, определяя предпочтительность принимаемого решения!
Тогда, на этапе формирования обученной нейросети, получим возможность формирования аналога некой таблицы, в соответствии с которой будет действовать инспектор.
Выделим нейроны, "отвечающие" за типы автомобилей: отечественного производства, "мерседес", "вольво", "джип" и т.д. Величину возбуждения этих нейронов будем полагать равной 1 — на этапе верификации, или равной достоверности события — в рабочем режиме. Аналогично выделим рецепторы, "отвечающие" за другие возможные события: степень интеллигентности водителя (так же по диапазонам изменения), выигрыш или проигрыш любимой команды и т.д.
Следовательно, на входном слое будут формироваться приведённые значения возбуждения.
В рабочем режиме мы, таким образом, получили возможность использования неопределённой, недостоверной информации. Например, инспектор не смог из-за высокой скорости отличить "ниву" от "чероки". Тогда он решает ввести значение 0,5 в графу "нива" (величина возбуждения рецептора, "отвечающего" за "ниву" станет равной 0,5) и 0,5 – в графу "джип "чероки" (такой же станет величина возбуждения соответствующего рецептора). Однако, подумав, он на всякий случай вводит величину 0,2 в графу ВАЗ 2104, что также во власти его сомнений. Так же инспектор поступает и с другими характеристиками сложившейся ситуации в поисках наиболее достоверного решения по принципу наибольшей похожести.
Следует сделать важное замечание. Всегда ли обязательно разбиение параметров, отражаемых непрерывными функциями, на диапазоны изменения? Часто удобно закреплять рецепторы не за диапазонами изменения значений параметров, а за конкретными значениями, как это рассматривалось ранее. В этом случае опыт носит дискретный характер.
Например, в этом же примере о штрафовании может быть известен опыт вида:
"Если скорость автомобиля равна 100 км/час <другие характеристики ситуации>, то размер штрафа составляет..."
"Если скорость автомобиля равна 120 км/час <другие характеристики ситуации>, то размер штрафа составляет..." и т.д.
Тогда как задать возбуждение рецепторов, если инспектор точно установил, что скорость автомобиля при наезде на пешехода была равна 114 км/час?
По-видимому, он рассуждает на основе обратно пропорциональной близости скорости к границам указанного интервала: "Достоверность того, что скорость автомобиля составляет 100 км/час, я найду как (120 – 114):(120 – 100), а достоверность того, что скорость автомобиля составляет 120 км/час, я найду как (114 – 100):(120 – 100) . Следует обратить внимание на то, что сумма найденных достоверностей равна единице.
Таким образом, указан самый простой и практичный способ возбуждения всего двух рецепторов, "охватывающих" испытываемое значение фактора. Конечно, если очень хочется, можно пользоваться нормальным законом распределения вероятностей.
И не ищите методов точной оценки порогов, весов связей, возбуждения рецепторов и пр. Оценки эти определяются интуицией, питающейся опытом. Поэтому в задании исходных данных для логической нейронной сети всегда присутствует фактор волюнтаризма, неопределённости, случайности и даже предвзятости личного мнения (начальника). Что ж, не зря же человек – общественное животное.
…письмоводитель градоначальника, вошедши утром с докладом в его кабинет, увидел такое зрелище: градоначальниково тело, облечённое в вицмундир, сидело за письменным столом, а перед ним, на кипе недоимочных реестров, лежала, в виде щегольского пресс-папье, совершенно пустая градоначальникова голова.
М.Е. Салтыков-Щедрин. История одного города.
Пусть некоторая система характеризуется значениями трёх параметров x, y, z, которые принято называть факторами факторного пространства. Оценка эффективности этой системы сводится к определению некоторых финансовых затрат $, сопряжённых со значениями этих параметров. Математические зависимости для данной оценки отсутствуют, задача является трудно формализуемой.
Пусть значение фактора x определяется в сантиметрах (см), значение фактора y – в килограммах (кг), значение фактора z – в количестве человек (чел.), занятых в эксперименте. Составим схему, связав стрелками значения параметров, для которых известны оценки, с этими оценками, как показано на рис. 8.1. Таким образом, схематично представлена некоторая база данных, которую необходимо преобразовать в базу знаний (БЗ), дополнив возможностью логического вывода.
(рис 8.1) Логическая нейронная сеть, реализующая базу знаний
Представим построенную схему, как схему однослойной логической нейронной сети, где слева показан рецепторный слой, а справа – единственный выходной слой нейронов. "Оживим" эту сеть, введя функцию активации нейронов:
$$V_i = \left \{ \begin{matrix} \frac{1}{3}\sum_{j}v_j \text{ если это значение не меньше порога h}\\ 0, в противном случае \end{matrix} \right.$$Здесь Vi (i = 1, 2, 3, 4) – величина возбуждения нейрона выходного слоя, $$v_j (j\in {1, ..., 7})$$ – величина возбуждения рецептора. Выберем h = 0,5.
Таким образом, на основе опытных данных, в виде обученной логической нейронной сети с единичными весами связей сформирована база знаний, отображающая некоторые финансовые расходы. С помощью данной сети можно производить ассоциативные вычисления для точек факторного пространства, первоначально не представленных на рецепторном слое. Ведь перед пользователем или исследователем возникает вопрос: можно ли для произвольной ситуации в области задания параметров хотя бы приблизительно предсказать связанные с ней расходы?
Рассмотрим пример ассоциативных вычислений для значений x = 0,2 см, y = 30 кг, z = 6 чел. Значение х лежит как раз посредине, между представленными на рецепторном слое значениями х = 1 и х = 3. Тогда полагаем v1 = v2 = 0,5, v3 = 0. Заданное значение y находится между 25 и 40, но ближе к первому. Распределим единицу обратно пропорционально "расстоянию" y = 30 до указанных двух значений и положим v4 = 0,66, v5 = 0,33. Аналогично примем v6 = 0,8, v7 = 0,2. Находим V1 = 0,65, V2 = 0,65, V3 = 0, V4 = 0 и среднее ожидаемое значение затрат
Теперь усложним пример, введя, на основе накопленного опыта и экспериментов, веса связей, как показано на рис. 8.2. (Непомеченные связи – единичные.)
С учётом весов связей целесообразно выбрать другую функцию активации i-го нейрона:
$$V_i = \left \{ \begin{matrix} \frac{\sum_{j}v_j\omega_{ji}}{\sum_{j}\omega_{ji}} \text{ если это значение не меньше порога h}\\ 0, в противном случае \end{matrix} \right.$$Здесь Vi – величина возбуждения i-го нейрона, vj – величина возбуждения рецептора, связанного с i-м, $$\omega_{ji}$$ – вес связи j-го рецептора с i-м нейроном.
(рис 8.2) Логическая нейронная сеть с весами связей
Рассчитаем среднее количество затрат для той же ситуации. Возбуждение рецепторов остаётся тем же, и при том же значении h находим V1 = 0,63, V2 = 0,5, V3 = 0, V4 = 0,
Учитывая, что решение могло быть не численным, или допускало бы нечисловую компоненту, сформируем простейшую методику проведения ассоциативных вычислений по логической нейронной сети:
1) Задание исследуемой ситуации на рецепторном слое.
2) Расчёт величины возбуждения нейронов с помощью пороговой функции активации.
3,а) Если все нейроны своим возбуждением указывают на численное значение некоторой величины, находится среднее значение (по возбуждению всех нейронов) в качестве ответа решаемой задачи.
3,б) Если нейроны указывают не на численные значения, например, на текст, символ объекта, качественное значение и пр., находится нейрон с максимальным значением возбуждения (не единственность такового разрешается пользователем, например, уточнением ситуации или рассмотрением дополнительных факторов). Принимается ответ, на который указывает максимально возбудившийся нейрон. Этот процесс выбора подобен голосованию в пользу предпочтительного решения по данной ситуации.
3,в) Если решение представляет собой вектор, то пункты 3,а и 3,б выполняются отдельно для каждой компоненты этого решения. Это означает, что где можно выполнить усреднение, оно производится, где нельзя, на решение указывает максимально возбудившийся нейрон.
Однако ощущение неудовлетворённости мучает нас. Хорошо, действительно – всё так просто! Но как такую нейросеть всунуть в компьютер? Средства мультимедиа, что ли использовать?
Нет. Всё гораздо проще! Логическая нейронная сеть представляется и обрабатывается с помощью матрицы связей. Для рассмотренного примера она представлена в табл. 8.1.
| Рецепторы | x=0,1 | x=0,3 | x=0,5 | y=25 | y=40 | z=5 | z=10 |
|---|---|---|---|---|---|---|---|
| Пример | 0,5 | 0,5 | 0 | 0,66 | 0,33 | 0,8 | 0,2 |
| Решение 1 | 1 | 1 | 0,6 | ||||
| Решение 2 | 1 | 1 | 1 | 0,8 | |||
| Решение 3 | 1 | 1 | 0,5 | ||||
| Решение 4 | 1 | 1 | 0,5 |
Подобно сетчатке глаза, сформируем экран 8 x 16 клеток. Каждую клетку будем рассматривать в качестве рецептора, способного воспринимать извне величину возбуждения в диапазоне 0 – 1.
(рис 8.3) Ловушка для захвата буквы О
Для обучения букве О условно нарисуем на экране эталон этой буквы. Окружим линию этого эталона клетками (рецепторами) с некоторым запасом по толщине линии (как показано на рис. 1.3) так, чтобы создать "ловушку" для захвата основной части нечётко и с искажениями изображаемой буквы О. Соединим все рецепторы "ловушки" буквы О связями (с единичными весами) с нейроном, отвечающим за вывод: "Это буква О".
Выберем функцию активации этого нейрона $${f_O} = {1 \over {{N_O}}}\sum\limits_i {{f_i} - h}$$ при отрицательном значении разности принимающую нулевое значение. Здесь NO – количество рецепторов, образующих "ловушку" буквы О, fi – величина возбуждения i-го рецептора, h – единый порог, подбираемый экспериментально для всех букв, распознаванию которых производится обучение. По рисунку NO = 64.
На этом же экране построим "ловушку" для искажённой, "зашумлённой" буквы А, как показано на рис. 8.4. Все рецепторы "ловушки" свяжем с нейроном, отвечающим за вывод: "Это буква А".
Функция активации этого нейрона имеет тот же вид $${f_A} = {1 \over {{N_A}}}\sum\limits_i {{f_i} - h}$$, однако, в нашем примере NA = 74. (Данное нормирование производится для уравнивания значимости всех букв, которым обучается нейросеть.)
По чётко заданным эталонам букв (с единичной засветкой клеток экрана по правильному контуру) предварительно подберём порог h так, чтобы существенно возбуждался лишь тот нейрон, который соответствует предъявляемой букве. Показ "чужого" символа, которому нейросеть не обучалась, должен приводить к нулевому возбуждению нейронов. В процессе эксперимента и при добавлении новых букв значение порога может уточняться.
(рис 8.4) Ловушка для захвата буквы А
Перейдём к рабочему режиму распознавания. На рис. 8.5 показан вариант зашумлённой засветки экрана. Слева наложена "ловушка" для распознавания буквы О. Справа – "ловушка" для распознавания буквы А.
Сумма сигналов в "ловушке" О равна 49,2. Пусть h = 0,7. Тогда fO = 0,77 - 0,7 = 0,07. Сумма сигналов в "ловушке" А равна 36,9, fA = 0. Нейросеть высказалась за то, что ей была предъявлена "зашумлённая" буква О.
Расширьте эксперимент, произведя обучение для трёх, четырёх и т.д. символов. Выбор набора значительно отличающихся символов определяет вариант выполняемой лабораторной работы. Для представления экрана и для расчётов целесообразно использовать EXEL.
(рис 8.5) Распознавание с помощью ловушек
Вы, несомненно, столкнётесь с малой разрешающей способностью экрана 8 x 16. Кроме того, данная лабораторная работа ограничена центровкой и масштабированием образов. Так что перед экспериментатором открываются неограниченные возможности!
Рассмотрим увлекательную детскую игру "Железнодорожная рулетка", основанную на так хорошо знакомой Вам задаче о встрече. Помните: "Из пунктов А и В навстречу друг другу…" и т.д.?
Начальник станции Кукуевка (ведущий) и начальник станции Пырловка одновременно выпускают навстречу друг другу два паровоза (рис. 8.6) со скоростью либо 60, либо 80 км/час. Длина перегона составляет 4 км. Небольшой нюанс заключается в том, что пути перегона то сходятся в один, на протяжении одного километра, то расходятся. И тогда, в зависимости от точки встречи, со станции Кукуевка надо выслать на соответствующий километр либо линейного - даму с приветственным платочком, либо линейного с подстилочной соломкой.
Решение о такой посылке усложняется помехами в линии передачи данных, в связи с чем скорости паровозов сообщаются с достоверностью, меньшей единицы. Кроме того, необходимо каждый эксперимент связать с ожидаемыми денежными затратами на единовременную добавку к пенсии линейных.
(рис 8.6) Интеллектуальная игра "Железнодорожная рулетка"
Тогда Вы понимаете, что без элементов искусственного интеллекта не обойтись. Вы ищете что-то похожее на табличный метод, но с автоматической интерполяцией, что-то связанное с ассоциативным мышлением… И Вы решаетесь…
Произведём предварительные расчёты, чтобы представить себе все варианты будущего поведения нашей системы принятия решений — для её обучения. Представим (рис. 8.7) графически структуру логического функционирования создаваемой системы принятия решений для каждой возможной ситуации.
Ситуация 1. Кукуевский паровоз имеет скорость 60 км/ч (Событие А1). Пырловский паровоз имеет скорость 60 км/ч (Событие В1). Одновременное выполнение этих событий обозначим А1В1. Тогда точка встречи находится как раз посредине перегона, что, скорее всего, требует помощи линейного с соломкой. Но возможно и везение за счёт неточного определения скоростей. Тогда на всякий случай потребуется дама с платочком. Принимаемое решение, заключающееся в отправлении обоих линейных на границу второго и третьего километров, назовём решением R1. С ним связаны расходы на единовременное пособие М1.
(рис 8.7) Система принятия решений и её Нейросетевая интерпретация
Ситуация 2. Кукуевский паровоз имеет скорость 60 км/ч (Событие А1), но пырловский паровоз имеет скорость 80 км/ч (Событие В2). (Выполняется условие А1В2.) Тогда их точка встречи находится на втором километре пути, и, следовательно, требует решения R2: "Отправить даму с платочком на второй километр!" В активе указанной дамы появляется сумма М2 условных единиц.
Ситуация 3. Кукуевский паровоз имеет скорость 80 км/ч (Событие А2), пырловский паровоз имеет скорость 60 км/ч (Событие В1). (Выполняется условие А2В1.) Тогда их точка встречи находится на третьем километре пути, что требует сочувственного вмешательства линейного с соломкой (решение R3), с оплатой труда в М3 условных единиц.
Ситуация 4. Кукуевский и пырловский паровозы имеют скорость 80 км/ч (Событие А2В2), что, ввиду высокой скорости перемещения линейных в середину перегона, требует решения R4 с затратами М4.
А теперь оживим эту структуру, заставим её действовать, как, по-видимому, на логическом уровне действуют структуры нашего мозга.
Представим себе, что на месте каждого овала (потом — кружочка, на рисунке 8.7 справа) действует нейроподобный элемент (просто нейрон). Нейроны входного слоя — рецепторы приходят в возбуждённое состояние извне (подобно сетчатке глаза) в соответствии с той ситуацией, которую мы задаём на входе системы. Например, мы хотим испытать ситуацию А1В2. Тогда мы полагаем величины возбуждения рецепторов А1 и В2 равными единице и записываем: VA1 = VB2 = 1. При этом мы не забываем позаботиться о том, чтобы величины возбуждений нейронов А2 и В1 остались равными нулю.
Для нейронов, "принимающих" возбуждение рецепторов в соответствии со стрелками, введём функцию активации, в результате выполнения которой формируется величина V возбуждения каждого нейрона. Для нашего случая, не долго думая (ибо существует большой произвол в выборе вида функции активации, на любой вкус), определим вид такой функции
где i — индекс нейрона (в данном случае – рецептора), "передающего" своё возбуждение данному нейрону, h — порог.
Положим h = 1 и рассчитаем величины возбуждения нейронов R1 ( R4 для чётко заданной единицами, эталонной, ситуации А1 В2
VR1: 1 + 0 - 1 = 0, VR1 = 0; VR2: 1 + 1 - 1 = 1, VR2 = 1; VR3: 0 + 0 - 1 = -1, VR3 = 0; VR4: 0 + 1 - 1 = 0, VR4 = 0.
Таким образом, "высветилось" то решение, которое необходимо принять, и старт линейным должен быть дан. Продолжим верификацию проверкой, что так же работает наша сеть по всем эталонам, по которым мы её обучили, проложив "проводочки" от каждой исходной посылки к следствию.
Теперь поэкспериментируем.
Задавая события по принципу "да - нет", "1 - 0", мы предполагали булевский тип исходных данных. А что, если поменять, обобщить тип исходных данных, допустив рассмотрение нечётких значений возбуждения рецепторов, интерпретируемых как достоверность? Или даже каких-то других взаимных оценок, которые используются часто в быту людьми, не сведущими в теории вероятности и не знакомых с понятием "исчерпывающее множество событий"?
Например, в результате искажения информации начальник станции Кукуевка принял решение считать скорость пырловского паровоза равной не то 60, не то 80 км/ч. Но, скорее всего — 60! И подойдя к компьютеру, он по наитию набирает: А1 = 1, А2 = 0, В1 = 0,7, В2 = 0,4. На какую ситуацию это указывает, и какое решение наиболее правильно? Считаем:
VR1: 1 + 0,7 - 1 = 0,7, VR1 = 0,7; VR2: 1 + 0,4 - 1 = 0,4, VR2 = 0,4; VR3: 0 + 0,7 - 1 = -0,3, VR3 = 0; VR4: 0 + 0,4 - 1 = -0,6, VR4 = 0.
Мы видим, что максимальной величины возбуждения достиг нейрон R1, определивший главное решение. Но мы вправе учесть и решение R2 с меньшим приоритетом, дав даме с платочком дополнительные указания. И в этом проявится наша мудрость.
По известной формуле нахождения среднего мы можем оценить математическое ожидание того, на сколько облегчится карман начальника Кукуевской станции:
$$M = {{M1 \cdot 0,7 + M2 \cdot 0,4 + M3 \cdot 0 + M4 \cdot 0} \over {0,7 + 0,4 + 0 + 0}}$$где М1 – М4 – конечно же неизвестные нам (и налоговому инспектору) суммы.
В России революция — дрогнула мать
сыра земля, замутился белый свет…
Артём Весёлый. Россия, кровью умытая
Будем считать, что рассматриваемый пример был актуален в суровые, но славные 90-е годы прошлого столетия, и с этим покончено навсегда!
Вася и Петя — друзья. Нет, не в том смысле, а в смысле вечной святой мужской дружбы, без смущения применяющей слово "друг". Обозначим А — множество друзей,
А = {Вася, Петя}.
Вася и Петя — крутые парни. Они плохо учились в школе, и это хорошо! Они создали "крышу", под которой успешно трудится ряд палаток
С = {"Оксана", "Роксана", "Марина", "Регина", "Св. Аполлинария"},
заботливо опекаемые хозяйками, соответственно, Оксаной и Роксаной, Мариной и Региной, а также Аполлинарией. Палатки реализуют продукцию фирм
В = {Красный Киллер, Пират, Ночная Бабочка}.
Фирма Красный Киллер в секретных подвалах славных подразделений бойцов холодной войны на основе бабушкиного самогона и контрабандного синтетического спирта гонит всемирно известную вино-водочную продукцию отличного качества. Фирма Пират производит ауди- и видеопродукцию и другие культурные ценности. Фирма Ночная Бабочка выдаёт отличную французскую косметику из мосластых московских дворняг.
Ситуацию контролирует дядя Рамзай из налогового ведомства, который имеет свой маленький частный бизнес. С каждой сложившейся ситуацией, определяемой тем, кто из друзей какие палатки посетил, и какая продукция там находилась на реализации, дядя Рамзай связывает свою долю прибыли, основанную, мягко говоря, на шантаже. Дядя Рамзай имеет свой штат осведомителей: пару бомжей — жертв предыдущей амнистии, и пару-тройку голопузых апологетов трудного детства, которые с некоторой долей достоверности, за небольшую мзду и мелкое попустительство, доставляют ему информацию.
Дядя Рамзай – прогрессивный бизнесмен, ему не чужды идеи инновационной политики в области предпринимательства, и оценки прибыли он решает проводить на высоком математическом уровне, обратившись за помощью к нам (рис. 8.8). Мы хорошо учились в школе, и это — плохо! Мы, как истинные альтруисты и учёные-бессеребренники, с радостью поможем ему, — бесплатно.
А информации приходится обрабатывать дяде Рамзаю много. Он, прямо скажем, работает в условиях неопределённости и усиленных помех. Судите сами. Оксана делит любовь между Васей и Петей. Роксана — пока нет. Марина и Регина, жалея, подкармливают юных следопытов. Аполлинария вообще закадрила хахаля из местной мэрии и разъезжает в длиннющем "линкольне". Тщетно пытаясь разрушить узы бескорыстной дружбы, фирма Пират напрямую подмазала Васю, снизив нагрузку вымогательства на свою продукцию. Петя, кажется, пошёл на нарушение Конвенции и вторгается в область, контролируемую конкурентами. (Ох, не избежать благородной разборки, со стрельбой и окровавленными трупами!) Скоро отмотает свой срок Никита, и предприятие расширится и т.д., и т.д., и т.д.…
(рис 8.8) Предмет исследования
Все такие обстоятельства прямо или косвенно влияют на долю прибыли дяди Рамзая.
Разбираясь в столь сложной ситуации, — для демонстрации действительно очень трудно формализуемой задачи, — мы чувствуем, как чем-то липким покрываются наши честные ладошки. А потому мы решительно отталкиваемся от … и со сладким упоением возносимся на уровень милого сердцу абстрактного, математического, формально-логического мышления.
Но, прежде всего, принимая столь ответственный заказ, мы хотим чётко уяснить, что хочет дядя Рамзай, — чтобы всё же максимально формализовать задачу. И после долгих согласований мы устанавливаем:
1. Он хочет, задавая исходную информацию на входе той системы, которую мы для него создадим, на основе, возможно, не полной или недостоверной информации своих агентов, всё-таки распознать с наибольшей определённостью, что это за ситуация (на какую ситуацию в наибольшей степени указывают сложившиеся обстоятельства), чтобы знать, на какой навар можно рассчитывать;
2. Он хочет, задавая исходную ситуацию на входе системы, установить среднюю величину прибыли, так как в разной степени определённости речь идёт о нескольких возможных ситуациях;
3. Он хочет сделать вывод о частоте появления различных ситуаций, чтобы перераспределить тарифные ставки за умолчание о шалостях Васи и Пети.
Пусть по стечению обстоятельств, которые мы будем называть событиями, принимаются решения. Решения образуют конечное множество. Каждое решение соответствует некоторой, в общем случае не единственной, комбинации событий. Предположим наличие нескольких вариантов одного события. Считаем, что варианты каждого вида событий образуют исчерпывающее множество, т.е. сумма их вероятностей равна единице.
Перебрав все возможные ситуации, получим систему логических высказываний, как основу формализации задачи при построении нейросети:
$$ A1\land B1\land (C1\lor C2\lor C3\lor C4\lor C5) \rarr R1;\\ A1\land (B2\lor B3)\land (C1\lor C2\lor C3) \rarr R2;\\ A1\land (B2\lor B3) \land (C4\lor C5) \rarr R3;\\ A2\land B3\land (C1\lor C2\lor C3\lor C4\lor C5) \rarr R4;\\ A2\land (B1\lor B2)\land (C1\lor C2\lor C3\lor C4\lor C5) \rarr R5. $$Здесь R1 - R5 — принимаемые решения.
Первое логическое высказывание означает: "Если Вася отправился в одну из пяти палаток, и все они торгуют сегодня продукцией фирмы Красный Киллер, то следует принять решение R1 (например, заказать туристическую путевку)". Второе логическое высказывание означает: "Если Вася посетил одну из палаток С1, С2 или С3, торгующих сегодня продукцией фирм В2 и (или) В3, то следует принять решение R2" и т.д.
Построим (рис. 8.9) схему, реализующую алгоритм счета значения выражения (8.3), если на вход подаются значения булевых переменных, обозначающих события.
(рис 8.9) "Электронная" схема системы принятия решений
Такая электронная схема могла бы верно служить в качестве основного механизма системы принятия решений, способствуя быстрому определению необходимой реакции на сложившуюся, вполне определённую, ситуацию, Но ведь не зря мы обращаем внимание на те помехи и неопределённость, в условиях которых приходится жить и работать. Мы должны оперировать только достоверностями либо другими оценками событий, пытаясь определить, какой ситуации более всего соответствуют сложившиеся обстоятельства.
Значит, мы должны из точного, детерминированного представления перейти в область ассоциативного, неточного, приблизительного мышления! Но степень (частота) угадывания должна быть достаточно высока.
Именно здесь должна помочь нейросеть, реализующая нечёткую логику.
В Лекции 1, в которой представлена теоретическая часть проблемы логических нейронных сетей, показывается, как построить нейроны, специализированные для приближённого выполнения операций конъюнкции и дизъюнкции. Однако выясняется, что один "стандартный" нейрон, подобный рассмотренным выше, способен с достаточной точностью заменить обе операции. (Это не совсем так; в [7] подробно рассмотрены меры повышения достоверности выводов, полученных с помощью структурированных логических нейронных сетей, нейроны в которых первоначально отражают либо конъюнкцию, либо дизъюнкцию.)
Изобразим логическую нейронную сеть, воспользовавшись нейронами вместо приборов, выполняющих операции конъюнкции и дизъюнкции.
Введём функцию активации без ограничения по величине возбуждения, но не отрицательную (отрицательное значение разности примем нулевым):
$$V_i = \sum_{j=1}^{m}V_j \omega_{ji} - h$$Положим (по наитию) $$\omega_{ji} = 0,8, h = 0,2$$. Сеть, на которой отслеживается счёт варианта для её верификации, представлена на рис. 8.10. Максимальное возбуждение действительно достигается предусмотренным нейроном.
(рис 8.10) Нейронная сеть и пример расчёта по ней
Однако, как говорилось ранее, преобразование логического описания системы принятия решений приводит к получению упрощённой однослойной логической нейронной сети, предполагающей имитацию с помощью нейрона лишь операции конъюнкции. Последуем этим путём. Раскроем скобки в (1.3) и получим окончательный вид однослойной логической нейронной сети, который может быть представлен дяде Рамзаю (рис. 8.11).
Однако наш первый опыт построения системы принятия решений, где успешно действуют Вася, Петя Ko, нельзя считать совершенным. Придётся поглубже погрузиться в специфику бизнеса дяди Рамзая!
(рис 8.11) Окончательный вид однослойной логической нейронной сети
Во-первых, задача невнятно сформулирована дядей Рамзаем: что означает информация о том, что, например, Марина торговала товаром В1, когда её навестил Вася? Что, другого товара не было? Но если был и товар В2, то какое решение из этого следует? Каковы предпочтения? Как количественно учитывается наличие разных товаров?
Во-вторых, наличие сложных логических конструкций, определяющих одно решение, затрудняет развитие и модернизацию системы принятия решений, включение новых факторов, изменение условий. Целесообразно при построении системы принятия решений применить принцип разумной избыточности, что свойственно мозгу.
Хорошо усвоив главную рекомендацию об упрощении подхода, об упрощении логических выражений, об избыточном размножении решений, о сведении сети к однослойной и даже – к совершенной, где каждое решение связано с единственной точкой факторного пространства, приступим к уточнению системы принятия решений, взывая к опыту дяди Рамзая.
А именно, заставим его объём своей прибыли поставить в зависимость от количественных оценок товара, находящегося на реализации в каждой торговой точке. Продукцию В1 будем отображать ящиками, разбив их количественно на значимые, возможные интервалы. Аналогично, сотнями кассет будем измерять продукцию В2, а килограммами – продукцию В3.
Например, существенно влияющими на "результат" могут быть следующие оценки поступившей на реализацию продукции В1:
до 5 ящиков, от 5 до 10 ящиков, от 10 и выше.
Продукцию В2 можно учитывать следующим образом:
до 5 сотен кассет, от 5 до 10 сотен, от 10 сотен и выше.
Продукцию В3 по характеру значимости целесообразно рассматривать:
до 10 кг, от 10 до 100 кг, от 100 кг и выше.
Предположим, что в результате длительного опыта "проб и ошибок" дядя Рамзай нашёл оптимальную шкалу соотношений между складывающимися ситуациями и значениями личной прибыли.
Для составления обученной однослойной логической нейронной сети свяжем напрямую все возможные ситуации (задаваемые на рецепторах), для которых дядя Рамзай знает ответы, с нейронами, "отвечающими" за рекомендуемые решения. Закрепление рецепторов за значениями факторов и некоторые примерные связи показаны на рис. 8.12.
(рис 8.12) Примерный вид нейронной сети
Несомненно, работа с нечёткими данными значительно усложнилась. Ведь дядя Рамзай может "работать" только на уровне предположений, опираясь на совесть недобросовестных осведомителей. Накопив достаточный опыт, дядя Рамзай может ввести веса, с которыми разные ситуации или значения отдельных факторов влияют на рекомендуемые решения. Он легко пополнит нейросеть новыми фигурантами. Возможности развития СПР поистине неограничены!
Определим возбуждение рецепторного слоя, учитывая то, что по нейросетевым технологиям решаются сложные, чаще всего трудно формализуемые задачи. Исходная информация этих задач может быть настолько несовместима по смыслу, типам данных и единицам измерения, что приведение ее к некоторому количественному воплощению — величине возбуждения нейронов входного слоя — представляет серьёзную проблему.
Например, как объединить величину превышаемой водителем скорости и тип автомобиля иностранного производства со вчерашним неудачным выступлением любимой автоинспектором футбольной команды, — при нахождении величины штрафа? Ведь каждый из перечисленных факторов должен определить некоторые общие, приведенные значения возбуждения.
Такое приведение также зависит от задачи. Поскольку нейроны — нечто стандартное для данной задачи или класса задач, то каждая характеристика нейрона — величина возбуждения, веса его синапсических связей, порог, функция активации — должны быть одинаковы или принадлежать общему (по каждой характеристике) для всех нейронов диапазону возможных значений.
Дадим рекомендации, основанные на "событийном" принципе.
Разобьем скорость на диапазоны штрафования, например, [90, 100), [100, 110), [110, 120), [120, 200] . За каждым диапазоном скорости закрепим нейрон входного слоя — рецептор.
Универсальный подход основан на связывании величины возбуждения рецептора с достоверностью – вероятностью того, что величина скорости принадлежит одному или нескольким диапазонам. Такому подходу будем следовать в дальнейшем.
А именно, хотя бы интуитивно (а интуиция основана на тщательном изучении Инструкции) определим достоверность того, что интересующая нас величина принадлежит данному диапазону. С какой достоверностью она принадлежит второму диапазону? А третьему?
Грамотный инспектор помнит, что должен исходить из свойств ИМС - исчерпывающих множеств событий, с которыми имеет дело. Для ИМС сумма вероятностей событий равна единице. Тогда, в соответствии с высказанными положениями, инспектор не должен, например, задавать значение достоверности того, что скорость автомобиля находится в пределах 100 – 120 км/ч, равной 0,8, и в то же время достоверность того, что она находится в пределах 120 – 140 км/ч, равной 0,7. Более того, в соответствии с рекомендациями теории нечётких множеств он следует нормальному закону распределения плотности вероятностей (рис. 8.13).
(рис 8.13) Распределение возбуждения рецепторов по нормальному закону
А именно, если он считает, что, скорее всего, скорость принадлежит диапазону 100 – 120 км/ч, и полагает достоверность этого высказывания равной 0,6 (математическое ожидание), то куда деть остальные 0,4? Инспектор распределяет эту величину между "смежными" по смыслу событиями, имитируя нормальный закон, например, полагая значения возбуждения рецепторов, как показано на рисунке.
В случае не столь высокой грамотности, полагаясь на универсальность аппарата логических нейронных сетей, имитирующего массовое ассоциативное мышление, можно даже уйти от понятия достоверности, как вероятностной категории. Все ли мы на бытовом уровне знакомы с понятием исчерпывающего множества событий, связанным с условием нормировки, т.е. – с условием равенства единице суммы их вероятностей? Ведь часто можно услышать: "Даю голову на отсечение, что это так, хотя и допускаю, что все наоборот…" Главное, чтобы исходные оценки информации были относительными, отражающими принцип "больше – меньше". Это расширит популярность нейросетевых технологий, исключит необходимость специальных знаний. Ведь какие-то начальные возбуждения рецепторов, при их относительном различии, распространятся по нейросети, определяя предпочтительность принимаемого решения!
Тогда, на этапе формирования обученной нейросети, получим возможность формирования аналога некой таблицы, в соответствии с которой будет действовать инспектор.
Выделим нейроны, "отвечающие" за типы автомобилей: отечественного производства, "мерседес", "вольво", "джип" и т.д. Величину возбуждения этих нейронов будем полагать равной 1 — на этапе верификации, или равной достоверности события — в рабочем режиме. Аналогично выделим рецепторы, "отвечающие" за другие возможные события: степень интеллигентности водителя (так же по диапазонам изменения), выигрыш или проигрыш любимой команды и т.д.
Следовательно, на входном слое будут формироваться приведённые значения возбуждения.
В рабочем режиме мы, таким образом, получили возможность использования неопределённой, недостоверной информации. Например, инспектор не смог из-за высокой скорости отличить "ниву" от "чероки". Тогда он решает ввести значение 0,5 в графу "нива" (величина возбуждения рецептора, "отвечающего" за "ниву" станет равной 0,5) и 0,5 – в графу "джип "чероки" (такой же станет величина возбуждения соответствующего рецептора). Однако, подумав, он на всякий случай вводит величину 0,2 в графу ВАЗ 2104, что также во власти его сомнений. Так же инспектор поступает и с другими характеристиками сложившейся ситуации в поисках наиболее достоверного решения по принципу наибольшей похожести.
Следует сделать важное замечание. Всегда ли обязательно разбиение параметров, отражаемых непрерывными функциями, на диапазоны изменения? Часто удобно закреплять рецепторы не за диапазонами изменения значений параметров, а за конкретными значениями, как это рассматривалось ранее. В этом случае опыт носит дискретный характер.
Например, в этом же примере о штрафовании может быть известен опыт вида:
"Если скорость автомобиля равна 100 км/час <другие характеристики ситуации>, то размер штрафа составляет..."
"Если скорость автомобиля равна 120 км/час <другие характеристики ситуации>, то размер штрафа составляет..." и т.д.
Тогда как задать возбуждение рецепторов, если инспектор точно установил, что скорость автомобиля при наезде на пешехода была равна 114 км/час?
По-видимому, он рассуждает на основе обратно пропорциональной близости скорости к границам указанного интервала: "Достоверность того, что скорость автомобиля составляет 100 км/час, я найду как (120 – 114):(120 – 100), а достоверность того, что скорость автомобиля составляет 120 км/час, я найду как (114 – 100):(120 – 100) . Следует обратить внимание на то, что сумма найденных достоверностей равна единице.
Таким образом, указан самый простой и практичный способ возбуждения всего двух рецепторов, "охватывающих" испытываемое значение фактора. Конечно, если очень хочется, можно пользоваться нормальным законом распределения вероятностей.
И не ищите методов точной оценки порогов, весов связей, возбуждения рецепторов и пр. Оценки эти определяются интуицией, питающейся опытом. Поэтому в задании исходных данных для логической нейронной сети всегда присутствует фактор волюнтаризма, неопределённости, случайности и даже предвзятости личного мнения (начальника). Что ж, не зря же человек – общественное животное.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.