Здійснювати нормалізацію функції до або в процесі перевірки моделі?


52

Поширена практика в машинному навчанні полягає в нормалізації характеристик або стандартизації даних змінних прогнозника, саме так, центрувати дані, що віднімають середнє значення, і нормалізувати його діленням на дисперсію (або стандартне відхилення теж). Для стримування самопочуття і, наскільки я розумію, ми робимо це для досягнення двох головних речей:

  1. Уникайте зайвих малих ваг з метою чисельної стійкості.
  2. Забезпечте швидку конвергенцію алгоритмів оптимізації, таких як, наприклад, кон'югатний градієнт, щоб велика величина одного розміру предиктора wrt інших не призводила до повільної конвергенції.

Ми зазвичай розбиваємо дані на навчальні, валідаційні та тестові набори. У літературі ми зазвичай бачимо, що для нормалізації ознак вони приймають середнє значення та відхилення (або стандартне відхилення) для всього набору змінних прогнозів. Великий недолік, який я бачу тут, полягає в тому, що якщо ви це зробите, ви насправді вводите майбутню інформацію в змінні прогнозувальника тренінгу, а саме в майбутню інформацію, що міститься в середньому та відхиленні.

Тому я нормалізую дані щодо тренувальних даних і зберігаю середнє значення та відхилення. Тоді я застосовую нормалізацію функції до змінних прогнозів валідаційних і тестових наборів даних, використовуючи середнє тренування та відхилення. Чи є з цим якісь принципові вади? хтось може порекомендувати кращу альтернативу?


Відповіді:


46

Ваш підхід цілком правильний. Хоча перетворення даних часто недооцінюють як "попередню обробку", не можна достатньо підкреслити, що трансформації з метою оптимізації продуктивності моделі можна і слід розглядати як частину процесу побудови моделі.

Обґрунтування: модель повинна застосовуватися до невидимих ​​даних, які, як правило, недоступні на момент створення моделі. Процес перевірки (включаючи поділ даних) імітує це. Отже, щоб отримати хорошу оцінку якості моделі (та потужності узагальнення), необхідно обмежити обчислення параметрів нормалізації (середнього та відхилення) до навчального набору.

Я можу лише здогадуватися, чому це не завжди робиться в літературі. Одним із аргументів може бути те, що обчислення середнього та дисперсійного типу не чутливі до малих варіацій даних (але навіть це справедливо лише в тому випадку, якщо основний розмір вибірки є досить великим і дані приблизно нормально розподіляються без екстремальних видатків).


Я вважаю це трохи заплутаним. ОП каже, що він робить нормалізацію функцій для валідації та тестових наборів даних. Ваша відповідь спочатку говорить, що його підхід правильний. Тоді ви говорите: «потрібно обмежити обчислення параметрів нормалізації навчальним набором», що не є тим, що він робить. Тож ваша відповідь суперечить самій собі, кажучи йому, що він робить, є правильним, а потім підказує інше. Що я тут пропускаю?
mahonya

4
Те, що робить ОП, описано в його останньому абзаці, і саме це я сказав. Звичайно, нормалізація застосовується до набору тестів / перевірки, якщо вона застосовувалася до навчального набору. Важливим моментом є те, що параметри цієї нормалізації були розраховані лише на даних тренувань, а не на весь набір. Сподіваюся, це допомагає.
steffen

Ах, велике спасибі Я неправильно зрозумів вашу відповідь. Я хоч ви пропонували «застосувати» нормалізацію лише до навчального набору, що явно не було тим, що ви запропонували.
mahonya

2

Нормалізація особливостей полягає в тому, щоб зробити різні функції в одному масштабі. Масштабування прискорює спуск градієнта, уникаючи безлічі додаткових ітерацій, необхідних, коли одна або кілька функцій набувають набагато більших значень, ніж інші (Без масштабування візуалізована функція витрат демонструє велику асиметрію).

Я думаю, що є сенс, що використовуйте середнє значення та вар у навчальних наборах, коли надходять дані тесту. Але якщо розмір даних величезний, обидва набори тренувань та валідації можна приблизно сприймати як звичайний розподіл, таким чином вони приблизно поділяють середнє значення та вар.


1
Причина, завдяки якій нормалізація даних може прискорити спуск градієнта, полягає в тому, що без нормалізації rss має еліптичні контури, тому, враховуючи фіксовану швидкість навчання, для сходження градієнта може знадобитися більше ітерацій. Якщо у масштабі масштабування, rss має контури кола (симетричні), тому спуск градієнта швидко сходиться. Маю рацію?
авокадо

1

Методологія, яку ви описали, є здоровою, як казали інші. Ви повинні виконати те саме перетворення на функціях тестового набору, як і у функціях вашого навчального набору.

Я думаю, що варто додати, що ще однією причиною нормалізації функцій є підвищення продуктивності певних процесів, чутливих до відмінностей за шкалою певних змінних. Наприклад, аналіз основних компонентів (PCA) спрямований на те, щоб зафіксувати найбільшу частку дисперсії, і в результаті буде надано більше ваги змінним, які демонструють найбільшу дисперсію, якщо нормалізація функції не виконується спочатку.


Дуже хороший момент! дякую за те, що ви це зробили. Пам’ятаю, з моїх досліджень завжди нормалізував вхідну матрицю перед обчисленням PCA.
SkyWalker
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.