Очевидно, что пример с одним нейроном не работает - иначе это то, что мы использовали бы.
Ядра каждого слоя в CNN используют пространственные отношения и оценивают эти сопоставления с помощью нелинейные функции, которые являются основным дифференцированием CNN по простой линейной комбинации NN.Без этих нелинейных операций слои CNN являются просто удобством программирования.
Если вы сразу свернете свой ввод в одно значение, у вас возникнет огромная проблема при попытке написать каскаднелинейности, которые составляют оценку выхода.Да, теоретически возможно написать функцию с, скажем, 28x28x3 входами и именно тем выходом, который вы хотите, - и обучить многозначность параметров в этой функции - но это очень грязный код и почти невозможный для обслуживания.
Например, представьте, что вы пытаетесь закодировать всю форму подоходного налога в одной функции, так чтобы входными данными был весь диапазон применимых денежных сумм, информация о булевом статусе, скаляраргументы (например, сколько детей проживают дома), ... и выводят правильную сумму вашего платежа или возмещения.Существует множество булевых уравнений, пошаговые функции с изменяющимися налоговыми ставками, различные категории дополнительных налогов или льгот и т. Д.
Теперь параметризуйте все постоянные коэффициенты в этом массовом расчете.Получите 10 ^ 6 реальных наблюдений и обучите свою модель только на этом входе и метках (сумма налога / возврата).Вы не получите каких-либо промежуточных результатов для проверки, только этой окончательной суммы.
Это возможно, но не так просто написать, отладить или поддерживать.