Конволюционна невронна мрежа (CNN или ConvNet) е мрежова архитектура за deep learning, която се учи директно от данни, премахвайки необходимостта от ръчно извличане на функции.
CNN са особено полезни за намиране на модели в изображения за разпознаване на обекти, лица и сцени. Те също могат да бъдат доста ефективни за класифициране на данни без изображения, като аудио, времеви серии и сигнални данни.
Приложенията, които изискват разпознаване на обекти и компютърно зрение, като самоуправляващи се превозни средства и приложения за разпознаване на лица, разчитат до голяма степен на CNN.
Какво прави CNNs толкова полезни?
Използването на CNN за дълбоко обучение е популярно поради три важни фактора:
• CNN премахват необходимостта от ръчно извличане на функции – функциите се научават директно от CNN.
• CNN произвеждат много точни резултати от разпознаването.
• CNN могат да бъдат преквалифицирани за нови задачи за разпознаване, което ви позволява да надграждате върху вече съществуващи мрежи.
CNN осигуряват оптимална архитектура за разкриване и изучаване на ключови характеристики в данните за изображения и времеви редове. CNN са ключова технология в приложения като:
• Медицински изображения: CNN могат да изследват хиляди доклади за патология, за да открият визуално наличието или отсъствието на ракови клетки в изображенията.
• Обработка на аудио: Откриването на ключови думи може да се използва във всяко устройство с микрофон, за да се установи кога се говори определена дума или фраза – („Хей, Сири!“). CNN могат точно да научат и открият ключовата дума, като игнорират всички други фрази, независимо от средата.
• Откриване на знаци за спиране: Автоматизираното шофиране разчита на CNN, за да открие точно наличието на знак или друг обект и да вземе решения въз основа на резултата.
• Синтетично генериране на данни: Използвайки генеративни състезателни мрежи (GAN), могат да се създават нови изображения за използване в приложения за задълбочено обучение, включително разпознаване на лица и автоматизирано шофиране.
Как работят конвулюционните невронни мрежи?
Конволюционна невронна мрежа може да има десетки или стотици слоеве, всеки от които се научава да открива различни характеристики на изображението. Филтрите се прилагат към всяко учебно изображение с различни разделителни способности, а изходът на всяко свито изображение се използва като вход за следващия слой. Филтрите могат да започнат като много прости функции, като яркост и ръбове, а след това да увеличат сложността до функции, които уникално определят обекта.
Функционално обучение, слоеве и класификация
Подобно на други невронни мрежи, CNN се състои от входен слой, изходен слой и много скрити слоеве между тях.
Тези слоеве изпълняват операции, които променят данните с намерението да изучават специфични за тях характеристики. Три от най-често срещаните слоеве са: конволюция, активиране или ReLU и обединяване.
• Конволюцията поставя входните изображения през набор от свиващи филтри, всеки от които активира определени функции от изображенията.
• Поправената линейна единица (ReLU) позволява по-бързо и по-ефективно обучение чрез картографиране на отрицателни стойности към нула и поддържане на положителни стойности. Това понякога се нарича активиране, тъй като само активираните функции се пренасят напред в следващия слой.
• Обединяването опростява изхода чрез извършване на нелинейно намаляване на извадката, намалявайки броя на параметрите, които мрежата трябва да научи.
Тези операции се повтарят над десетки или стотици слоеве, като всеки слой се научава да идентифицира различни характеристики.
Споделени тежести и пристрастия
Подобно на традиционната невронна мрежа, CNN има неврони с тежести и отклонения. Моделът изучава тези ценности по време на тренировъчния процес и непрекъснато ги актуализира с всеки нов пример за обучение. Въпреки това, в случая на CNN, теглата и стойностите на отклонение са еднакви за всички скрити неврони в даден слой.
Това означава, че всички скрити неврони откриват една и съща характеристика, като ръб или петно, в различни региони на изображението. Това прави мрежата толерантна към превод на обекти в изображение. Например мрежа, обучена да разпознава автомобили, ще може да го направи навсякъде, където колата е на изображението.
Класификационни слоеве
След изучаване на функции в много слоеве, архитектурата на CNN се измества към класификация.
Последният слой е напълно свързан слой, който извежда вектор с K измерения, където K е броят класове, които мрежата ще може да предвиди. Този вектор съдържа вероятностите за всеки клас на всяко изображение да бъде класифицирано.
Последният слой на архитектурата на CNN използва класификационен слой като softmax за осигуряване на класификационния изход.
Проектиране и обучение на мрежи
С помощта на Deep Network Designer можете да импортирате предварително обучени модели или да създавате нови модели от нулата.
Можете също така да тренирате мрежи директно в приложението и да наблюдавате обучението с графики за точност, загуба и валидиране.
Използване на предварително обучени модели за трансферно обучение
Финото настройване на предварително обучена мрежа с трансферно обучение обикновено е много по-бързо и по-лесно от обучението от нулата. Това изисква най-малкото данни и изчислителни ресурси. Трансферното обучение използва знания от един вид проблем за решаване на подобни проблеми. Започвате с предварително обучена мрежа и я използвате, за да научите нова задача. Едно от предимствата на трансферното обучение е, че предварително обучената мрежа вече е научила богат набор от функции. Тези функции могат да бъдат приложени към широк спектър от други подобни задачи. Например, можете да вземете мрежа, обучена на милиони изображения, и да я преквалифицирате за класификация на нови обекти, като използвате само стотици изображения.
Хардуерно ускорение с графични процесори
Конволюционна невронна мрежа се обучава върху стотици, хиляди или дори милиони изображения. Когато работят с големи количества данни и сложни мрежови архитектури, графичните процесори могат значително да ускорят времето за обработка за обучение на модел.
Приложения, използващи CNN
- Откриване на обект
Откриването на обекти е процесът на локализиране и класифициране на обекти в изображения и видео.
- Откриване на ключови думи
Примерно приложение на реч към текст е откриването на ключови думи, което разпознава определени ключови думи или фрази и може да ги използва като директива. Чести примери за това са устройства за събуждане и включване на светлини.
- Семантична сегментация
CNN се използват в семантична сегментация за идентифициране на всеки пиксел в изображението със съответния етикет на класа. Семантичната сегментация може да се използва в приложения като автономно шофиране, промишлена инспекция, класификация на терена и медицински изображения. Конволюционните невронни мрежи са основата за изграждане на семантична сегментационна мрежа.
Как да научите повече за CNN
Продуктите, които поддържат използването на CNN за анализ на изображения, включват MATLAB, Computer Vision Toolbox ™, Статистика и Machine Learning Toolbox ™ и Deep Learning Toolbox.
Конволюционна невронна мрежа изискват Deep Learning Toolbox. Обучението и прогнозирането се поддържат от графичен процесор, поддържащ CUDA® с изчислителна способност 3.0 или по -висока. Използването на графичен процесор е силно препоръчително и изисква Parallel Computing Toolbox ™.
Прочетете повече за STEM образование