Откуда берутся функции ошибки

После этого урока ты выведешь сумму квадратов и cross-entropy из одного принципа — maximum likelihood — и про любую функцию ошибки скажешь, какое предположение о данных в ней спрятано.

Одну и ту же величину измерили три раза и получили 2, 4 и 9. Нужно назвать одно число. Почти любой скажет: «5, среднее». А почему не 4 — то, что стоит посередине? Откуда вообще известно, что усреднять правильно?

В уроке 11 остался вопрос того же сорта. Для regression сеть учили на сумме квадратов, для classification — на cross-entropy, и обе формулы были выданы как рецепт. На слайде 33 лекции 2 профессор сам пишет рядом с суммой квадратов: "Why should I use this?"

У обоих вопросов один ответ, и он помещается в несколько строк школьной алгебры. К концу урока окажется, что и 5, и 4 могут быть правильными — смотря что предположить о шуме.

Улики и подозреваемые: что такое likelihood

В уроках 13 и 14 мы научились уменьшать \(E(w)\): backpropagation считает градиент, gradient descent делает шаг. Остался вопрос, что уменьшать. Ответ приходит из статистики и называется maximum likelihood estimation (MLE) — оценка наибольшего правдоподобия.

Начнём с монетки. Её подбросили 10 раз: 7 орлов, 3 решки. Есть три «подозреваемых» — три гипотезы о том, с какой вероятностью \(p\) у этой монетки выпадает орёл: 0.5, 0.7 или 0.9. Следователь рассуждает так: если бы всё было устроено по этой гипотезе, насколько ожидаемы были бы такие улики? Для каждой гипотезы считаем вероятность увидеть именно нашу серию бросков: \(p^7 (1-p)^3\).

Одни и те же данные (7 орлов из 10) при трёх гипотезах.
гипотеза \(p\)вероятность данных \(p^7(1-p)^3\)
0.50.00098
0.70.00222
0.90.00048

Данные не менялись, менялась только гипотеза. Лучше всех данные объясняет \(p = 0.7\) — ровно доля орлов \(7/10\). В этом весь принцип, и на слайде 35 лекции 2 он записан одной строкой: "Maximum Likelihood: Chose parameters which maximize data probability".

Likelihood (правдоподобие) — вероятность наблюдённых данных, рассмотренная как функция параметров модели \(\theta\). Данные зафиксированы, меняются параметры. Для непрерывных величин на месте вероятности стоит плотность.

\[ L(\theta) = p(\mathcal{D}\,|\,\theta) = \prod_{n=1}^{N} p(x_n|\theta) \] \[ \theta^{MLE} = \argmax_{\theta}\, L(\theta) \]
\(\mathcal{D}\)
данные: наблюдения \(x_1, \dots, x_N\)
\(\theta\)
параметры модели: у монетки это \(p\), у сети — веса \(w\)
\(p(x_n|\theta)\)
вероятность (или плотность) одного наблюдения при этих параметрах
\(\prod\)
произведение по всем наблюдениям — следствие i.i.d.

Откуда произведение? Из предположения i.i.d. — independent and identically distributed. Independent: наблюдения не влияют друг на друга, поэтому вероятность всей серии равна произведению вероятностей отдельных бросков. Identically distributed: все наблюдения приходят из одного распределения с одними и теми же \(\theta\). Без первого не было бы произведения. Без второго у каждого наблюдения могли бы быть свои параметры, и одно общее \(\theta\) по \(N\) наблюдениям было бы не оценить.

«Likelihood — это вероятность того, что гипотеза верна». Нет: это вероятность данных при этой гипотезе. Числа 0.00098, 0.00222 и 0.00048 в сумме не дают единицу и не обязаны: по \(\theta\) likelihood не является распределением. Сравнивать гипотезы им можно, называть «вероятностью гипотезы» — нельзя.

То же самое с колоколом

У монетки данные дискретные. На слайдах 34–41 профессор разбирает непрерывный пример, он же нарисован в конспекте на стр. 109. Есть \(N\) измерений, i.i.d. из Gaussian \(N(\mu, \sigma^2)\). Ширина колокола \(\sigma\) известна, центр \(\mu\) — нет. От каждой гипотезы точка получает «оценку» — высоту колокола над собой:

\[ p(x\,|\,\mu, \sigma^2) = \frac{1}{\sqrt{2\pi}\,\sigma}\; e^{\textstyle -\frac{(x-\mu)^2}{2\sigma^2}} \]

Гипотезы теперь — положения колокола. На слайде 34 их три: зелёный слева, красный справа, фиолетовый посередине, и только про фиолетовый сказано: "This hypothesis makes the most of the points likely to be observed". На рис. 1 — две такие гипотезы на точках из конспекта.

2468 x μ = 3.5 точки в хвосте

До: \(\mu = 3.5\), \(L \approx 1.9 \cdot 10^{-22}\)

2468 x μ = 5.82 под вершиной

После: \(\mu = 5.82\), \(L \approx 2.8 \cdot 10^{-10}\)

Рис. 1. Одни и те же 15 точек (как на стр. 109 конспекта) и две гипотезы с \(\sigma = 1.2\). Синий отрезок над точкой — её плотность \(p(x_n|\mu)\). Likelihood — произведение всех пятнадцати высот: справа оно больше в триллион раз.

«Высота колокола над точкой — это вероятность получить именно это значение». Нет. Для непрерывной величины \(P(X = x) = 0\) при любом \(x\). Плотность — это вероятность на единицу длины, а сама вероятность получается интегралом по отрезку. Проверка: у Gaussian с \(\sigma = 0.2\) высота пика \(1 / (\sqrt{2\pi} \cdot 0.2) \approx 1.99\). Вероятность не бывает больше единицы, плотность — запросто.

