Мета цієї роботи одна: перестати вірити на слово, що «ReLU краща за сигмоїду», і навчитись показувати числом, у чому саме різниця і де вона зникає. Усі три рівні спираються на ту саму дошку оголошень і ті самі функції з практики.
рівень 1Рівень 1 — База
Повтори дослід із затуханням градієнта, але зміни в ньому одну річ: ширину шарів.
Функція норми_провини з практики бере ширину параметром — прожени її для ширини 8, 32 і 128
при десяти шарах, для сигмоїди й для ReLU.
Для кожного випадку випиши три числа: норму провини першого шару, відношення «перший до останнього» та множник на шар (це відношення в степені 1/9).
Зроблено, якщо: побудована таблиця на шість рядків, і ти відповів одним реченням на питання: чи змінюється множник на шар для сигмоїди зі зміною ширини — і чому саме так. Підказка до відповіді захована в тому, звідки взялася чверть.
рівень 2Рівень 2 — Плюс
Перевір твердження, яке лекція проголосила, але не довела до кінця: He працює для ReLU, Xavier — для tanh, і навпаки вони не працюють.
Перепиши функцію дисперсії_по_шарах так, щоб активація теж була параметром, і побудуй
таблицю на чотири стовпці:
| Xavier | He | |
|---|---|---|
| tanh | ? | ? |
| ReLU | ? | ? |
У клітинках — множник дисперсії на шар (геометричне середнє за десять шарів). Побудуй також графік із чотирма кривими.
Зроблено, якщо: таблиця заповнена числами, і для кожної з чотирьох клітинок написано одне речення, що з цією парою станеться на мережі з тридцяти шарів. Окремо назви, яка з чотирьох комбінацій найгірша, і поясни чому — не «бо так у статті», а через множник.
рівень 3Рівень 3 — Виклик
Побудуй карту виживання ReLU: як частка мертвих нейронів залежить одразу від двох речей — швидкості навчання й масштабу початкових ваг.
Що треба зробити:
- навчи мережу 2 → 64 → 1 на сітці: швидкість навчання з
[0.5, 1, 2, 5, 10, 20, 50], масштаб ваг якмножник × sqrt(2/n_in)змножник ∈ [0.1, 0.5, 1, 2, 5]— усього 35 запусків; - для кожного запуску запиши частку мертвих нейронів і точність;
- намалюй теплову карту
imshow: рядки — масштаб, стовпці — швидкість навчання, колір — частка мертвих; - окремо познач на карті клітинки, де точність вища за 0.92.
Зроблено, якщо: карта побудована, і ти сформулював письмово дві межі, які на ній видно: (1) за яким приблизно добутком «крок × масштаб» починають масово вмирати нейрони і (2) чи існує на карті область, де нейрони живі, а точність усе одно погана. Якщо існує — поясни, що саме там заважає навчанню, якщо ні — покажи, що її нема.
Підказки
- Рівень 1. Множник на шар для сигмоїди складається з двох частин: похідної активації
й множення на матрицю ваг. Ініціалізація Xavier робить другу частину близькою до одиниці
за будь-якої ширини — саме тому вона й залежить від
n_in. - Рівень 2. Дисперсія
tanhне збігається з дисперсією передактивації:tanhтеж стискає сигнал, просто не обнуляючи його. Тому «правильний» множник для пари tanh + Xavier може вийти не рівно 1.0, а трохи меншим — це нормально, головне порядок величини. - Рівень 3. 35 запусків по 300 епох — це довго, якщо писати цикл наївно. Скороти кількість епох до 150: межа виживання видно вже там, бо нейрони гинуть у перші десятки кроків.
- Якщо на будь-якому рівні числа виглядають дивно — спершу надрукуй дисперсію активацій першого шару. Половина «дивних» результатів пояснюється тим, що вхід забули стандартизувати.