Це правда, що важко зрозуміти, чому навчається нейронна мережа, але на цьому фронті було багато роботи. Ми, безумовно, можемо отримати деяке уявлення про те, що шукає наша мережа.
Розглянемо випадок згорткової нейронної сітки для зображень. Для нашого першого шару є тлумачення того, що ми просуваємо фільтри по зображенню, тому наш перший прихований шар відповідає узгодженню між невеликими фрагментами зображення та нашими різними фільтрами. Ми можемо візуалізувати ці фільтри, щоб побачити, який наш перший рівень представлення:K
Ця фотографія є першим шаром фільтрів від AlexNet і взята з цього чудового підручника: http://cs231n.github.io/understanding-cnn/ . Це дозволяє нам інтерпретувати перший прихований шар як навчання уявлення зображення, що складається з неочищених пікселів, як тензор, де кожна координата є узгодженням фільтра з невеликою областю зображення. Наступний шар потім працює з цими активаціями фільтрів.
Перший прихований шар не так важко зрозуміти, тому що ми можемо просто подивитися на фільтри, щоб побачити, як вони ведуть себе, оскільки вони безпосередньо застосовані до вхідного зображення. Скажімо, ви працюєте з чорно-білим зображенням (тому наші фільтри є двовимірним, а не 3D), і у вас є фільтр, подібний до
⎡⎣⎢0101−41010⎤⎦⎥.
Уявіть, що це застосовується до області зображення 3x3 (ігноруючи термін зміщення). Якби кожен піксель був одного кольору, ви отримаєте оскільки вони скасували. Але якщо верхня половина відрізняється від нижньої, скажімо, тоді ви отримаєте потенційно велике значення. Цей фільтр насправді є детектором краю, і ми можемо це зрозуміти, насправді просто застосувавши його до зображень і побачивши, що відбувається. Але набагато складніше зрозуміти глибші шари, оскільки вся проблема полягає в тому, що ми не знаємо, як інтерпретувати те, до чого ми застосовуємо фільтри.0
Цей документ Ерхана та інших (2009) погоджується з цим: вони кажуть, що візуалізації першого шару прихованого шару є загальними (а це було ще в 2009 році), але візуалізація глибших шарів є важкою частиною. З цього паперу:
Основна експериментальна знахідка цього дослідження дуже дивовижна: реакція внутрішнього блоку на вхідні зображення, як функція в просторі зображення, видається одномодальною, або принаймні, що максимум знайдено надійно та послідовно для всіх перевірених випадкових ініціалізацій . Це цікаво тим, що знайти цей домінуючий режим відносно просто, а його показ потім дає хорошу характеристику того, що робить одиниця.
Кріс Олах та інші ( https://distill.pub/2017/feature-visualization/ ) будують на цьому і обговорюють, як взагалі можна (1) створювати зображення, що призводять до великих активацій, щоб зрозуміти, що таке мережа шукає; або (2) зробити фактичні вхідні зображення та подивитися, як різні частини зображення активують мережу. Цей пост присвячений (1).
На зображенні нижче, взятому із тієї пов’язаної статті Олаха та ін., Автори обговорюють різні аспекти мережі, які можна оглянути. Найбільш ліве зображення показує результат оптимізації активації певного нейрона над вхідним простором зображення тощо.
Я настійно рекомендую прочитати цю статтю в повному обсязі, якщо ви хочете глибше зрозуміти це, і прочитавши його посилання, ви повинні добре зрозуміти, що з цим було зроблено.
Тепер, звичайно, це було лише для зображень, де ми, як люди, можемо мати сенс вхідних даних. Якщо ви працюєте з чимось складніше інтерпретувати, як-от просто великий вектор чисел, ви, можливо, не зможете зробити такі круті візуалізації, але в принципі ви все-таки можете розглянути ці методи оцінки різних нейронів, шарів тощо. .