Современная математика глубокого обученияобъяснение для тех, кто не занимается математикой

За пределами тренировочных примеров

У обучаемой модели может быть больше настраиваемых чисел, чем обучающих примеров. Она способна идеально подогнать даже случайно назначенные метки. Похоже на запоминание, а не на обучение.

И всё же некоторые большие нейросети хорошо справляются с новыми данными. В статье обсуждается, какие свойства процесса обучения и найденного правила могут это объяснить.

Как модель определяет пингвина?

Обучение здесь — это измерение диапазонов и среднего для каждого вида. Затем модель выбирает вид, чьё среднее ближе всего.

Эта лаборатория классифицирует по ближайшему среднему вида. Проект в разделе «Понятия» обучает веса с помощью softmax. Те же измерения пингвинов, но разные методы классификации. Предсказания могут различаться.

Реальные измерения; классификатор по ближайшему центру, который можно посчитать вручную, а не глубокая сеть. Данные: Kristen Gorman / Palmer LTER; palmerpenguins, CC0

30405060180200220240 40,6 193
Длина клюва (мм) → · Длина крыла (мм) ↑ · ⊕ Выбранный пингвин
  • ● Адели
  • ▲ Антарктический
  • ■ Папуанский

Выберите пингвина

Длина клюва (мм)
40,6
Длина крыла (мм)
193

Пингвин 1 из 3

Модель ещё не обучена. Обучите модель, чтобы увидеть, как она определяет этого пингвина.
Данные обучения
Вид Пингвины Диапазон длины клюва (мм) Средняя длина клюва Диапазон длины крыла (мм) Средняя длина крыла

Обучите модель, чтобы вычислить диапазоны и средние по 240 обучающим пингвинам.

2.1 Взгляд через сходство

Ядерный режим · стр. статьи 23–24

Изменение одного веса может одновременно изменить ответы для нескольких входов. Например, если первое входное число в одном случае равно 1, а в другом 2, увеличение его веса на 1 повысит ответы на 1 и 2. Признаки показывают, насколько сильно ответы меняются вместе.

Чтобы сравнить два списка, умножим числа на одинаковых местах и сложим: (1, 2) и (2, 1) дают 1×2 + 2×1 = 2 + 2 = 4. Нейронное касательное ядро статьи так сравнивает списки изменений предсказания. В задании с лентой оценка показывает, насколько длина близка к 5. Ни одна из этих оценок не является вероятностью или расстоянием.

Сравните ленты

Условный пример

Исследуйте

Сравните длины лент и получите 10 из 10. Здесь сравниваются длины, а не изменения предсказаний сети.

Нажмите на рисунок или используйте кнопки

Сравнить ленты5 см3 смСходство 6 / 10
Длина ленты (см)

Сейчас: 3 см; Цель: 5 см

В правиле Φ(x, θ) = θ₁x₁ + θ₂x₂ символ θ обозначает список весов. Список (x₁, x₂) показывает, насколько изменится ответ при увеличении каждого веса на единицу. Этот список скоростей изменения называют градиентом.

Перемножаем числа на одинаковых местах и складываем: 1 × 2 + 2 × 1 = 4.

Формула из статьи

Kθ(x1,x2)=(∇θΦ(x1,θ))T∇θΦ(x2,θ)K_\theta(x_1,x_2)=(\nabla_\theta\Phi(x_1,\theta))^T\nabla_\theta\Phi(x_2,\theta)
Kθ((1,2),(2,1))=1⋅2+2⋅1=4K_\theta((1,2),(2,1))=1\cdot2+2\cdot1=4
function similarity(firstGradient, secondGradient) {
  const similarity = firstGradient[0] * secondGradient[0]
    + firstGradient[1] * secondGradient[1];
  return { similarity };
}
const result = similarity([1, 2], [2, 1]);

Выберите изменение. Предскажите результат и запустите код.

Результат:
Включите JavaScript, чтобы запустить пример.

Подробнее в разделе понятий стр. статьи 23 (2.4)

Нейронное касательное ядро сравнивает эти градиенты для двух входов. Для очень широких сетей при определённых условиях инициализации и обучения это сравнение мало меняется в процессе обучения.

