Що таке згорткові нейронні мережі?
Що таке згорткові нейронні мережі у глибокому навчанні?
Згорткові нейронні мережі застосовуються в задачах комп’ютерного зору, використовуючи згорткові шари для вилучення ознак з вхідних даних.
Згорткові нейронні мережі (CNN) — це клас глибоких нейронних мереж, які широко використовуються у задачах комп’ютерного зору, таких як розпізнавання зображень і відео, виявлення об’єктів та сегментація зображень.
Нейронні мережі — це моделі машинного навчання, що складаються з взаємопов’язаних вузлів, які обробляють інформацію для прийняття рішень. У свою чергу, глибокі нейронні мережі мають кілька прихованих шарів, що дозволяє їм навчатися складним уявленням для різних задач. Вони обидві імітують структуру та функції людського мозку. Комп’ютерний зір — це галузь штучного інтелекту (AI), яка зосереджує увагу на забезпеченні машин можливістю інтерпретувати та розуміти візуальні дані з навколишнього світу.
Наприклад, розпізнавання зображень і відео включає класифікацію або розпізнавання об’єктів, сцен чи дій на фотографіях або відео. Виявлення об’єктів включає визначення місця розташування певних речей на зображенні або у відео. Сегментація зображення включає поділ зображення на суттєві сегменти або області для подальшого аналізу чи модифікації.
CNN використовують кілька згорткових шарів, щоб автоматично вилучати ознаки з вхідних даних. Вхідні дані обробляються за допомогою фільтрів у згорткових шарах, і результати передаються у наступні шари для подальшої обробки. Згорткові шари є будівельними блоками CNN, які виконують операцію фільтрації та вилучення ознак із вхідних даних.
Фільтрація — це процес згортання зображення з фільтром, щоб вилучити ознаки, тоді як вилучення ознак — це ідентифікація відповідних зразків або характеристик із згорткових зображень.
У CNN, окрім згорткових шарів, часто включають шари підсемплювання (пулінгу), які зменшують обчислювальну складність і підвищують здатність мережі узагальнювати нові вхідні дані. Додаткові типові шари включають шари нормалізації, які зменшують перенавчання та підвищують продуктивність мережі, а також повнозв’язані шари, які використовуються для задач класифікації або прогнозування.
Багато застосувань, таких як розпізнавання облич, автономні автомобілі, аналіз медичних зображень та обробка природної мови (NLP), інтенсивно використовують CNN. Вони також застосовуються для досягнення найкращих результатів у задачах класифікації зображень, таких як конкурс ImageNet.
Як працюють згорткові нейронні мережі?
Згорткові нейронні мережі працюють, вилучаючи ознаки з вхідних даних через згорткові шари та навчаючись класифікувати ці дані за допомогою повнозв’язаних шарів.
Кроки роботи згорткових нейронних мереж включають наступне:
- Вхідний шар: Вхідний шар — це перший шар CNN, який приймає сирі дані, такі як зображення чи відео, і передає їх наступному шару для обробки.
- Згортковий шар: В цьому шарі відбувається вилучення ознак. Цей шар застосовує набір фільтрів або ядер для вилучення ознак, таких як краї, кути та форми, із вхідних даних.
- ReLU шар: Для запровадження нелінійності в результат та покращення роботи мережі після кожного згорткового шару часто застосовується функція активації Rectified Linear Unit (ReLU). ReLU видає на виході значення без змін, якщо вони додатні, і 0, якщо від’ємні.
- Шар пулінгу: Шар пулінгу зменшує розміри карти ознак, створеної згортковим шаром. Max-pooling — це поширена техніка, в якій максимальне значення кожного сегмента карти ознак вибирається як вихідний результат.
- Повнозв’язаний шар: Повнозв’язаний шар отримує «розплющений» результат зі шару пулінгу та застосовує набір вагових коефіцієнтів для створення фінального вихідного результату, який можна використовувати для класифікації або прогнозування.
Приклад: ось як CNN класифікує зображення котів та собак:
- Крок 1: Вхідний шар приймає зображення з 3 каналами (RGB) собаки або кота разом із сирими даними зображення.
- Крок 2: Згортковий шар застосовує послідовність фільтрів до вхідного зображення, щоб вилучити ознаки, такі як краї, кути та форми.
- Крок 3: Результат згорткового шару стає нелінійним завдяки шару ReLU.
- Крок 4: Шар пулінгу вибирає максимальні значення кожного сегмента карти ознак, зменшуючи її розміри.
- Крок 5: Декілька згорткових та пулінгових шарів поєднуються для поетапного вилучення складніших характеристик із вхідного зображення.
- Крок 6: «Розплющений» шар перетворює результати попереднього шару в одномірний вектор, який потім подається у повнозв’язаний шар для фінального передбачення, що визначає, чи є зображення котом або собакою.
CNN тренується на наборі даних із мітками, налаштовуючи ваги фільтрів і повнозв’язаних шарів для мінімізації помилки між передбаченнями та справжніми мітками. Після навчання мережа може точно класифікувати нові, раніше невідомі зображення котів і собак.
Які бувають типи згорткових нейронних мереж?
Існує кілька типів згорткових нейронних мереж, включаючи традиційні CNN, рекурентні нейронні мережі, повністю згорткові мережі та мережі-просторові трансформери — серед інших.
Традиційні CNN
Традиційні CNN, також відомі як «базові» CNN, складаються з серії згорткових і пулінгових шарів, які доповнюються одним або більше повнозв’язаними шарами. Кожен шар виконує згортку із набором налаштовуваних фільтрів для вилучення ознак із вхідного зображення.
Архітектура Lenet-5 була однією з перших успішних CNN для розпізнавання рукописних цифр. Вона має два комплекти згорткових і пулінгових шарів, за якими слідують два повнозв’язані шари, наочно демонструючи ефективність CNN у задачах комп’ютерного зору.
Рекурентні нейронні мережі
Рекурентні нейронні мережі (RNN) — це тип мереж, які обробляють послідовні дані, зберігаючи контекст попереднього вводу. Такі мережі можуть обробляти дані змінної довжини і генерувати результати, залежно від попередніх даних.
Наприклад, RNN використовують у завданнях NLP, таких як генерація тексту чи переклад мов. RNN може навчитися перекладати пари текстів двома мовами.