Нейронні мережі: інтерактивні вправи

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

Вправа 1

За допомогою віджета, розміщеного нижче, налаштовується нейронна мережа з такою конфігурацією:

  • вхідний шар із трьома нейронами, що містять значення 0.00, 0.00 і 0.00;
  • прихований шар із 4 нейронами;
  • вихідний шар з 1 нейроном;
  • функція активації ReLU застосовується до всіх вузлів прихованого шару й вихідного вузла.

Перегляньте початкові налаштування мережі (примітка: поки не натискайте кнопки ▶️ або >|), а потім виконайте завдання, наведені під віджетом.

Завдання 1

Значення для трьох вхідних ознак моделі нейронної мережі – 0.00. Натисніть кожен із вузлів мережі, щоб переглянути всі ініціалізовані значення. Перш ніж натиснути кнопку▶️, дайте відповідь на запитання, наведене нижче.

Як ви думаєте, яке вихідне значення ми отримаємо: додатне, від’ємне чи 0?
Додатне вихідне значення
Від’ємне вихідне значення
Вихідне значення дорівнює 0

Тепер натисніть кнопку відтворення (▶️) над мережею і спостерігайте, як заповнюються всі значення прихованого шару й вихідних вузлів. Чи правильною була ваша відповідь?

Натисніть тут, щоб дізнатися більше

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

y = ReLU (w11 * 0,00 + w21 * 0,00 + w31 * 0,00 + b)

y = ReLU(b)

Таким чином, значення кожного вузла прихованого шару дорівнюватиме ReLU-значенню упередженості (b), яке становитиме 0, якщо значення b від’ємне, і b, якщо воно дорівнює 0 або додатне.

Значення вихідного вузла обчислюватиметься так:

y = ReLU (w11 * x11 + w21 * x21 + w31 * x31 + w41 * x41 + b)

Завдання 2

Перш ніж змінювати нейронну мережу, дайте відповідь на запитання, наведене нижче.

Якщо після першого прихованого шару додати до нейронної мережі ще один такий шар, а потім створити для нього 3 вузли (при цьому всі вхідні дані й параметри ваги/упередженості залишаються такими самими), які обчислення інших вузлів зміняться?
Це вплине на всі вузли мережі, окрім вхідних
Це вплине тільки на вузли першого прихованого шару
Це вплине тільки на вихідний вузол

Тепер змінімо нейронну мережу, додавши новий прихований шар із 3 вузлами так, як описано нижче.

  1. Натисніть кнопку + зліва біля тексту 1 прихований шар, щоб додати новий такий шар перед вихідним.
  2. Натисніть кнопку + над новим прихованим шаром двічі, щоб додати до нього ще 2 вузли.

Чи правильною була ваша відповідь?

Натисніть тут, щоб дізнатися більше

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

Завдання 3

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

Якщо змінити параметр ваги w12 (він відображається під першим вхідним вузлом x1), на обчислення яких інших вузлів це може вплинути при деяких вхідних значеннях?
Не вплине на інші вузли
На другий вузол першого прихованого шару, усі вузли другого такого шару й вихідний вузол
На всі вузли першого й другого прихованих шарів і вихідного шару

Тепер натисніть у текстовому полі для параметра ваги w12 (він відображається під першим вхідним вузлом x1), змініть його значення на 5.00 і натисніть Enter. Зверніть увагу на те, як змінюється графік.

Чи була ваша відповідь правильною? Уважно перевіряйте відповідь: якщо значення вузла не змінилося, чи означає це, що не змінилися основні розрахунки?

Натисніть тут, щоб дізнатися більше

Другий вузол (той, який ви натиснули) – єдиний, на який впливає перший прихований шар. В обчисленнях значень для інших вузлів першого прихованого шару немає w12 як параметра, тому на них це не впливає. Усі вузли другого прихованого шару буде змінено, оскільки їх розрахунки залежать від значення другого вузла першого такого шару. Те саме стосується значення вихідного вузла, оскільки його обчислення залежать від значень вузлів другого прихованого шару.

Ви подумали, що відповідь – "Не вплине на інші вузли", тому що значення вузлів у мережі лишилися такими самими, коли ви змінили значення ваги? Зверніть увагу, що зміни в основних обчисленнях не завжди помітно по значенню вузла [наприклад, і ReLU(0), і ReLU(–5) дають вихідне значення 0]. Не робіть припущень про вплив на мережу, просто дивлячись на те, чи змінилися значення вузлів. Обов’язково переглядайте обчислення.

Вправа 2

Виконуючи вправи на поєднання ознак з модуля "Категорійні дані" ви вручну поєднували ознаки для нелінійних даних. Тепер ви дізнаєтеся, чи можна побудувати нейронну мережу, яка автоматично навчиться пристосовуватися до нелінійних даних під час навчання.

Завдання. Налаштуйте нейронну мережу, яка зможе відокремити помаранчеві точки від синіх на діаграмі нижче. Втрати мають становити менше ніж 0,2 як для навчальних, так і для тестових даних.

Вказівки

В інтерактивному віджеті нижче виконайте дії, наведені нижче.

  1. Змініть гіперпараметри нейронної мережі, експериментуючи з деякими налаштуваннями конфігурації, указаними нижче.
    • Додайте або видаліть приховані шари, натиснувши кнопку + чи зліва від заголовка ПРИХОВАНІ ШАРИ на діаграмі мережі.
    • Додайте або видаліть нейрони з прихованого шару, натиснувши кнопку + чи над стовпцем прихованого шару.
    • Змініть швидкість навчання, вибравши нове значення зі спадного списку Швидкість навчання над діаграмою.
    • Змініть функцію активації, вибравши нове значення зі спадного списку Активація над діаграмою.
  2. Натисніть кнопку відтворення (▶️) над діаграмою, щоб навчати модель нейронної мережі за вказаними параметрами.
  3. Зверніть увагу на візуалізацію пристосування моделі до даних під час навчання, а також на значення Втрати при тестуванні й Втрати при навчанні, наведені в розділі Вихідні дані.
  4. Якщо модель не досягає втрат, нижчих ніж 0,2, з тестовими й навчальними даними, натисніть кнопку скидання й повторіть кроки 1–3 з іншим набором налаштувань конфігурації. Повторюйте цей процес, доки не досягнете бажаних результатів.

Натисніть тут, щоб дізнатися наше рішення

Ми змогли досягти втрат, нижчих ніж 0,2, під час і тестування, і навчання. Ось як це зробити:

  • додайте 1 прихований шар із 3 нейронами;
  • виберіть швидкість навчання 0,01;
  • виберіть функцію активації ReLU.