В этом режиме списки, показывающие, как предсказания меняются при изменении весов, почти не меняются сами. Обучение тогда примерно похоже на работу более простой модели с почти неизменными признаками, хотя выход сети может зависеть от входов нелинейно. Это называют ядерным режимом или ленивым обучением. Он описывает конкретные условия, а не все полезные сети.

2.2 Размер весов и запас при классификации

Оценки по нормам и теория отступа · стр. статьи 24–25

Подсчёт весов — грубая мера свободы поведения сети. Большая сеть с малыми или иным образом контролируемыми весами может отличаться от сети, чьи веса становятся огромными.

Оценка 6 предсказывает +1, а оценка −6 — −1. Умножим оценку на правильную метку y, равную +1 или −1. Результат M = y×f(x) называется исходным отступом. Положительный отступ означает правильную сторону; чем он больше, тем больше числовой запас. Ноль — особая граница.

Баллы кошки и собаки

Условный пример

Исследуйте

Вычтите 5 очков собаки из оценки кошки. Получите разницу 3.

Нажмите на рисунок или используйте кнопки

КошкаБаллы: 3−+СобакаБаллы: 5Разница баллов3 − 5 = -2Победила собака
Очки кошки
3

Очки: 3 − 5; Разница: -2

Для f(x) = wx без смещения деление исходного отступа на |w| даёт расстояние со знаком: плюс означает правильную сторону границы. При весе 2 и положительном примере в точке 3 исходный отступ равен 6. Делим 6 на 2: до границы в нуле 3 единицы.

Исходный отступ равен 6. Деление на величину веса 2 даёт расстояние со знаком, равное 3.

Упрощённая модель

M=yf(x),γ=ywx∣w∣(f(x)=wx)M=yf(x),\qquad \gamma=\frac{ywx}{|w|}\quad(f(x)=wx)
M=1⋅2⋅3=6,γ=6/2=3M=1\cdot2\cdot3=6,\qquad \gamma=6/2=3
function classificationMargin(weight, value) {
  if (weight === 0) throw new Error('Вес должен быть ненулевым.');
  const score = weight * value;
  const norm = Math.abs(weight);
  return { score, norm, margin: score / norm };
}
const result = classificationMargin(2, 3);

Выберите изменение. Предскажите результат и запустите код.

Результат:
Включите JavaScript, чтобы запустить пример.

Подробнее в разделе понятий стр. статьи 24

Условная оценка кошки 7 баллов против оценки собаки 5 баллов даёт разницу 2 балла. Если изменить оценку кошки на 3, разница станет −2: побеждает собака. Иллюстрация показывает разницу оценок; знаковый отступ статьи использует метку, умноженную на исходную оценку.

Если удвоить положительный вес, оценка и исходный отступ удвоятся, но граница останется в нуле, а расстояние — равным 3. Статья изучает границы, основанные на величине весов и отступах, при определённых условиях; большой отступ сам по себе не гарантирует успеха на новых примерах.

2.3 Путь обучения имеет значение

Оптимизация и неявная регуляризация · стр. статьи 25–27

Две сети могут делать одинаково мало ошибок на обучении, но давать разные предсказания в других точках. Процесс поиска весов может влиять на то, какое из множества подходящих решений мы получим.

Сравним два простых правила: оба подходят для обучающей точки (0, 0), но дают разные ответы на новом входе. Это показывает выбор среди подходящих правил. Результат статьи относится к другой задаче: классификации, где прямая граница может разделить две метки.

Два склона

Условный пример

Исследуйте

Выберите склон с высотой 0,5 посередине. Высоты обоих склонов совпадают в начале и конце.

Нажмите на рисунок или используйте кнопки

Склон площадки0 м2 мПосередине: 1 мСклон площадки0 м2 мПосередине: 0.5 м
Форма склона

Выбрано: Прямая; Высоты обоих склонов совпадают в начале и конце; Высота в середине: 1

Два условных правила возвращают 0 на единственном обучающем входе 0. На новом входе одно возвращает 0, а другое — сам вход.

Одно лишь соответствие обучающим данным не различает эти правила; способ обучения может предпочесть одно из них.

Упрощённая модель

fA(x)=0,fB(x)=xf_A(x)=0,\quad f_B(x)=x
fA(0)=fB(0)=0,fA(1)=0,fB(1)=1f_A(0)=f_B(0)=0,\quad f_A(1)=0,\quad f_B(1)=1
function compareRules(newInput) {
  return { trainingA: 0, trainingB: 0, newA: 0, newB: newInput };
}
const result = compareRules(1);

