Головна ШІ та Машинне навчання Навчання Нейронної Мережі

🤖 Навчання Нейронної Мережі

Спостерігайте як зворотне поширення навчає мережу в реальному часі — слідкуйте за вагами та втратою покроково.

ШІ та Машинне навчання2DЛегкий60 FPS
neural-network-training ↗ Відкрити окремо
DRAG · SCROLL · CLICK — керуйте прямо у вікні симуляції.

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

Ця симуляція навчає невелику пряму нейронну мережу — два приховані шари над 2D-входом — на задачі бінарної класифікації повністю у твоєму браузері, тож ти можеш спостерігати, як зворотне поширення та градієнтний спуск перебудовують межу рішення в реальному часі. Обери набір даних, обери оптимізатор і натисни «Навчити», щоб побачити, як мережа вирізає область для кожного класу, поки крива втрат відстежує помилку навчання й валідації.

🔬 Що показано

Кожен крок навчання вибирає міні-пакет, пропускає його через два приховані шари ReLU та сигмоїдний вихід, обчислює бінарну крос-ентропійну втрату L = −Σ[y·log ŷ + (1−y)·log(1−ŷ)] і поширює градієнт назад, щоб оновити кожну вагу. Ліве полотно забарвлює кожен піксель вхідного простору синім чи червоним на основі поточного передбачення мережі, тож межа рішення, що еволюціонує, видима піксель за пікселем, тоді як праве полотно будує криву втрат навчання (синя) проти втрат валідації (червона), щоб ти міг помітити перенавчання в момент розходження цих двох кривих.

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

Обери набір даних (XOR, Кола, Півмісяці чи Спіраль), щоб змінити форму, яку мережа має навчитися розділяти, і налаштуй кількість прихованих вузлів на шар, швидкість навчання η, розмір пакета та L2-регуляризацію λ перед натисканням «Навчити». Перемикай оптимізатор між SGD, Momentum і Adam, щоб порівняти швидкість і стабільність збіжності — Adam використовує скориговані на зміщення оцінки першого й другого моментів (m̂ і v̂) і зазвичай сходиться найшвидше, тоді як звичайний SGD найчутливіший до повзунка швидкості навчання.

💡 Чи знали ви?

Проблему XOR відомо використали Мінскі та Пейперт у 1969 році, щоб показати, що одношаровий перцептрон не може розділити нелінійно роздільні дані — знадобилося повторне відкриття зворотного поширення та прихованих шарів у 1980-х, щоб її розв'язати, тому XOR залишається найменшою можливою демонстрацією того, що глибина (додаткові приховані шари) справді змінює те, що мережа може представити, а не лише наскільки добре вона підлаштовується.

Часті питання

Чому проста мережа не може розв'язати набір даних XOR без прихованих шарів?

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

У чому різниця між SGD, Momentum та Adam у цій симуляції?

Звичайний SGD оновлює кожну вагу на швидкість навчання, помножену на її сирий градієнт, обчислений тут у функції applyOpt як lr * grad. Momentum натомість накопичує експоненційне ковзне середнє минулих градієнтів (0,9 попереднього моменту плюс 0,1 нового градієнта) перед масштабуванням на швидкість навчання, згладжуючи шумні оновлення. Adam йде далі, відстежуючи як оцінку першого моменту m, так і оцінку другого моменту v зі скоригованим зміщенням, потім ділячи ефект швидкості навчання на квадратний корінь із v — це адаптує ефективний розмір кроку для кожного параметра й зазвичай сходиться найшвидше з трьох.

Як за кривою втрат зрозуміти, що модель перенавчається?

Права панель будує втрати навчання синім і втрати валідації червоним на тих самих осях, перераховуючи кожні 10 епох з відкладеного 20% валідаційного розбиття, створеного в makeDataset. Перенавчання видно в момент, коли синя втрата навчання продовжує падати, а червона втрата валідації вирівнюється чи починає зростати — мережа підлаштовується під особливості тренувального пакета, а не під основну закономірність, і збільшення L2-регуляризації λ чи зменшення кількості прихованих вузлів на шар — два елементи керування, що найпряміше протидіють цьому.

Що насправді змінює повзунок L2-регуляризації?

Сила L2-регуляризації λ додається до градієнта кожної ваги в trainStep як lambda * row[j] перед оновленням оптимізатора, що математично еквівалентно легкому стисканню кожної ваги до нуля на кожному кроці (спад ваги). Більші значення λ утримують ваги мережі малими, а її межу рішення — плавнішою, що допомагає на шумних наборах даних, як Півмісяці й Кола, але може завадити мережі підлаштуватися під справді складну межу, як Спіраль, якщо встановити занадто високо.

Чому набору даних Спіраль потрібно більше прихованих вузлів, ніж Колам чи Півмісяцям?

Пресет Спіраль переплітає два класи вздовж закручених спіральних рукавів, що обвиваються навколо початку координат кілька разів, що вимагає межі рішення з набагато більшою кривизною й закрутами, ніж прості форми кільця (Кола) чи півмісяця (Півмісяці). Лише з 16 прихованими вузлами на шар мережа може важко представляти кожен виток спіралі; збільшення кількості прихованих вузлів дає шарам ReLU достатньо незалежних лінійних відрізків, щоб апроксимувати тісні, повторювані вигини межі.

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