Поэтому и \(L(\mu)\) — не вероятность, а произведение плотностей: само число ничего не значит, значит только сравнение гипотез между собой. В конспекте на стр. 109 про плотность сказано "describes the likelihood of a random variable taking on a specific value" — читай это так, как там же уточнено следующей фразой: "how dense the probability is around that value".

Двигать колокол рукой и следить за числами полезнее, чем читать про это.

Найди колокол, который лучше всех объясняет точки

Синие точки на оси — данные, они не двигаются. Фиолетовый колокол — гипотеза: тащи его за обведённую вершину или ползунком. Отрезок над точкой — её плотность. Главное, что нужно увидеть: максимум произведения, максимум суммы логарифмов и минимум суммы квадратов — в одной и той же точке.

  1. Колокол стоит на \(\mu = 3.5\), как «wrong hypothesis» в конспекте. Не двигая его, прикинь: во сколько раз вырастет \(L\), если переставить колокол в лучшее место, — в десять, в тысячу, больше?
    Что должно получиться

    Примерно в \(1.5 \cdot 10^{12}\) раз: с \(1.86 \cdot 10^{-22}\) до \(2.79 \cdot 10^{-10}\). Произведение очень чувствительно: хватает нескольких точек в хвосте (у точки 7.7 плотность всего 0.0007), чтобы обрушить его на много порядков.

  2. Найди \(\mu\), при котором \(L\) максимальна. Сначала угадай, какому числу оно равно, потом включи «показать среднее выборки».
    Что должно получиться

    Максимум при \(\mu = 5.82\). Это среднее арифметическое пятнадцати точек: \(87.3 / 15\). В этой же точке \(l = -22.00\) максимальна, а \(\sum (x_n - \mu)^2 = 15.79\) минимальна — три числа достигают лучшего значения одновременно.

  3. Переключи нижний график с произведения на сумму логарифмов. Сдвинется ли вершина? Как изменится форма кривой?
    Что должно получиться

    Вершина останется на месте: логарифм монотонный и порядок гипотез не меняет. А форма другая: вместо узкого пика, который почти везде неотличим от нуля, — парабола, по которой видно, куда идти, из любой точки.

  4. Верни \(\mu = 5.82\) и поменяй известную \(\sigma\) с 1.2 на 2.4. Сдвинется ли лучшее \(\mu\)?
    Что должно получиться

    Нет. Числа другие (\(l\) падает с \(-22.00\) до \(-28.29\)), но вершина там же. \(\sigma\) входит в \(l(\mu)\) константой и положительным множителем перед суммой квадратов — ни то, ни другое не двигает максимум. Запомни это: тем же приёмом \(\sigma^2\) исчезнет из функции ошибки сети.

Maximum likelihood: из всех значений параметров выбираем то, при котором уже наблюдённые данные наиболее вероятны.

Рецепт из пяти шагов и зачем в нём логарифм

В виджете максимум нашёлся ползунком. На слайде 36 лекции 2 профессор даёт рецепт, как найти его на бумаге. Это готовый план ответа на любую задачу вида "derive the maximum likelihood estimator of…".

  1. Запиши likelihood: \(L = P(Data\,|\,\theta)\).
  2. Возьми логарифм: \(l = \log L\). Шаг помечен «optional», но без него почти никогда не обходится.
  3. Посчитай производные \(\partial l / \partial \theta\).
  4. Приравняй их к нулю и реши систему уравнений.
  5. Проверь, что найденная точка — максимум.

Для шагов 3–4 на слайде названы три инструмента: аналитический (решить уравнения), оптимизационный (например, множители Лагранжа) и численный — тот самый gradient descent. Для среднего Gaussian хватит производной из школы. Для сети уравнения в явном виде не решаются, и там работает спуск.

Зачем логарифм

Причин три, и все уже были видны в виджете.

Максимум не сдвигается. Логарифм монотонно возрастает: если \(L(a) \gt L(b)\), то и \(\log L(a) \gt \log L(b)\). Значение функции меняется, место максимума — нет. Функцию \(l = \log L\) называют log-likelihood.

Произведение становится суммой. \(\log(ab) = \log a + \log b\). Производная суммы — сумма производных, а производная произведения пятнадцати множителей — пятнадцать слагаемых по пятнадцать множителей в каждом.

Числа остаются числами. Произведение многих чисел меньше единицы быстро становится исчезающе малым: для 15 точек лучшее \(L\) уже порядка \(10^{-10}\), а при узком колоколе вдали от данных виджет показывает \(10^{-200}\) и меньше — на тысячах примеров компьютер округлит такое до нуля. Сумма логарифмов при этом — обычное число вроде \(-22\).

5.82 μ L ≈ 10⁻¹⁰ почти ноль

До логарифма: произведение \(L(\mu)\)

5.82 μ l ≈ −22 та же точка

После: сумма \(l(\mu) = \log L(\mu)\)

Рис. 2. Одна и та же информация до и после логарифма (15 точек, \(\sigma = 1.2\)). Слева — игла, вне которой кривая неотличима от нуля. Справа — парабола с вершиной там же, над средним выборки.

Среднее Gaussian — по рецепту

