Глубокое обучение

MLP

Многослойный перцептрон

актуальноТекущий рабочий стандарт

Направления: Глубокое обучение · Нейросети

Несколько полносвязных слоёв с нелинейностями — универсальный аппроксиматор функций.

Ключевые тезисы

  • Без нелинейной любая глубина сворачивается в одно линейное преобразование.
  • Глубина обычно эффективнее ширины при том же числе параметров.
  • Используется как «голова» поверх свёрточных и .

Какую задачу решает

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

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

Почему без нелинейности глубина бесполезна

Пусть слои линейны: , , . Тогда , где — одна . Сколько бы слоёв вы ни поставили, модель остаётся линейной регрессией — только с более медленным обучением. Достаточно вставить между ними , и та же сеть начинает собирать кусочно-линейную границу произвольной сложности.

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

Обозначения
  • предсказание модели
  • истинное значение целевой переменной
  • объект: вектор признаков
Пример

Вход 100 , скрытые слои 64 и 32, выход 1. Параметров: , затем , затем — итого 8 545.

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

Сколько бы слоёв вы ни поставили, без нелинейности между ними получится одна . Именно делает глубину осмысленной.

-4-2024-10123xf(x)производная
f(-2)0.000
f(2)2.000
f′(-4)0.0000
f′(4)1.0000
Функция активации
Сравните функции активации и их производные: у сигмоиды градиент затухает на краях, у ReLU — нет

Где применяется

  • Голова поверх даёт , или предобученная модель, а MLP превращает их в предсказание. Это самая частая роль MLP сегодня.
  • Feed-forward внутри Две трети параметров типового — это MLP внутри каждого блока: он и хранит фактические знания модели.
  • Табличные данныеРаботает, но в среднем проигрывает градиентному бустингу — на таблицах MLP берут, когда нужен единый end-to-end с категорий.
  • Суррогатные моделиЗамена дорогого физического симулятора быстрой сетью: вход — параметры, выход — результат расчёта.

Плюсы, минусы и альтернативы

Плюсы

  • Универсальность: одна архитектура для регрессии, классификации и .
  • Никаких предположений о структуре входа — годится там, где нет ни решётки, ни последовательности.
  • Отлично ложится на : обучение и — это плотные матричные умножения.
  • Легко пристыковывается к любой другой сети как голова.

Минусы

  • Не использует структуру данных: соседние пиксели для MLP не соседние, порядок слов не важен.
  • Число параметров растёт как произведение размеров слоёв — на изображениях это сразу неподъёмно.
  • На табличных задачах обычно уступает бустингу и требует куда более аккуратной подготовки данных.
  • Чувствителен к масштабу : без обучение идёт плохо.
  • Легко переобучается, если данных мало — нужны , и .

Брать, если

  • уже готовы и структуры (решётки, последовательности, ) в них нет.
  • Нужна голова поверх выходов другой сети.
  • Нужен быстрый дифференцируемый аппроксиматор внутри более крупной системы.

Не брать, если

  • Данные — изображения: дадут то же качество на порядок меньшим числом параметров.
  • Данные — последовательности: нужен учёт порядка, MLP его игнорирует.
  • Данные — обычная таблица среднего размера: почти всегда лучше и дешевле в настройке.

Чем заменяют

Видеолекции

Записи университетских курсов, где эта тема звучит. Где у записи есть тайм-коды, ссылка открывает её с нужной секунды; где их не проставили — с начала.

Связанные темы

Нейросеть по кирпичикам

Perceptron80%

Перцептрон · Глубокое обучение

Простейший нейрон: взвешенная сумма входов и пороговая функция. Исторический старт всей области.

Activation functions80%

Функции активации · Глубокое обучение

Нелинейности между слоями, без которых сеть не сложнее линейной модели.

Loss functions80%

Функции потерь · Глубокое обучение

Формализуют цель обучения. Выбор потерь важнее выбора архитектуры чаще, чем кажется.

Backpropagation80%

Обратное распространение ошибки · Глубокое обучение

Эффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.

Optimizers80%

Оптимизаторы · Глубокое обучение

Правила обновления весов по градиенту: от чистого SGD до адаптивных методов.

Logistic Regression80%

Логистическая регрессия · Классическое машинное обучение

Линейная модель классификации: сигмоида переводит линейную комбинацию признаков в вероятность класса.

Кому эта тема нужна

Профильная компетенция для ролей: ML Engineer, NLP-инженер, CV-инженер, Исследователь, Инженер речи.

Усиливает профиль: Data Scientist, Инженер рекомендаций.

Следующий шагДальше по связи: PerceptronПростейший нейрон: взвешенная сумма входов и пороговая функция. Исторический старт всей области.Перейти →

Глава «Глубокое обучение» последний раз правилась . Нашли ошибку — напишите.