Скажите, что у нас есть некоторые входные данные, метка истинного заземления и нейронная сеть Затем мы используем эти данные и метку для обучения модели и получения некоторых результатов.
По какой-то причине мы обнаружили, что вместо использования исходных данных в качестве входных данных, расчета локального стандартного отклонения данных и использования их в качестве входных данных можно получить лучший результат. Вот пример расчета локального стандартного отклонения, это от здесь :
h = 1; % for half window size of 3
x = [4 8 1 1 1 7 9 3]; % input signal
N = length(x); % length of the signal
o = ones(1, N); % array for output
for i = 1 : N
% calculate standard deviation using the built-in std command
% for the current window
o(i) = std(x(max(1, i - h) : min(N, i + h)));
end
Итак, вот мой вопрос: вместо того, чтобы самостоятельно рассчитывать локальное стандартное отклонение, можно ли использовать слой свертки и позволить модели научиться выполнять такую операцию самостоятельно?
Если мы не можем сделать это с помощью одного слоя свертки, можем ли мы сделать это с помощью более сложной модели?
Если мы сможем это сделать, у меня возникнет другой вопрос: почему модель не может научиться самостоятельно выполнять операцию пакетной нормализации? Почему людям все еще нужно добавлять слой нормализации партии вручную?
Я провел некоторые исследования в Google, и вот что я получил. Хотя я все еще немного сбит с толку:
https://matlabtricks.com/post-20/calculate-standard-deviation-case-of-sliding-window
Заранее спасибо!