Устранение переменных в байесовской сети - PullRequest
1 голос
/ 03 марта 2010

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

Роберт

Ответы [ 2 ]

2 голосов
/ 13 марта 2010

Байесовские сети могут использовать порядок исключения переменных из-за встроенных предположений условной независимости.

В частности, представьте, что у вас есть совместное распределение P (a, b, c, d) и вы хотите знать маргинальный P (a). Если вы ничего не знали об условной независимости, вы можете рассчитать ее, суммируя по b, c и d. Если у них есть k-арные домены, вам нужно выполнить O (k ^ 3) операций.

С другой стороны, предположим, что у вас есть байесовская сеть, где A - корень, B - дочерний элемент A, C - дочерний элемент B, а D - дочерний элемент C. Затем вы можете переписать соединение как P (a | b) P (b | c) P (c | d) P (d) и распределите ваши три суммирования как можно дальше справа от уравнения. Когда вы действительно хотите вычислить P (a), вы можете предварительно вычислить значение sum_d P (d) и сохранить эту функцию. Аналогично, вы можете предварительно вычислить значение P (c | d) * sum_d P (d) и сохранить его.

Таким образом, вы заканчиваете тем, что выполняете работу O (k ^ w * + 1), где W * - наибольшее число дочерних элементов, которое имеет любой узел в вашей байесовской сети. В этом случае мы выполняем O (k ^ 2) работу, которая также является размером самой большой таблицы условных вероятностей, которую мы должны хранить в памяти. Обратите внимание, что это лучше, чем наш исходный результат O (k ^ 3), и было бы еще лучше, если бы у нас было больше переменных.

Короче говоря, условная независимость BN позволяет более эффективно изолировать переменные. Другое объяснение этому можно найти на http://www.cs.uiuc.edu/class/sp08/cs440/notes/varElimLec.pdf.

1 голос
/ 03 марта 2010

Я думаю, это потому, что переменная, которую можно исключить, это та, которая имеет одну и только одну переменную, которая зависит от нее. В сети Байеса их будет легко найти, потому что это узлы с одним дочерним элементом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...