Згорткові нейронні мережі (CNN): Вступ

Згорткові нейронні мережі пропонують більш масштабований спосіб розпізнавання об’єктів і класифікації зображень.

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

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

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

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

У цій статті я розповім, що таке CNN, як вони працюють і яку користь вони мають у сучасному світі.

Давайте відразу зануримося!

Що таке згорточна нейронна мережа?

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

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

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

CNN: Коротка історія

Оскільки згорточна нейронна мережа є штучною нейронною мережею, важливо повторити нейронні мережі.

В обчисленнях нейронна мережа є частиною машинного навчання (ML), що використовує алгоритми глибокого навчання. Це аналогічно моделям з’єднання, яким дотримуються нейрони в мозку людини. Штучні нейронні мережі також черпають натхнення з того, як влаштована зорова кора.

Отже, різні типи нейронних мереж або штучних нейронних мереж (ШНМ) використовуються для різних цілей. Одним із них є CNN, який використовується для виявлення та класифікації зображень тощо. Він був представлений докторантом Янном Лекуном у 1980-х роках.

Рання версія CNN – LeNet, названа на честь Лекуна, була здатна розпізнавати рукописні цифри. Потім його використовували в банківських і поштових службах для читання цифр на чеках і поштових індексів, написаних на конвертах.

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

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

Шари в CNN

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

Згортковий шар

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

  Як швидко вимкнути дратівливі сповіщення на Mac

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

Об’єднання шарів

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

Об’єднання має два види:

  • Середнє об’єднання: середнє значення обчислюється в сприйнятливому полі, яке файлер перекриває вхідні дані для передачі у вихідний масив.
  • Максимальне об’єднання: вибирає піксель із максимальним значенням і надсилає його до вихідного масиву, коли фільтр перекриває вхідний. Максимальне об’єднання використовується більше, ніж середнє об’єднання.

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

Повністю підключений (FC) рівень

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

Крім того, рівні FC зазвичай використовують функцію активації softmax для правильної класифікації вхідних даних замість функцій ReLu (як у випадку рівнів об’єднання та згортки). Це допомагає отримати ймовірність 0 або 1.

Як працюють CNN?

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

Хоча CNN є нейронними мережами, їхня архітектура відрізняється від звичайної ШНМ.

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

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

Тепер ви можете запитати, що таке «згортка» в CNN.

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

Це підводить нас до деяких важливих понять і термінології, що використовуються в CNN.

  • Фільтр: також відомий як детектор функцій або ядро, фільтр може мати певний розмір, наприклад 3×3. Він проходить через вхідне зображення, щоб виконати множення матриці для кожного елемента, щоб застосувати згортку. Застосування фільтрів до кожного тренувального зображення з різною роздільною здатністю плюс результат згорнутого зображення працюватиме як вхідний матеріал для наступного шару.
  • Заповнення: використовується для розширення вхідної матриці до її меж шляхом вставки фальшивих пікселів. Це зроблено, щоб протистояти тому факту, що згортка зменшує розмір матриці. Наприклад, матриця 9×9 після фільтрації може перетворитися на матрицю 3×3.
  • Крок: якщо ви хочете отримати менший результат, ніж ваш вхід, ви можете виконати крок. Це дозволяє пропускати певні ділянки, поки фільтр ковзає по зображенню. Пропустивши два або три пікселі, ви можете створити більш ефективну мережу, зменшивши просторову роздільну здатність.
  • Ваги та зміщення: CNN мають ваги та зміщення у своїх нейронах. Модель може вивчати ці значення під час навчання, і значення залишаються незмінними на заданому рівні для всіх нейронів. Це означає, що кожен прихований нейрон виявляє ті самі характеристики в різних областях зображення. У результаті мережа стає толерантнішою під час перекладу об’єктів у задане зображення.
  • ReLU: розшифровується як Rectified Linear Unit (ReLu) і використовується для ефективнішого та швидшого навчання. Він відображає від’ємні значення на 0 і підтримує додатні значення. Це також називається активацією, оскільки мережа переносить лише активовані функції зображення на наступний рівень.
  • Рецептивне поле: у нейронній мережі кожен нейрон отримує вхідні дані з різних місць із попереднього рівня. А в згорткових шарах кожен нейрон отримує вхідні дані з обмеженої області лише попереднього шару, яка називається сприйнятливим полем нейрона. У випадку шару FC весь попередній шар є рецептивним полем.
  Як створити діаграму Венна в Microsoft PowerPoint

