Зачем вся эта математика в обучении моделей

Финальная картина: соберём все темы курса в один работающий пример и увидим, как математика превращается в обучающуюся модель.

Машинное обучение — это линейная алгебра (данные как векторы и матрицы) + анализ (градиенты) + оптимизация (спуск) + вероятность и статистика (потери и оценки), соединённые в один цикл.

Карта курса в одном абзаце

Пройдём по разделам и увидим, что каждый — звено одной цепи.

  • Векторы и матрицы дают язык данных: объект — вектор признаков, датасет — матрица, предсказание — скалярное произведение весов на признаки.
  • Анализ даёт производную и градиент — направление, куда менять веса, чтобы ошибка падала.
  • Оптимизация даёт градиентный спуск — алгоритм, который шаг за шагом находит лучшие веса.
  • Вероятность объясняет предсказания-вероятности и через правдоподобие порождает функции потерь.
  • Статистика учит оценивать по выборке, не обманываться смещением и понимать, надёжен ли результат.

Всё вместе: классификатор с нуля

Соберём бинарный классификатор (логистическая регрессия) полностью вручную — и узнаем в нём каждый раздел курса. Модель предсказывает вероятность класса 1 через сигмоиду от скалярного произведения весов на признаки, потеря — кросс-энтропия (из MLE), обучение — градиентный спуск.

import math, random
random.seed(0)

# Данные: 2 признака. Класс 1, если сумма признаков велика
def make_point():
    x1 = random.uniform(-2, 2)
    x2 = random.uniform(-2, 2)
    label = 1 if (x1 + x2) > 0 else 0
    return [x1, x2], label

data = [make_point() for _ in range(400)]

def dot(a, b):                       # линейная алгебра
    return sum(p * q for p, q in zip(a, b))

def sigmoid(z):                      # вероятность класса (анализ + вероятность)
    return 1 / (1 + math.exp(-z))

w = [0.0, 0.0]                       # веса
b = 0.0
lr = 0.1

for epoch in range(200):             # градиентный спуск (оптимизация)
    for features, y in data:
        pred = sigmoid(dot(w, features) + b)
        err = pred - y               # градиент кросс-энтропии (из MLE)
        for j in range(len(w)):
            w[j] -= lr * err * features[j]
        b -= lr * err

# Точность на обучающих данных (статистика — оценка качества)
correct = sum(1 for f, y in data if (sigmoid(dot(w, f) + b) > 0.5) == bool(y))
print("Веса:", [round(v, 3) for v in w], " сдвиг:", round(b, 3))
print("Точность:", round(correct / len(data), 4))

Вывод:

Веса: [17.121, 16.643]  сдвиг: -0.24
Точность: 0.9975

Модель сама выучила, что важна сумма признаков (оба веса почти равны и положительны, сдвиг около нуля — ровно как в правиле x1 + x2 > 0), и классифицирует с точностью 99.75%. Веса выросли крупными, потому что данные линейно разделимы и мы не сдерживали их регуляризацией. В этих двадцати строках — весь курс: скалярное произведение (векторы), сигмоида (функция и вероятность), градиент кросс-энтропии (анализ и MLE), спуск по весам (оптимизация), оценка точности (статистика).

Что дальше

Нейросеть отличается от этого примера в основном масштабом: вместо двух весов — миллионы, вместо одного скалярного произведения — слои матричных умножений с нелинейностями, вместо ручного градиента — backpropagation (правило цепочки). Но фундамент ровно тот, что вы теперь понимаете. Зная эту математику, вы читаете формулы в статьях и документации не как заклинания, а как осмысленные инструкции.

Раздел курсаЧто даёт в обучении модели
Векторыпризнаки, скалярное произведение, похожесть
Матрицыданные и слои-преобразования, PCA
Анализградиент, backpropagation
Оптимизацияградиентный спуск, learning rate
Вероятностьпредсказания-вероятности, Байес, распределения
Статистикаоценки, корреляция, MLE, функции потерь

Итог

  • Машинное обучение — это сборка линейной алгебры, анализа, оптимизации, вероятности и статистики в один цикл.
  • Логистическая регрессия в 20 строк использует все темы курса сразу.
  • Нейросеть — то же самое, но в большем масштабе: матрицы, нелинейности, backpropagation.
  • Понимая эту математику, вы читаете ML-формулы осмысленно, а не как магию.
Проверьте себя
1. Какую роль играет скалярное произведение в логистической регрессии?
AСчитает точность модели
BКомбинирует веса и признаки в один сигнал перед сигмоидой
CПеремешивает данные
DНормализует выборку
2. Что общего у логистической регрессии из урока и нейросети?
AНичего общего
BТот же фундамент: линейные комбинации, нелинейность, градиентный спуск — нейросеть лишь больше по масштабу
CНейросеть не использует градиенты
DЛогистическая регрессия не использует веса
3. Откуда в обучении модели берётся направление изменения весов?
AИз случайного выбора
BИз градиента функции потерь (анализ), по которому шагает оптимизация
CИз размера выборки
DИз корреляции признаков
Поддержать проект