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

  1. Основната CNN архитектура се състои от: Input-›(Conv+ReLU)-›Pool-›(Conv+ReLU)-›Pool-› Flatten-›Fully Connected-›Softmax-›Output
  2. Извличането на функции се извършва в слоевете 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 !!

Благодарим ви, че прочетохте! Желая ви страхотен ден занапред😊