Тази публикация предоставя подробности за архитектурата на Конволюционната невронна мрежа (CNN), функциите и обучението на всеки слой, завършвайки с резюме на обучението на CNN.
- Основната CNN архитектура се състои от: Input-›(Conv+ReLU)-›Pool-›(Conv+ReLU)-›Pool-› Flatten-›Fully Connected-›Softmax-›Output
- Извличането на функции се извършва в слоевете Convolutional layer+ReLU и Pooling, а класификацията се извършва в слоевете Fully Connected и Softmax.
3. Първи конволюционен слой:
- Основната цел на този слой е да извлече характеристики от входното изображение.
- Конволюциятасе използва за извличане на функции, тъй като запазва пространствената връзка между пикселите чрез научаване на характеристиките на изображението чрез използване на малки квадратчета входни данни.
- Конволюционният слой има следните атрибути: -
i) Конволюционни неврони/ядра/филтри, определени от ширина и височина (хипер-параметри).
ii) Броят на входните канали и изходните канали (хиперпараметри).
iii) Дълбочината/броят на каналите на конволюционния филтър/ядро трябва да бъде равен на дълбочината/броя на каналите на входа.
- Сега „филтърът/ядрото/невронът“ (матрица от тегла/параметри) се плъзга върху входното изображение (матрица от пиксели на изображението с дълбочина 3, обикновено за 3-те цвята - червено, зелено, синьо), започвайки от лявата горна страна на входното изображение всеки път покривайки броя на пикселите като броя на теглата във филтър/ядро/неврон.
- Резултатът от всяка конволюция се съхранява в матрицата, известна като карта на характеристики или свита характеристикаили карта за активиране,чиято дълбочина е равна на броя на използваните филтри/ядра/неврони.
- Размерите на картата на функциите/сгънатата функция/картата на активиране могат да бъдат определени като:
- Входящо изображение * Филтър = Карта на функции/Карта на активиране
[n x n x nc] * [f x f x nc] = [n-f+1 x n-f+1 x m], където,
n е размерът на матрицата от пиксели на изображението, f е размерът на матрицата на теглата, ncе дълбочината на изображението и mе броят на използваните филтри.
- Колкото по-голям е броят на филтрите, толкова по-добро е извличането на функции.
- След това картата на характеристиките се прави нелинейна с помощта на ReLU.
4. ReLU:
- ReLU(Ректифицирана линейна единица) е елементна операция (приложена за пиксел) и замества всички отрицателни стойности на пиксели в картата на характеристиките с нула.
- Целта на ReLU е да въведе нелинейност в невронната мрежа ConvNet/Convolution, тъй като повечето данни от реалния свят, които невронната мрежа ConvNet/Convolution научава, биха били нелинейни и конволюция извършвана в Първия конволюционен слой е линейна операция, така че нелинейността се реализира от нелинейна функция като ReLU.
- Резултатът от ReLU е ƒ(x) = max(0,x).
- Има други нелинейни функции като tanh или sigmoid(използвани в Single Layer Perceptron), които също могат да се използват вместо ReLU. Повечето специалисти по данни използват ReLU, тъй като по отношение на производителността ReLU е по-добър от другите два.
5. Обединяващ слой:
- Слоят за обединяване намалява размерите на данните чрез комбиниране на изходните данни на клъстерите на неврон/филтър/ядро на един слой в един неврон/филтър/ядро на следващия слой.
- Конволюционните мрежи/ConvNet могат да включват локални и глобални слоеве за обединяване.
- Хиперпараметрите за този слой са: 1) размер на филтъра (f), 2) размер(и) на крачка.
- Пространственото обединяване (наричано също субсемплиране или понижаване на дискретизацията) намалява размерността на всяка карта, но запазва важна информация. Тя може да бъде от различни видове:
i) Максимално обединяване- Тази техника за обединяване работи по-добре в сравнение с други техники и следователно се използва повече. Тук, в зависимост от хиперпараметрите, се формират клъстери в картата на характеристиките и се взема максимумът от всеки клъстер и се получава резултантна матрица чрез вземане на максималните стойности. Броят на каналите/дълбочината на получената матрица е същият като този на картата на характеристиките. Тук няма подплата.
ii) Обединяване на средни стойности –Тук, в зависимост от хиперпараметрите, се формират клъстери в картата на характеристиките и се взема средната стойност на всеки клъстер и се получава резултантна матрица чрез вземане на средните стойности. Броят на каналите/дълбочината на получената матрица е същият като този на картата на характеристиките.
iii) Обединяване на суми -Тук, в зависимост от хиперпараметрите, се формират клъстери в картата на характеристиките и се взема сумата от всеки клъстер и се получава резултантна матрица чрез вземане на средните стойности. Броят на каналите/дълбочината на получената матрица е същият като този на картата на характеристиките.
- Функции на обединяване:
a) Прави входните представяния (дименсията на характеристиките) по-малки и по-управляеми.
b) Намалява броя на параметрите и изчисленията в мрежата, следователно, контролирайки „пренастройването“.
c) Прави мрежата инвариантна към малки трансформации, изкривявания и транслации във входното изображение (малко изкривяване на входа няма да промени изхода на обединяването — тъй като вземаме максималната/средна стойност в местен квартал).
г) Помага ни да достигнем до почти мащабно инвариантно представяне на нашето изображение (точният термин е „еквивариантно“).
6. Напълно свързан слой:
- Този слой приема входен обем от предходния си слой и извеждаN-измерен вектор, където N е броят на класовете, от които програмата трябва да избира. Всяко число в N-мерния вектор представлява вероятността за определен клас.
7. Softmax:
- Softmax (известен също като softargmax/нормализирана експоненциална функция/многокласова логистична регресия) е функция, която превръща вектор от K реални стойности, чиято сума е 1.
- Входните стойности могат да бъдат положителни, отрицателни, нула или по-големи от едно, но softmax ги трансформира в стойности между 0 и 1, така че да могат да се интерпретират като вероятности.
- Ако един от входовете е малък или отрицателен, softmax го превръща в малка вероятност, а ако входът е голям, тогава го превръща в голяма вероятност, но винаги ще остане между 0 и 1.
- Softmax е много полезен, защото преобразува резултатите от предишния слой в нормализирано разпределение на вероятностите, което може да се покаже на потребителя или да се използва като вход към други системи. Поради тази причина е обичайно да се добавя функция softmax като последен слой на конволюционната невронна мрежа.
Цялостният процес на обучение на Convolution Neural Network може да бъде обобщен по-долу:
- Стъпка 1: Инициализираме всички филтри и параметри/тегла с произволни стойности
- Стъпка 2:Мрежата приема тренировъчно изображение като вход, преминава през стъпката на разпространение напред (конволюция, ReLU и операции за групиране заедно с разпространение напред в напълно свързания слой) и намира изходните вероятности за всеки клас .
- Стъпка 3: Изчислете общата грешка в изходния слой:
- Обща грешка = ∑ ½ (целева вероятност — изходяща вероятност) ²
- Стъпка 4: Използвайте обратно разпространение, за да изчислите градиентите на грешката по отношение на всички тегла в мрежата и използвайте градиентно спускане, за да актуализирате всички стойности на филтъра / тегла и стойности на параметри за минимизиране на изходната грешка.
За въпроси, не се колебайте да пишете в секцията за коментари💬 по-долу. Можете да се свържете с мен в LinkedIn !!
Благодарим ви, че прочетохте! Желая ви страхотен ден занапред😊