Теперь то же самое на бумаге, шаг за шагом. Прежде чем открывать очередной шаг, попробуй написать его на черновике.

  1. Шаг 1: likelihood. Точки i.i.d., поэтому плотность всего набора — произведение плотностей:

    \[ L(\mu) = \prod_{n=1}^{N} \frac{1}{\sqrt{2\pi}\,\sigma}\; e^{\textstyle -\frac{(x_n-\mu)^2}{2\sigma^2}} \]
  2. Шаг 2: логарифм. Логарифм произведения — сумма логарифмов, а \(\log e^{a} = a\). Множитель перед экспонентой одинаков для всех \(n\), поэтому он просто повторяется \(N\) раз:

    \[ \begin{aligned} l(\mu) = {} & N \log\frac{1}{\sqrt{2\pi}\,\sigma} \\ & - \frac{1}{2\sigma^2}\sum_{n=1}^{N}(x_n-\mu)^2 \end{aligned} \]
  3. Шаг 3: производная по \(\mu\). Первое слагаемое от \(\mu\) не зависит и исчезает. У второго по chain rule появляется \(2(x_n-\mu)\cdot(-1)\):

    \[ \pd{l}{\mu} = -\frac{1}{2\sigma^2}\sum_{n=1}^{N} 2(x_n-\mu)(-1) \] \[ \pd{l}{\mu} = \frac{1}{\sigma^2}\sum_{n=1}^{N}(x_n-\mu) \]
  4. Шаг 4: приравниваем к нулю. Множитель \(1/\sigma^2\) положителен, на него можно сократить:

    \[ \sum_{n=1}^{N}(x_n-\mu) = 0 \;\;\Rightarrow\;\; \sum_{n=1}^{N} x_n = N\mu \] \[ \mu^{MLE} = \frac{1}{N}\sum_{n=1}^{N} x_n \]

    Это среднее арифметическое выборки. Известная \(\sigma\) в ответ не вошла — как и было видно в виджете.

  5. Шаг 5: это точно максимум? Вторая производная отрицательна при любом \(\mu\):

    \[ \frac{\partial^2 l}{\partial \mu^2} = -\frac{N}{\sigma^2} \lt 0 \]

    Значит, \(l(\mu)\) — перевёрнутая парабола с единственной вершиной. В конспекте этого шага нет, а на слайде 36 он есть: "Check that \(\theta^{MLE}\) is a maximum". Нулевая производная сама по себе обещает только стационарную точку.

Результат выглядит скромно: лучшая оценка среднего — среднее. Но посмотри на шаг 2. После логарифма от \(\mu\) зависит только \(\sum_n (x_n - \mu)^2\), причём со знаком минус. Максимизировать likelihood для Gaussian — то же самое, что минимизировать сумму квадратов. Квадрат никто не «выбирал»: он стоял в показателе экспоненты колокола.

Почему \(l(\mu)\) получается именно параболой с вершиной в среднем?

Сумму квадратов можно разложить вокруг среднего выборки \(\bar{x}\):

\[ \begin{aligned} \sum_n (x_n-\mu)^2 = {} & \sum_n (x_n-\bar{x})^2 \\ & + N(\bar{x}-\mu)^2 \end{aligned} \]

Первое слагаемое от \(\mu\) не зависит — это разброс точек вокруг их собственного среднего. Второе — квадрат расстояния от \(\mu\) до \(\bar{x}\). Проверь на трёх точках 2, 4, 9: при \(\mu = 5\) сумма равна \(9 + 1 + 16 = 26\), при \(\mu = 4\) — \(4 + 0 + 25 = 29 = 26 + 3 \cdot 1^2\).

Regression: шум Гаусса превращается в сумму квадратов

Слайд 41 лекции 2 заканчивается словами "Let’s apply this all to Neural Networks!". Замена одна: вместо постоянного центра \(\mu\) — выход сети \(g(x_n|w)\), свой для каждого входа.

Дальше всё записано как на слайдах. В конспекте те же вещи выглядят так: выход сети \(y(x_n, w)\) вместо \(g(x_n|w)\); оценка \(\hat{w}_{MLE}\) вместо \(w^{MLE}\); log-likelihood \(\ell\) вместо \(l\); классы \(c = 1, \dots, C\) вместо \(k = 1, \dots, K\); слово "loss function" вместо "error function". Target (желаемый ответ) и там, и там — \(t_n\).

И одна опечатка: на стр. 108 истинное среднее названо \(\hat{\mu}\). Шляпка означает оценку по данным; истинное среднее — просто \(\mu\).

Сначала история о том, как появились данные (слайд 42). Target — это ответ сети плюс случайный шум:

\[ t_n = g(x_n|w) + \epsilon_n \] \[ \epsilon_n \sim N(0, \sigma^2) \]
\(t_n\)
target примера \(n\)
\(g(x_n|w)\)
выход сети на входе \(x_n\) при весах \(w\)
\(\epsilon_n\)
шум: ошибки измерения и всё, чего входы не объясняют
\(\sigma^2\)
дисперсия шума — известная и одна и та же для всех \(n\)

Если к числу \(g(x_n|w)\) прибавить Gaussian с нулевым средним, получится Gaussian с центром в \(g(x_n|w)\): \(t_n \sim N(g(x_n|w), \sigma^2)\). Колокол из рис. 1 больше не стоит на оси. Он лежит на боку и едет вдоль кривой модели — это рисунок со слайда 43.

прогноз g(x|w) target t шум ε один вход x x t колокол шума
Рис. 3. Статистическая картина regression (слайд 43 лекции 2). При каждом входе \(x\) модель называет центр колокола, а настоящий target выпадает где-то рядом. Бирюзовый отрезок — шум \(\epsilon = t - g(x|w)\).

