ГоловнаСтаттіМашинне навчання

Перцептрон: Навчання лінії, крок за кроком

Оновлювальне правило Робельта 1958 року змушує вектор ваги змінюватися після кожного невідрізненного прикладу до тих пір, поки пряма лінія не розділяє класи - і назавжди зупиняється, коли дані не можуть бути розділені лінією.

mysimulator teamОновлено — червень 2026≈ 7 хв читання▶ Відкрити симуляцію

Нейрон, який лише каже «так» або «ні»,

Перцептрон Френка Розенблата (1958) є предком сучасного штучного нейрона: він приймає вектор вхідних даних x, обчислює зважену суму плюс зміщення та пропускає результат через жорсткий поріг. Якщо сума позитивна, він активується (вихід +1); інакше – ні (вихід -1 або 0, залежно від конвенції). Геометрично, вектор ваги w та зміщення b визначають гіперплощину, яка розрізає простір вхідних даних на дві частини, а перцептрон просто повідомляє, на якій стороні знаходиться точка.

The perceptron computes a weighted sum of the inputs and then applies a step function to determine the output. The step function is defined as follows: if the weighted sum is greater than or equal to zero, the output is 1; otherwise, the output is 0.

predict(x) = sign( w·x + b )     // +1 if w·x + b > 0, else −1

decision boundary:  w·x + b = 0    (a line in 2D, a hyperplane in general)

Правило навчання: лише неправильні відповіді зсувають лінію

Навчання свідомо мінімальне. Представляйте один приклад із позначкою (x, y) поодинці, де y = +1 або -1. Якщо поточні ваги вже класифікують його правильно, нічого не робіть. Якщо вони помиляються, трохи відрегулюйте ваги у напрямку, який би зробив цей приклад більш правильним:

для кожного навчального прикладу (x, y): якщо знак(w·x + b) != y: // неправильно класифіковано w ← w + eta * y * x // eta = швидкість навчання b ← b + eta * y // правильно класифіковані точки не викликають жодного оновлення Кожне оновлення трохи повертає межу рішення в напрямку правильної сторони неправильно класифікованого прикладу, ніколи не торкаючись прикладів, які модель вже правильно класифікує. Повторюйте перегляд навчального набору (повний перегляд є "епохою") та, за правильних умов, лінія врешті-решт встановиться там, де кожен приклад правильно класифіковано.

for each training example (x, y):
  if sign(w·x + b) != y:            // misclassified
    w ← w + eta * y * x              // eta = learning rate
    b ← b + eta * y
// correctly classified points cause no update at all
жива демонстрація · пов'язана симуляція● LIVE

Теорема збіжності перцептрона

Теорема збіжності перцептрона, доведена не завдяки довгому часу після того, як Розенblatt представив алгоритм, гарантує, що якщо навчальні дані лінійно розділені – тобто деяка гіперплощина справді розміщує всі позитивні приклади на одній стороні та всі негативні приклади на іншій – то цей простий метод, заснований на помилках, знаходить таку гіперплощину за кінцевою кількістю оновлень, і межа цієї кількості залежить лише від маржі між двома класами та розміру даних, не залежно від того, скільки ознак існує. Це було справді вражаюче результатом у 1958 році: простого правила оновлення з жорсткою гарантією збіжності.

Стіна: XOR та Мінскі і Паперт

Гарантія має відповідний режим невдачі. Якщо жодна гіперплощина не розділяє класи, ваги ніколи не збігаються – вони продовжують коливатися, виправляючи одну помилку ціною створення іншої, назавжди. Підручний приклад — функція XOR: її чотири точки (0,0)→0, (0,1)→1, (1,0)→1, (1,1)→0 мають два позитивні точки на протилежних кутах одиничного квадрата, тому жодна пряма лінія не може ізолювати їх від двох негативних точок. Книга Мінскі та Паперта «Perceptrons» 1969 року довів цей обмежений характер суворо і часто вважається причиною охолодження фінансування та інтересу до нейронних мереж понад десятиліття – період, який часто називають першою штучною зимою.

Шлях до вирішення: створюємо шари

Виправлення, яке зрозуміло Мінксі та Партерту в принципі, полягає у ланцюгуванні перцептроподібних одиниць у шарах: прихований шар може розділити простір вхідних даних на частини, які потім об'єднує вихідна одиниця, а вже дві приховані одиниці достатньо для розв’язання XOR, малюючи дві лінії замість однієї. Те, що бракувало до 1980-х, був практичний спосіб навчання прихованих шарів, оскільки просте правило, засноване на помилках, нічого не говорить про одиниці, які не безпосередньо підключені до позначеного виходу. Заміна жорсткого порогу на гладку активаційну функцію та навчання методом градієнтного спуску через ланцюг – зворотне поширення – є ідеєю, яка перетворила одно-нейрон Розенблатта в глибокі мережі, які використовуються сьогодні.

Frequently asked questions

Чи завжди збігається перцептрон?

Лише якщо навчальні дані лінійно розділені - якщо існує гіперплощина, яка розміщує всі позитивні приклади на одній стороні та всі негативні приклади на іншій. Коли це умова виконується, теорема про збіжність перцептрона гарантує, що алгоритм знайде таку гіперплощину за кінцевою кількістю оновлень. На нерозділених даних ваги ніколи не стабілізуються і продовжують коливатися назавжди.

Чому перцептрон не може навчитися XOR?

Чотири точки XOR не лінійно розділені: жодна пряма лінія не може розмістити обидва праві виходи на одній стороні та обидва хибні виходи на іншій, оскільки справжні точки знаходяться у протилежних кутах квадрата вхідних даних. Перцептрон може лише малювати одну пряму межу рішень, тому жодне встановлення його ваг не вирішує XOR - для вигину межі в дві лінії потрібно принаймні один прихований шар.

Чи є сучасна нейронна мережа просто великою кількістю перцептронів?

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

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте The Perceptron і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію The Perceptron

Що ви знайшли?

Додати кроки відтворення (опційно)