Перейти до вмісту
coden

Байєсівські мережі: чому трава мокра і що з цього випливає для дощувача

Спільний розподіл і його факторизація, байєсівська мережа й таблиці умовних ймовірностей, виведення перебором, пояснення іншою причиною, d-розділення і наближене виведення за допомогою вибірок — на мережі хмарно, дощувач, дощ, мокра трава.

13 хвилин Matěj Žalmánek 2026-10-15

Серія Основи ШІ Частина 40 з 52
  1. Мапа штучного інтелекту: що є що і як усе це пов’язано
  2. Коротка історія штучного інтелекту: від Тюрінга до мовних моделей
  3. Дані, модель, тренування, інференс: основні поняття на одному прикладі
  4. Як читати математичний запис: символи, індекси, суми та квантори
  5. Множини й відношення: конструктор, з якого складаються означення в ШІ
  6. Функції й відображення: чому кожна модель у ШІ — це функція
  7. Логіка й доведення: правила, за якими міркують у ШІ
  8. Графи й дерева: структура, на якій тримаються пошук і нейронні мережі
  9. Лінійна алгебра для машинного навчання: вектори, матриці й чому ШІ передусім множить
  10. Похідні, градієнт і правило ланцюжка: як модель дізнається, у якому напрямку вчитися
  11. Градієнтний спуск: як навчається модель
  12. Що таке ймовірність: від кидка кубика до аксіом Колмогорова
  13. Умовна ймовірність і теорема Баєса: як змінити оцінку, коли дізнаєтеся щось нове
  14. Випадкова величина і функція розподілу: одна функція, яка каже про розподіл усе
  15. Функція щільності та функція маси ймовірності: чому неперервна величина має в точці ймовірність нуль
  16. Математичне сподівання, дисперсія і коваріація: де лежить розподіл, наскільки він широкий і що з чим пов’язано
  17. Огляд розподілів ймовірностей: Бернуллі, біноміальний, Пуассона, рівномірний, нормальний і експоненційний
  18. Закон великих чисел і центральна гранична теорема: чому середні поводяться так передбачувано
  19. Статистика й оцінювання параметрів: максимальна правдоподібність, MAP і довірчі інтервали
  20. Теорія інформації: ентропія, перехресна ентропія і KL-дивергенція — звідки беруться функції втрат
  21. Пошук у просторі станів: BFS, DFS, UCS і A* з анімаціями
  22. Ігри та суперник: мінімакс, альфа-бета відсікання і Monte Carlo tree search
  23. Задоволення обмежень: бектрекінг, поширення обмежень і AC-3 на судоку та мапі чеських країв
  24. Логіка й системи, засновані на знаннях: пряме і зворотне виведення, резолюція та експертні системи
  25. Планування: STRIPS, світ кубиків, евристики з релаксації та планування в AI-агентах
  26. Локальний пошук та імітація відпалу: комівояжер через обласні центри Чехії
  27. Генетичні алгоритми: популяція, схрещування, мутація і добір на рюкзаку для походу
  28. Еволюційні стратегії і генетичне програмування: від правила однієї п’ятої до закону Кеплера
  29. Оптимізація мурашиною колонією: як феромоновий слід знаходить короткий шлях
  30. Оптимізація роєм частинок: інерція, власний досвід і досвід рою
  31. Нейроеволюція: еволюція ваг і форми нейронних мереж та алгоритм NEAT
  32. Нечіткі множини й функції належності: як записати «трохи тепло»
  33. Нечітка логіка та ймовірність: чому «трохи тепло» не означає «імовірно тепло»
  34. Нечітка логіка: t-норми, імплікації та правила ЯКЩО–ТО
  35. Нечітке керування: Мамдані та Суґено від вентилятора до маятника на візку
  36. Нечітка кластеризація: алгоритм fuzzy c-means і точки між кластерами
  37. Нейро-нечіткі системи (ANFIS): нечіткі правила, які навчаються з даних
  38. Марковські ланцюги: матриця переходів, стаціонарний розподіл і PageRank
  39. Приховані марковські моделі: алгоритм Вітербі й нечесне казино
  40. Байєсівські мережі: чому трава мокра і що з цього випливає для дощувача
  41. Фільтр Калмана: як за неточними вимірюваннями оцінити, де авто і як швидко воно їде
  42. Види машинного навчання: з учителем, без учителя, з частковим залученням учителя та інші
  43. Промпти, контекст і RAG: як дати моделі правильну інформацію
  44. Варіаційні автокодувальники (VAE): нові зображення з неперервного латентного простору
  45. Генеративні змагальні мережі (GAN): фальшувальник проти детектива
  46. Дифузійні моделі: як із чистого шуму постає зображення
  47. Марковські процеси ухвалення рішень: стани, дії, винагороди й рівняння Беллмана
  48. Q-навчання і DQN: як навчитися цінності дій — від таблиці до нейронної мережі
  49. Policy gradient і PPO: навчання безпосередньо політики
  50. Як працює ШІ-агент: мовна модель у циклі з інструментами
  51. Програмування з AI-агентами: завдання, тести й перевірка
  52. Оцінювання і безпека систем ШІ: як вимірювати і як стежити