Дальше — тот же рецепт. Неизвестное теперь не \(\mu\), а веса \(w\), но данные по-прежнему зафиксированы, и мы ищем параметры, при которых они наиболее вероятны.

  1. Плотность одного target. Из \(t_n = g(x_n|w) + \epsilon_n\) следует, что \(t_n\) — Gaussian с центром в ответе сети:

    \[ p(t_n|x_n, w) = \frac{1}{\sqrt{2\pi}\,\sigma}\; e^{\textstyle -\frac{(t_n - g(x_n|w))^2}{2\sigma^2}} \]
  2. Likelihood. Шум в разных примерах независим, значит плотности перемножаются:

    \[ L(w) = \prod_{n=1}^{N} \frac{1}{\sqrt{2\pi}\,\sigma}\; e^{\textstyle -\frac{(t_n - g(x_n|w))^2}{2\sigma^2}} \]
  3. Логарифм. Ровно как для среднего, только на месте \(\mu\) стоит \(g(x_n|w)\):

    \[ \begin{aligned} l(w) = {} & N \log\frac{1}{\sqrt{2\pi}\,\sigma} \\ & - \frac{1}{2\sigma^2}\sum_{n=1}^{N}\bigl(t_n - g(x_n|w)\bigr)^2 \end{aligned} \]
  4. Убираем то, что не зависит от \(w\). В первом слагаемом только \(N\) и известная \(\sigma\). Это константа: она поднимает или опускает всю функцию целиком и не двигает место максимума. Максимизировать остаётся только второе слагаемое:

    \[ -\frac{1}{2\sigma^2}\sum_{n=1}^{N}\bigl(t_n - g(x_n|w)\bigr)^2 \;\to\; \max_w \]
  5. Убираем множитель и минус. \(\frac{1}{2\sigma^2}\) — положительная константа: растянуть функцию по вертикали не значит сдвинуть её вершину. А максимум «минус суммы» — это минимум суммы:

    \[ w^{MLE} = \argmin_w \sum_{n=1}^{N}\bigl(t_n - g(x_n|w)\bigr)^2 \]

    Справа — Sum of Squared Errors, та самая \(E(w)\) со слайда 33 лекции 2. На слайде 47 этот результат обведён.

Вот ответ на "Why should I use this?". Сумма квадратов — не дело вкуса, а следствие трёх предположений. На экзаменационный вопрос "Which assumptions did you use?" отвечай ими:

Здесь должно стать уютно: метод наименьших квадратов из Applied Statistics — это maximum likelihood при гауссовых остатках, просто там \(g\) была прямой. Сеть меняет только форму \(g\), вывод остаётся тем же.

«SSE, MSE и половина SSE — разные функции ошибки, у них разные минимумы». Нет. Они отличаются положительным множителем (\(\frac{1}{N}\) или \(\frac{1}{2}\)), и \(\arg\min\) у всех один. Меняется только масштаб градиента, а его поглощает \(\eta\). В конспекте на стр. 111 итог записан как MSE с \(\frac{1}{N}\); у профессора — сумма без коэффициентов. На экзамене пиши как на слайде: \(E(w) = \sum_n (t_n - g(x_n|w))^2\).

На слайде 45 лекции 2 написано "i.i.d. samples coming from a Gaussian". Разве у всех \(t_n\) одно распределение?

Строго говоря, нет: у каждого \(t_n\) свой центр \(g(x_n|w)\). Одинаково распределён шум \(\epsilon_n\), а targets независимы при заданных входах. Выводу это не мешает: для произведения нужна только независимость, а разные центры честно стоят внутри каждого множителя. На экзамене используй формулировку слайда — и держи в голове, что i.i.d. относится к шуму.

Classification: монетка превращается в cross-entropy

В бинарной classification target равен 0 или 1. История «ответ сети плюс гауссов шум» тут не годится: 0.8 плюс случайная добавка не даст ровно 0 или ровно 1. Нужна другая история о том, как появились данные.

Она на слайде 48 лекции 2, и цель там названа так: "approximate a posterior probability". Сеть выдаёт вероятность единицы при данном входе: \(g(x_n|w) = p(t_n = 1\,|\,x_n)\) (на слайде короче: \(p(t_n|x_n)\)). А сам target — бросок несимметричной монетки с этой вероятностью. Такое распределение называется Bernoulli: \(t_n \sim Be(g(x_n|w))\). Это монетка из начала урока, только у каждого входа \(x_n\) она своя, и вероятность орла у неё назначает сеть.

Чтобы \(g\) могла быть вероятностью, выход сети должен лежать между 0 и 1. Вот зачем в уроке 11 на выходе стояла sigmoid.

  1. Одна формула на два исхода. Для краткости обозначим \(g_n = g(x_n|w)\). Вероятность единицы равна \(g_n\), вероятность нуля — \(1 - g_n\). Обе строчки собираются в одну:

    \[ p(t_n|x_n, w) = g_n^{\,t_n}\,(1-g_n)^{1-t_n} \]

    Проверь: при \(t_n = 1\) остаётся \(g_n\), при \(t_n = 0\) остаётся \(1 - g_n\). Степень работает как выключатель.

  2. Likelihood. Примеры независимы — перемножаем:

    \[ L(w) = \prod_{n=1}^{N} g_n^{\,t_n}\,(1-g_n)^{1-t_n} \]
  3. Логарифм. Произведение становится суммой, показатели степени спускаются вниз множителями:

    \[ \begin{aligned} l(w) = {} & \sum_{n=1}^{N} \bigl[\, t_n \log g_n \\ & \quad + (1-t_n)\log(1-g_n) \,\bigr] \end{aligned} \]
  4. Меняем знак. Здесь нет ни констант, ни множителей, которые надо выбрасывать. Максимум \(l(w)\) — это минимум \(-l(w)\):

    \[ \begin{aligned} E(w) = {} & -\sum_{n=1}^{N} \bigl[\, t_n \log g_n \\ & \quad + (1-t_n)\log(1-g_n) \,\bigr] \end{aligned} \]

    Это binary cross-entropy — обведённая формула слайда 51.

У каждого слагаемого есть простой смысл. Из двух логарифмов в скобках выживает один — тот, что относится к случившемуся исходу. Остаётся \(-\log\) вероятности, которую модель дала тому, что произошло на самом деле. Это мера удивления. Модель сказала \(g = 0.8\), и вышла единица — штраф \(-\ln 0.8 = 0.22\). Сказала \(0.8\), а вышел ноль — штраф \(-\ln 0.2 = 1.61\), в семь раз больше.

