Рекомендуется ли масштабирование функций для автоэнкодера?

#python #neural-network #deep-learning #pytorch #autoencoder

#python #нейронная сеть #глубокое обучение #pytorch #автоэнкодер

Вопрос:

Проблема:

Автоматический кодировщик Staked применяется к набору данных с 25 тысячами строк и 18 столбцами, все значения с плавающей запятой. SAE используется для извлечения объектов с кодированием и декодированием.

Когда я обучаю модель без масштабирования функций, потери составляют около 50 Кб, даже после 200 эпох. Но при применении масштабирования потеря составляет около 3 с первой эпохи.

Мои вопросы:

  1. Рекомендуется ли применять масштабирование функций, когда SAE используется для извлечения функций

  2. Влияет ли это на точность при декодировании?

Ответ №1:

  1. За некоторыми исключениями, вы всегда должны применять масштабирование функций в машинном обучении, особенно при работе с градиентным спуском, как в вашем SAE. Масштабирование ваших функций обеспечит гораздо более плавную функцию затрат и, следовательно, более быструю конвергенцию к глобальным (надеюсь) минимумам.

Также стоит отметить, что ваши гораздо меньшие потери после 1 эпохи с масштабированием должны быть результатом гораздо меньших значений, используемых для вычисления потерь.

  1. НЕТ

Комментарии:

1. Спасибо JimmyOnThePage за ваш ответ .. на ваши комментарии «Также стоит отметить, что ваши гораздо меньшие потери после 1 эпохи с масштабированием должны быть результатом гораздо меньших значений, используемых для вычисления потерь» .. да, после масштабирования применяемые значения стали маленькими.. что может быть альтернативой улучшению модели, чтобы избежать этого

2. Я не уверен, что вполне понимаю вопрос. Масштабирование функций всегда приведет к более быстрой конвергенции и увеличит вероятность нахождения глобального минимума. Этого не нужно избегать, поскольку инвертирование масштабирования выходных данных модели вернет функции в их исходные диапазоны. Если вы спрашиваете, как еще больше уменьшить потери, есть несколько вариантов, таких как изменение архитектуры SAE, лучший первоначальный выбор функций и т.д. Но масштабирование функций всегда улучшит ваши результаты или, по крайней мере, ускорит конвергенцию