Дискретный персептрон
Коротко
Definition
Дискретный персептрон — это простой линейный классификатор, который вычисляет взвешенную сумму входных признаков и применяет пороговую функцию для выбора класса.
Персептрон — одна из ранних моделей машинного обучения и исторически важный предшественник нейронных сетей.
Он решает задачу бинарной классификации:
Модель строит линейную границу между классами. Если данные линейно разделимы, персептрон может найти разделяющую гиперплоскость.

Интуиция
Персептрон можно понимать как искусственный нейрон.
Он делает три шага:
- Умножает каждый признак на свой вес.
- Складывает взвешенные признаки и смещение.
- Применяет пороговую функцию.
Если сумма больше порога, модель выдаёт класс 1. Если нет — класс 0.
Формально:
где:
Формальное описание
| Характеристика | Значение |
|---|---|
| Тип модели | Линейный классификатор |
| Тип обучения | Обучение с учителем |
| Задача | Задачи классификации |
| Тип данных | Чаще всего Табличные данные |
| Целевая переменная |
Персептрон строит линейную разделяющую границу:
По одну сторону границы модель предсказывает класс 1, по другую — класс 0.
Для многоклассовой классификации можно использовать несколько бинарных персептронов, например через подход one-vs-rest.
Входы и выходы
Вход:
где — признаки объекта.
Параметры модели:
- — веса;
- — смещение.
Отклик модели:
Предсказание:
Как обучается
Обучение персептрона основано на простом правиле: если объект классифицирован правильно, веса не меняются. Если объект классифицирован неправильно, веса сдвигаются в сторону правильного ответа.
Алгоритм обучения бинарного персептрона:
- Инициализировать веса и смещение .
- Взять обучающий объект .
- Вычислить предсказание .
- Если предсказание неверное, обновить веса и смещение.
- Повторять по объектам и эпохам до выполнения условия остановки.
Правило обновления:
где:
- — скорость обучения;
- — истинный класс;
- — предсказанный класс.
Если модель должна была предсказать 1, но предсказала 0, то веса сдвигаются в сторону объекта.
Если модель должна была предсказать 0, но предсказала 1, то веса сдвигаются от объекта.
Функция потерь
У классического дискретного персептрона нет гладкой дифференцируемой функции потерь в таком же смысле, как у логистической регрессии или нейронных сетей.
Для анализа можно использовать perceptron criterion: штрафовать только неправильно классифицированные объекты.
Если метки заданы как , а модель использует отклик , то ошибка для неверно классифицированных точек связана с величиной:
Для правильно классифицированных точек штраф равен нулю.
В старой учебной записи это можно понимать как среднюю ошибку персептрона:
где:
- если точка классифицирована правильно, вклад равен
0; - если точка классифицирована неправильно, вклад связан с модулем отклика .
Важно: из-за пороговой функции классический персептрон не выдаёт хорошо откалиброванные вероятности.
Гиперпараметры
Основные гиперпараметры:
- скорость обучения ;
- стратегия изменения скорости обучения;
- использовать ли смещение;
- перемешивать ли данные перед каждой эпохой;
- максимальное число эпох;
- критерий остановки;
- число эпох без улучшения;
- тип регуляризации;
- коэффициент регуляризации.
Скорость обучения влияет на размер обновления весов.
Если слишком большая, обучение может быть нестабильным. Если слишком маленькая — обучение будет медленным.
Подробнее см. Изменение скорости обучения и Обновление параметров.
Когда использовать
Дискретный персептрон полезен:
- как учебная модель для понимания линейной классификации;
- как историческая основа нейронных сетей;
- как простой baseline;
- когда данные примерно линейно разделимы;
- когда важна простота и скорость.
Он хорошо показывает базовую идею обучения весов по ошибкам классификации.
Когда не использовать
Дискретный персептрон плохо подходит, если:
- данные не линейно разделимы;
- нужны вероятности классов;
- важна высокая точность;
- признаки сильно нелинейно взаимодействуют;
- классы сильно пересекаются;
- требуется устойчивая современная модель.
В прикладных задачах чаще используют:
- Логистическая регрессия;
- SVM;
- Дерево решений;
- Случайный лес;
- Градиентный бустинг;
- нейронные сети.
Предсказание
Для бинарной классификации:
Для многоклассовой классификации можно обучить несколько бинарных персептронов через one-vs-rest.
Тогда каждый персептрон отвечает за один класс, а итоговый класс выбирается по максимальному отклику:
Метрики оценки
Персептрон оценивают как обычный классификатор.
Основные метрики:
- accuracy;
- precision;
- recall;
- F1-score;
- confusion matrix;
- ROC-AUC, если есть подходящий score.
Подробнее см. Метрики качества классификаторов и ROC-кривая.
При дисбалансе классов accuracy может быть обманчивой, поэтому важно смотреть precision и recall.
Типичные ошибки понимания
Путать персептрон и многослойную нейросеть
Один дискретный персептрон — это линейный классификатор. Многослойная нейронная сеть строится из многих блоков и нелинейностей.
Думать, что персептрон решает любую классификацию
Один персептрон может разделять только линейно разделимые классы. Например, XOR-задачу один персептрон решить не может.
Ожидать вероятности классов
Классический дискретный персептрон выдаёт класс через пороговую функцию, а не вероятность.
Если нужны вероятности, чаще используют логистическую регрессию.
Игнорировать масштаб признаков
Как и другие линейные модели, персептрон может быть чувствителен к масштабу признаков. Часто нужна стандартизация.
Считать правило обновления обычным градиентным спуском
Правило персептрона похоже на шаг оптимизации, но классическая пороговая функция не является гладкой дифференцируемой функцией. Поэтому это не тот же самый градиентный спуск, что в современных нейросетях.
Минимальный пример
Пусть объект описан двумя признаками:
| Объект | Класс | ||
|---|---|---|---|
| 1 | 1 | 1 | 0 |
| 2 | 2 | 1 | 0 |
| 3 | 4 | 5 | 1 |
| 4 | 5 | 4 | 1 |
Персептрон ищет прямую:
которая разделит объекты класса 0 и класса 1.
Если новый объект имеет признаки:
и отклик модели положительный:
модель предскажет класс 1.
Практические замечания
Хороший workflow:
- Масштабировать признаки.
- Разделить данные на train, validation и test.
- Обучить персептрон как простой baseline.
- Проверить, обучается ли модель на train.
- Оценить качество через Метрики качества классификаторов.
- Сравнить с логистической регрессией и SVM.
- Если данные нелинейные, перейти к более гибким моделям.
Персептрон особенно полезен для понимания того, как веса линейной модели меняются при ошибках классификации.