Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Байесовы технологии. Их реализация в программной среде Hugin и применение в операционном риск-менеджменте. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
переменная a и переменные t, c, s, b, d d-связаны при данном t or c, так
как между ними существует путь, содержащий конвергентную связь с конкре­тизированной переменной t or c (например, путь att or ccsb).
3.4.2. Таблицы переменных
Каждому случайному узлу и узлу полезности в БС и ДВ в Hugin назначает­ся таблица, задающая функцию, связанную с узлом. Кроме того, каждому узлу решения назначается таблица, определяющая возможные альтернативы реше­ния. При работе с таблицами узлов используются опции меню «Редактирова- ние» (Edit), «Функции» (Functions) и «Вид» (View) (рис. 3.25).
Меню редактирования обеспечивает следующие функциональные возмож­ности (рис. 3.25):
копирование значений ячеек таблицы (Copy); вставка значений ячеек таблицы (Paste); переименование узла таблицы (Rename/relabel); нормализация распределения вероятностей (то есть, изменение вероят-
ностей для каждой конфигурации родителей узла так, чтобы их сумма равня­лась 1) (Normalize);
установление значений ячеек по умолчанию (1 для ТУВ и 0 для таблиц
полезности) (Reset);
рандомизация значений всех ячеек ТУВ (придание случайного характе-
Следует заметить, что операции копирования и вставки также доступны и
через приложения (например, MS Excel, MS Word и т.д.).
Рис. 3.25
Меню «Функции» обеспечивает следующие функциональные возможности (рис. 3.26):
создание «таблиц опыта» и «затухания» (experience and fading tables) че-
рез подменю «Опыт» и «Затухание» (Experience and Fading). Таблицы опыта и затухания доступны только для дискретных случайных узлов;
определение выражений (Expressions);
41
установление типа узла (Set type); экспорт значений ячеек таблицы (Export table).
Рис. 3.26
Дискретные случайные узлы и узлы решения в Hugin могут иметь различ­ные типы:
«ярлыковый» (Labelled): каждое состояние9 имеет ярлык (задается по
умолчанию);
булев (Boolean): имеет два состояния: ложь и истина; числовой (Numbered): каждое состояние имеет числовое значение; интервальный (Interval): каждое состояние представляет интервал на ре-
альной оси.
Значения вероятностей дискретных случайных узлов в ТУВ и полезности
узлов полезности в таблицах полезности могут быть определены вручную или с помощью генератора выражений Hugin.
Выражения строятся, используя дискретные распределения (биномиальное, геометрическое, обратное биномиальное, Пуассона), непрерывные распределе­ния (нормальное, бета, гамма, экспоненциальное, равномерное, Вейбулла), арифметические операторы (сложения, вычитания и др.), стандартные матема­тические функции (например, логарифмические, показательные, тригонометри­ческие, гиперболические функции), логические операторы (например, «и», «или», «если – то, иначе»), и отношения (например, «меньше чем», «равно») (рис. 3.27).
Количество доступных функций, используемых для создания выражений,
определяется типом узла.
Рассмотрим пример, иллюстрирующий преимущества использования гене­ратора выражений при задании значений вероятностей состояний случайных узлов.
Предположим, что имеется распределения вероятностей числа мужчин (NM) и женщин (NF) по интервалам [0-100), [100-500), [500-1000). Необходимо определить общее распределение (и мужчин, и женщин: NI). Эту задачу можно решить вручную, но более эффективный способ (с точки зрения трудоемкости)
9
Задание количества состояний узла осуществляется в окне «Свойства узла» во вкладке «Состояния»
(States) (рис. 3.3).
42
определения распределений условных вероятностей – с помощью генератора выражений. Для этого необходимо:
задать узлам NF, NM интервальный тип с состояниями [0-100), [100-500)
и [500-1000), а узлу NI интервальный тип с состояниями [0-200), [200-1000) и [1000-2000) (см. ссылку 8);
выбрать «Функции»/«Выражения»/«Построить выражение» (Func-
tions/Expressions/Build Expression), что вызовет появление диалогового окна
«Строитель выражений: Выбор функции» (Expression Builder: Select Function), в котором отражаются все доступные функции. Ясно, что в рассматриваемом примере разумно представить NI как выражение NF+NM (NI = NF+NM), по­этому в диалоговом окне «Строитель выражений» необходимо выбрать ариф­метический оператор «+» (рис. 3.27);
установить аргументы выражения в диалоговом окне «Строитель вы-
ражений: Установление аргументов» (Expression Builder: Specify Arguments). Каждый аргумент, в свою очередь, может также быть задан как некоторое вы­ражение (для этого необходимо использовать кнопку «Выбрать» (Select)). Для того чтобы использовать родительский узел в качестве аргумента выражения узла-потомка, необходимо добавить его из списка «Родители» (Parents) в поле аргумента нажатием кнопке «Вставка» (Insert) (рис. 3.28).
Рис. 3.27
43
Рис. 3.28
В результате выполнения описанных выше действий генерируется сле­дующая ТУВ узла NI (рис. 3.29).
Рис. 3.29
Таблицы опыта и/или затухания используются для осуществления т.н. про­цедуры адаптации [21, 27]. Под адаптацией в Hugin подразумевается процесс
уточнения вероятностей узлов БС на основании наблюденных инцидентов. При этом адаптация может базироваться как на реальных случаях, так и на эксперт­ных суждениях.
Таблица опыта (затухания) добавляется в таблицу узла следующим обра­зом: «Функции»/«Опыт и затухание»/«Создать таблицу опыта (затухания)»
(Functions/ Experience and Fading/Create experience (fading) table).
Для объяснения механизма адаптации вернемся к рассмотренному в под­разделе 2.2 примеру (рис. 3.30).
44
Рис. 3.30
На рис. 3.31 показан результат добавления таблицы опыта к переменной Курильщик (Smoker?).
Рис. 3.31
Значение в поле таблицы опыта отражает количество наблюдений данной переменной по каждой конфигурации состояний родительских переменных. Для осуществления процедуры адаптации количество наблюдений обязательно должно быть положительным действительным числом. Большее количество на­блюдений свидетельствует о более высоком доверии к установленному распре­делению вероятностей, и наоборот.
Установим начальное количество наблюдений переменной Курильщик равное 10. Это означает, что состояние переменной Курильщик наблюдалось десять раз, пять из которых переменная принимала состояние Да, пять – Нет (согласно распределению вероятностей на рис. 3.31).
Предположим, что за некоторый период собраны еще пять наблюдений со­стояния переменной Курильщик: все пять раз переменная принимала состояние Да. Разумно полагать, что полученная информация ценна с точки зрения повы­шения адекватности модели.
Для пересчета вероятностей состояний узлов рассматриваемой сети с уче­том полученного опыта, необходимо перейти в режим управления сетью, осу­ществив ее компиляцию, и в списке узлов ввести свидетельство о том, что пе­ременная Курильщик находится в состоянии Да (рис. 3.32). Процедура адапта-
45
ции осуществляется путем нажатия на панели инструментов кнопки «Адапта­ция» (рис. 3.33) столько раз, сколько было получено новых наблюдений о со­стоянии переменной (в рассматриваемой ситуации – пять раз).
Рис. 3.32.
Рис. 3.33
Результатом осуществления процедуры адаптации является пересчет веро­ятностей и количества наблюдений состояний переменной10. ТУВ переменной Курильщик после адаптации показана на рис. 3.34.
Рис. 3.34
Аналитическое решение
Представленный ниже механизм адаптации вероятностных параметров БС сильно упрощен и может применяться лишь для переменных, не имеющих ро­дителей. Алгоритм адаптации в его полной конфигурации представлен в под­разделе 2.3.
10
Пересчет осуществляется для переменной(ых), о состоянии которой(ых) имеются новые наблюдения, а
также для d-зависимых с ней(ми) переменных.
46
N(Smoker=yes) =5 N(Smoker=no)=5
где N
󰇛
A = i󰇜 – количество наблюдений после адаптации,
󰇛
N
A = i󰇜= N󰇛A = i󰇜+ N
󰇛
A = i󰇜, (3.2)
ad
соответствующих состоянию i переменной А;
N󰇛A = i󰇜 – количество наблюдений до адаптации,
соответствующих состоянию i переменной А;
N
󰇛
A = i󰇜– количество полученных наблюдений,
ad
соответствующих состоянию i переменной А.
N*(Smoker=yes)=5+5=10 N*(Smoker=no)=5+0=5
󰇛
 = 
󰇜
=
󰇛
N
Smoker = yes󰇜+ N
N(Smoker = yes)
󰇛
Smoker = no
󰇜
󰇛
P
Smoker = yes󰇜=
10
= 0.666667
10 + 5
󰇛
P
Smoker = no
󰇜
= 1 P
󰇛
Smoker = yes󰇜
󰇛
P
Smoker = no
󰇜
= 1 0.666667 = 0.333333.
Разумно полагать, что в некоторых ситуациях ранее наблюденные события обладают меньшей значимостью, нежели недавние. В Hugin это обстоятельство может быть учтено с помощью т.н. таблиц затухания, которые позволяют зада­вать разные веса (значимость) событиям, наблюденным в разное время. Естест­венно, что таблицы затухания бессмысленны без таблиц опыта. Значение, уста­навливаемое в поле таблицы затухания, называется коэффициентом затухания
(
) (рис. 3.35). Коэффициент затухания показывает степень, с которой про-

исходит «затухание» прошлых наблюдений:
чем выше коэффициент затухания, тем слабее «затухание» прошлых на- блюдений;
если
= 0  

> 1, то недавно наблюденные события не изме-

нят значения вероятностей переменных;
если
= 1, то более поздние и недавние наблюдения получают оди-

наковый вес.
Вернемся к рассмотрению ТУВ переменной Курильщик. Пусть до адапта­ции она имеет следующий вид (рис. 3.35):
47
Рис. 3.35
ТУВ переменной Курильщик после осуществления адаптации с учетом но-
вого свидетельства (по данным предыдущего примера: пять наблюдений, соот­ветствующих состоянию Да переменной Курильщик, и
= 0.5) показана на

рис. 3.36.
Рис. 3.36
Аналитическое решение
N(Smoker=yes) =5 N(Smoker=no)=5
󰇛
N
󰇛
N
A = i󰇜= N󰇛A = i󰇜× k
ad
fad
= N󰇛A = i󰇜× k
A=i
N fad
ad
󰇜
+ k
󰇛
A=i
N fad
󰇜
ad
+
󰇛
k
A=i
N
ad
fad
󰇜
1
+ k
󰇛
󰇜
A =i
1
k
1
fad
N
ad
fad
, k
󰇛
A=i
fad
󰇜
2
+ + k
󰇛
0,1󰇜, (3.3)
0 fad
=
󰇛
N
󰇛
A = j󰇜= N󰇛A = j󰇜× k
N fad
ad
A=i
󰇜
, k
fad
󰇛
0,1󰇜, (3.4)
где i, j – полная группа событий (все возможные состояния переменной А).
󰇛
N
Smoker = yes󰇜= 5 × 0.55+ 0.54+ 0.53+ 0.52+ 0.51+ 0.50=
5
0.5
1
= 5 × 0.55+
= 2.0937
0,5 1
󰇛
N
Smoker = no󰇜= 5 × 0.55= 0.15625
󰇛
N
Smoker = yes󰇜+ N
󰇛
Smoker = no󰇜= 2.25
󰇛
P
Smoker = yes󰇜=
2.09375
= 0.930556
2.25
󰇛
P
Smoker = no
󰇜
= 1 0.930556 = 0.069444.
48
3.4.3. Синтез структуры и обучение байесовых сетей на основе эмпирических данных
Программная среда Hugin дает широкие возможности по генерации струк-
туры сети и распределений вероятностей на основе полученных наблюдений.
Синтез структуры БС в Hugin может быть реализован с помощью алгорит-
ма PC или NPC [21, 36]. Для вызова диалогового окна «Обучение структуры» (Structural Learning) (рис. 3.37) необходимо на панели инструментов нажать кнопку, соответствующую данной процедуре (рис. 3.38). Для генерации струк­туры сети эмпирические данные могут быть загружены в Hugin как из тексто­вого файла, так и из базы данных (Oracle, ODBC) с помощью кнопки «Выбрать файл» (Select File) окна «Обучение структуры». В поле «Уровень значимости» (Level of Significance) устанавливается уровень значимости, используемый при проверке гипотезы на условную независимость переменных в алгоритмах PC и NPC. Он может принимать любое значение в открытом интервале (0,1), чем выше уровень значимости, тем больше связей между переменными будет гене­рировано. По умолчанию уровень значимости равен 0,05.
Рис. 3.37
Рис. 3.38
Алгоритм PC
Алгоритм PC принадлежит к классу алгоритмов обучения, основанных на принуждении (constraint-based learning algorithms). Основная идея алгоритма PC заключается в определении отношений условной зависимости/независимости путем статистического тестирования совокупности данных.
Для синтеза структуры сети алгоритм PC выполняет следующие шаги:
для всех пар переменных выполняется статистическое тестирование на
условную независимость;
49
между каждой парой переменных, для которых не была установлена ус-
ловная независимость, добавляется ненаправленная связь. Полученный в ре­зультате ненаправленный граф называется скелетом (skeleton) структуры сети;
идентифицируются коллайдеры (colliders)11, для того чтобы исключить
возможность появления в сети направленных циклов. Например, если установ­лено, что переменные A и B, B и C зависимы, а A и C условно независимы при данном S, не включающем B, то это может быть представлено как A --> B <-- C;
устанавливается направление связей, которое может быть получено из
выявленных отношений условной независимости и идентифицированных кол­лайдеров;
оставшиеся ненаправленные связи получают направление случайным
образом, но так, чтобы в сети не образовывалось направленных циклов.
Таким образом, алгоритм PC не генерирует связи между переменными, для которых была установлена условная независимость, а также направление неко­торых связей устанавливается случайно. Поэтому синтезированная алгоритмом PC из наблюденных данных структура сети должна быть проверена пользова­телем. Однако, как правило, алгоритм РС генерирует истинную структуру от­ношений переменных (при условии бесконечного набора данных).
Вернемся к примеру, рассмотренному на рис. 2.5. Предположим, что име­ется несколько наблюдений состояния переменных t or c, t, c, s, a, d, b, x, фраг­мент которых показан на рис. 3.39.
Рис. 3.39
Используя эти данные, можно автоматически синтезировать структуру их отношений. Применение алгоритма PC приведет к генерации структуры сети, отраженной на рис. 3.40 (в зависимости от набора данных).
11
Коллайдер – пара связей, направленных таким образом, что они встречаются в одном узле.
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]