Зачем нужны дополнительные слои?
Один слой объединяет простые подсказки. Могут ли второй, третий или десятый слой построить некоторые правила с меньшим числом нейронов, чем один очень широкий слой?
Мы нарисуем линию в форме крыши палатки, а затем подадим результат на вход тому же правилу ещё раз. Посмотрим, как несколько повторений создают больше вершин.
3.1 Правило, зависящее от расстояния
Приближение радиальных функций · стр. статьи 29–31
Зачем сети может понадобиться несколько слоёв? Представим фонарь посреди круглого сада. Освещение цветка зависит только от расстояния до фонаря, а не от того, слева он или справа.
Рассмотрим условное правило, возвращающее расстояние от начала координат. Точки (3, 4) и (0, 5) находятся на одинаковом расстоянии от начала координат.
Определение / правило статьи
function distances(firstPoint, secondPoint) {
const first = Math.sqrt(firstPoint[0] ** 2 + firstPoint[1] ** 2);
const second = Math.sqrt(secondPoint[0] ** 2 + secondPoint[1] ** 2);
return { first, second };
}
const result = distances([3, 4], [0, 5]);Выберите изменение. Предскажите результат и запустите код.
Лампа и цветок
Условный примерИсследуйте
Найдите другое положение с тем же светом, что в точке 2.
Нажмите на рисунок или используйте кнопки
Лампа в точке 5; сравните расстояния.
Положение: 2; Расстояние: 3; Яркость: 2
Для точки (3, 4) возводим числа в квадрат и складываем: 3×3 + 4×4 = 25. Так как 5×5 = 25, корень равен 5 — это расстояние от (0, 0). В примере с лампой другой центр, в точке 5: цветы в точках 3 и 7 одинаково удалены на 2 единицы и получают одинаковый свет.
Статья строит особое правило, основанное на расстоянии. Трёхслойная сеть может приблизить его при разумном размере. Определённому классу двухслойных сетей для похожей точности требуется экспоненциально больше скрытых нейронов: их число может расти повторным умножением по мере увеличения размера задачи.
Это математическое разделение для специально построенных целевой функции и распределения при предположениях теоремы. Оно не утверждает, что каждая глубокая сеть превосходит каждую неглубокую.
3.2 Простые участки и много слоёв
Глубокие сети с активацией ReLU · стр. статьи 31–32
ReLU использует только прямолинейные части: сохраняет положительные значения и обрезает отрицательные. Объединив несколько слагаемых ReLU, можно заставить линию подняться, повернуть и опуститься, как маленький шатёр.
Объедините два слагаемых ReLU в функции «шляпа» из статьи, определённой для входов от 0 до 1. Попробуйте 0, 0.5 и 1.
Формула из статьи
function tent(value) {
return 2 * Math.max(0, value) - 4 * Math.max(0, value - 0.5);
}
function tentExamples(value, inputs) {
const examples = [];
for (const input of inputs) examples.push(tent(input));
return { output: tent(value), examples };
}
const result = tentExamples(0.5, [0, 0.5, 1]);Выберите изменение. Предскажите результат и запустите код.
Правило лампы
Условный примерИсследуйте
Найдите самое яркое положение от 0 до 4.
Нажмите на рисунок или используйте кнопки
Сравните положения вокруг пика.
Положение: 1; Яркость: 1
Возьмём x = 0.25. Первая часть даёт 2×0.25 = 0.5; во вторую попадает 0.25 − 0.5 = −0.25, поэтому ReLU даёт 0. Значит, h(0.25) = 0.5. При x = 0.75 части дают 1.5 и 4×0.25 = 1, поэтому h(0.75) тоже равно 0.5. Подадим 0.5 снова на вход: h(0.5) = 1. При повторении правила число вершин может удвоиться.
Иллюстрация с лампой показывает похожий подъём и спад в другом масштабе: от 0 до 4 с вершиной в 2. Шатёр статьи идёт от 0 до 1 с вершиной в 0.5. В следующем задании выход шатра на отрезке от 0 до 1 снова подаётся в то же правило.
Эта эффективность помогает некоторым глубоким сетям приближать криволинейные функции, включая умножение, соединяя множество коротких прямых отрезков. Это утверждение о представлении функции, а не автоматическая гарантия нахождения весов при обучении.
3.3 Другие способы измерить выразительность
Другие понятия выразительности · стр. статьи 32–34
Мы измеряли сети по тому, насколько точно они могут соответствовать цели. Другой способ оценить их возможности — подсчитать, сколько раз направление кривой выхода может измениться.
Пройдём от 0 до 3, затем вернёмся к 1: три шага вперёд и два назад. Сложим оба расстояния, чтобы измерить весь путь, а не только расстояние между его концами.
Определение / правило статьи
function journey(middle, end) {
const length = Math.abs(middle) + Math.abs(end - middle);
return { length, netChange: end };
}
const result = journey(3, 1);Выберите изменение. Предскажите результат и запустите код.
Сложите путь
Условный примерИсследуйте
Сгибайте лист, чтобы получить 8 прямых участков.
Нажмите на рисунок или используйте кнопки
Каждый сгиб удваивает число частей.
Шаги: 1; Число частей: 2
Один шатёр состоит из двух прямых отрезков. Если снова пропустить его выход через то же правило, получится четыре; ещё раз — восемь. После k повторений у этого построенного правила 2^k отрезков; это не число всех функций, которые может создать сеть из k слоёв.
Каждый нейрон ReLU меняет поведение, когда его взвешенный вход пересекает ноль. Слои, поставленные друг за другом, могут разделять и складывать пространство на множество областей, где сеть следует разным линейным правилам.
Статья также изучает, как кривая в пространстве входов может растягиваться при прохождении через случайные слои. Такие результаты требуют конкретных предположений об инициализации; сложная кривая на рисунке сама по себе не является теоремой.
Глубина позволяет эффективнее представлять некоторые сложные функции, повторно используя простые вычисления. Но сама по себе она не гарантирует ни точности, ни простого обучения. Следующий вопрос сложнее: что происходит, если вход содержит сотни координат?
Проверьте себя по главе
Независимое учебное объяснение статьи Современная математика глубокого обучения — Юлиус Бернер, Филипп Грос, Гитта Кутиниок, Филипп Петерсен. В примерах используются вымышленные числа, если не указан источник измеренных данных.