Основи ШІ

Що таке CNN (згорткові нейронні мережі)?

mm
Додайте Unite.AI до бажаних джерел у Google

A згорткова нейронна мережа (CNN) — це архітектура нейронних мереж, яка використовує навчені фільтри на локальних ділянках вхідних даних. CNN стали фундаментальними для сучасного комп’ютерного зору, оскільки вони можуть виявляти шаблони незалежно від їхнього розташування та повторно використовувати однакові параметри по всьому зображенню.

CNN не перетворює зображення з нечислової форми у числову — зображення вже надходить у вигляді тензора піксельних значень. Її мета — перетворити цей тензор у карти ознак, корисні для класифікації, виявлення, сегментації чи іншого завдання.

Key takeaways

  • Згортка поєднує локальні вхідні значення з навчальним ядром, створюючи карту ознак.
  • Крок, доповнення, розширення та пулінг керують просторовою роздільною здатністю та рецептивним полем.
  • Спільне використання ваг робить CNN більш ефективними за кількістю параметрів у порівнянні з повністю зв’язаною мережею над сирими пікселями.
  • Vision transformers пропонують альтернативу, проте CNN залишаються потужними для ефективних та обмежених у даних систем.
Convolutional neural network diagram showing a learned kernel sliding over an image, producing feature maps, residual blocks, global pooling, and an output head
CNN перетворює локальні навчені фільтри у поступово більші рецептивні поля та специфічні для завдання виходи.

How convolution works

Ядро — це невелика сітка навчальних ваг. На кожній позиції CNN множить значення ядра на відповідні вхідні значення, підсумовує результати і, зазвичай, додає зсув. Повторюючи це по всьому входу, отримується карта ознак.

Для кольорового зображення ядро охоплює всі вхідні канали. Шар використовує кілька ядер, щоб створити кілька вихідних каналів. Під час навчання зворотного поширення обчислює градієнти для цих ваг; операція згортки не створює новий фіксований набір ваг для кожного зображення.

Stride, padding, and dilation

  • Stride визначає, на скільки позицій переміщується ядро. Крок, більший за один, зменшує просторову роздільну здатність.
  • Padding додає значення навколо входу, щоб можна було обробляти інформацію на краях і контролювати розмір виходу.
  • Dilation розташовує елементи ядра далі один від одного, розширюючи рецептивне поле без пропорційного збільшення кількості параметрів.

Рецептивне поле — це область початкового входу, яка може впливати на одиницю. Шарування згорток розширює його, дозволяючи пізнішим ознакам комбінувати інформацію з ширших ділянок.

Activation, normalization, and pooling

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

Пулінг не є обов’язковим. Багато сучасних мереж використовують глобальний середній пулінг біля виходу замість розгортання великої карти ознак у повністю зв’язаний стек. Це зменшує кількість параметрів і дозволяє мережі агрегувати просторові докази.

A modern CNN architecture

Типова модель зору містить «стебло», послідовність блоків ознак, етапи зменшення розмірності та «голову» завдання. Залишкові з’єднання дозволяють блоку вчитися модифікації свого входу та забезпечують прямий шлях для інформації та градієнтів. Успіх залишкових мереж зробив практичним навчання значно глибших CNN.

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

What CNN layers learn

Типово візуалізують ранні фільтри, які реагують на краї чи текстури, і пізніші представлення, що корелюють з частинами або об’єктами. Це корисна інтуїція, але не жорстке правило. Ознаки залежать від завдання, архітектури, даних, цілі та процесу навчання, і деякі одиниці комбінують інформацію, яка не вписується чітко у людську концепцію.

CNNs versus vision transformers

Vision transformers розбивають зображення на патчі та використовують увагу для моделювання взаємозв’язків між ними. Вони можуть ефективно масштабуватись за рахунок великих наборів даних для переднавчання. CNN вбудовують локальність і припущення про трансляцію безпосередньо в архітектуру, що може робити їх більш ефективними та економічними у використанні даних у менших сценаріях.

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

Limitations and practical considerations

CNN можуть бути чутливими до зсуву розподілу, адверсаріальних збурень, фонових «шорткатів» та упереджених навчальних даних. Вони не є повністю інваріантними щодо позиції, обертання, масштабу чи точки зору. Аугментація та вибір архітектури можуть підвищити стійкість, але не гарантують її.

Для розгортання вимірюйте сквозну затримку, використання пам’яті, пропускну здатність та поведінку підгруп. Квантування та обрізка можуть знизити витрати, особливо для edge AI, проте стиснуті моделі потрібно повторно валідовувати.

Convolution, receptive fields, and modern CNN blocks

