Могут ли 1D CNN выводить функцию из двух других включенных функций? - PullRequest
0 голосов
/ 27 апреля 2018

Я использую 1D CNN для временных данных. Допустим, у меня есть две функции A и B. Соотношение между A и B (т. Е. A / B) важно - давайте назовем эту функцию C. Мне интересно, нужно ли мне явно вычислять и включать функцию C, или можно CNN теоретически выводит признак C из заданных признаков A и B?

Я понимаю, что при глубоком обучении лучше исключать сильно коррелированные функции (например, функцию C), но я не понимаю, почему.

1 Ответ

0 голосов
/ 27 апреля 2018

Краткий ответ - НЕТ. Использование стандартных слоев DNN не будет автоматически фиксировать это отношение A/B, поскольку стандартные слои, такие как Conv/Dense, будут выполнять только операции умножения матриц.

Чтобы упростить обсуждение, давайте предположим, что ваш входной объект двумерный, где первое измерение равно A, а второе - B. Применение слоя Conv к этой функции просто запоминает матрицу весов w и смещение b

y = w * [f_A, f_B] + b = w_A * f_A + w_B * f_B + b

Как видите, у этого представления нет способа имитировать или даже аппроксимировать операцию отношения между A и B.

Вам не нужно использовать функцию C так же, как функцию A и B. Вместо этого может быть лучше сохранить функцию C в качестве отдельного входа, поскольку ее динамический диапазон может сильно отличаться от значений A и B. Это означает, что вы можете иметь сеть с несколькими входами, где каждый вход имеет свои собственные слои извлечения объектов, и результирующие объекты из обоих входов можно объединить вместе, чтобы предсказать вашу цель.

...