Случайность и вероятность
Вероятность — это число от 0 до 1, измеряющее, насколько правдоподобно событие; на больших сериях оно проявляется как частота.
Вероятность события — число от 0 (невозможно) до 1 (точно произойдёт). Для равновозможных исходов:
P = (благоприятные исходы) / (все исходы).
Зачем вероятность в ML
Машинное обучение работает в условиях неопределённости: данные шумные, мир случаен, модель не может быть уверена на 100%. Поэтому предсказания моделей — это часто вероятности: «спам с вероятностью 0.92», «это кошка с вероятностью 0.8». Чтобы понимать, что выдаёт модель, и строить функции потерь (которые выводятся из вероятностей), нужен язык теории вероятностей.
Классическое определение
Если все исходы равновозможны, вероятность события — это доля «удачных» исходов. У честной кости 6 равновозможных исходов; вероятность выпадения чётного числа — 3 из 6 = 0.5. Посчитаем несколько вероятностей перебором исходов.
from itertools import product
# Все исходы броска двух костей
outcomes = list(product(range(1, 7), repeat=2))
total = len(outcomes)
print("Всего исходов:", total)
# Событие: сумма равна 7
seven = [o for o in outcomes if sum(o) == 7]
print("Сумма = 7:", len(seven), "исходов, P =", round(len(seven) / total, 4))
# Событие: обе кости одинаковы (дубль)
doubles = [o for o in outcomes if o[0] == o[1]]
print("Дубль:", len(doubles), "исходов, P =", round(len(doubles) / total, 4))
Вывод:
Всего исходов: 36 Сумма = 7: 6 исходов, P = 0.1667 Дубль: 6 исходов, P = 0.1667
Частотный смысл: закон больших чисел
Что вообще значит «вероятность 0.5»? Это не про один бросок (там либо орёл, либо решка). Это про длинную серию: если бросать монету много раз, доля орлов будет всё ближе к 0.5. Это закон больших чисел — мост между теоретической вероятностью и реальными частотами. Проверим его симуляцией.
import random
random.seed(42)
def freq_heads(n):
heads = sum(1 for _ in range(n) if random.random() < 0.5)
return heads / n
for n in [10, 100, 1000, 100000]:
print(f"{n:6} бросков: доля орлов = {round(freq_heads(n), 3)}")
Вывод:
10 бросков: доля орлов = 0.6 100 бросков: доля орлов = 0.49 1000 бросков: доля орлов = 0.482 100000 бросков: доля орлов = 0.5
На 10 бросках частота скачет (0.6), но с ростом числа испытаний она уверенно сходится к теоретической вероятности 0.5. Именно поэтому модели учат на больших данных: больше наблюдений — точнее оценка вероятностей.
Свойства вероятности
| Правило | Смысл |
| 0 ≤ P(A) ≤ 1 | вероятность между «невозможно» и «точно» |
| P(достоверного) = 1 | хоть какой-то исход случится точно |
| P(не A) = 1 − P(A) | вероятность противоположного события |
| Сумма по всем исходам = 1 | вероятности всех исходов в сумме дают 1 |
Итог
- Вероятность — число от 0 до 1; для равновозможных исходов это доля благоприятных.
- Частотный смысл: вероятность — предел частоты в длинной серии испытаний (закон больших чисел).
- На малых выборках частота скачет, на больших сходится к теоретической вероятности.
- В ML предсказания и функции потерь говорят на языке вероятностей.