складність 2/5 Безкоштовно
Perceptron
Найпростіший нейрон: множить кожен вхід на вагу, додає їх разом зі зсувом і видає 1, якщо сума перевищує поріг, або 0, якщо ні.
Інтуїція
Perceptron — це рішення, ухвалене голосуванням. Кожен вхід має голос, і кожен голос має вагу. Складіть зважені голоси, додайте зсув, що схиляє результат у той чи інший бік, і порівняйте суму з порогом. Вище лінії — на виході 1. Нижче — 0.
Це весь механізм. Це найменша конструкція, яку ще можна назвати нейронною мережею, і кожна велика модель побудована з повторення цієї ж форми.
Формальне визначення
Perceptron обчислює скалярний добуток вектора ваг на вектор входів, додає зсув і застосовує до результату порогову функцію. Тут немає ні ймовірності, ні впевненості — вихід жорсткий: 1 або 0.
Як це працює
Порядок в анімації має значення. Рішення не ухвалюється, доки до суматора не надійдуть усі зважені входи, — perceptron не може спрацювати «частково». Поріг у кінці — саме те, що робить його класифікатором, а не регресією: він відкидає величину суми й лишає лише те, з якого боку від нуля вона опинилася.
Навчання так само різке. Perceptron оновлює ваги лише тоді, коли помиляється на прикладі [1, §1.1.13.1]. Правильний прогноз не змінює нічого. Там, де модель, підігнана найменшими квадратами, коригує коефіцієнти на кожному спостереженні, ця модель ігнорує все, з чим уже справляється, і рухається лише на помилках.
Де застосовується
Самостійно — рідко, але він є опорою в трьох місцях:
- Як будівельний блок. Складіть такі нейрони в шари — і отримаєте нейронну мережу прямого поширення, з якої починається сучасна галузь [2, §6.1].
- Масштабна лінійна класифікація. scikit-learn лишає його як швидкий варіант для великих обсягів: він не потребує темпу навчання й не застосовує регуляризації, тому навчається трохи швидше за SGD із hinge loss і дає розрідженіші моделі [1, §1.1.13.1].
- Навчання людей. Це найкоротший шлях до розуміння ваг, зсуву, активації та циклу навчання, бо жодне з них тут не приховане.
Чому і коли
Беріть його, коли потрібна найменша можлива модель із прямою межею на великому наборі даних і без налаштування. Немає темпу навчання, який треба обирати [1, §1.1.13.1], — а це найпоширеніше джерело метушні.
Беріть щось інше майже в усіх інших випадках. Perceptron не дає ні ймовірності, ні відступу, ні гарантії доброї межі — лише якусь межу, якщо вона існує. Логістична регресія з більшою ймовірністю дає добре відкалібровані ймовірності для задачі тієї самої форми [5, §1.16.1], а лінійний SVM — найширший роздільний відступ, а не перший знайдений [3, §1.4.7].
Практичний приклад
Python 17 рядків Показати код Сховати код
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import Perceptron
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=0
)
# Масштабування важливе: perceptron походить від SGD, а SGD чутливий до
# масштабу ознак.
model = make_pipeline(StandardScaler(), Perceptron(random_state=0))
model.fit(X_train, y_train)
print(model.score(X_test, y_test))Вивід
0.9473684210526315Усередині він «походить від SGD» і використовує стохастичний градієнтний механізм scikit-learn [1, §1.1.13.1]. Тут він набирає 0.947 на відкладених даних, і темп навчання обирати не довелося.
Варіанти
| Варіант | Що змінюється | Чому це важливо |
|---|---|---|
| Логістична регресія | Сигмоїда замість порога | Дає ймовірність, а не лише бік |
| Лінійний SVM | Максимізує відступ | Обирає найкращу межу, а не першу |
| Багатошаровий perceptron | Шари нейронів, гладкі активації | Може подати межі, недосяжні для одного нейрона |
Останній рядок — найважливіший. Один perceptron ріже простір лише одним прямим розрізом, тож будь-яка задача, класи якої не розділити однією прямою, йому недоступна. Саме складання шарів із нелінійними активаціями знімає це обмеження — стандартна демонстрація цього є приклад з XOR [2, §6.1].
Типові помилки
Масштабуйте ознаки. Perceptron походить від SGD, а SGD «чутливий до масштабу ознак»: ознака в тисячах домінуватиме над ознакою в частках просто через одиниці виміру [4, §1.5.7].
Він збігається лише на лінійно роздільних даних. Він оновлюється лише на помилках [1, §1.1.13.1], а якщо прямої
межі не існує, помилка знайдеться завжди, тож ваги ніколи не стабілізуються. scikit-learn зупиняє його після max_iter
проходів або коли втрата перестає зменшуватися на tol, і повертає те, де він
опинився. Він не падає з помилкою; він просто ніколи не збігається.
Вихід — не впевненість. Вихід 1 від perceptron означає «з цього боку лінії», а не «ймовірно, цей клас» [5, §1.16]. Прочитати її як упевненість — помилка, яку порогова функція робить дуже легкою.
Ще не прочитаноДочитайте сторінку до кінця — і вона вважатиметься прочитаною.
Зберігайте свій прогресЗ доступом назавжди кожна дочитана сторінка позначається, і ви продовжуєте з того місця, де зупинилися, на всіх своїх пристроях.
Відкрити доступПеревірте себе
3 запитання
Кожну відповідь пояснено: який розділ вона перевіряє і з якого джерела.
Джерела
- scikit-learn User Guide — Linear Modelsdocs · звірено 2026-08-29https://scikit-learn.org/stable/modules/linear_model.html
- Deep Learning (2016)bookhttps://www.deeplearningbook.org/
- scikit-learn User Guide — Support Vector Machinesdocs · звірено 2026-10-04https://scikit-learn.org/stable/modules/svm.html
- scikit-learn User Guide — Stochastic Gradient Descentdocs · звірено 2026-10-04https://scikit-learn.org/stable/modules/sgd.html
- scikit-learn User Guide — Probability calibrationdocs · звірено 2026-10-04https://scikit-learn.org/stable/modules/calibration.html