Выберите изменение. Предскажите результат и запустите код.

Результат:
Включите JavaScript, чтобы запустить пример.

Подробнее в разделе понятий стр. статьи 25

Явный штраф — это стоимость, которую мы добавляем к оценке при обучении. Неявное предпочтение возникает из самого способа поиска, даже без такого штрафа. Например, поиск может предпочесть одно из нескольких подходящих правил. При особых условиях градиентный спуск в простых линейных моделях стремится к малым весам или большому отступу.

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

2.4 Двойной спуск

Пределы классической теории и двойной спуск · стр. статьи 27–29

При слишком малом числе изменяемых чисел модель может пропустить реальную закономерность. Увеличение её свободы поначалу часто помогает. Классическое представление предполагает, что дальнейшее увеличение свободы в итоге создаёт проблемы из-за подгонки под шум.

Но некоторые модели показывают другую кривую. Ошибка на новых примерах может вырасти около точки, где модель впервые подгоняется под все тренировочные метки, а затем снова снизиться при увеличении модели. Статья называет это двойным спуском.

Посчитайте ошибки

Условный пример

Исследуйте

Найдите наименьшую проверенную ошибку после пика на выдуманной кривой.

Нажмите на рисунок или используйте кнопки

Ошибки на новых карточкахНастроек 1 · ошибок 4Десять карточекУсловное сравнение
Размер модели
1

Сейчас: 1; Ошибка: 4

Для двух значений −1 и +1 среднее равно 0. Квадраты расстояний от 0 равны 1 и 1, их среднее равно 1. Такое среднее называется дисперсией. Статья изучает независимо выбранные случайные признаки с дисперсией 1. Их истинные веса равны нулю, поэтому они не несут сигнала о цели. Дисперсия случайного шума тоже равна 1. Результат сравнивает число весов и примеров, когда оба становятся большими.

Значения растут при приближении к порогу и снова падают по другую его сторону.

Упрощённая модель

V(κ)={κ/(1−κ)0<κ<11/(κ−1)κ>1V(\kappa)=\begin{cases}\kappa/(1-\kappa)&0<\kappa<1\\1/(\kappa-1)&\kappa>1\end{cases}
V(1/2)=1,V(3/4)=3,V(3/2)=2,V(3)=1/2V(1/2)=1,\quad V(3/4)=3,\quad V(3/2)=2,\quad V(3)=1/2
function varianceByRatio(ratios) {
  const variance = [];
  for (const ratio of ratios) {
    if (!(ratio > 0) || ratio === 1) {
      throw new Error('Отношение должно быть положительным и не равным 1.');
    }
    if (ratio < 1) variance.push(ratio / (1 - ratio));
    else variance.push(1 / (ratio - 1));
  }
  return { ratios, variance };
}
const result = varianceByRatio([0.5, 0.75, 1.5, 3]);

Выберите изменение. Предскажите результат и запустите код.

Результат:
Включите JavaScript, чтобы запустить пример.

Подробнее в разделе понятий стр. статьи 28

Иллюстрация содержит вымышленные количества ошибок для разных размеров; переместите регулятор и прочитайте значение на графике. Это не экспериментальное свидетельство и не предсказание для вашей сети.

Статья анализирует конкретные случаи линейной регрессии, в которых такое поведение можно вывести математически. Помогают ли дополнительные параметры, зависит от распределения входов, корреляций и алгоритма обучения. Больше не всегда означает лучше.

Мы рассмотрели обучение через сходство, запас при классификации, неявное предпочтение алгоритма обучения и двойной спуск. Эти подходы описывают разные условия, при которых одного размера модели недостаточно для объяснения её поведения. Теперь выясним, что меняет число слоёв.

Проверьте себя по главе

1. Сравните списки изменений предсказания (1, 2) и (2, 1). Сколько будет 1×2 + 2×1?

2. Для кошки оценка кошки равна 7, а собаки — 5. Какова разница?

3. Что описывает двойной спуск?

Независимое учебное объяснение статьи Современная математика глубокого обучения — Юлиус Бернер, Филипп Грос, Гитта Кутиниок, Филипп Петерсен. В примерах используются вымышленные числа, если не указан источник измеренных данных.