Ймовірності - мозок ШІ

Кафедра ШІзики

Автор

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:

  1. Обчислюємо експоненти:

    e^2.0 ≈ 7.39
    e^1.0 ≈ 2.72
    e^0.1 ≈ 1.11
  2. Знаходимо суму:

    Сума = 7.39 + 2.72 + 1.11 = 11.22
  3. Ділимо кожну експоненту на суму:

    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_зображеннях(міні_батч)  # Набагато швидше!
        оновити_модель(помилка)

Чому випадковість тут корисна?

  1. Швидкість навчання:

    • Оновлення після кожних 32 зображень замість 10,000
    • Модель починає покращуватися майже одразу
  2. Уникнення “застрягання”:

    • Уявіть, що ви спускаєтеся з гори в тумані
    • Звичайний спуск: можете застрягти в ямі (локальний мінімум)
    • SGD: випадкові “поштовхи” допомагають вибратися з ями
  3. Кращі узагальнення:

    • Випадковий шум не дає моделі “завчити” конкретні приклади
    • Модель стає більш гнучкою та універсальною

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

Результат: Відгук позитивний з дуже високою ймовірністю!

Висновок: Ймовірності як основа розумного ШІ

Ймовірності дозволяють ШІ:

  1. Моделювати невизначеність: Реальний світ сповнений невизначеності, і ймовірності дають математичний спосіб її представлення

  2. Навчатися з досвіду: Через байєсівське оновлення, моделі можуть покращувати свої прогнози з кожним новим спостереженням

  3. Приймати оптимальні рішення: Враховуючи ймовірності різних результатів та їх наслідків

  4. Генерувати різноманітність: Випадковість допомагає створювати креативні та несподівані результати

Від простих спам-фільтрів до складних мовних моделей – ймовірності є фундаментом, на якому будується здатність ШІ розуміти та взаємодіяти зі складним, непередбачуваним світом.

💡 Ключова ідея: ШІ не потребує абсолютної впевненості для прийняття корисних рішень. Достатньо вміти правильно оцінювати та оновлювати ймовірності!