Конволюційна нейронна мережа (CNN) — це перше, що спадає на думку, коли мова йде про обробку зображень. CNN використовуються для класифікації зображень, виявлення об'єктів та сегментації. Основна ідея, яка стоїть за ними — це конволюція, звідси й назва "Конволюційні нейронні мережі". CNN добре відомі завдяки своїй здатності виділяти ознаки (features) зображень.
Коріння машинного навчання та глибинного навчання — це просто математика, а зображення — це всього лише матриці з піксельними значеннями. Якщо ви знайомі з такими термінами, як ANN (Штучна нейронна мережа) або MLP (Многошаровий перцептрон), ми можемо погодитись, що вони добре працюють з даними нижчих вимірностей. Однак, коли вимірності даних збільшуються, мережі стають більш щільними, що призводить до складнішого обчислення та зростання кількості ваг і зміщень.
Схема роботи CNN
Основні ідеї, з яких складаються CNN:
1. Конволюція (Convolution) -
Конволюція — це процес виділення ознак (features) з зображення. Для цього ми використовуємо фільтри/кернели. Ми проводимо фільтри по зображенню, обробляючи кожен його сегмент. Беремо частину зображення і виконуємо операцію добутку з кернелем. Вихідне значення буде найвищим, коли піксельні значення зображення максимально узгоджуються з фільтром. Значення, які видає функція кернеля, утворюють карту ознак (feature map). Останній розмір карти ознак залежить від розміру обраного фільтра.
Схема конволюції
2. Пулінг (Pooling) -
Основна ідея пулінгу полягає в зменшенні розмірностей. Ми використовуємо одну з трьох технік пулінгу: максімальний пулінг (max pooling), мінімальний пулінг (min pooling) або середній пулінг (average pooling), щоб зменшити розмірність. У більшості випадків використовується максімальний пулінг. Коли ми застосовуємо 2x2 пулінг, розмір зображення зменшується в чотири рази. Це дозволяє нам зберегти найвищі значення, тобто важливі ознаки, при зменшенні розміру зображення.
Ілюстрація пулінгу
3. Паддінг (Padding) -
Іноді ми додаємо кілька шарів навколо самого зображення, щоб зберегти ознаки, які знаходяться на його краях. Якщо паддінг не застосовується, пікселі на краях зображення обробляються кернелями меншу кількість разів, порівняно з центральними пікселями.
Ілюстрація паддінгу
4. Повністю з'єднана нейронна мережа (Fully Connected Neural Network) -
Після всіх операцій по зменшенню розмірностей ми розгортаємо значення в одномірний масив і передаємо їх через повністю з'єднану нейронну мережу для отримання результату.
Отже, підсумовуючи, CNN значно економлять наші зусилля та час при роботі з даними зображень. Ідеї конволюції, пулінгу та паддінгу роблять це можливим.
Примітка: усі ілюстрації, наведені вище, створені за допомогою Excalidraw._
Перекладено з: ML Stories-1: Convolution in Layman’s Terms.