В інтерактивних вправах нижче ви глибше дослідите внутрішню роботу нейронних мереж. Спочатку ви побачите, як зміни параметрів і гіперпараметрів впливають на прогнози мережі. Потім ви використаєте отримані знання для навчання нейронної мережі для роботи з нелінійними даними.
Вправа 1
Наступний віджет налаштовує нейронну мережу з такою конфігурацією:
- Вхідний шар з 3 нейронами, що містять значення
0.00 , 0.00 та 0.00 - Прихований шар з 4 нейронами
- Вихідний шар з 1 нейроном
- Функція активації ReLU застосована до всіх вузлів прихованого шару та вихідного вузла
Перегляньте початкове налаштування мережі (примітка: поки що не натискайте кнопки ▶️ або >| ), а потім виконайте завдання під віджетом.
Завдання 1
Значення трьох вхідних ознак для моделі нейронної мережі дорівнюють 0.00 . Клацніть на кожному з вузлів у мережі, щоб побачити всі ініціалізовані значення. Перш ніж натиснути кнопку «Відтворити» ( ▶️ ), дайте відповідь на це запитання:
Яке вихідне значення, на вашу думку, буде отримано: додатне, від'ємне чи 0?
Позитивне вихідне значення
Ви вибрали додатне вихідне значення . Виконайте наведені нижче інструкції, щоб виконати висновок на основі вхідних даних і перевірити, чи маєте ви рацію.
Від'ємне вихідне значення
Ви вибрали від'ємне вихідне значення . Виконайте наведені нижче інструкції, щоб виконати висновок на основі вхідних даних і перевірити, чи маєте ви рацію.
Вихідне значення 0
Ви обрали вихідне значення 0. Виконайте наведені нижче інструкції, щоб виконати висновок на основі вхідних даних і перевірити, чи маєте ви рацію.
Тепер натисніть кнопку «Відтворити» (▶️) над мережею та спостерігайте, як заповнюються всі значення прихованого шару та вихідного вузла. Ваша відповідь вище була правильною?
Натисніть тут для отримання пояснення
Точне вихідне значення, яке ви отримаєте, залежатиме від того, як випадковим чином ініціалізуються параметри ваги та зміщення. Однак, оскільки кожен нейрон у вхідному шарі має значення 0, ваги, що використовуються для обчислення значень вузлів прихованого шару, будуть обнулені. Наприклад, обчислення першого вузла прихованого шару буде таким:
y = ReLU(w 11 * 0,00 + w 21 * 0,00 + w 31 * 0,00 + b)
y = ReLU(b)
Отже, значення кожного вузла прихованого шару буде дорівнювати значенню зміщення (b) ReLU, яке буде 0, якщо b від'ємне, і самому b, якщо b дорівнює 0 або додатне.
Значення вихідного вузла потім буде розраховано наступним чином:
y = ReLU(w 11 * x 11 + w 21 * x 21 + w 31 * x 31 + w 41 * x 41 + b)
Завдання 2
Перш ніж модифікувати нейронну мережу, дайте відповідь на таке питання:
Якщо додати ще один прихований шар до нейронної мережі після першого прихованого шару та надати цьому новому шару 3 вузли, зберігаючи всі вхідні параметри та параметри ваги/зміщення незмінними, на які обчислення інших вузлів це вплине?
Усі вузли мережі, крім вхідних вузлів
Ви вибрали всі вузли в мережі, крім вхідних вузлів . Виконайте наведені нижче інструкції, щоб оновити нейронну мережу та перевірити, чи ви вчинили правильно.
Тільки вузли в першому прихованому шарі
Ви вибрали лише вузли в першому прихованому шарі . Виконайте наведені нижче інструкції, щоб оновити нейронну мережу та перевірити, чи ви впоралися правильно.
Тільки вихідний вузол
Ви вибрали лише вихідний вузол . Виконайте наведені нижче інструкції, щоб оновити нейронну мережу та перевірити, чи ви вчинили правильно.
Тепер змініть нейронну мережу, щоб додати новий прихований шар з 3 вузлами наступним чином:
- Натисніть кнопку + ліворуч від прихованого шару тексту 1 , щоб додати новий прихований шар перед вихідним шаром.
- Двічі натисніть кнопку «+» над новим прихованим шаром, щоб додати до шару ще 2 вузли.
Ваша відповідь вище була правильною?
Натисніть тут для отримання пояснення
Змінюється лише вихідний вузол. Оскільки логічний висновок для цієї нейронної мережі є "прямим" (обчислення виконуються від початку до кінця), додавання нового шару до мережі вплине лише на вузли після нового шару, а не на ті, що передують йому.
Завдання 3
Клацніть другий вузол (зверху) у першому прихованому шарі графа мережі. Перш ніж вносити будь-які зміни до конфігурації мережі, дайте відповідь на таке запитання:
Якщо змінити значення ваги w 12 (відображається під першим вхідним вузлом, x 1 ), на обчислення яких інших вузлів це може вплинути для деяких вхідних значень?
Жоден
Ви обрали «нічого» . Виконайте наведені нижче інструкції, щоб оновити нейронну мережу та перевірити, чи ви впоралися правильно.
Другий вузол у першому прихованому шарі, усі вузли у другому прихованому шарі та вихідний вузол.
Ви вибрали другий вузол у першому прихованому шарі, усі вузли у другому прихованому шарі та вихідний вузол . Виконайте наведені нижче інструкції, щоб оновити нейронну мережу та перевірити, чи ви впоралися правильно.
Усі вузли в першому прихованому шарі, другому прихованому шарі та вихідному шарі.
Ви вибрали всі вузли в першому прихованому шарі, другому прихованому шарі та вихідному шарі . Виконайте наведені нижче інструкції, щоб оновити нейронну мережу та перевірити, чи ви впоралися правильно.
Тепер клацніть у текстовому полі для ваги w 12 (відображається під першим вхідним вузлом, x 1 ), змініть її значення на 5.00 та натисніть Enter. Спостерігайте за оновленнями графіка.
Ваша відповідь була правильною? Будьте уважні під час перевірки своєї відповіді: якщо значення вузла не змінюється, чи означає це, що базовий розрахунок не змінився?
Натисніть тут для отримання пояснення
Єдиний вузол у першому прихованому шарі, на який це впливає, – це другий вузол (той, на якому ви клацнули). Розрахунки значень для інших вузлів у першому прихованому шарі не містять w 12 як параметр, тому вони не зазнають змін. Усі вузли у другому прихованому шарі зазнають змін, оскільки їхні обчислення залежать від значення другого вузла у першому прихованому шарі. Аналогічно, значення вихідного вузла зазнає змін, оскільки його обчислення залежать від значень вузлів у другому прихованому шарі.
Ви думали, що відповідь була «жодна», тому що жодне значення вузла в мережі не змінилося, коли ви змінили значення ваги? Зверніть увагу, що базовий розрахунок для вузла може змінитися без зміни значення вузла (наприклад, ReLU(0) та ReLU(–5) обидва дають вихід 0). Не робіть припущень про те, як це вплинуло на мережу, лише дивлячись на значення вузлів; обов'язково перегляньте також розрахунки.
Вправа 2
У вправах «Перехресні ознаки» в модулі «Категоричні дані» ви вручну побудували перехресні ознаки для підгонки нелінійних даних. Тепер ви перевірите, чи можете ви побудувати нейронну мережу, яка автоматично навчиться підганяти нелінійні дані під час навчання.
Ваше завдання: налаштувати нейронну мережу, яка може відокремити помаранчеві точки від синіх на діаграмі нижче, досягаючи втрати менше 0,2 як на навчальних, так і на тестових даних.
Інструкції:
У інтерактивному віджеті нижче:
- Змініть гіперпараметри нейронної мережі, експериментуючи з деякими з наступних налаштувань конфігурації:
- Додайте або видаліть приховані шари, натискаючи кнопки + та - ліворуч від заголовка «ПРИХОВАНІ ШАРИ» на діаграмі мережі.
- Додайте або видаліть нейрони з прихованого шару, натискаючи кнопки + та - над стовпцем прихованого шару.
- Змініть швидкість навчання, вибравши нове значення з розкривного списку « Швидкість навчання» над діаграмою.
- Змініть функцію активації, вибравши нове значення з розкривного списку «Активація» над діаграмою.
- Натисніть кнопку «Відтворити» (▶️) над діаграмою, щоб навчити модель нейронної мережі, використовуючи задані параметри.
- Спостерігайте за візуалізацією моделі, яка відповідає даним, у міру проходження навчання, а також за значеннями втрат під час тестування та втрат під час навчання в розділі «Вихідні дані» .
- Якщо модель не досягає втрат нижче 0,2 на тестових та навчальних даних, натисніть кнопку «Скинути» та повторіть кроки 1–3 з іншим набором параметрів конфігурації. Повторюйте цей процес, доки не досягнете бажаних результатів.
Натисніть тут, щоб переглянути наше рішення
Нам вдалося досягти втрат нижче 0,2 як у тестах, так і в навчанні завдяки:
- Додавання 1 прихованого шару, що містить 3 нейрони.
- Вибір коефіцієнта навчання 0,01.
- Вибір функції активації ReLU.