W tym artykule wyjaśnię, w jaki sposób konwolucje 2D są implementowane jako mnożenie macierzy. Wyjaśnienie to jest oparte na notatkach z kursu CS231n Convolutional Neural Networks for Visual Recognition (Moduł 2). Zakładam, że czytelnik jest zaznajomiony z pojęciem operacji konwolucji w kontekście głębokiej sieci neuronowej. Jeśli nie, to w tym repo znajduje się raport i doskonałe animacje wyjaśniające czym są konwolucje. Kod do odtworzenia obliczeń w tym artykule można pobrać tutaj.
Mały przykład
Załóżmy, że mamy jednokanałowy obraz 4 x 4, X, a jego wartości pikseli są następujące:
Przypuśćmy dalej, że definiujemy konwolucję 2D o następujących właściwościach:
To oznacza, że będzie 9 łat obrazu 2 x 2, które będą elementowo mnożone przez macierz W, tak jak: