После прочтения [СтивенсPyTorch] стало более понятна феноменология свёрточных сетей. А именно, рассмотрим картинку:

Тут мы видим, как 6х6 вектор (36D) съёжился до скаляра (1D-вектор). Первый фильтр реагирует на какой-то свой паттер, второй фильтр на другой паттерт. Потом ещё max-pooling, который просто схлопывает всё к одному значению (скаляру), и тем самым даёт понять - есть интересный сигнал во входе или нет (за счёт пулинга(ов) достигатся translation invariance). Если сложить эффект от двух этих фильтров, то получится довольно таки сложная функция от 36 входов, которая после успешного (мы надеемся) обучения:
а) реагирует на нужный нам сигнал
б) реагирует на сигналы, которые формально приведут к сильной активации выходного слоя, но которые мы в тренировочном наборе никогда не видели.

Другими словами про пункт б). Попрбоуй, например, по активации скаляра в выходном слой сказать, какой паттерн был на входе. Да, это может быть а) (скорре всего), но это может быть и огромное кол-во иных паттернов б), которые сетка просто не видела. Спасает то, что скорее всего в естественной среде обитания пунктов б) не будет - там будут скорее всего какие-то кадавры и нереальные сочетания.

И тогда становится понятным, почему свинка превращается в аероплан. Потому что мы находим такое сочетание шумов, которые хитрым образом активируют нужные фильтры CNN (эксплуатируют слабые стороны).