0 0.2 0.5 0.8 1 1 2 1.61 0.69 0.22 штраф −ln p p — вероятность, данная тому, что случилось уверенно и мимо: дорого
Рис. 4. Одно слагаемое cross-entropy как функция вероятности, которую модель дала настоящему ответу. Справа штраф почти нулевой, слева растёт без предела: уверенная ошибка стоит дороже многих осторожных.

Основание логарифма на слайдах не указано. Оно меняет \(E(w)\) только на постоянный множитель, так что минимум от него не зависит. В расчётах принят натуральный логарифм — так делает и конспект (стр. 112). Там же перед суммой стоит ещё \(\frac{1}{N}\): как и в случае SSE и MSE, это положительный множитель, и минимум он не двигает. На слайде 51 его нет.

Теперь обе истории рядом. В виджете восемь точек, модель с двумя весами и выбор, как появились targets.

От модели шума к функции ошибки

Сверху — данные и модель \(g(x|w)\): прямая \(w_1 x + w_0\) или sigmoid от неё. Бирюзовые отрезки — промахи, коридор вокруг прямой — шум \(\pm\sigma\). Снизу под каждой точкой стоит её слагаемое \(-\log p(t_n|x_n, w)\). Главное, что нужно увидеть: сумма столбиков — это \(-l(w)\), и от весов в ней зависит только то, из чего сложена функция ошибки. Серая константа и множитель \(\frac{1}{2\sigma^2}\) при бирюзовой части место минимума не двигают.

  1. Режим Gaussian. У каждого столбика две части: серая и бирюзовая. Прежде чем трогать ползунки, реши: какая из них изменится, когда прямая повернётся? И как сумма бирюзовых частей связана с SSE?
    Что должно получиться

    Серые части не меняются никогда: это \(\log(\sqrt{2\pi}\,\sigma) = 0.92\) на точку, всего \(8 \cdot 0.92 = 7.35\). Бирюзовая часть — \((t_n - g)^2 / 2\sigma^2\), при \(\sigma = 1\) их сумма равна половине SSE. Поэтому \(l(w) = -7.35 - \tfrac{1}{2}\,\text{SSE}\): на старте SSE = 19.48 и \(l = -17.09\).

  2. Нажми «Поставить веса с минимальной E(w)». Можно ли теперь сдвинуть какой-нибудь ползунок так, чтобы \(l(w)\) выросла?
    Что должно получиться

    Нельзя. При \(w_1 = 0.5\), \(w_0 = 1\) SSE минимальна (4.76), а \(l(w) = -9.73\) максимальна — это одна и та же точка. Любой сдвиг увеличивает SSE и ровно на половину этого прироста уменьшает \(l\). Например, \(w_0 = 1.5\) даёт SSE = 6.76 и \(l = -10.73\).

  3. Переключи на Bernoulli и снова поставь лучшие веса. У какой точки самый высокий столбик и почему именно у неё?
    Что должно получиться

    У точки \(x = -1.5\) с \(t = 1\). Она стоит среди нулей, модель даёт ей \(g = 0.218\), и штраф равен \(-\ln 0.218 = 1.52\). Серых частей здесь нет вовсе: сумма столбиков и есть \(E(w) = 3.52\), а \(l(w) = -E(w)\). Лучшие веса здесь — \(w_1 = 0.85\), \(w_0 = 0\): это минимум на сетке ползунков с шагом 0.05.

  4. Не меняя \(w_0 = 0\), подними \(w_1\) до 3. Sigmoid станет почти ступенькой, и шесть точек из восьми окажутся на правильной стороне с большим запасом. \(E(w)\) вырастет или упадёт?
    Что должно получиться

    Вырастет почти вдвое: с 3.52 до 6.43. Шесть столбиков уменьшились (самый высокий из них 0.20), но точка \(x = -1.5\) теперь получает \(g = 0.011\) и штраф 4.51, а точка \(x = 0.5\) — штраф 1.70. Cross-entropy не прощает уверенности там, где модель ошибается (левый край рис. 4).

Больше двух классов

Для \(K\) классов монетку заменяет игральная кость с \(K\) гранями; в конспекте это распределение названо Categorical. Target записан как one-hot вектор \(\vb{t}_n\): единица на месте правильного класса, остальные нули. Сеть через softmax выдаёт \(K\) вероятностей \(g_k(x_n|w)\) с суммой 1. Вероятность наблюдённого ответа пишется тем же приёмом со степенями-выключателями: \(\prod_k g_k^{\,t_{nk}}\). Логарифм и минус дают

\[ E(w) = -\sum_{n=1}^{N} \sum_{k=1}^{K} t_{nk}\, \log g_k(x_n|w) \] \[ E(w) = -\sum_{n=1}^{N} \vb{t}_n\T \log g(x_n|w) \]

Вторая строка — та же сумма в векторной записи, так она стоит на слайде 51 с подписью "Crossentropy" (в конспекте — Categorical Cross-Entropy, CCE). Из внутренней суммы выживает одно слагаемое: при \(\vb{t}_n = (0, 0, 1)\) и выходах \((0.2, 0.3, 0.5)\) штраф равен \(-\ln 0.5 = 0.69\). При \(K = 2\) формула сворачивается в binary cross-entropy.

Как придумать функцию ошибки

Обе выкладки — одна и та же операция. Скажи, каким распределением описывается target при данном входе, запиши likelihood, возьми логарифм, поменяй знак:

\[ E(w) = -\sum_{n=1}^{N} \log p(t_n|x_n, w) \]

Это negative log-likelihood. Сумма по примерам берётся из независимости и логарифма — вот почему и сумма квадратов, и cross-entropy устроены как «сумма по обучающей выборке». А вид слагаемого задаёт выбранное распределение.

Одно предположение — одна функция ошибки. Слева в каждой строке: задача, выход сети (рецепт из урока 11) и предположение. Для краткости \(g_n = g(x_n|w)\) и \(g_{nk} = g_k(x_n|w)\).
Предположение о \(t_n\)Error function \(E(w)\)
Regression, выход linear
\(t_n \sim N(g_n, \sigma^2)\)
\(\sum_n (t_n - g_n)^2\)
Sum of Squared Errors
Два класса, выход sigmoid
\(t_n \sim Be(g_n)\)
\(-\sum_n [\,t_n \log g_n\)
\(\quad +\, (1 - t_n) \log(1 - g_n)\,]\)
Binary Crossentropy
\(K\) классов, выход softmax
\(\vb{t}_n\) — бросок кости с вероятностями \(g_{nk}\) (Categorical)
\(-\sum_n \sum_k t_{nk} \log g_{nk}\)
Crossentropy

В уроке 11 эта таблица была рецептом. Теперь у каждой строки есть вывод, и видно, почему выход и функция ошибки ходят парами. Выход сети должен быть законным параметром своего распределения: любое число годится в центры колокола, число от 0 до 1 — в вероятность монетки, набор чисел от 0 до 1 с суммой 1 — в вероятности граней.

На слайде "How to Chose the Error Function?" лекции 2 (в PDF он 52-й, на самом слайде напечатан номер 53) профессор говорит то же самое шире: "Error functions define the task to be solved". И даёт три совета, как их конструировать: использовать всё, что известно или предполагается о распределении данных; использовать знания о задаче и о модели; проявлять изобретательность. Там же честная приписка: "This requires lots of trial and errors".

Вернёмся к 2, 4 и 9

Среднее 5 — это \(\mu^{MLE}\), если шум гауссов. Оно минимизирует сумму квадратов: 26 при \(\mu = 5\) против 29 при \(\mu = 4\) (выбери в первом виджете «три точки» и проверь).

Теперь другое предположение. Этого примера нет ни на слайдах, ни в конспекте: он показывает совет "use all your knowledge/assumptions about the data distribution" в действии. Пусть известно, что прибор изредка ошибается сильно, и 9 похоже как раз на такой промах. Колокол с его тонкими хвостами для этого не годится. Возьмём распределение с тяжёлыми хвостами — распределение Лапласа, \(p(x|\mu) = \frac{1}{2b}\, e^{-\abs{x-\mu}/b}\).

Рецепт тот же: произведение, логарифм, минус. В показателе теперь стоит модуль, а не квадрат, и минимизировать приходится \(\sum_n \abs{x_n - \mu}\). Минимум этой суммы — в медиане: при \(\mu = 4\) она равна \(2 + 0 + 5 = 7\), при \(\mu = 5\) — \(3 + 1 + 4 = 8\).

Так что и 5, и 4 — правильные ответы, каждый при своём предположении о шуме. Никакого «правильного самого по себе» числа нет. С сетью то же самое, и это ответ на вопрос из урока 11, почему на слайдах квадрат, а не модуль: сумма квадратов — это гауссов шум, записанный другими буквами. Веришь в него — используй её. Не веришь — рецепт у тебя в руках, выводи свою.

MLE отвечает на вопрос, что минимизировать; gradient descent и backpropagation — как.

В формате экзамена

You observe \(N\) i.i.d. samples \(x_1, \dots, x_N\) from a Gaussian distribution \(N(\mu, \sigma^2)\) with known \(\sigma^2\). Derive the maximum likelihood estimator of \(\mu\).

Show model answer

The samples are i.i.d., so the likelihood is the product of the densities:

\[ L(\mu) = \prod_{n=1}^{N} \frac{1}{\sqrt{2\pi}\,\sigma}\; e^{\textstyle -\frac{(x_n-\mu)^2}{2\sigma^2}} \]

Log-likelihood:

\[ \begin{aligned} l(\mu) = {} & N \log\frac{1}{\sqrt{2\pi}\,\sigma} \\ & - \frac{1}{2\sigma^2}\sum_{n=1}^{N}(x_n-\mu)^2 \end{aligned} \]

Set the derivative to zero:

\[ \pd{l}{\mu} = \frac{1}{\sigma^2}\sum_{n=1}^{N}(x_n-\mu) = 0 \] \[ \mu^{MLE} = \frac{1}{N}\sum_{n=1}^{N} x_n \]

It is a maximum because \(\partial^2 l / \partial \mu^2 = -N/\sigma^2 \lt 0\). The estimator is the sample mean.

В ответе должны быть четыре хода: произведение из i.i.d., логарифм, производная равна нулю, проверка максимума. Последний легко забыть — а он есть в рецепте на слайде 36 лекции 2.

A feed forward neural network \(g(x|w)\) is trained for regression on \(N\) observations \(\langle x_n, t_n \rangle\). Assume \(t_n = g(x_n|w) + \epsilon_n\) with \(\epsilon_n \sim N(0, \sigma^2)\). Show that the maximum likelihood estimate of \(w\) minimises the sum of squared errors, and state the assumptions you used.

Show model answer

The noise model implies \(t_n \sim N(g(x_n|w), \sigma^2)\). With independent samples the likelihood is

\[ L(w) = \prod_{n=1}^{N} \frac{1}{\sqrt{2\pi}\,\sigma}\; e^{\textstyle -\frac{(t_n - g(x_n|w))^2}{2\sigma^2}} \]

and the log-likelihood is

\[ \begin{aligned} l(w) = {} & N \log\frac{1}{\sqrt{2\pi}\,\sigma} \\ & - \frac{1}{2\sigma^2}\sum_{n=1}^{N}\bigl(t_n - g(x_n|w)\bigr)^2 \end{aligned} \]

The first term does not depend on \(w\), and \(1/2\sigma^2\) is a positive constant, so

