Головна Машинне навчання та Нейронні мережі Перцептрон

🧠 Перцептрон

Алгоритм Розенблатта 1958 року в дії: кожна неправильно класифікована точка нахиляє вектор ваг за w ← w + η·y·x. Лінія сходиться на лінійно розділюваних даних і славнозвісно зазнає невдачі на XOR.

Машинне навчання та Нейронні мережі2DСередній60 FPS
perceptron ↗ Відкрити окремо
DRAG · SCROLL · CLICK — керуйте прямо у вікні симуляції.

Про цю симуляцію

Ця симуляція навчає перцептрон — оригінальний алгоритм навчання одного штучного нейрона, розроблений Френком Розенблаттом, — прямо у вашому браузері на 2D-точках, які ви обираєте самі або генеруєте з готового набору. На кожній неправильно класифікованій точці вектор ваг зсувається за класичним правилом оновлення w ← w + η·y·x, b ← b + η·y, що трохи нахиляє зелену лінію рішення w·x + b = 0, наближаючи її до розділення синього (+1) та червоного (−1) класів, — доки алгоритм не збіжиться, або, як у випадку з XOR, ніколи не збіжиться.

🔬 Що це показує

Один лінійний класифікатор навчається на своїх помилках — по одній точці за раз. Полотно забарвлює площину в синій або червоний колір залежно від того, з якого боку поточної межі рішення w·x + b = 0 прогнозується позитивний чи негативний клас, жовта стрілка — це поточний вектор ваг w у реальному часі, а маленький графік у кутку показує кількість помилок за прохід, тож можна спостерігати, як кількість помилок падає до нуля в міру навчання — або коливається нескінченно на нероздільних даних.

🎮 Як користуватися

Оберіть готовий набір (Дві гаусіани, Лінійна смуга, XOR або Коло у квадраті) або перейдіть у режим Custom і клацайте на полотні, щоб самостійно розставити точки + Positive / − Negative. Налаштуйте швидкість навчання η (0,01–1,0) і Швидкість, потім натисніть Step, щоб застосувати одне оновлення, або Auto-run для безперервного навчання; Reset w обнуляє ваги та зсув, не змінюючи ваші точки. Панель статистики показує ітерацію, кількість помилок за прохід, загальну кількість помилок, компоненти вектора ваг w₁/w₂, зсув b, відступ (margin) і те, чи модель Converged (збіглася).

💡 Чи знали ви?

Теорема збіжності перцептрона гарантує, що якщо дані лінійно розділювані, це саме правило оновлення знайде розділювальну лінію за скінченну кількість кроків, незалежно від початкової ініціалізації ваг. Але спробуйте набір XOR — його чотири точки неможливо розділити жодною прямою лінією, тож перцептрон продовжуватиме помилятися й оновлюватися нескінченно. Історично це та сама межа можливостей, яка загальмувала дослідження нейронних мереж у 1970-х роках, доки не з'явилися багатошарові мережі.

Поширені запитання

Що таке перцептрон?

Перцептрон — найперша навчальна модель одного штучного нейрона, винайдена Френком Розенблаттом у 1958 році. Він приймає вхідний вектор x, обчислює зважену суму w·x + b і видає +1, якщо ця сума не менша за нуль, і −1 в іншому випадку, діючи як лінійний бінарний класифікатор. Це концептуальний предок багатошарових нейронних мереж, які використовуються в сучасному глибокому навчанні.

Як насправді працює правило навчання перцептрона?

Алгоритм перебирає точки в пошуках такої, яку поточні ваги класифікують неправильно, тобто її мітка y і оцінка w·x + b мають протилежні знаки. Коли така точка знайдена, застосовується оновлення w ← w + η·y·x та b ← b + η·y, що безпосередньо зсуває межу рішення в бік правильної класифікації цієї точки. Це повторюється, по одній неправильно класифікованій точці за раз, доки всі точки не будуть класифіковані правильно або не буде досягнуто ліміту ітерацій.

Що насправді означають вектор ваг і лінія рішення?

Лінія рішення — це множина точок, де w·x + b = 0; симуляція малює її зеленим кольором. Усе, що з одного боку, прогнозується як +1, а все, що з іншого — як −1. Жовта стрілка — це сам вектор ваг w, і він завжди перпендикулярний до лінії рішення й вказує в напрямку найшвидшого зростання оцінки w·x + b, тобто в бік позитивного класу.

Чому перцептрон не справляється з набором XOR?

У даних типу XOR позитивні точки розташовані в двох діагонально протилежних областях, а негативні — в інших двох, тож жодна пряма лінія не здатна розділити класи, як би не встановлювалися ваги, — це відома обмеженість «лінійної розділюваності». Оскільки перцептрон може представляти лише одну пряму межу рішення, на цьому наборі він нескінченно продовжуватиме знаходити неправильно класифіковані точки, і графік помилок за прохід ніколи не опуститься до нуля, на відміну від розділюваних наборів Gaussians чи Linear stripe.

Що тут означає «збіжність» і чому це важливо?

Збіжність означає, що поточні ваги класифікують правильно кожну точку набору даних, тож повне сканування не знаходить жодної неправильно класифікованої точки, і навчання зупиняється, а показник Converged перемикається на YES. Теорема збіжності перцептрона доводить, що це обов'язково станеться за скінченну кількість оновлень, якщо дані лінійно розділювані, — це фундаментальний результат теорії машинного навчання, хоча він нічого не каже про те, наскільки великим виявиться відступ (margin) між класами.

Схожі симуляції