У реальних обчислювальних завданнях зазвичай згортка виконується в 3D-зображенні, для якого потрібен 3D-фільтр.

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

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

Частинами CNN є:

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

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

CNN виконає багато згорток і методів об’єднання, щоб виявити функції на етапі вилучення ознак. Наприклад, якщо ви введете зображення кота, CNN розпізнає його чотири лапи, колір, два очі тощо.

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

Переваги CNN

Вища точність

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

Обчислювальна ефективність

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

Витяг функцій

CNN може легко вивчити особливості зображення, не вимагаючи ручного проектування. Ви можете використовувати попередньо навчені CNN і керувати вагами, надаючи їм дані під час роботи над новим завданням, і CNN адаптується до нього без проблем.

Додатки CNN

CNN використовуються в різних галузях для багатьох випадків використання. Деякі з реальних застосувань CNN включають:

  Як вимкнути пропозиції переходу на вкладку в Chrome

Класифікація зображень

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

Виявлення об’єктів

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

Аудіовізуальне зіставлення

Допомога CNN у підборі аудіовізуальних матеріалів допомагає покращити платформи потокового відео, такі як Netflix, YouTube тощо. Це також допомагає задовольняти запити користувачів, наприклад «пісні про кохання Елтона Джона».

Розпізнавання мови

Окрім зображень, CNN корисні для обробки природної мови (NLP) і розпізнавання мовлення. Реальним прикладом цього може бути використання Google CNN у своїй системі розпізнавання мовлення.

Реконструкція об’єкта

CNN можна використовувати для 3D-моделювання реального об’єкта в цифровому середовищі. Моделі CNN також можуть створити 3D-модель обличчя за допомогою зображення. Крім того, CNN корисний для побудови цифрових двійників у біотехнологіях, виробництві, біотехнологіях та архітектурі.

Використання CNN у різних секторах включає:

  • Охорона здоров’я: комп’ютерний зір можна використовувати в радіології, щоб допомогти лікарям з більшою ефективністю виявляти ракові пухлини в людини.
  • Сільське господарство: мережі можуть використовувати зображення зі штучних супутників, таких як LSAT, і використовувати ці дані для класифікації родючих земель. Це також допомагає передбачити рівень родючості землі та розробити ефективну стратегію для максимізації врожаю.
  • Маркетинг: програми соціальних мереж можуть запропонувати людину на зображенні, розміщеному в чиємусь профілі. Це допоможе вам позначати людей у ​​своїх фотоальбомах.
  • Роздрібна торгівля: платформи електронної комерції можуть використовувати візуальний пошук, щоб допомогти брендам рекомендувати відповідні товари, які цільові клієнти хочуть купити.
  • Автомобільний: CNN знаходить застосування в автомобілях для підвищення безпеки пасажирів і водіїв. Це робиться за допомогою таких функцій, як виявлення смуг руху, виявлення об’єктів, класифікація зображень тощо. Це також сприяє подальшому розвитку світу безпілотних автомобілів.

Ресурси для вивчення CNN

Coursera:

Coursera має цей курс на CNN, який ви можете пройти. Цей курс навчить вас, як розвивався комп’ютерний зір протягом багатьох років і деяким застосуванням CNN у сучасному світі.

Amazon:

Ви можете прочитати ці книги та лекції, щоб дізнатися більше про CNN:

  • Нейронні мережі та глибоке навчання: охоплює моделі, алгоритми та теорію глибокого навчання та нейронних мереж.
  • Посібник із згорткових нейронних мереж для комп’ютерного бачення: ця книга навчить вас застосуванням CNN та їхнім концепціям.
  • Практичні згорткові нейронні мережі з Tensorflow: за допомогою цієї книги ви можете вирішувати різні проблеми комп’ютерного зору за допомогою Python і TensorFlow.
  • Advanced Applied Deep Learning: ця книга допоможе вам зрозуміти CNN, глибоке навчання та їх розширені програми, включаючи виявлення об’єктів.
  • Згорткові нейронні мережі та рекурентні нейронні мережі: ця книга навчить вас про CNN та RNN та про те, як будувати ці мережі.

Висновок

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