Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Байесовы технологии. Их реализация в программной среде Hugin и применение в операционном риск-менеджменте. Учебное пособие
.pdf
переменная a и переменные t, c, s, b, d d-связаны при данном t or c, так
как между ними существует путь, содержащий конвергентную связь с конкретизированной переменной t or c (например, путь att or ccsb).
3.4.2. Таблицы переменных
Каждому случайному узлу и узлу полезности в БС и ДВ в Hugin назначается таблица, задающая функцию, связанную с узлом. Кроме того, каждому узлу
решения назначается таблица, определяющая возможные альтернативы решения. При работе с таблицами узлов используются опции меню «Редактирова-
ние» (Edit), «Функции» (Functions) и «Вид» (View) (рис. 3.25).
Меню редактирования обеспечивает следующие функциональные возможности (рис. 3.25):
копирование значений ячеек таблицы (Copy);
вставка значений ячеек таблицы (Paste);
переименование узла таблицы (Rename/relabel);
нормализация распределения вероятностей (то есть, изменение вероят-
ностей для каждой конфигурации родителей узла так, чтобы их сумма равнялась 1) (Normalize);
установление значений ячеек по умолчанию (1 для ТУВ и 0 для таблиц
полезности) (Reset);
рандомизация значений всех ячеек ТУВ (придание случайного характе-
ра) (Randomize).
Следует заметить, что операции копирования и вставки также доступны и
через приложения (например, 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= NA = i+ N
A = i, (3.2)
ad
соответствующих состоянию i переменной А;
NA = 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= NA = i× k
ad
fad
= NA = 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= NA = 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
