Байєсівські мережі: чому трава мокра і що з цього випливає для дощувача
Спільний розподіл і його факторизація, байєсівська мережа й таблиці умовних ймовірностей, виведення перебором, пояснення іншою причиною, d-розділення і наближене виведення за допомогою вибірок — на мережі хмарно, дощувач, дощ, мокра трава.
Серія Основи ШІ Частина 40 з 52
- Мапа штучного інтелекту: що є що і як усе це пов’язано
- Коротка історія штучного інтелекту: від Тюрінга до мовних моделей
- Дані, модель, тренування, інференс: основні поняття на одному прикладі
- Як читати математичний запис: символи, індекси, суми та квантори
- Множини й відношення: конструктор, з якого складаються означення в ШІ
- Функції й відображення: чому кожна модель у ШІ — це функція
- Логіка й доведення: правила, за якими міркують у ШІ
- Графи й дерева: структура, на якій тримаються пошук і нейронні мережі
- Лінійна алгебра для машинного навчання: вектори, матриці й чому ШІ передусім множить
- Похідні, градієнт і правило ланцюжка: як модель дізнається, у якому напрямку вчитися
- Градієнтний спуск: як навчається модель
- Що таке ймовірність: від кидка кубика до аксіом Колмогорова
- Умовна ймовірність і теорема Баєса: як змінити оцінку, коли дізнаєтеся щось нове
- Випадкова величина і функція розподілу: одна функція, яка каже про розподіл усе
- Функція щільності та функція маси ймовірності: чому неперервна величина має в точці ймовірність нуль
- Математичне сподівання, дисперсія і коваріація: де лежить розподіл, наскільки він широкий і що з чим пов’язано
- Огляд розподілів ймовірностей: Бернуллі, біноміальний, Пуассона, рівномірний, нормальний і експоненційний
- Закон великих чисел і центральна гранична теорема: чому середні поводяться так передбачувано
- Статистика й оцінювання параметрів: максимальна правдоподібність, MAP і довірчі інтервали
- Теорія інформації: ентропія, перехресна ентропія і KL-дивергенція — звідки беруться функції втрат
- Пошук у просторі станів: BFS, DFS, UCS і A* з анімаціями
- Ігри та суперник: мінімакс, альфа-бета відсікання і Monte Carlo tree search
- Задоволення обмежень: бектрекінг, поширення обмежень і AC-3 на судоку та мапі чеських країв
- Логіка й системи, засновані на знаннях: пряме і зворотне виведення, резолюція та експертні системи
- Планування: STRIPS, світ кубиків, евристики з релаксації та планування в AI-агентах
- Локальний пошук та імітація відпалу: комівояжер через обласні центри Чехії
- Генетичні алгоритми: популяція, схрещування, мутація і добір на рюкзаку для походу
- Еволюційні стратегії і генетичне програмування: від правила однієї п’ятої до закону Кеплера
- Оптимізація мурашиною колонією: як феромоновий слід знаходить короткий шлях
- Оптимізація роєм частинок: інерція, власний досвід і досвід рою
- Нейроеволюція: еволюція ваг і форми нейронних мереж та алгоритм NEAT
- Нечіткі множини й функції належності: як записати «трохи тепло»
- Нечітка логіка та ймовірність: чому «трохи тепло» не означає «імовірно тепло»
- Нечітка логіка: t-норми, імплікації та правила ЯКЩО–ТО
- Нечітке керування: Мамдані та Суґено від вентилятора до маятника на візку
- Нечітка кластеризація: алгоритм fuzzy c-means і точки між кластерами
- Нейро-нечіткі системи (ANFIS): нечіткі правила, які навчаються з даних
- Марковські ланцюги: матриця переходів, стаціонарний розподіл і PageRank
- Приховані марковські моделі: алгоритм Вітербі й нечесне казино
- Байєсівські мережі: чому трава мокра і що з цього випливає для дощувача
- Фільтр Калмана: як за неточними вимірюваннями оцінити, де авто і як швидко воно їде
- Види машинного навчання: з учителем, без учителя, з частковим залученням учителя та інші
- Промпти, контекст і RAG: як дати моделі правильну інформацію
- Варіаційні автокодувальники (VAE): нові зображення з неперервного латентного простору
- Генеративні змагальні мережі (GAN): фальшувальник проти детектива
- Дифузійні моделі: як із чистого шуму постає зображення
- Марковські процеси ухвалення рішень: стани, дії, винагороди й рівняння Беллмана
- Q-навчання і DQN: як навчитися цінності дій — від таблиці до нейронної мережі
- Policy gradient і PPO: навчання безпосередньо політики
- Як працює ШІ-агент: мовна модель у циклі з інструментами
- Програмування з AI-агентами: завдання, тести й перевірка
- Оцінювання і безпека систем ШІ: як вимірювати і як стежити
Повна програма серії Готово: 52 з 83 тем
- Як байєсівська мережа скорочує величезну таблицю ймовірностей до кількох малих таблиць.
- Як у мережі виводять від наслідків до причин і що таке пояснення іншою причиною.
- Як прочитати з графа, які величини незалежні, і як ймовірності оцінюють за допомогою вибірок.
Що варто знати заздалегідь: Умовна ймовірність і теорема Баєса: як змінити оцінку, коли дізнаєтеся щось нове, Графи й дерева: структура, на якій тримаються пошук і нейронні мережі
Уранці ви виходите надвір, а трава мокра. Чи йшов дощ, чи працював дощувач? А коли потім від сусіда дізнаєтеся, що вночі йшов дощ, — чи змінить це те, що ви думаєте про дощувач? Людина міркує так, не замислюючись. Машина теж це вміє, якщо знає, що з чим пов’язане. Байєсівська мережа — це малюнок цих зв’язків, з якого можна обчислити відповідь на будь-яке запитання. Джуда Перл отримав за неї та за подальшу теорію причинності премію Тюрінга 2011 року.
Ця частина продовжує частини Умовна ймовірність і теорема Баєса та Графи й дерева.
1. Проблема великої таблиці
Повна інформація про кілька випадкових величин — це їхній спільний розподіл: ймовірність кожної комбінації значень. Для чотирьох величин «так/ні» комбінацій 16, тобто 15 незалежних чисел. Для 37 величин (стільки має відома медична мережа ALARM для моніторингу пацієнтів під анестезією) це було б понад 137 мільярдів чисел, навіть якби всі вони були лише «так/ні». Таку таблицю ніхто не складе, не збереже й не оцінить з даних. Рятує нас те, що більшість величин пов’язані між собою лише опосередковано.
Означення — спільний розподіл і кількість його параметрів
Спільний розподіл дискретних величин X1, …, Xn — це функція P(x1, …, xn) = P(X1 = x1, …, Xn = xn), яка невід’ємна і по всіх комбінаціях значень дає в сумі 1. Для n величин «так/ні» вона має 2n значень; останнє обчислимо з решти (сума дорівнює 1), тож незалежних параметрів 2n − 1.
Обчислення. 24 − 1 = 15; 237 − 1 = 137 438 953 471.
Теорема — ланцюгове правило
Для будь-яких величин і кожної комбінації значень з додатною ймовірністю виконується
P(x1, …, xn) = P(x1) · P(x2 | x1) · P(x3 | x1, x2) ⋯ P(xn | x1, …, xn−1) = ∏i=1n P(xi | x1, …, xi−1).
Доведення: з означення умовної ймовірності P(x1, …, xn) = P(xn | x1, …, xn−1) · P(x1, …, xn−1). Те саме застосуємо до другого множника і так далі, доки не залишиться P(x1). ∎
Ланцюгове правило нічого не заощаджує: останній множник і далі залежить від усіх попередніх величин, тож це лише інший запис тієї самої величезної таблиці. Економія прийде, коли деякі умови ми відкинемо.
2. Байєсівська мережа
Означення — байєсівська мережа
Байєсівська мережа над величинами X1, …, Xn — це орієнтований ациклічний граф, вершинами якого є величини, і до кожної вершини таблиця умовних ймовірностей P(Xi | батьки(Xi)). Мережа задає спільний розподіл
P(x1, …, xn) = ∏i P(xi | батьки(Xi)).
Стрілки ведуть від причин до наслідків. Для кожної величини досить знати, як вона залежить від своїх безпосередніх причин, — і нічого більше. Ймовірність усієї ситуації — це добуток цих місцевих чисел. Замість однієї величезної таблиці маємо кілька малих.
Чому мережа може записати лише P(xi | батьки), а не всю передісторію, як ланцюгове правило? Тому що вона припускає про граф умовні незалежності.
Означення — умовна незалежність
Величини A і C умовно незалежні за умови E, пишемо A ⊥ C | E, якщо для всіх значень a, c, e з P(c, e) > 0 виконується
P(a | c, e) = P(a | e)
- P(a | c, e)
- що ми знаємо про A, коли знаємо E і ще C
- P(a | e)
- що ми знаємо про A із самого E; рівність каже, що C уже нічого не додає — увесь зв’язок A з C іде через E
Теорема — факторизація — це ланцюгове правило плюс локальні незалежності
Упорядкуймо величини топологічно (кожен батько перед своїми дітьми). Якщо кожна величина Xi за відомих батьків умовно незалежна від усіх величин, які не є її нащадками (локальна марковська умова), то P(x1, …, xn) = ∏i P(xi | батьки(Xi)).
Доведення: у ланцюговому правилі в топологічному порядку стоїть P(xi | x1, …, xi−1). Серед X1, …, Xi−1 є всі батьки Xi і жоден його нащадок (нащадок стоїть у порядку після нього). За марковською умовою всі інші можна з умови викинути, і залишиться P(xi | батьки(Xi)). ∎
Це справджується й навпаки: кожен розподіл, заданий добутком таблиць, задовольняє локальну марковську умову. Тому байєсівську мережу можна означити будь-яким із двох способів.
Наша мережа: коли хмарно, ймовірніший дощ і менш імовірно, що хтось увімкне дощувач. І дощ, і дощувач роблять траву мокрою. Числа взято з популярного прикладу Кевіна Мерфі:
Мережа має 1 + 2 + 2 + 4 = 9 чисел замість 15. Для чотирьох величин це мала економія, для сотень — величезна: якщо кожна вершина має щонайбільше k батьків, кількість чисел зростає з n лінійно (n · 2k), а не експоненційно (2n). Ймовірність ситуації «хмарно, дощувач не працював, ішов дощ, трава мокра» дорівнює 0,5 · 0,9 · 0,8 · 0,9 = 0,324.
P(z, p, d, t) = P(z) · P(p | z) · P(d | z) · P(t | p, d)
- P(z)
- «хмарно» не має батьків, його таблиця — одне число; у прикладі 0,5
- P(p | z)
- дощувач залежить лише від хмар — тут нічим не відрізняється від ланцюгового правила; у прикладі він не працював за хмарного неба: 1 − 0,1 = 0,9
- P(d | z)
- ланцюгове правило вимагало б P(d | z, p); мережа припускає, що за відомого неба дощувач нічого не каже про дощ, тож p з умови випадає; у прикладі 0,8
- P(t | p, d)
- ланцюгове правило вимагало б P(t | z, p, d); трава «знає» про хмари лише через дощ і дощувач, тож випадає z; у прикладі (дощувач ні, дощ так) 0,9
3. Виведення: від наслідку до причини
Означення — виведення перебором
Ймовірність запиту Q за свідчень E = e дорівнює
P(Q | e) = ∑y P(Q, e, y) / ∑q, y P(q, e, y),
де підсумовують за всіма значеннями y решти (прихованих) величин, а кожен доданок — добуток із факторизації мережі.
Ми перебираємо всі можливі світи, що узгоджуються з тим, що ми знаємо (трава мокра), і дивимося, яку вагу серед них мають ті, де йшов дощ. Це теорема Баєса з частини про умовну ймовірність, тільки підсумовують за кількома величинами одночасно.
P(Q | e) = ∑y P(Q, e, y) / ∑q, y P(q, e, y)
- e
- свідчення — значення, які ми спостерегли (у нас мокра трава); в усіх світах, які підсумовуємо, вони фіксовані
- ∑y
- приховані величини (у нас «хмарно» і дощувач) ми не знаємо, і вони нас не цікавлять, тож підсумовуємо всі їхні можливості — маргіналізація; світи взаємно несумісні, тому їхні ймовірності додаються
- P(Q, e, y)
- ймовірність одного повного світу, де справджуються запит і свідчення, — добуток чисел із таблиць згідно з факторизацією
- ∑q, y P(q, e, y)
- = P(e), вага всіх світів, що узгоджуються зі свідченнями; ділення — це означення умовної ймовірності P(Q | e) = P(Q, e) / P(e), і воно гарантує, що P(Q | e) + P(¬Q | e) = 1
Приклад — P(дощ | мокра трава) перебором
Свідчення — T = так, запит — D, приховані — Z і P. Світів із мокрою травою 23 = 8; кожен — це добуток P(z) · P(p | z) · P(d | z) · P(t | p, d):
| дощ | хмарно | дощувач | добуток | P(світ) |
|---|---|---|---|---|
| так | так | так | 0,5 · 0,1 · 0,8 · 0,99 | 0,0396 |
| так | ні | так | 0,5 · 0,5 · 0,2 · 0,99 | 0,0495 |
| так | так | ні | 0,5 · 0,9 · 0,8 · 0,9 | 0,3240 |
| так | ні | ні | 0,5 · 0,5 · 0,2 · 0,9 | 0,0450 |
| ні | так | так | 0,5 · 0,1 · 0,2 · 0,9 | 0,0090 |
| ні | ні | так | 0,5 · 0,5 · 0,8 · 0,9 | 0,1800 |
| ні | так | ні | 0,5 · 0,9 · 0,2 · 0 | 0,0000 |
| ні | ні | ні | 0,5 · 0,5 · 0,8 · 0 | 0,0000 |
Перші чотири рядки (ішов дощ) дають P(D, T) = 0,4581, усі вісім — P(T) = 0,6471. Останні два рядки нульові: без дощу й без дощувача трава не мокра. Отже,
P(D | T) = 0,4581 / 0,6471 = 0,708.
def dotaz(Q, dukazy, sit):
citatel = jmenovatel = 0.0
for svet in vsechna_prirazeni(sit): # 2^n повних світів
if any(svet[k] != v for k, v in dukazy.items()):
continue # не узгоджується зі свідченнями
p = 1.0
for uzel in sit: # факторизація мережі
p *= P(uzel, svet[uzel], svet[rodice(uzel)])
jmenovatel += p # → P(e)
if svet[Q]:
citatel += p # → P(Q, e)
return citatel / jmenovatel
Заздалегідь (без жодного спостереження) ймовірність дощу 0,5, а дощувача 0,3. Мокра трава підвищує обидві: P(дощ | мокра трава) = 0,708 і P(дощувач | мокра трава) = 0,430. Дощ — ймовірніше пояснення, бо дощ іде частіше, ніж працює дощувач. Мокра трава підвищує й імовірність того, що було хмарно, — з 0,5 до 0,576, — хоча трава й хмари безпосередньо між собою не пов’язані. Інформація тече мережею проти стрілок.
4. Пояснення іншою причиною
Тепер ми дізнаємося, що вночі справді йшов дощ. Що станеться з дощувачем?
Ймовірність дощувача падає з 0,430 до 0,194. Дощ уже пояснив мокру траву, тож для дощувача не лишається причини. І навпаки: коли ми знаємо, що працював дощувач, ймовірність дощу знижується з 0,708 до 0,320. Це явище називають поясненням іншою причиною (explaining away). Дві причини, які заздалегідь були пов’язані лише слабко, починають одна одну «витісняти», щойно ми спостерігаємо їхній спільний наслідок. А якби ми знали, що дощу не було, дощувач мусив би працювати: P(дощувач | мокра трава, без дощу) = 1, бо в нашій мережі трава сама собою мокрою бути не може.
Приклад — пояснення іншою причиною в числах
З таблиці в попередньому прикладі: світи, де йшов дощ, працював дощувач і трава мокра, мають разом P(P, D, T) = 0,0396 + 0,0495 = 0,0891. Тому
P(P | T, D) = P(P, D, T) / P(D, T) = 0,0891 / 0,4581 = 0,194,
P(D | T, P) = P(P, D, T) / P(P, T) = 0,0891 / 0,2781 = 0,320.
Формально пояснення іншою причиною — це нерівність P(P | T, D) < P(P | T): підтвердження однієї причини знижує ймовірність другої (0,194 < 0,430).
5. Що можна прочитати з мережі: d-розділення
Граф каже не лише, як обчислювати, — він каже й те, які величини незалежні одна від одної, і без жодного числа. Усі можливості складаються з трьох основних форм:
- Ланцюг A → B → C: A і C пов’язані, але коли ми знаємо B, — уже ні. (Хмарно → дощ → мокра трава: хто знає, чи йшов дощ, тому хмари про траву нічого не скажуть.)
- Розвилка A ← B → C: спільна причина робить A і C залежними; коли ми її знаємо, залежність зникає. (Дощувач і дощ заздалегідь пов’язані через хмари: P(дощувач | дощ) = 0,18, але P(дощувач | без дощу) = 0,42. Коли ми знаємо, чи хмарно, вони незалежні.)
- Зіткнення A → B ← C: причини незалежні, доки ми не спостерігаємо спільний наслідок, — тоді вони стають залежними. Це і є пояснення іншою причиною.
Означення — d-розділення
Шлях у графі (незалежно від напрямку стрілок) заблокований множиною E, якщо на ньому лежить ланцюг або розвилка з серединою в E чи зіткнення, середина якого й жоден її нащадок не належать до E. Величини A і C d-розділені множиною E, якщо E блокує всі шляхи між ними. Тоді в кожному розподілі, який задає мережа, вони умовно незалежні за умови E.
Інформація тече графом по шляхах. Відома величина посередині ланцюга чи розвилки зупиняє потік — вона вже «пояснена». У зіткненні навпаки: доки наслідок невідомий, потік там стоїть; щойно ми його спостерігаємо, він відкривається. З малюнка так можна прочитати, що потрібно вимірювати, а що зайве.
У нашій мережі «хмарно» і «мокра трава» d-розділені, коли ми знаємо і дощувач, і дощ, — обчислення це підтверджує: ймовірність хмарного неба тоді від трави зовсім не залежить.
Приклад — три форми, перевірені обчисленням
- Розвилка дощувач ← хмарно → дощ. Без знання неба: P(P | D) = 0,18 ≠ P(P) = 0,3, залежні. За відомого неба: P(P | Z, D) = 0,1 = P(P | Z), тобто P ⊥ D | Z.
- Зіткнення дощувач → мокра трава ← дощ. За відомого неба P і D незалежні (P(P | Z, D) = P(P | Z, ¬D) = 0,1), але щойно ми спостерігаємо траву, вже ні: P(P | Z, D, T) = 0,109, тоді як P(P | Z, ¬D, T) = 1.
- D-розділення хмарного неба й мокрої трави множиною {P, D}: обидва шляхи Z → P → T і Z → D → T — ланцюги з відомою серединою, тож вони заблоковані. І справді: P(Z | P, D) = 0,444 і P(Z | P, D, T) = 0,444; P(Z | P, ¬D) = 0,048 і P(Z | P, ¬D, T) = 0,048.
6. Наближене виведення за допомогою вибірок
Виведення перебором проходить усі комбінації прихованих величин — у загальній мережі їх експоненційно багато. Точне виведення в байєсівських мережах NP-складне. Для великих мереж ймовірності тому оцінюють моделюванням.
Алгоритми — вибірка з відхиленням і зважування за правдоподібністю
Вибірка з відхиленням: генеруй світи з мережі (від причин до наслідків, за таблицями), відкидай ті, що не узгоджуються зі свідченнями, і серед решти обчисли частку тих, де справджується запит.
Зважування за правдоподібністю: свідчення не розігруй, а зафіксуй; кожен згенерований світ зваж добутком ймовірностей свідчень за значень їхніх батьків у ньому. Оцінка — зважена частка.
Відхилення чесне, але марнотратне: коли свідчення рідкісне, воно відкидає майже всі зразки. Зважування за правдоподібністю нічого не відкидає — лише надає кожному зразку вагу залежно від того, наскільки добре він узгоджується з тим, що ми знаємо.
def zamitani(Q, dukazy, n, sit):
prijato = ano = 0
for _ in range(n):
svet = {}
for uzel in sit: # від причин до наслідків
svet[uzel] = nahoda() < P(uzel, True, svet[rodice(uzel)])
if any(svet[k] != v for k, v in dukazy.items()):
continue # у кошик
prijato += 1
ano += svet[Q]
return ano / prijato
def vazena(Q, dukazy, n, sit):
s = s_ano = 0.0
for _ in range(n):
svet, w = {}, 1.0
for uzel in sit:
p = P(uzel, True, svet[rodice(uzel)])
if uzel in dukazy: # свідчення не розігруємо…
svet[uzel] = dukazy[uzel]
w *= p if dukazy[uzel] else 1 - p # …але зважуємо, наскільки воно ймовірне
else:
svet[uzel] = nahoda() < p
s += w
s_ano += w * svet[Q]
return s_ano / s
P̂(Q | e) = ∑k wk [Q справджується у зразку k] / ∑k wk, wk = ∏j P(ej | батькиk)
- wk
- вага зразка (зеленим, як крива зважування за правдоподібністю на графіку) — добуток ймовірностей усіх свідчень ej за значень їхніх батьків, які випали у зразку k: свідчення ми не розігрували, а нав’язали, тож мусимо врахувати, наскільки ймовірними вони були б за інших розіграних значень, — інакше оцінка була б зміщеною
- [Q справджується у зразку k]
- 1, якщо у зразку справджується запит, інакше 0 — враховуємо лише вагу зразків, де йшов дощ
- ∑k wk
- загальна вага; діленням на неї ми робимо із суми частку, так само як ділення на P(e) при переборі. Завдяки цьому не заважає, що ваги не дають у сумі 1
Приклад — ваги за свідчення «трава мокра»
Єдине свідчення — T = так, його батьки — дощувач і дощ. Вага зразка тому просто P(T = так | p, d) з таблиці мокрої трави:
- і дощувач, і дощ: w = 0,99,
- лише одне з них: w = 0,9,
- жодне: w = 0 — такий зразок нікуди не додасть, так само як відхилення його відкинуло б.
Від неба вага не залежить: «хмарно» не є батьком трави.
Зі ста зразками відхилення дало оцінку 0,686 і використало лише 70 із них — решта 30 мали суху траву й пішли в кошик. З 10 000 зразків (з яких лишилося 6 524) оцінка дорівнює 0,703, близько до точного значення 0,708. Похибка спадає як 1/√N, як каже центральна гранична теорема: для вдесятеро точнішої оцінки потрібно в сто разів більше зразків.
σP̂ = √(p(1 − p) / Nприйн), Nприйн ≈ N · P(e)
- p(1 − p)
- дисперсія одного зразка типу «так/ні» (розподіл Бернуллі з імовірністю p); найбільша вона для p = 0,5, коли один зразок найменш передбачуваний
- Nприйн
- кількість зразків, які справді враховуються; при відхиленні лише ті, що пройшли, а їх у середньому частка P(e) — за рідкісного свідчення майже жодного. Дисперсія середнього N незалежних зразків у N разів менша
Приклад — якої похибки очікувати
Точно p = 0,708 і P(e) = P(T) = 0,6471, тож із 10 000 зразків очікуємо приблизно 6 471 прийнятих (насправді їх було 6 524).
- Nприйн = 70: σ = √(0,708 · 0,292 / 70) = 0,054; фактична похибка |0,686 − 0,708| = 0,022.
- Nприйн = 6 524: σ = 0,0056; фактична похибка 0,0050.
Обидві фактичні похибки менші за одне стандартне відхилення — це узгоджується з тим, що приблизно дві третини оцінок потрапляють у ±σ (нормальний розподіл за центральною граничною теоремою).
7. Байєсівські мережі на практиці
- Діагностика. Медичні мережі (ALARM, QMR-DT із сотнями хвороб і тисячами симптомів) і діагностика несправностей машин і мереж: зі спостережених симптомів вивести найімовірнішу причину — і запропонувати, що виміряти далі.
- Навчання з даних. Таблиці можна оцінити з даних підрахунком (методом максимальної правдоподібності з частини про статистику), навіть коли деяких значень бракує, — алгоритмом EM, родичем алгоритму Баума — Велша з попередньої частини.
- Причинність. Перл показав, що мережа, прочитана як граф причин, уміє відповідати й на запитання «що сталося б, якби ми втрутилися» — самі ввімкнули дощувач, — чого із самих кореляцій прочитати не можна. На цьому стоїть сучасне причинне виведення в епідеміології та економіці.
- Родичі. Наївний баєсів класифікатор — це байєсівська мережа з однією причиною і багатьма незалежними наслідками. Приховані марковські моделі з попередньої частини — це байєсівська мережа, розгорнута в часі.
8. Підсумок
- Байєсівська мережа — це орієнтований ациклічний граф із таблицями P(X | батьки); спільний розподіл — добуток цих таблиць. Нашій мережі потрібно 9 чисел замість 15.
- Виведення йде й проти стрілок: мокра трава підвищує ймовірність дощу до 0,708, а дощувача до 0,430.
- Пояснення іншою причиною: коли ми знаємо, що йшов дощ, ймовірність дощувача падає до 0,194.
- D-розділення читає незалежності просто з графа — ланцюг і розвилку спостереження закриває, зіткнення відкриває.
- Точне виведення загалом NP-складне; вибірки дають оцінки з похибкою, що спадає як 1/√N.
Хочете спробувати самі? Попросіть ШІ-агента побудувати байєсівську мережу для несправності вашого авто чи комп’ютера («не заводиться — акумулятор чи стартер?») і подивіться, як змінюється підозра, коли ви додаєте спостереження.
Маєте іншу думку? Напишіть на support@coden-app.com.