Згортковий шар прокочується навчальними ядрами по сітці та ділиться вагою між позиціями. Розмір ядра, крок, розширення та доповнення визначають форму виходу та рецептивне поле. Ранні шари часто реагують на локальні краї чи текстури; глибші шари комбінують інформацію з більших ділянок, хоча навчальні представлення не обов’язково точно відповідають людським концепціям. Пулінг або згортка зі кроком зменшує просторову роздільну здатність. Канали несуть карти ознак, а згортка групова та depthwise‑separable обмінює крос‑канальне змішування на менші обчислення. Залишкові з’єднання спрощують оптимізацію дуже глибоких мереж.

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

Training, interpretation, and deployment

Використовуйте аугментації, які зберігають мітки та відображають реальну варіативність, і розбивайте дані за суб’єктом або сценою перед аугментацією. Переносне навчання поширене: замінюєте голову завдання, навчаєте її, а потім обережно розморожуєте основу. Оцінюйте продуктивність за окремими класами, калібрування, стійкість до розмиття, стиснення, освітлення, масштабу, кадрування та адверсаріальних збурень. Методи візуалізації, такі як карти ознак та карти важливості, можуть виявляти «шорткати», проте вони чутливі до методики та базової лінії. Підтверджуйте підозрілу залежність контрфактичними зображеннями, тестами на оклюзію або змінами набору даних.

Експортовані CNN можуть бути об’єднані, квантувані або скомпільовані для GPU, NPU, браузера чи мікроконтролера. Перевіряйте розгорнутий графік, включаючи передобробку та пост‑обробку, на точних пристроях. Вимірюйте сквозну затримку, використання пам’яті, енергію та теплову поведінку; декодування входу може домінувати у малих моделях. Слідкуйте за статистикою камери та зображень, розподілом виходів та підтвердженими помилками. Підписані артефакти моделі, захищені канали оновлень та плавне відключення датчиків — це частина виробничого дизайну. CNN кодує корисний локальний упереджений, проте не розуміє автоматично об’єкти чи причинно‑наслідкові сцени.

Worked example: deploying a CNN on an inspection camera

CNN класифікує поверхневі дефекти з високороздільних лінійних скан‑зображень. Інженери розбивають зображення на плитки з перекриттям, щоб малі дефекти виживали після зменшення розмірності, зберігають координати для перегляду та валідовують аугментації проти реальної оптичної варіативності. Порівнюються залишкова CNN і легша модель depthwise при однаковій чутливості. Тести включають дефекти країв, відблиски, стиснення, рух, партії матеріалів та заміну камер, при цьому незалежні виробничі лоти залишаються для фінальної оцінки.

Компіляція об’єднує та квантує модель для edge‑акселератора, проте розгорнутий графік порівнюється з еталоном на чутливих випадках дефектів. Декодування, розбивка, інференс та злиття затримки вимірюються сквозно. Система окремо позначає «мертвих» пікселів та дрейф експозиції від виробничих дефектів. Оператори можуть переглядати вихідні плитки та перевизначати результати. Зміни моделі та камери впроваджуються поступово, а лінія зберігає безпечну ручну процедуру інспекції, коли візуальний конвеєр недоступний.

Implementation evidence and operational readiness

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

Перед запуском призначте відповідальність за випуск, виключення, зміни, відкат та виведення з експлуатації. Використовуйте поетапний розгортання, зберігайте безпечний резерв і перевіряйте моніторинг за допомогою навмисно ін’єкованих збоїв. Операційна телеметрія має розкривати якість входу, поведінку виходу, версію моделі або правила, стан залежностей, людські втручання та підтверджені результати без збору зайвих конфіденційних даних. Визначте пороги сповіщень та відповідального за реакцію, а потім перегляньте реальні докази після розгортання, а не лише покладайтеся на офлайн‑результати. Переоцінюйте щоразу, коли змінюються джерела даних, користувачі, моделі, постачальники, політики, обладнання чи цілі. Підтримувана система також потребує документованого відновлення, навчання на інцидентах, процедур видалення та збереження, а також чіткого моменту, коли її слід вимкнути або замінити.

Frequently asked questions

Does a CNN always need pooling?

Ні. CNN може зменшувати розмір за допомогою згортки зі кроком і зберігати роздільну здатність для щільного передбачення. Пулінг — лише один інструмент дизайну, а не обов’язкова вимога.

Are CNN filters hand-designed?

У навченій CNN значення ядер зазвичай вивчаються з даних. Це відрізняється від класичних візуальних фільтрів, коефіцієнти яких заздалегідь обираються для операцій, таких як виявлення країв.

Primary references

Блогер і програміст з спеціалізацією у темах Machine Learning і Deep Learning. Даніель сподівається допомогти іншим використовувати силу штучного інтелекту для соціальної добробути.