Многослойный персептрон
Архитектура
Как мы выяснили, отдельный нейрон способен моделировать линейную регрессию и линейную классификацию. Однако нейросети способны моделиров ать и более сложные нелинейные зависимости, если слои из нейронов накладывать друг на друга, создавая суперпозиции нелинейных преобразований, как показано ниже:
Это пример многослойного персептрона (multilayer perceptron, MLP), т.е. нейросети, у которой входной слой (input layer) состоит из признаков обрабатываемого объекта , далее следует один или более скрытых слоёв (hidden layers), после чего идет выходной слой (output layer), состоящий из одного и более нейронов, в зависимости от решаемой задачи.
На рисунке выше приведён пример 3-х слойного персептрона с 2-мя скрытыми слоями, поскольку нулевой слой, состоящий из входных признаков при расчёте числа слоёв не учитывается. Можно создавать архитектуры и с большим числом слоёв.
Действие представленной сети на вектор признаков может быть записано аналитически:
где
-
- матрица весов и вектор смещений 1-го слоя;
-
- матрица весов и вектор смещений 2-го слоя;
-
- матрица весов и вектор смещений 3-го (выходного) слоя;
-
- функция нелинейности скрытых слоёв (для разных слоёв может различаться)
-
- функция нелинейности для выходного слоя (зависит от решаемой задачи).
При этом связи строятся только между нейронами соседних слоёв, каждый с каждым, т.е. используются полносвязные слои (fully connected layers, FC).
Обратите внимание, что на каждом слое используется нейрон, выдающий константную единицу (отмечены жёлтым цветом), чтобы моделировать смещение при расчёте взвешенной суммы активаций входных нейронов.
Каждой связи сопоставляется свой настраиваемый вес.
Рассчитайте общее число параметров сети на рисунке.
Поскольку связи строятся каждый с каждым, а тождественная единица только выпускает связи, но не принимает, то
- на первом слое нужно оценить весов,
- на втором - ,
- а на третьем - .
По сути, нейроны скрытых слоёв строят промежуточное признаковое представление (intermediate feature representation) обрабатываемого объекта, а итоговый прогноз строится по извлечённым признакам последнего скрытого слоя, т.е. работает принцип глубокого обучения, когда модель сама подбирает наиболее информативные признаки, составляя их из входных.
При этом промежуточные признаки строятся автоматическ и, поскольку внутри сети настраиваются все веса - и для извлечения промежуточных признаков на скрытых слоях, и для построения итогового прогноза на выходном слое.
Если данных достаточно много, то настроенные промежуточные признаки окажутся более информативными и полезными, чем если бы аналитик строил признаки самостоятельно, а потом к ним применял бы линейную модель.
Если активациями выступают сигмоиды , то каждый нейрон представляет собой логистическую регрессию (со своими параметрами). Нейроны первого слоя реализуют логистические регресии относительно исходных признаков, нейроны следующих слоёв - логистические регрессии относительно прогнозов предыдущих логистических регрессий.
Чем это отличается от многоуровневого стэкинга логистических регрессий?
В стэкинге каждая логистическая регрессия настраивается независимо предсказывать одну и ту же целевую метку класса, после настройки она фиксируется.
В многослойном же персептроне все логистические регрессии настраиваются одновременно, причём учатся предсказывать не метку класса, а такие выходы, которые бы приводили к максимально информативным промежуточным признакам, чтобы по ним потом построить наиболее точный итоговый прогноз.
Какой класс функций будет моделировать многослойный персептрон, если в каждом нейроне использовать тождественную функцию активации ?
Каждый нейрон будет моделировать линейную функцию. Суперпозиция линейных функций будет снова приводить к линейной функции.
Может возникнуть вопрос: зачем тогда использовать подобную суперпозицию? Это целесообразно для регуляризации (упрощения модели), если на скрытых слоях число нейронов будет небольшим.
Рассмотрим для многослойного персептрона на рисунке. Тогда общее число оцениваемых параметров будет 85. Если бы мы исключили скрытые слои, то общее число связей и весов было бы , т.е. более глубокая модель получилась проще!
Этот пример иллюстрирует, что глубокие нейросети (с большим числом слоёв) могут не только эффективнее решать задачи, оперируя более сложными нелинейными зависимостями, но и содержать меньшее число параметров за счёт переиспользования одних и тех же промежуточных признаков.
Построение полезных промежуточных признаков ых описаний объектов называется обучением представлений (representation learning).
Обобщение архитектуры
Из физической природы задачи и для упрощения настройки нейронные сети можно строить не только в виде многослойного персептрона, но и с произвольной топологией (расположением связей), например, такой: