Конволюционни невронни мрежи (CNN): Въведение

Конволюционните невронни мрежи предлагат по-мащабируем начин за задачи за разпознаване на обекти и класификация на изображения.

В света на технологиите се случват много напредъци. Изкуственият интелект и машинното обучение са някои често срещани, които може да чувате често.

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

AI и ML са обширни области и се полагат усилия за разширяване на техните приложения за решаване на много проблеми от реалния свят. Ето защо можете да видите много клонове в тези технологии; ML е подгрупа на самия AI.

Конволюционните невронни мрежи са един от клоновете на AI, които стават популярни в наши дни.

В тази статия ще обсъдя какво представляват CNN, как работят и полезността им в съвременния свят.

Нека се потопим веднага!

Какво е конволюционна невронна мрежа?

Конволюционната невронна мрежа (ConvNet или CNN) е изкуствена невронна мрежа (ANN), която използва алгоритми за задълбочено обучение за анализиране на изображения, класифициране на визуални елементи и изпълнение на задачи за компютърно зрение.

CNN използва принципите на линейната алгебра, като умножение на матрици, за откриване на модели в изображение. Тъй като тези процеси включват сложни изчисления, те изискват графични процесори (GPU) за обучение на моделите.

С прости думи, CNN използва алгоритми за задълбочено обучение, за да вземе входни данни като изображения и да придаде значение под формата на пристрастия и научаваеми тегла на различни аспекти на това изображение. По този начин CNN може да прави разлика между изображенията или да ги класифицира.

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

Тъй като конволюционната невронна мрежа е изкуствена невронна мрежа, важно е да повторим невронните мрежи.

В изчисленията невронната мрежа е част от машинното обучение (ML), използващо алгоритми за дълбоко обучение. Това е аналогично на моделите на свързване, следвани от невроните в човешкия мозък. Изкуствените невронни мрежи също се вдъхновяват от това как е подреден зрителният кортекс.

И така, различни видове невронни мрежи или изкуствени невронни мрежи (ANN) се използват за различни цели. Един от тях е CNN, използван за откриване и класификация на изображения и др. Той беше въведен от постдокторант Ян ЛеКун през 80-те години на миналия век.

Ранната версия на CNN – LeNet, кръстена на LeCun, можеше да разпознава ръкописни цифри. След това се използва в банковите и пощенските услуги за четене на цифри на чекове и пощенски кодове, написани на пликове.

Тази ранна версия обаче нямаше мащабиране; следователно CNN не се използват много в изкуствения интелект и компютърното зрение. Освен това изискваше значителни изчислителни ресурси и данни, за да работи по-ефективно за по-големи изображения.

Освен това през 2012 г. AlexNet преразгледа дълбокото обучение, което използва невронни мрежи, състоящи се от множество слоеве. По това време технологията се подобри и големи набори от данни и тежки изчислителни ресурси бяха достъпни, за да се даде възможност за създаване на сложни CNN, способни да извършват ефективно дейности по компютърно зрение.

Слоеве в CNN

Нека разберем различните слоеве в CNN. Увеличаването на слоевете в CNN ще увеличи неговата сложност и ще му позволи да открие повече аспекти или области на изображението. Започвайки с проста функция, той става способен да открива сложни характеристики като формата на обекта и по-големи елементи, докато накрая може да открие изображението.

Конволюционен слой

Първият слой на CNN е конволюционният слой. Това е основният градивен елемент на CNN, където се извършват повечето изчисления. Той се нуждае от по-малко компоненти, като входни данни, карта на функции и филтър.

  Как да намерите URL адреса на заявката за търсене за търсачките

CNN може да има и допълнителни конволюционни слоеве. Това прави структурата на CNN йерархична, тъй като следващите слоеве могат да визуализират пиксели в рамките на възприемчивите полета на предишните слоеве. След това конволюционните слоеве трансформират даденото изображение в числени стойности и позволяват на мрежата да разбира и извлича ценни модели.

Обединяване на слоеве

Слоевете за обединяване се използват за намаляване на размерите и се наричат ​​понижаване. Той намалява параметрите, използвани във входа. Операцията за обединяване може да премести филтър върху целия вход като конволюционния слой, но няма тегла. Тук филтърът прилага съвместна функция към числовите стойности в приемното поле, за да попълни масива с резултати.

Обединяването има два вида:

  • Средно обединяване: Средната стойност се изчислява в приемното поле, което файлът преминава през входа, за да го предаде към изходния масив.
  • Максимално обединяване: Избира пиксела с максимална стойност и го изпраща към изходния масив, докато филтърът преминава през входа. Максималното обединяване се използва повече от средното обединяване.

Въпреки че значителни данни се губят при обединяване, те все още предлагат много предимства на CNN. Помага за намаляване на рисковете от прекомерно оборудване и сложността, като същевременно подобрява ефективността. Той също така подобрява стабилността на CNN.

Напълно свързан (FC) слой

Както подсказва името, всички възли в изходния слой са директно свързани с възела на предишния слой в напълно свързан слой. Той класифицира изображение въз основа на извлечените характеристики чрез предишни слоеве заедно с техните филтри.

Освен това, FC слоевете обикновено използват функция за активиране на softmax, за да класифицират правилно входовете вместо ReLu функции (както в случая на обединяване и конволюционни слоеве). Това помага да се създаде вероятност от 0 или 1.

Как работят CNN?

Конволюционната невронна мрежа се състои от много слоеве, дори стотици от тях. Тези слоеве се учат да идентифицират различни характеристики на дадено изображение.

Въпреки че CNN са невронни мрежи, тяхната архитектура се различава от обикновените ANN.

Последният въвежда вход през много скрити слоеве, за да го трансформира, където всеки слой е създаден с набор от изкуствени неврони и е напълно свързан с всеки неврон в същия слой. Най-накрая има напълно свързан слой или изходен слой за показване на резултата.

От друга страна, CNN организира слоевете в три измерения – ширина, дълбочина и височина. Тук слой от неврона се свързва само с неврони в малък регион, вместо да се свързва с всеки един от тях в следващия слой. Най-накрая крайният резултат е представен от един вектор с вероятностен резултат и има само измерението на дълбочината.

Сега може да попитате какво е „конволюция“ в CNN.

Е, конволюцията се отнася до математическа операция за сливане на два набора от данни. В CNN концепцията за конволюция се прилага за въвеждане на данни за извеждане на карта на функции чрез филтриране на информацията.

Това ни води до някои от важните концепции и терминологии, използвани в CNN.

  • Филтър: Известен също като детектор на функции или ядро, филтърът може да има определено измерение, като например 3×3. Преминава през входно изображение, за да извърши матрично умножение за всеки елемент, за да приложи навиване. Прилагането на филтри към всяко тренировъчно изображение при различни разделителни способности плюс изхода на свитото изображение ще работи като вход за следващия слой.
  • Padding: Използва се за разширяване на входна матрица до границите на матрицата чрез вмъкване на фалшиви пиксели. Това се прави, за да се противодейства на факта, че конволюцията намалява размера на матрицата. Например, матрица 9 × 9 може да се превърне в матрица 3 × 3 след филтриране.
  • Разкрачване: Ако искате да получите резултат, по-малък от вашия вход, можете да извършите разкрачване. Позволява прескачане на определени области, докато филтърът се плъзга върху изображението. Като пропуснете два или три пиксела, можете да създадете по-ефективна мрежа чрез намаляване на пространствената разделителна способност.
  • Тегла и отклонения: CNN имат тежести и отклонения в своите неврони. Моделът може да научи тези стойности, докато тренира, и стойностите остават същите в даден слой за всички неврони. Това означава, че всеки скрит неврон открива едни и същи характеристики в различни области на изображението. В резултат на това мрежата става по-толерантна, докато превежда обекти в дадено изображение.
  • ReLU: това означава Rectified Linear Unit (ReLu) и се използва за по-ефективно и по-бързо обучение. Той преобразува отрицателните стойности в 0 и поддържа положителните стойности. Нарича се още активиране, тъй като мрежата пренася само активираните характеристики на изображението в следващия слой.
  • Рецептивно поле: В една невронна мрежа всеки неврон получава вход от различни места от предишния слой. А в конволюционните слоеве всеки неврон получава вход от ограничена област само на предходния слой, наречен рецептивно поле на неврона. В случая на FC слоя, целият предходен слой е рецептивното поле.
  Как да намерите вашите Apple AirPods от вашия iPhone

