#python #neural-network #deep-learning #pytorch #autoencoder
#python #нейронная сеть #глубокое обучение #pytorch #автоэнкодер
Вопрос:
Проблема:
Автоматический кодировщик Staked применяется к набору данных с 25 тысячами строк и 18 столбцами, все значения с плавающей запятой. SAE используется для извлечения объектов с кодированием и декодированием.
Когда я обучаю модель без масштабирования функций, потери составляют около 50 Кб, даже после 200 эпох. Но при применении масштабирования потеря составляет около 3 с первой эпохи.
Мои вопросы:
-
Рекомендуется ли применять масштабирование функций, когда SAE используется для извлечения функций
-
Влияет ли это на точность при декодировании?
Ответ №1:
- За некоторыми исключениями, вы всегда должны применять масштабирование функций в машинном обучении, особенно при работе с градиентным спуском, как в вашем SAE. Масштабирование ваших функций обеспечит гораздо более плавную функцию затрат и, следовательно, более быструю конвергенцию к глобальным (надеюсь) минимумам.
Также стоит отметить, что ваши гораздо меньшие потери после 1 эпохи с масштабированием должны быть результатом гораздо меньших значений, используемых для вычисления потерь.
- НЕТ
Комментарии:
1. Спасибо JimmyOnThePage за ваш ответ .. на ваши комментарии «Также стоит отметить, что ваши гораздо меньшие потери после 1 эпохи с масштабированием должны быть результатом гораздо меньших значений, используемых для вычисления потерь» .. да, после масштабирования применяемые значения стали маленькими.. что может быть альтернативой улучшению модели, чтобы избежать этого
2. Я не уверен, что вполне понимаю вопрос. Масштабирование функций всегда приведет к более быстрой конвергенции и увеличит вероятность нахождения глобального минимума. Этого не нужно избегать, поскольку инвертирование масштабирования выходных данных модели вернет функции в их исходные диапазоны. Если вы спрашиваете, как еще больше уменьшить потери, есть несколько вариантов, таких как изменение архитектуры SAE, лучший первоначальный выбор функций и т.д. Но масштабирование функций всегда улучшит ваши результаты или, по крайней мере, ускорит конвергенцию