Основи ШІ
Що таке CNN (Конволюційні Нейронні Мережі)?
Можливо, ви коли-небудь запитували себе, як Facebook (META ) або Instagram можуть автоматично розпізнавати обличчя на зображенні, або як Google (GOOGL ) дозволяє вам шукати веб-сторінки за подібними фотографіями, просто завантажуючи власне фото. Ці функції є прикладами комп’ютерного зору, і вони працюють завдяки конволюційним нейронним мережам (CNN). Але що саме є конволюційними нейронними мережами? Давайте глибоко зануримося в архітектуру CNN і зрозуміємо, як вони працюють.
Що таке Нейронні Мережі?
Перед тим, як ми почнемо говорити про конволюційні нейронні мережі, давайте визначимо звичайну нейронну мережу. Є інша стаття на тему нейронних мереж, тому ми не будемо занурюватися глибоко в них тут. Однак, щоб коротко визначити їх, вони є обчислювальними моделями, які надихаються людським мозком. Нейронна мережа працює, приймаючи дані та маніпулюючи даними шляхом调整 “ваг”, які є припущеннями про те, як входні особливості пов’язані між собою та класом об’єкта. Коли мережа тренується, значення ваг调整ються, і вони, як сподіваємося, сходяться до ваг, які точно захоплюють відносини між особливостями.
Це як працює звичайна нейронна мережа, а CNN складається з двох частин: звичайної нейронної мережі та групи конволюційних шарів.
Що таке Конволюційні Нейронні Мережі (CNN)?
Що таке “конволюції”, які відбуваються в конволюційній нейронній мережі? Конволюція – це математична операція, яка створює набір ваг, фактично створюючи представлення частин зображення. Цей набір ваг називається ядром або фільтром. Фільтр, який створюється, менший за весь вхідний зображення, покриваючи лише підмножину зображення. Значення в фільтрі множаться з значеннями в зображенні. Фільтр потім переміщується, щоб створити представлення нової частини зображення, і процес повторюється до тих пір, поки все зображення не буде покрито.
Інший спосіб подумати про це – уявити собі цегляну стіну, де цеглини представляють пікселі вхідного зображення. “Вікно” переміщується взад і вперед по стіні, яке є фільтром. Цеглини, які видно через вікно, є пікселями, значення яких множаться значеннями всередині фільтра. Через це метод створення ваг з фільтром часто називається “технікою ковзних вікон”.
Вихід з фільтрів, які переміщуються по всьому вхідному зображенню, – це двовимірний масив, який представляє все зображення. Цей масив називається “картою особливостей”.
Чому Конволюції Є Необхідними
Яка мета створення конволюцій? Конволюції необхідні, оскільки нейронна мережа повинна бути здатна інтерпретувати пікселі в зображенні як числові значення. Функція конволюційних шарів – перетворити зображення в числові значення, які нейронна мережа може інтерпретувати, а потім витягнути відповідні закономірності. Робота фільтрів у конволюційній мережі – створити двовимірний масив значень, який можна передати в пізніші шари нейронної мережі, які навчаться закономірностям в зображенні.
Фільтри І Канали

Фото: cecebur via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)
CNN не використовує лише один фільтр для навчання закономірностям вхідних зображень. Багато фільтрів використовуються, оскільки різні масиви, створені різними фільтрами, ведуть до більш складного, багатого представлення вхідного зображення. Типові числа фільтрів для CNN – 32, 64, 128 і 512. Чим більше фільтрів, тим більше можливостей у CNN для вивчення вхідних даних та навчання ними.
CNN аналізує різниці в значеннях пікселів, щоб визначити кордони об’єктів. У зображенні з градаціями сірого CNN буде дивитися лише на різниці між чорним і білим, світлим і темним. Коли зображення є кольоровими, CNN не тільки бере до уваги темне і світле, але також повинно брати до уваги три різних кольорових канали – червоний, зелений і синій. У цьому випадку фільтри мають 3 канали, як і зображення само по собі. Кількість каналів, які має фільтр, називається його глибиною, і кількість каналів у фільтрі повинна відповідати кількості каналів у зображенні.
Архітектура Конволюційної Нейронної Мережі (CNN)
Давайте розглянемо повну архітектуру конволюційної нейронної мережі. Конволюційний шар знаходиться на початку кожної конволюційної мережі, оскільки це необхідно для перетворення даних зображення в числові масиви. Однак конволюційні шари також можуть слідувати після інших конволюційних шарів, що означає, що ці шари можуть бути укладені один на одного. Маємо кілька конволюційних шарів означає, що виходи з одного шару можуть пройти подальші конволюції та бути згруповані в відповідні закономірності. Практично це означає, що коли дані зображення проходять через конволюційні шари, мережа починає “розпізнавати” більш складні особливості зображення.
Ранні шари ConvNet відповідають за витягування низькорівневих особливостей, таких як пікселі, які складають прості лінії. Пізніші шари ConvNet об’єднають ці лінії в форми. Цей процес переходу від поверхневого аналізу до глибокого аналізу триває до тих пір, поки ConvNet не розпізнає складні форми, такі як тварини, людські обличчя та автомобілі.
Після того, як дані пройшли через всі конволюційні шари, вони переходять у щільноз’єднану частину CNN. Щільноз’єднані шари – це те, чим виглядає традиційна нейронна мережа, серія вузлів, укладених у шари, які з’єднані один з одним. Дані проходять через ці щільноз’єднані шари, які вчаться закономірностям, витягнутим конволюційними шарами, і внаслідок цього мережа стає здатною розпізнавати об’єкти.












