Як і чому працюють нормалізація та масштабування функцій?


61

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

Відповіді:


25

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


3
що ви маєте на увазі під цим "це може вплинути на вашу здатність вчитися", можливо, ви могли б розширити це?
Чарлі Паркер

14
Це насправді не гарне пояснення. Щоб досягти справжнього розуміння, вам потрібно пройти принаймні рівень глибшого пояснення.
Зельфір Кальтшталь

мені потрібно будь-яке посилання на мою тезу, будь ласка
x-rw

40

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

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

Інші методи, наприклад K-засоби, можуть дати вам абсолютно різні рішення залежно від попередньої обробки. Це тому, що афінне перетворення передбачає зміну метричного простору: евклідова відстань btw двох зразків буде різною після цього перетворення.

Зрештою, ви хочете зрозуміти, що ви робите з даними. Наприклад, відбілювання комп'ютерного зору та нормалізація зразків - це те, що і мозок людини, як і в його зоровому трубопроводі.


17

Деякі ідеї, посилання та графіки про те, чому нормалізація вводу може бути корисною для ANN та k-засобів:

K-означає :

Кластеризація K-засобів є "ізотропною" у всіх напрямках простору і тому має тенденцію створювати більш-менш круглі (а не подовжені) кластери. У цій ситуації залишення дисперсій неоднаковим є рівнозначним надаванню більшої ваги змінним з меншою дисперсією.

Приклад у Matlab:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

введіть тут опис зображення

введіть тут опис зображення

(FYI: Як я можу визначити, чи мій набір даних кластеризований чи не кластеризований (тобто формує один єдиний кластер )

Розподілена кластеризація :

Порівняльний аналіз показує, що результати розподіленої кластеризації залежать від типу процедури нормалізації.

Штучна нейронна мережа (входи) :

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

Штучна нейронна мережа (входи / виходи)

Чи слід робити щось із ваших даних? Відповідь - це залежить.

Стандартизація вхідних або цільових змінних, як правило, покращує навчальний процес за рахунок поліпшення числового стану (див. Ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) проблеми оптимізації та забезпечення різних за замовчуванням значення, що беруть участь у ініціалізації та припиненні, є відповідними. Стандартизація цілей також може вплинути на цільову функцію.

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


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

У деяких додатках зміна одиниць вимірювання може навіть призвести до того, що можна побачити зовсім іншу структуру кластеризації. Наприклад, вік (у роках) та зріст (у сантиметрах) чотирьох уявних людей наведено в Таблиці 3 та зображено на рисунку 3. Видається, що {A, B) та {C, 0) - це два добре розділені скупчення . З іншого боку, коли висота виражена в стопах, отримуємо таблицю 4 та рисунок 4, де зараз очевидні скупчення {A, C} і {B, D}. Цей розділ повністю відрізняється від першого, оскільки кожен предмет отримав іншого супутника. (Малюнок 4 був би згладжений ще більше, якби вік вимірювався днями.)

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

введіть тут опис зображення введіть тут опис зображення

Кауфман та ін. продовжує деякі цікаві міркування (стор. 11):

З філософської точки зору стандартизація насправді не вирішує проблему. Дійсно, вибір одиниць вимірювання породжує відносні ваги змінних. Вираження змінної у менших одиницях призведе до збільшення діапазону для цієї змінної, що потім матиме великий вплив на отриману структуру. З іншого боку, стандартизуючи спроби надати всім змінним однакову вагу в надії на досягнення об'єктивності. Як такий, він може бути використаний практикуючим лікарем, який не має попередніх знань. Однак цілком може бути, що деякі змінні за своєю суттю важливіші, ніж інші, у певній програмі, і тоді призначення ваг має ґрунтуватися на знаннях про предмет (див., Наприклад, Abrahamowicz, 1985). З іншого боку, були спроби розробити методи кластеризації, які не залежать від масштабу змінних (Friedman and Rubin, 1967). Пропозиція Харді та Рассона (1982) полягає у пошуку перегородки, яка мінімізує загальний об'єм опуклих корпусів кластерів. В принципі такий метод є інваріантним щодо лінійних перетворень даних, але, на жаль, не існує алгоритму його впровадження (за винятком наближення, обмеженого двома вимірами). Тому в даний час дилема стандартизації видається неминучою, і програми, описані в цій книзі, залишають вибір на користувачі. Пропозиція Харді та Рассона (1982) полягає у пошуку перегородки, яка мінімізує загальний об'єм опуклих корпусів кластерів. В принципі такий метод є інваріантним щодо лінійних перетворень даних, але, на жаль, не існує алгоритму його впровадження (за винятком наближення, обмеженого двома вимірами). Тому в даний час дилема стандартизації видається неминучою, і програми, описані в цій книзі, залишають вибір на користувачі. Пропозиція Харді та Рассона (1982) полягає у пошуку перегородки, яка мінімізує загальний об'єм опуклих корпусів кластерів. В принципі такий метод є інваріантним щодо лінійних перетворень даних, але, на жаль, не існує алгоритму його впровадження (за винятком наближення, обмеженого двома вимірами). Тому в даний час дилема стандартизації видається неминучою, і програми, описані в цій книзі, залишають вибір на користувачі.


6

Чому функція масштабування функцій працює? Я можу навести вам приклад (від Quora )

Дозвольте мені відповісти на це з загальної точки зору ML та не лише нейронних мереж. Коли ви збираєте дані та витягуєте функції, багато разів дані збираються в різних масштабах. Наприклад, вік працівників в компанії може становити від 21 до 70 років, розмір будинку, в якому вони живуть, становить 500-5000 квадратних футів, а їх зарплата може становити від 80000. У цій ситуації, якщо ви користуєтеся простим евклідовим метрична, вікова особливість не буде грати жодної ролі, оскільки вона на кілька порядків менша, ніж інші функції. Однак він може містити важливу інформацію, яка може бути корисною для виконання завдання. Тут, можливо, ви хочете нормалізувати функції незалежно до однієї шкали, скажімо [0,1], тому вони роблять однаковий внесок під час обчислення відстані.30000


4
Якщо ви цитуєте повідомлення від Quora, вам дійсно потрібно посилання на джерело.
Метью Друрі

5

Є два окремих питання:

а) вивчення правильної функції, наприклад, k-означає: вхідна шкала в основному визначає подібність, тому знайдені кластери залежать від масштабування. регуляризація - наприклад, регуляризація ваги l2 - ви припускаєте, що кожна вага повинна бути «однаково маленькою» - якщо ваші дані не масштабуються «належним чином», це не буде так

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



1

У цьому документі йдеться лише про k-засоби, але це досить добре пояснює та доводить вимогу попередньої обробки даних.

Стандартизація - це центральний крок попередньої обробки даних для вилучення даних для стандартизації значень особливостей або атрибутів з різних динамічних діапазонів у конкретний діапазон. У цій роботі ми проаналізували ефективність трьох методів стандартизації за звичайним алгоритмом K-засобів. Порівнюючи результати наборів даних про інфекційні захворювання, було встановлено, що результат, отриманий методом стандартизації z-score, є більш ефективним та ефективним, ніж методи стандартизації min-max та десяткового масштабування.

.

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

.

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

Джерело: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf


1

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


1

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

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