Многослойный персептрон. Классификация и регрессия

Многослойные персептроны могут использоваться для классификации и регрессии. Многослойные персептроны (MLP) также называют простыми (vanilla) нейронными сетями прямого распространения.

Многослойные персептроны могут использоваться для классификации и регрессии. Многослойные персептроны (MLP) также называют простыми (vanilla) нейронными сетями прямого распространения.

MLP можно рассматривать как обобщение линейных моделей.

В MLP процесс вычисления взвешенных сумм повторяется несколько раз. Происходит вычисление взвешенной суммы входов для каждого элемента скрытого слоя, к ней применяется функция активации – обычно используются нелинейные функции выпрямленный линейный элемент (rectified linear unit или relu) или гиперболический тангенс (hyperbolic tangent или tanh).

activation=’tanh’

По умолчанию MLP использует 100 скрытых узлов. Можно изменять

hidden_layer_sizes=[10, 10]

Возможна настроить сложность нейронной сети с помощью l2 штрафа, чтобы сжать весовые коэффициенты до близких к нулю значений, аналогично как это делается в гребневой регрессии и линейных классификаторах. В MLPClassifier за это отвечает параметр alpha (как и в моделях линейной регрессии). По умолчанию установлено очень низкое значение (небольшая регуляризация).

Веса в нейронной сети задаются случайным образом перед началом обучения и случайная инициализация влияет на процесс обучения модели.

Наиболее важными параметрами являются число слоев и число скрытых блоков в одном слое. Целесообразно начать с одного или двух скрытых слоев. Количество узлов на скрытом уровне часто аналогично числу входных функций.

Алгоритм, который используется для вычисления весов задается с помощью параметра solver. Существует два простых в использовании алгоритма. Алгоритм ‘adam’, выставленный по умолчанию, дает хорошее качество в большинстве ситуаций, но весьма чувствителен к масштабированию данных (поэтому важно отмасштабировать данные так, чтобы каждая характеристика имела среднее 0 и дисперсию 1).

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

solver=’lbfgs’

Существует также более продвинутая опция ‘sgd’. Опция ‘sgd’ имеет большее количество

Источники

Андреас Мюллер, Сара Гвидо «Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными.», Москва, 2016-17

https://scikit-learn.org

Добавить комментарий