\[ \begin{aligned} & \argmax_w\, l(w) = \\ & \argmin_w \sum_{n=1}^{N}\bigl(t_n - g(x_n|w)\bigr)^2 \end{aligned} \]

Assumptions: independent samples; additive Gaussian noise with zero mean; noise variance known and equal for all samples.

Два места, где ответ легко оставить неполным: объясни, почему пропали константа и \(1/2\sigma^2\) (одна не зависит от \(w\), вторая положительна), и перечисли предположения — вопрос просит об этом прямо. Результат пиши как сумму, без \(\frac{1}{N}\) и \(\frac{1}{2}\) — так на слайде 47 лекции 2.

A network with output \(g(x_n|w)\) approximating \(p(t_n = 1\,|\,x_n)\) is trained for binary classification with targets \(t_n \in \{0, 1\}\). Derive the error function by maximum likelihood. How does it generalise to \(K\) classes with one-hot targets?

Show model answer

Each target is a Bernoulli variable, \(t_n \sim Be(g(x_n|w))\). Writing \(g_n = g(x_n|w)\):

\[ p(t_n|x_n, w) = g_n^{\,t_n}\,(1-g_n)^{1-t_n} \]

For independent samples

\[ L(w) = \prod_{n=1}^{N} g_n^{\,t_n}\,(1-g_n)^{1-t_n} \] \[ \begin{aligned} l(w) = {} & \sum_{n=1}^{N} \bigl[\, t_n \log g_n \\ & \quad + (1-t_n)\log(1-g_n) \,\bigr] \end{aligned} \]

There is no constant to drop here: maximising \(l(w)\) is equivalent to minimising its negative, the binary cross-entropy

\[ \begin{aligned} E(w) = {} & -\sum_{n=1}^{N} \bigl[\, t_n \log g_n \\ & \quad + (1-t_n)\log(1-g_n) \,\bigr] \end{aligned} \]

For \(K\) classes with one-hot targets \(\vb{t}_n\) and softmax outputs \(g_k(x_n|w)\), the probability of one observed target is \(\prod_k g_k(x_n|w)^{t_{nk}}\), and the same steps give the cross-entropy

\[ E(w) = -\sum_{n=1}^{N} \sum_{k=1}^{K} t_{nk} \log g_k(x_n|w) \]

Ключевой ход — компактная запись \(g^{t}(1-g)^{1-t}\). Без неё логарифм не разложится в две аккуратные части. Назови распределение словом (Bernoulli) и результат словом (binary cross-entropy): так сразу видно, что и откуда выведено.

A binary classifier outputs \(g(x_n|w) = 0.9,\ 0.6,\ 0.2\) for three samples whose targets are \(t_n = 1,\ 1,\ 0\). Compute the binary cross-entropy \(E(w)\) summed over the three samples (natural logarithm, three decimals).

Show model answer

Each sample contributes minus the log of the probability assigned to its true label: \(0.9\), \(0.6\) and \(1 - 0.2 = 0.8\).

\[ E = -\ln 0.9 - \ln 0.6 - \ln 0.8 \] \[ E = 0.105 + 0.511 + 0.223 = 0.839 \]

Ловушка — третий пример: там \(t = 0\), значит под логарифмом \(1 - g = 0.8\), а не \(0.2\). Если взять \(-\ln 0.2\), получится 2.226 — и это типичный неверный ответ.

Three i.i.d. samples \(2,\ 4,\ 9\) are drawn from a Gaussian with unknown mean \(\mu\) and known variance \(\sigma^2 = 4\). Find \(\mu^{MLE}\) and compute how much higher the log-likelihood is at \(\mu^{MLE}\) than at \(\mu = 4\), i.e. \(l(\mu^{MLE}) - l(4)\).

Show model answer

\(\mu^{MLE}\) is the sample mean: \((2 + 4 + 9)/3 = 5\). The constant term of the log-likelihood cancels in the difference, so only the sums of squares matter:

\[ \sum_n (x_n - 5)^2 = 26, \qquad \sum_n (x_n - 4)^2 = 29 \] \[ l(5) - l(4) = \frac{29 - 26}{2\sigma^2} = \frac{3}{8} = 0.375 \]

Вся задача в том, чтобы заметить: слагаемое \(N \log \frac{1}{\sqrt{2\pi}\sigma}\) в разности сокращается. Считать его на калькуляторе — потеря времени.

Which of the following statements about maximum likelihood estimation are correct? Select all that apply.

  • Taking the logarithm of the likelihood does not change its maximiser. Логарифм монотонно возрастает: значение другое, \(\arg\max\) тот же.
  • The likelihood \(L(\theta)\) is a probability distribution over \(\theta\). Это вероятность данных как функция \(\theta\); по \(\theta\) она не нормирована.
  • With additive zero-mean Gaussian noise of known constant variance, the MLE of the weights minimises the sum of squared errors. Ровно вывод слайдов 45–47 лекции 2.
  • A different known value of \(\sigma^2\) leads to different optimal weights. \(\sigma^2\) даёт константу и положительный множитель; минимум по \(w\) от них не зависит.
  • With \(t_n \sim Be(g(x_n|w))\), the negative log-likelihood is the binary cross-entropy. Вывод слайдов 49–51 лекции 2.
  • Maximum likelihood can only be applied when the data are Gaussian. Принцип общий: Bernoulli даёт cross-entropy, другое распределение — другую функцию ошибки.
Show model answer

Correct: the first, third and fifth statements. The log is monotonic; Gaussian noise gives the sum of squared errors; Bernoulli targets give the binary cross-entropy. The likelihood is not a distribution over the parameters, \(\sigma^2\) does not move the optimum, and the principle works for any assumed distribution.

Самое коварное утверждение здесь — про \(\sigma^2\): она меняет значение функции, но не место минимума. Второе по коварству — про «распределение по \(\theta\)»: likelihood — функция параметров, а не их распределение.

Проверь себя

Для 15 точек посчитали \(L(\mu)\) при трёх значениях \(\mu\). Что означает число \(L(5.82) \approx 2.8 \cdot 10^{-10}\)?

  • Вероятность того, что истинное среднее равно 5.82 Likelihood — не вероятность гипотезы. По \(\mu\) эта функция даже не нормирована.
  • Плотность наблюдённого набора точек, если бы центр колокола был в 5.82 Да: данные зафиксированы, \(\mu\) — аргумент. Число имеет смысл только в сравнении с \(L\) при других \(\mu\).
  • Вероятность того, что следующая точка окажется рядом с 5.82 Про будущие точки likelihood ничего не говорит: в него входят только уже наблюдённые.
  • Долю точек, попавших в колокол Такой величины в выводе нет. К тому же произведение плотностей не обязано быть меньше единицы.

Зачем в рецепте MLE берут логарифм? Отметь все верные причины.

  • Место максимума не меняется, потому что логарифм монотонно возрастает Это то, что делает замену законной.
  • Произведение по примерам превращается в сумму, которую легко дифференцировать Именно отсюда «сумма по обучающей выборке» и в сумме квадратов, и в cross-entropy.
  • Произведение множества малых чисел становится неотличимым от нуля, а сумма логарифмов остаётся обычным числом В виджете \(L\) доходил до \(10^{-200}\), а \(l\) оставался обычным числом вроде \(-500\).
  • Без логарифма у \(L\) нет максимума Максимум есть, и он в той же точке. Его просто неудобно искать.
  • Логарифм делает likelihood вероятностью Нет: \(l\) обычно отрицателен и вероятностью не является.

Первая причина разрешает замену, вторая и третья объясняют, зачем она нужна.

В выводе SSE дисперсию шума считали известной: \(\sigma = 1\). Потом выяснилось, что на самом деле \(\sigma = 2\). Что произойдёт с весами \(w^{MLE}\)?

  • Ничего: они останутся теми же \(\sigma\) входит константой и множителем \(1/2\sigma^2 \gt 0\) перед суммой квадратов. Минимум суммы от этого не сдвигается.
  • Они уменьшатся вдвое \(\sigma\) масштабирует значение \(l(w)\), а не веса.
  • Задачу придётся решать заново с другой функцией ошибки Функция ошибки та же: SSE. От \(\sigma\) в ней ничего не осталось.
  • Модель станет подгонять шум Это про переобучение, а не про значение \(\sigma\); к тому же минимум SSE не изменился.

Targets равны 0 или 1, на выходе сети sigmoid, а обучают её на сумме квадратов. Какое предположение о данных при этом молча сделано?

  • \(t_n \sim Be(g(x_n|w))\) Это предположение привело бы к cross-entropy, а не к квадратам.
  • \(t_n = g(x_n|w) + \epsilon_n\) с гауссовым шумом Квадрат появляется только из показателя Gaussian. Для меток 0/1 это неправдоподобная история: \(0.8\) плюс гауссов шум не даёт ровно 0 или 1.
  • Никакого: сумма квадратов универсальна У каждой функции ошибки внутри есть модель шума, даже если её не называли вслух.
  • Классы линейно разделимы Разделимость — свойство данных и модели, к виду функции ошибки отношения не имеет.

Два примера с \(t = 1\). Первому модель дала \(g = 0.5\), второму \(g = 0.01\). Во сколько раз слагаемое cross-entropy у второго больше?

  • В 50 раз, как отношение вероятностей Штраф — логарифм вероятности, а не сама вероятность.
  • Примерно в 2 раза \(-\ln 0.5 = 0.69\), \(-\ln 0.01 = 4.61\): отношение заметно больше двух.
  • Примерно в 6.6 раза: \(4.61\) против \(0.69\) \(-\ln 0.01 = 4.61\), \(-\ln 0.5 = 0.69\). А при \(g \to 0\) штраф растёт без предела.
  • Одинаково: оба примера классифицированы неуверенно \(g = 0.01\) — это уверенное «ноль» при настоящей единице, худший случай для cross-entropy.

Три класса, one-hot target \(\vb{t} = (0, 1, 0)\), выходы softmax \((0.7, 0.2, 0.1)\). Чему равно слагаемое cross-entropy для этого примера?

  • \(-\ln 0.7 = 0.36\) 0.7 — вероятность самого вероятного класса, но правильный класс — второй.
  • \(-\ln 0.2 = 1.61\) Из суммы \(\sum_k t_k \log g_k\) выживает только слагаемое правильного класса.
  • \(-(\ln 0.7 + \ln 0.2 + \ln 0.1) = 4.27\) Нули в \(\vb{t}\) выключают слагаемые неправильных классов.
  • Сумма квадратов разностей: \(0.49 + 0.64 + 0.01 = 1.14\) Это сумма квадратов — функция ошибки для гауссова шума, а не для броска кости.

Какие предположения использованы в выводе «maximum likelihood ⇒ SSE»? Отметь все.

  • Примеры независимы Без этого likelihood не был бы произведением.
  • Шум гауссов с нулевым средним Отсюда квадрат в показателе экспоненты и центр колокола в \(g(x_n|w)\).
  • Дисперсия шума известна и одинакова для всех примеров Поэтому \(1/2\sigma^2\) выносится за сумму и исчезает.
  • Модель \(g(x|w)\) линейна по \(w\) Вывод нигде не использует вид \(g\): он одинаков для прямой и для сети.
  • Входы \(x_n\) распределены нормально Про распределение входов не предполагалось ничего: модель описывает \(t_n\) при данном \(x_n\).

Унести с собой

Что посмотреть и почитать