Повна програма серії Готово: 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
Рівносильно P(a, c | e) = P(a | e) · P(c | e). Для порожнього E це звичайна незалежність.
Теорема — факторизація — це ланцюгове правило плюс локальні незалежності

Упорядкуймо величини топологічно (кожен батько перед своїми дітьми). Якщо кожна величина Xi за відомих батьків умовно незалежна від усіх величин, які не є її нащадками (локальна марковська умова), то P(x1, …, xn) = ∏i P(xi | батьки(Xi)).

Доведення: у ланцюговому правилі в топологічному порядку стоїть P(xi | x1, …, xi−1). Серед X1, …, Xi−1 є всі батьки Xi і жоден його нащадок (нащадок стоїть у порядку після нього). За марковською умовою всі інші можна з умови викинути, і залишиться P(xi | батьки(Xi)). ∎

Це справджується й навпаки: кожен розподіл, заданий добутком таблиць, задовольняє локальну марковську умову. Тому байєсівську мережу можна означити будь-яким із двох способів.

Наша мережа: коли хмарно, ймовірніший дощ і менш імовірно, що хтось увімкне дощувач. І дощ, і дощувач роблять траву мокрою. Числа взято з популярного прикладу Кевіна Мерфі:

хмарно Z P(Z) 0,5 дощувач P Z P(P) − 0,5 + 0,1 дощ D Z P(D) − 0,2 + 0,8 мокра трава T P D P(T) + − 0,9 + + 0,99 − + 0,9 − − 0
Мережа «мокра трава» з таблицями умовних ймовірностей + так, − ні

Мережа має 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
Кожен викинутий член умови — це одна умовна незалежність, яку мережа припускає; саме вони скорочують 15 чисел до 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,990,0396
такнітак0,5 · 0,5 · 0,2 · 0,990,0495
тактакні0,5 · 0,9 · 0,8 · 0,90,3240
такніні0,5 · 0,5 · 0,2 · 0,90,0450
нітактак0,5 · 0,1 · 0,2 · 0,90,0090
нінітак0,5 · 0,5 · 0,8 · 0,90,1800
нітакні0,5 · 0,9 · 0,2 · 00,0000
нініні0,5 · 0,5 · 0,8 · 00,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. Пояснення іншою причиною

Тепер ми дізнаємося, що вночі справді йшов дощ. Що станеться з дощувачем?

00,51 0,30 0,43 0,19 дощувач 0,50 0,71 0,32 дощ причина мокрої трави (категорія) ймовірність P (0–1)
Дощувач і дощ: заздалегідь, за мокрої трави і за мокрої трави, коли ми знаємо про другу причину заздалегідь трава мокра і ми знаємо про другу причину

Ймовірність дощувача падає з 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
Відхилення — окремий випадок: вага дорівнює 1 для зразків, що узгоджуються зі свідченнями, і 0 для решти.
Приклад — ваги за свідчення «трава мокра»

Єдине свідчення — T = так, його батьки — дощувач і дощ. Вага зразка тому просто P(T = так | p, d) з таблиці мокрої трави:

  • і дощувач, і дощ: w = 0,99,
  • лише одне з них: w = 0,9,
  • жодне: w = 0 — такий зразок нікуди не додасть, так само як відхилення його відкинуло б.

Від неба вага не залежить: «хмарно» не є батьком трави.

0,60,70,8 101001 00010 000 зразки (кількість, лог. шкала) оцінка P(дощ | мокра) (0–1)
Оцінка P(дощ | мокра трава) залежно від кількості зразків відхилення зважування за правдоподібністю точно 0,708

Зі ста зразками відхилення дало оцінку 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 разів менша
Корінь переводить дисперсію назад в одиниці ймовірності — тому похибка спадає лише як 1/√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.

Агент на вашому комп’ютері, керований з телефона