В изчислителните задачи в реалния свят обикновено навиването се извършва в 3D изображение, което изисква 3D филтър.

Връщайки се към CNN, той се състои от различни части или възлови слоеве. Всеки възлов слой има праг и тегло и е свързан с друг. При превишаване на праговия лимит данните се изпращат към следващия слой в тази мрежа.

Тези слоеве могат да извършват операции за промяна на данните, за да научат съответните функции. Освен това тези операции повтарят стотици различни слоеве, които продължават да се учат да откриват други характеристики на изображението.

Частите на CNN са:

  • Входен слой: Това е мястото, където се приема входът, като например изображение. Това ще бъде 3D обект с определена височина, ширина и дълбочина.
  • Един/много скрити слоеве или фаза на извличане на функции: тези слоеве могат да бъдат конволюционен слой, слой за обединяване и напълно свързан слой.
  • Изходен слой: Тук ще се покаже резултатът.

Преминаването на изображението през конволюционния слой се трансформира в карта на характеристики или карта за активиране. След конволация на входа, слоевете конволират изображението и предават резултата на следващия слой.

CNN ще извърши много техники за навиване и обединяване, за да открие характеристиките по време на фазата на извличане на характеристики. Например, ако въведете изображение на котка, CNN ще разпознае нейните четири крака, цвят, две очи и т.н.

След това напълно свързаните слоеве в CNN ще действат като класификатор върху извлечените характеристики. Въз основа на това, което алгоритъмът за дълбоко обучение е предвидил за изображението, слоевете ще дадат резултата.

Предимства на CNN

По-висока точност

CNN предлагат по-висока точност от обикновените невронни мрежи, които не използват конволюция. CNN са полезни, особено когато задачата включва много данни, разпознаване на видео и изображения и т.н. Те произвеждат много точни резултати и прогнози; следователно тяхното използване нараства в различни сектори.

Изчислителна ефективност

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

Извличане на функции

CNN може лесно да научи характеристиките на изображението, без да изисква ръчно инженерство. Можете да използвате предварително обучени CNN и да управлявате теглата, като им подавате данни, когато работите върху нова задача, и CNN ще се адаптира безпроблемно към нея.

  Универсалният клипборд не работи между iPhone и Mac: 9 поправки, които да опитате

Приложения на CNN

CNN се използват в различни индустрии за много случаи на употреба. Някои от реалните приложения на CNN включват:

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

CNN се използват широко в класификацията на изображения. Те могат да разпознават ценни характеристики и да идентифицират обекти в дадено изображение. Следователно, той се използва в сектори като здравеопазването, особено MRIs. В допълнение, тази технология се използва при разпознаване на ръкописни цифри, което е сред най-ранните случаи на използване на CNN в компютърното зрение.

Откриване на обекти

CNN може да открива обекти в изображения в реално време и също така да ги обозначава и класифицира. Следователно тази техника се използва широко в автоматизираните превозни средства. Той също така позволява на интелигентните домове и пешеходците да разпознават лицето на собственика на автомобила. Използва се и в системи за наблюдение, задвижвани от AI, за откриване и маркиране на обекти.

Аудиовизуално съпоставяне

Помощта на 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 с помощта на тази книга.
  • Разширено приложно задълбочено обучение: Тази книга ще ви помогне да разберете CNN, задълбоченото обучение и техните разширени приложения, включително откриване на обекти.
  • Конволюционни невронни мрежи и повтарящи се невронни мрежи: Тази книга ще ви научи на CNN и RNN и как да изграждате тези мрежи.

Заключение

Конволюционните невронни мрежи са една от нововъзникващите области на изкуствения интелект, машинното обучение и дълбокото обучение. Той има различни приложения в днешния свят в почти всеки сектор. Като се има предвид нарастващото му използване, се очаква да се разшири повече и да бъде по-полезен при справяне с проблеми от реалния свят.