Давай я попробую объяснить без привязки к статье и формулам минимального числа умножений и прочего
Вот у нас есть, например, входной feature map размером NxN (количество каналов для простоты будем брать = 1), и мы хотим получить двумя способами (свёрткой 5х5 или двумя свёртками 3х3) выходной feature map также размером NxN
<Лирическое отступление>
для того, чтобы сохранился размер feature map после свёрточного слоя с ядром KxK , K>1 добавляют нулевой паддинг, т.е. увеличивают входное изображение, добавляя границы по бокам
для свёртки 5x5 это будет по два пикселя с каждой стороны, для свёртки 3х3 - один пиксель с каждой стороны. Допустим мы их добавляем, т.к. мы хотим одинаковые размеры NxN на выходе.
</Лирическое отступление>
Получается:
А) Чтобы получить выходной feature map размером NxN одной свёрткой 5х5 мы должны пройти центром этой свёртки по NxN точкам исходного feature map и каждый раз провести 5х5 умножений, получится (25) * (N*N) операций
Б) Чтобы получить выходной feature map размером NxN двумя последовательными свёртками 3х3 мы должны:
1) Пройти центром первой свёртки 3х3 по NxN точкам исходного feature map, каждый раз провести 3х3 умножений, получится (9) * (N*N) операций и на выходе - промежуточный feature map размером NxN
2) Пройти центром второй свёртки 3х3 по NxN точкам промежуточного feature map-а, каждый раз производя 3х3 умножений, получится ещё (9) * (N*N) операций - и на выходе - итоговый feature map размером NxN
В итоге получается (9)*(N*N) + (9)*(N*N) = 18 * (N*N) операций, что в 25/18 раз меньше