Несколько полносвязных слоёв с нелинейностями — универсальный аппроксиматор функций.
Ключевые тезисы
- Без нелинейной любая глубина сворачивается в одно линейное преобразование.
- Глубина обычно эффективнее ширины при том же числе параметров.
- Используется как «голова» поверх свёрточных и .
Какую задачу решает
MLP решает задачу, на которой споткнулся : приблизить произвольную зависимость между входом и выходом, а не только линейную. Достигается это стопкой полносвязных слоёв, между которыми стоят нелинейности.
Теорема об универсальной аппроксимации говорит, что уже одного скрытого слоя достаточной ширины хватает для приближения любой непрерывной функции на компакте с любой точностью. Но теорема ничего не обещает про то, сколько нейронов понадобится и найдёт ли их спуск, — поэтому на практике выигрывает глубина, а не ширина.
Пусть слои линейны: , , . Тогда , где — одна . Сколько бы слоёв вы ни поставили, модель остаётся линейной регрессией — только с более медленным обучением. Достаточно вставить между ними , и та же сеть начинает собирать кусочно-линейную границу произвольной сложности.
Подробный разбор
- предсказание модели
- истинное значение целевой переменной
- объект: вектор признаков
Вход 100 , скрытые слои 64 и 32, выход 1. Параметров: , затем , затем — итого 8 545.
Теорема об универсальной аппроксимации говорит, что достаточно широкой сети с одним скрытым слоем хватит для приближения любой непрерывной функции. Но «достаточно широкой» может означать экспоненциально много нейронов — на практике глубина эффективнее ширины.
Сколько бы слоёв вы ни поставили, без нелинейности между ними получится одна . Именно делает глубину осмысленной.
Где применяется
- Голова поверх даёт , или предобученная модель, а MLP превращает их в предсказание. Это самая частая роль MLP сегодня.
- Feed-forward внутри Две трети параметров типового — это MLP внутри каждого блока: он и хранит фактические знания модели.
- Табличные данныеРаботает, но в среднем проигрывает градиентному бустингу — на таблицах MLP берут, когда нужен единый end-to-end с категорий.
- Суррогатные моделиЗамена дорогого физического симулятора быстрой сетью: вход — параметры, выход — результат расчёта.
Плюсы, минусы и альтернативы
Плюсы
- Универсальность: одна архитектура для регрессии, классификации и .
- Никаких предположений о структуре входа — годится там, где нет ни решётки, ни последовательности.
- Отлично ложится на : обучение и — это плотные матричные умножения.
- Легко пристыковывается к любой другой сети как голова.
Минусы
- Не использует структуру данных: соседние пиксели для MLP не соседние, порядок слов не важен.
- Число параметров растёт как произведение размеров слоёв — на изображениях это сразу неподъёмно.
- На табличных задачах обычно уступает бустингу и требует куда более аккуратной подготовки данных.
- Чувствителен к масштабу : без обучение идёт плохо.
- Легко переобучается, если данных мало — нужны , и .
Брать, если
- уже готовы и структуры (решётки, последовательности, ) в них нет.
- Нужна голова поверх выходов другой сети.
- Нужен быстрый дифференцируемый аппроксиматор внутри более крупной системы.
Не брать, если
- Данные — изображения: дадут то же качество на порядок меньшим числом параметров.
- Данные — последовательности: нужен учёт порядка, MLP его игнорирует.
- Данные — обычная таблица среднего размера: почти всегда лучше и дешевле в настройке.
Чем заменяют
Видеолекции
Записи университетских курсов, где эта тема звучит. Где у записи есть тайм-коды, ссылка открывает её с нужной секунды; где их не проставили — с начала.
Связанные темы
Нейросеть по кирпичикам
Perceptron80%
Перцептрон · Глубокое обучениеПростейший нейрон: взвешенная сумма входов и пороговая функция. Исторический старт всей области.
Activation functions80%
Функции активации · Глубокое обучениеНелинейности между слоями, без которых сеть не сложнее линейной модели.
Loss functions80%
Функции потерь · Глубокое обучениеФормализуют цель обучения. Выбор потерь важнее выбора архитектуры чаще, чем кажется.
Backpropagation80%
Обратное распространение ошибки · Глубокое обучениеЭффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.
Optimizers80%
Оптимизаторы · Глубокое обучениеПравила обновления весов по градиенту: от чистого SGD до адаптивных методов.
Logistic Regression80%
Логистическая регрессия · Классическое машинное обучениеЛинейная модель классификации: сигмоида переводит линейную комбинацию признаков в вероятность класса.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Полносвязный слой
: каждый выход зависит от всех входов. Один слой — это набор , считаемых одним матричным умножением.
Разбор ниже: Архитектура и размерностиНелинейность
Без неё стопка слоёв алгебраически схлопывается в одно линейное преобразование, и глубина не даёт ничего.
Разбор ниже: Почему без активации всё разваливаетсяСкрытый слой
Промежуточное представление объекта. Именно тут сеть строит , которые в исходных координатах не заданы.
Разбор ниже: Архитектура и размерностиГолова (head)
Последний слой поверх готовых . В современных архитектурах MLP чаще всего живёт именно в этой роли.
Разбор ниже: Архитектура и размерностиУниверсальная аппроксимация
Один достаточно широкий скрытый слой приближает любую непрерывную функцию — но «достаточно широкий» может означать экспоненциально много нейронов.
Разбор ниже: Почему без активации всё разваливаетсяПрофильная компетенция для ролей: ML Engineer, NLP-инженер, CV-инженер, Исследователь, Инженер речи.
Усиливает профиль: Data Scientist, Инженер рекомендаций.
Глава «Глубокое обучение» последний раз правилась . Нашли ошибку — напишите.