Art of DS

Вигляд

Палітра
Тема
Доступ $20 одноразово
Увійти або створити акаунт

Вхід до Art of DSСтворіть акаунт Art of DS

Ми надішлемо на пошту посилання й шестизначний код. Увійти можна будь-яким із них; пароля немає.Введіть свою пошту. Ми надішлемо посилання й шестизначний код, щоб її підтвердити, — пароль не потрібен. Акаунт безкоштовний.

  • Ви повернетеся на цю сторінку, туди, де зупинилися.
  • Уже маєте акаунт? З тією самою адресою ви просто ввійдете.

Продовжуючи, ви приймаєте Умови та Політику конфіденційності.

Ваш акаунт

Безкоштовний акаунтДоступ назавжди

складність 2/5 Безкоштовно

Perceptron

Визначення

Найпростіший нейрон: множить кожен вхід на вагу, додає їх разом зі зсувом і видає 1, якщо сума перевищує поріг, або 0, якщо ні.

Формула
y^={1якщо w⋅x+b>00інакше\hat{y} = \begin{cases} 1 & \text{якщо } \mathbf{w}\cdot\mathbf{x} + b > 0 \\ 0 & \text{інакше} \end{cases}

Інтуїція

Perceptron — це рішення, ухвалене голосуванням. Кожен вхід має голос, і кожен голос має вагу. Складіть зважені голоси, додайте зсув, що схиляє результат у той чи інший бік, і порівняйте суму з порогом. Вище лінії — на виході 1. Нижче — 0.

Це весь механізм. Це найменша конструкція, яку ще можна назвати нейронною мережею, і кожна велика модель побудована з повторення цієї ж форми.

Формальне визначення

Perceptron обчислює скалярний добуток вектора ваг на вектор входів, додає зсув і застосовує до результату порогову функцію. Тут немає ні ймовірності, ні впевненості — вихід жорсткий: 1 або 0.

Як це працює

x₁x₂x₃w₁w₂w₃Σ+ bŷвходивагизважена сумаактиваціявихід
Один прохід через перцептрон. Кожен вхід множиться на свою вагу, результати додаються разом зі зсувом, і сума проходить через порогову функцію, яка видає 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 запитання

Кожну відповідь пояснено: який розділ вона перевіряє і з якого джерела.

Джерела

  1. scikit-learn User Guide — Linear Modelsdocs · звірено 2026-08-29https://scikit-learn.org/stable/modules/linear_model.html
  2. Goodfellow, Bengio, Courville. Deep Learning (2016)bookhttps://www.deeplearningbook.org/
  3. scikit-learn User Guide — Support Vector Machinesdocs · звірено 2026-10-04https://scikit-learn.org/stable/modules/svm.html
  4. scikit-learn User Guide — Stochastic Gradient Descentdocs · звірено 2026-10-04https://scikit-learn.org/stable/modules/sgd.html
  5. scikit-learn User Guide — Probability calibrationdocs · звірено 2026-10-04https://scikit-learn.org/stable/modules/calibration.html

Маєте промокод?

Код зі знижкою 100% одразу відкриває все. Менша знижка віднімається від ціни у вікні оплати: введіть там той самий код.

Написати в підтримку

Питання, проблема з доступом, повернення коштів? Напишіть нам, і ми відповімо листом.

Про що це?

Адресу використаємо лише для відповіді вам.

Повідомлення надіслано

Дякуємо. Відповімо листом на адресу, яку ви вказали.

Або напишіть нам напряму

support@artofds.com

Повідомлення надіслано Дякуємо. Відповімо листом на адресу, яку ви вказали.

Перевірте адресу пошти: вона потрібна, щоб відповісти.

Це наша адреса. Вкажіть свою, щоб відповідь дійшла до вас.

На цю адресу не можна надіслати лист. Перевірте, чи немає помилки.

Напишіть трохи більше: щонайменше 10 символів.

Забагато повідомлень за короткий час. Спробуйте за кілька хвилин.

Не вдалося надіслати повідомлення. Напишіть нам напряму: support@artofds.com