Англоязычная версия данной заметки доступна здесь https://alex-ber.medium.com/31a714207f1d.
См. также:
Часть 1: Метод Ньютона в R. От эвристики к формальной верификации (Kernel-Level)
Часть 1 Приложение А. Пространства $L_p$ (Under the Hood): От топологических хаков к квадратичной гладкости
Часть 1 Приложение B. Другой пример Loss function на примере кросс-энтропии
Часть 1 Приложение C. Анатомия квадратичной сходимости: Доказательство теоремы Канторовича в $R$
Часть 2: Метод Ньютона в $R^n$. От Гессиана к Аппаратным Лимитам
Часть 3: Метод Ньютона для Векторных полей. Матрица Якоби, Гато и Архитектура Backpropogation
Бонусная Часть 4: Метод Ньютона в бесконечномерных пространствах (Level 99)
Если же алгоритм угадывает категории (задача классификации), базовой метрикой ошибки и неопределенности выступает энтропия. Отличный стартовый пример — построение Дерева Решений (Decision Tree). Суть этого алгоритма в том, чтобы на каждом шаге задавать данные вопросы (например, «возраст > 30?») и разбивать датасет на ветки так, чтобы в каждом новом узле снижался уровень хаоса и оставались объекты преимущественно одного класса.
Базовой мерой этого хаоса является информационная энтропия Шеннона: $H(p) = -\sum p_c \log_2 p_c$, где $p_c$ — истинная физическая доля объектов $c$-го класса внутри конкретного узла. Если вы помните школьную физику, эта концепция вам уже знакома: философски и математически формула Шеннона является потрясающе точным эквивалентом термодинамической энтропии Гиббса-Больцмана ($S = -k_B \sum p_i \ln p_i$, где $k_B$ — постоянная Больцмана). Физический смысл этой величины — мера беспорядка, показывающая степень «размытости» системы по всем возможным микросостояниям. А её строгий математический (информационный) смысл — это мера неопределенности: среднее количество бит информации, которое нам понадобится, чтобы закодировать класс случайно вытащенного из этого узла объекта.
Ниже есть продолжение.Важно понимать, что легитимность применения этой элегантной формулы неявно опирается на два фундаментальных физико-математических допущения. Первое — аналог теоремы Лиувилля о сохранении фазового объема. В статистической механике она гласит, что объем возможных состояний замкнутой системы со временем не сжимается и не расширяется. Ее математическим воплощением здесь выступает локальное сохранение вероятностной меры ($\sum p_c = 1$ на каждом ветвлении): при любом разбиении дерева общая «масса» данных не исчезает и не берется из ниоткуда, а строго аддитивно перераспределяется по новым веткам.
Второе допущение — эргодичность системы. Математически строго лаконичная формула энтропии Шеннона выводится исключительно в эргодичном случае. Без этого допущения в математике моментально появляются громоздкие цепи Маркова и условные вероятности, и простая формула теряет смысл. Строго говоря, в реальных физических системах (как и в «грязных» данных машинного обучения) идеальная эргодичность недостижима. Однако, усиленно махая руками и делая разумные статистические допущения (апеллируя к той же формуле Больцмана), мы получаем своеобразный «классический предел»: громоздкая истинная функция приближенно сводится к базовому макроскопическому случаю Шеннона. Эта аппроксимация железно гарантирует нужную нам логику: если в ветку попали данные только одного класса, энтропия схлопывается в нуль (абсолютный порядок), а при равном перемешивании — достигает максимума.
Деревья решений оперируют макро-уровнем: они вычисляют энтропию для узла в целом. Но когда мы переходим к алгоритмам, обучаемым с помощью градиентного спуска (Нейросети, Логистическая регрессия), нам нужен дифференцируемый интерфейс (Loss) для каждого отдельного объекта. Здесь в дело вступает кросс-энтропия: $Loss_j = -\sum y^{(j)}_c \ln \hat{p}^{(j)}_c$.
Обратите внимание на три отличия. Во-первых, $y^{(j)}_c$ — это абсолютная истина (вектор One-Hot, где одна единица и остальные нули, ведь конкретный объект принадлежит строго одному классу). Во-вторых, $\hat{p}^{(j)}_c$ — это неуверенная вероятность, предсказанная алгоритмом (обычно на выходе слоя Softmax). В-третьих, произошел каст типов: вместо $\log_2$ алгоритмы ML всегда используют натуральный логарифм $\ln$, так как его производная — это красивая дробь $1/x$, идеальная для градиентов (а результат измеряется уже не в битах, а в «натах»).
Кросс-энтропия измеряет «цену ошибки» и жестко штрафует за самоуверенные промахи. А теперь самое главное: средняя кросс-энтропия математически равна сумме энтропии Шеннона и Дивергенции Кульбака-Лейблера (KL-Divergence). В идеальном случае, когда предсказанные Softmax вероятности в точности совпадают с фактическими долями классов ($\hat{p}_c = p_c$), дивергенция обнуляется, и кросс-энтропия математически схлопывается ровно в макроскопическую энтропию Шеннона! Именно поэтому оптимизация градиентов на уровне объектов заставляет алгоритм искать идеальное макро-разбиение.
Давайте закрепим на численном примере. Представим корневой узел: датасет из 10 животных (4 кошки, 4 собаки и 2 акулы). Истинные доли $p_c$ равны $0.4$, $0.4$ и $0.2$. Если алгоритм идеально угадает эти честные вероятности, средняя кросс-энтропия совпадет с энтропией Шеннона для корня (посчитаем в битах через $\log_2$): $H_{root} = -(0.4 \log_2 0.4 + 0.4 \log_2 0.4 + 0.2 \log_2 0.2) \approx 1.52$ бита. Это наш исходный уровень хаоса.
Как дерево снижает хаос? Оно задает вопрос: «Вес животного меньше 10 кг?». Датасет разбивается на две ветки. В левую ветку уходят 6 животных (3 кошки, 2 собаки и 1 акула). Доли: $p \approx [0.50, 0.33, 0.17]$. Энтропия этого узла падает: $H_{лев} \approx 1.46$ бита. В правую ветку уходят 4 крупных животных (1 кошка, 2 собаки, 1 акула). Их доли: $p = [0.25, 0.50, 0.25]$. Энтропия правого узла: $H_{прав} = 1.50$ бита.
Дерево вычисляет метрику Information Gain (Прирост информации) по формуле $IG = H_{root} - \sum \frac{N_i}{N} H_i$. Алгоритм взвешивает энтропию новых узлов: $1.52 - (\frac{6}{10} \times 1.46 + \frac{4}{10} \times 1.50) = 1.52 - 1.476 \approx 0.044$ бита. Общий хаос снизился ($IG > 0$), поэтому разбиение принимается!
А теперь посмотрим на штраф градиентного алгоритма на уровне конкретного объекта: если в правом узле нейросеть вдруг «сойдет с ума» и через Softmax самоуверенно предскажет для конкретной собаки ($y = [0, 1, 0]$) вероятность того, что это кошка на 90% ($\hat{p} = [0.9, 0.1, 0]$), то кросс-энтропия для этого несчастного пса взлетит в космос (считаем в натах через $\ln$): $Loss = -1 \cdot \ln(0.1) \approx 2.30$. Формула жестоко наказывает алгоритм за расхождение между предсказанием и реальностью, генерируя гигантский градиент для исправления весов.
No comments:
Post a Comment