Ймовірності - мозок ШІ
Кафедра ШІзики
Автор
20 хвилин
Час читання
29.07.2025
Дата публікації
Лекція 5: Ймовірності – Як ШІ Справляється з Невизначеністю 🎲
Уявіть, що ви граєте в шахи з комп’ютером. Як він вирішує, який хід зробити? Він не може точно знати, що ви зробите далі, але може оцінити ймовірність кожного вашого можливого ходу. Саме ймовірності дозволяють ШІ приймати розумні рішення в умовах невизначеності – від розпізнавання мови до прогнозування погоди.
Що таке ймовірність у контексті ШІ?
Ймовірність – це числова міра того, наскільки правдоподібною є певна подія. У контексті ШІ, ймовірності дозволяють моделям:
- Виражати невпевненість: Замість категоричної відповіді “це кіт”, модель каже “з ймовірністю 92% це кіт”
- Навчатися на даних: Оновлювати свої переконання на основі нових спостережень
- Приймати оптимальні рішення: Вибирати дії, що максимізують очікувану користь
Основні поняття
-
Ймовірність події P(A): Число від 0 до 1, де:
- P(A) = 0 означає, що подія A неможлива
- P(A) = 1 означає, що подія A обов’язково відбудеться
- P(A) = 0.7 означає 70% шанс, що подія A відбудеться
-
Випадкова величина: Змінна, значення якої залежить від випадкових подій
- Дискретна: Може приймати лише окремі, відокремлені значення, які можна перелічити
- Кидання кубика: тільки 1, 2, 3, 4, 5 або 6 (не може бути 2.5 або 3.7)
- Кількість користувачів на сайті: 0, 1, 2, 3… (не може бути 2.3 користувача)
- Результат класифікації: “кіт”, “собака”, “птах” (окремі категорії)
- Неперервна: Може приймати будь-яке значення в певному діапазоні, включаючи дробові
- Температура: може бути 20°C, 20.1°C, 20.15°C, 20.157°C… (нескінченна точність)
- Час відповіді сервера: 1.234 сек, 1.2345 сек… (будь-яка точність)
- Ймовірність від моделі: 0.7, 0.73, 0.7314… (будь-яке число від 0 до 1)
- Дискретна: Може приймати лише окремі, відокремлені значення, які можна перелічити
Основні правила ймовірностей
1. Правило суми
Для взаємовиключних подій (тих, що не можуть відбутися одночасно):
P(A або B) = P(A) + P(B)
Приклад у розпізнаванні зображень: Якщо модель визначає, що на фото може бути:
- P(кіт) = 0.6
- P(собака) = 0.3
- P(кролик) = 0.1
То ймовірність того, що це домашня тварина:
P(домашня тварина) = P(кіт) + P(собака) + P(кролик) = 0.6 + 0.3 + 0.1 = 1.0
2. Правило добутку
Для незалежних подій:
P(A і B) = P(A) × P(B)
Приклад у обробці тексту: При генерації тексту, якщо:
- P(наступне слово = “штучний”) = 0.2
- P(слово після “штучний” = “інтелект”) = 0.8
То ймовірність фрази “штучний інтелект”:
P("штучний інтелект") = 0.2 × 0.8 = 0.16
3. Умовна ймовірність
Ймовірність події A за умови, що подія B вже відбулася:
P(A|B) = P(A і B) / P(B)
Приклад у медичній діагностиці ШІ:
- P(позитивний тест | хвороба) = 0.95 (чутливість тесту)
- P(хвороба) = 0.01 (1% населення хворіє)
- P(позитивний тест) = 0.05 (5% всіх тестів позитивні)
Яка ймовірність хвороби при позитивному тесті?
P(хвороба | позитивний тест) = (0.95 × 0.01) / 0.05 = 0.19
Тобто навіть при позитивному тесті, ймовірність хвороби лише 19%!
Теорема Байєса: Серце ймовірнісного ШІ
Теорема Байєса – це фундаментальний інструмент, що дозволяє ШІ оновлювати свої переконання на основі нових даних.
Формула Байєса
P(H|E) = P(E|H) × P(H) / P(E)
Де:
- P(H|E) – апостеріорна ймовірність (ймовірність гіпотези після спостереження)
- P(E|H) – правдоподібність (ймовірність спостереження за умови гіпотези)
- P(H) – апріорна ймовірність (початкова ймовірність гіпотези)
- P(E) – ймовірність спостереження
Реальний приклад: Спам-фільтр 📧
Розглянемо, як працює байєсівський спам-фільтр. Нехай ми отримали email зі словом “виграш”.
Дано:
- P(спам) = 0.4 (40% всіх листів – спам)
- P(“виграш” | спам) = 0.8 (80% спам-листів містять слово “виграш”)
- P(“виграш” | не спам) = 0.05 (5% звичайних листів містять слово “виграш”)
Знайти: P(спам | “виграш”)
Крок 1: Обчислюємо P(“виграш”)
P("виграш") = P("виграш" | спам) × P(спам) + P("виграш" | не спам) × P(не спам)
P("виграш") = 0.8 × 0.4 + 0.05 × 0.6 = 0.32 + 0.03 = 0.35
Крок 2: Застосовуємо теорему Байєса
P(спам | "виграш") = P("виграш" | спам) × P(спам) / P("виграш")
P(спам | "виграш") = 0.8 × 0.4 / 0.35 = 0.32 / 0.35 ≈ 0.914
Висновок: Лист зі словом “виграш” з ймовірністю 91.4% є спамом!
Розподіли ймовірностей у ШІ
Розподіл ймовірностей описує, як ймовірність розподілена між можливими значеннями випадкової величини.
Нормальний розподіл (Гаусів розподіл) 🔔
Найважливіший розподіл у ШІ, що описує багато природних явищ.
Параметри:
- μ (мю) – середнє значення (центр розподілу)
- σ (сигма) – стандартне відхилення (розкид даних)
Формула щільності:
f(x) = (1 / (σ√(2π))) × e^(-(x-μ)²/(2σ²))
Приклад у нейронних мережах: При ініціалізації ваг нейронної мережі часто використовують нормальний розподіл:
Ваги ~ N(0, 0.01) # Середнє = 0, стандартне відхилення = 0.01
Це забезпечує, що початкові ваги:
- Малі (близькі до 0)
- Різноманітні (не всі однакові)
- Симетрично розподілені
Категоріальний розподіл
Використовується, коли маємо кілька взаємовиключних категорій.
Приклад: Класифікація зображень Модель розпізнавання тварин видає ймовірності:
P(кіт) = 0.7
P(собака) = 0.2
P(птах) = 0.08
P(інше) = 0.02
Сума всіх ймовірностей = 1.0
Біноміальний розподіл
Описує кількість успіхів у серії незалежних експериментів.
Формула:
P(k успіхів з n спроб) = C(n,k) × p^k × (1-p)^(n-k)
Де C(n,k) – кількість комбінацій k з n.
Приклад: A/B тестування моделей Тестуємо дві версії рекомендаційної системи. Версія A має ймовірність успіху p = 0.6. З 10 користувачів, яка ймовірність, що рівно 7 будуть задоволені?
P(7 з 10) = C(10,7) × 0.6^7 × 0.4^3
= 120 × 0.0279936 × 0.064
≈ 0.215
Softmax: Від чисел до ймовірностей
Softmax – це функція, що перетворює вектор довільних чисел у вектор ймовірностей.
Формула Softmax
Для вектора z = [z₁, z₂, …, zₙ]:
softmax(zᵢ) = e^(zᵢ) / Σⱼ e^(zⱼ)
Приклад: Розпізнавання емоцій 😊😢😡
Нейронна мережа аналізує текст і видає “сирі” оцінки для кожної емоції:
Сирі оцінки = [2.0, 1.0, 0.1] # [радість, сум, гнів]
Застосуємо softmax:
-
Обчислюємо експоненти:
e^2.0 ≈ 7.39 e^1.0 ≈ 2.72 e^0.1 ≈ 1.11
-
Знаходимо суму:
Сума = 7.39 + 2.72 + 1.11 = 11.22
-
Ділимо кожну експоненту на суму:
P(радість) = 7.39 / 11.22 ≈ 0.659 P(сум) = 2.72 / 11.22 ≈ 0.242 P(гнів) = 1.11 / 11.22 ≈ 0.099
Результат: Текст виражає радість з ймовірністю 65.9%!
Ентропія: Міра невизначеності
Ентропія вимірює, наскільки непередбачуваним є розподіл ймовірностей.
Формула ентропії
H(X) = -Σᵢ P(xᵢ) × log₂(P(xᵢ))
Інтуїція через приклади
Приклад 1: Монета
-
Чесна монета: P(герб) = 0.5, P(цифра) = 0.5
H = -0.5×log₂(0.5) - 0.5×log₂(0.5) = 1 біт
-
Нечесна монета (з дефектом або спеціально виготовлена): P(герб) = 0.9, P(цифра) = 0.1
H = -0.9×log₂(0.9) - 0.1×log₂(0.1) ≈ 0.47 біт
Висновок: Чесна монета має максимальну ентропію (найбільшу невизначеність).
Приклад 2: Дерева рішень у ШІ
При побудові дерева рішень, ШІ вибирає ознаки, що максимально зменшують ентропію. Наприклад, класифікуємо фрукти:
Початкова ентропія (50% яблук, 50% апельсинів):
H = -0.5×log₂(0.5) - 0.5×log₂(0.5) = 1 біт
Варіант 1: Поділ за кольором
- Червоні: 90% яблук, 10% апельсинів → H ≈ 0.47 біт
- Оранжеві: 5% яблук, 95% апельсинів → H ≈ 0.29 біт
Середнє зниження ентропії: (0.5 × 0.47) + (0.5 × 0.29) = 0.38 біт
Варіант 2: Поділ за формою
- Круглі: 60% яблук, 40% апельсинів → H ≈ 0.97 біт
- Некруглі: 40% яблук, 60% апельсинів → H ≈ 0.97 біт
Середнє зниження ентропії: (0.5 × 0.97) + (0.5 × 0.97) = 0.97 біт
Висновок: Колір зменшує ентропію до 0.38 біт, а форма лише до 0.97 біт. Тому ШІ обере колір як першу ознаку для поділу – це дає більше інформації!
Випадковість у навчанні ШІ
Стохастичний градієнтний спуск (SGD): Як випадковість допомагає навчанню
Що це таке? SGD – це метод оптимізації, який ШІ використовує для навчання. Замість того, щоб аналізувати всі дані одразу (що може бути дуже повільно), він випадково вибирає невеликі порції даних і навчається на них.
Аналогія з навчанням людини: Уявіть, що ви вчитеся розпізнавати породи собак за 10,000 фотографіями:
- Звичайний підхід: Переглянути всі 10,000 фото, зробити висновки, потім знову всі 10,000…
- SGD підхід: Випадково взяти 32 фото, вчитися на них, взяти інші 32, і так далі
Приклад роботи SGD:
# Замість цього (повний градієнтний спуск):
for епоха in range(100):
помилка = обчислити_на_всіх_10000_зображеннях() # Дуже повільно!
оновити_модель(помилка)
# SGD робить так:
for епоха in range(100):
перемішати(дані) # Випадковість №1
for міні_батч in розбити_на_групи_по_32(дані):
помилка = обчислити_на_32_зображеннях(міні_батч) # Набагато швидше!
оновити_модель(помилка)
Чому випадковість тут корисна?
-
Швидкість навчання:
- Оновлення після кожних 32 зображень замість 10,000
- Модель починає покращуватися майже одразу
-
Уникнення “застрягання”:
- Уявіть, що ви спускаєтеся з гори в тумані
- Звичайний спуск: можете застрягти в ямі (локальний мінімум)
- SGD: випадкові “поштовхи” допомагають вибратися з ями
-
Кращі узагальнення:
- Випадковий шум не дає моделі “завчити” конкретні приклади
- Модель стає більш гнучкою та універсальною
Dropout: Навчання через забування
Dropout – це техніка, де під час навчання випадково “вимикаються” нейрони з певною ймовірністю.
# Під час навчання
if training:
mask = випадковий_бінарний_вектор(p=0.5) # 50% ймовірність "вимкнення"
output = input × mask / 0.5
else:
output = input
Ефект: Мережа стає стійкішою, бо не може покладатися на конкретні нейрони.
Практичний приклад: Наївний байєсівський класифікатор
Розглянемо, як створити простий класифікатор настрою тексту.
Задача: Визначити, чи відгук позитивний
Навчальні дані:
Позитивні: ["чудовий фільм", "дуже сподобалось", "рекомендую"]
Негативні: ["жахливий фільм", "не сподобалось", "не рекомендую"]
Крок 1: Підрахунок ймовірностей слів
P("чудовий" | позитивний) = 1/6 ≈ 0.167
P("фільм" | позитивний) = 1/6 ≈ 0.167
P("дуже" | позитивний) = 1/6 ≈ 0.167
P("сподобалось" | позитивний) = 1/6 ≈ 0.167
P("рекомендую" | позитивний) = 1/6 ≈ 0.167
P("жахливий" | негативний) = 1/7 ≈ 0.143
P("фільм" | негативний) = 1/7 ≈ 0.143
P("не" | негативний) = 2/7 ≈ 0.286
P("сподобалось" | негативний) = 1/7 ≈ 0.143
P("рекомендую" | негативний) = 1/7 ≈ 0.143
Крок 2: Класифікація нового тексту
Новий відгук: “чудовий дуже рекомендую”
P(позитивний | текст) ∝ P(позитивний) × P("чудовий"|поз) × P("дуже"|поз) × P("рекомендую"|поз)
= 0.5 × 0.167 × 0.167 × 0.167
≈ 0.00232
P(негативний | текст) ∝ P(негативний) × P("чудовий"|нег) × P("дуже"|нег) × P("рекомендую"|нег)
= 0.5 × 0.001 × 0.001 × 0.143 # Згладжування для невідомих слів
≈ 0.0000000715
Результат: Відгук позитивний з дуже високою ймовірністю!
Висновок: Ймовірності як основа розумного ШІ
Ймовірності дозволяють ШІ:
-
Моделювати невизначеність: Реальний світ сповнений невизначеності, і ймовірності дають математичний спосіб її представлення
-
Навчатися з досвіду: Через байєсівське оновлення, моделі можуть покращувати свої прогнози з кожним новим спостереженням
-
Приймати оптимальні рішення: Враховуючи ймовірності різних результатів та їх наслідків
-
Генерувати різноманітність: Випадковість допомагає створювати креативні та несподівані результати
Від простих спам-фільтрів до складних мовних моделей – ймовірності є фундаментом, на якому будується здатність ШІ розуміти та взаємодіяти зі складним, непередбачуваним світом.
💡 Ключова ідея: ШІ не потребує абсолютної впевненості для прийняття корисних рішень. Достатньо вміти правильно оцінювати та оновлювати ймовірності!