Как и почему работают нормализация и масштабирование функций?


61

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

Ответы:


25

Это просто случай получения всех ваших данных в одном и том же масштабе: если шкалы для различных функций сильно различаются, это может повлиять на вашу способность к обучению (в зависимости от того, какие методы вы используете для этого) , Обеспечение стандартизированных значений объектов неявно взвешивает все объекты в равной степени в их представлении.


3
что вы имеете в виду под «это может повлиять на вашу способность к обучению», может быть, вы могли бы расширить это?
Чарли Паркер

14
Это не очень хорошее объяснение. Чтобы достичь истинного понимания, вам нужно пойти хотя бы на более глубокий уровень объяснения.
Зельфир Кальцталь

Мне нужна ссылка на мой тезис, пожалуйста
x-rw

40

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

Например, некоторые методы являются инвариантами аффинного преобразования. Если у вас есть нейронная сеть и вы просто применяете аффинное преобразование к вашим данным, сеть не потеряет и не получит ничего в теории. На практике, однако, нейронная сеть работает лучше всего, если входы центрированы и белые. Это означает, что их ковариация диагональна, а среднее - это нулевой вектор. Почему это улучшает вещи? Это только потому, что оптимизация нейронной сети работает более изящно, поскольку скрытые функции активации не насыщают так быстро и, следовательно, не дают практически нулевых градиентов на ранних этапах обучения.

Другие методы, например, K-Means, могут дать вам совершенно разные решения в зависимости от предварительной обработки. Это связано с тем, что аффинное преобразование подразумевает изменение метрического пространства: евклидово расстояние между двумя выборками будет различным после этого преобразования.

В конце концов, вы хотите понять, что вы делаете с данными. Например, отбеливание в компьютерном зрении и выборочная нормализация - это то, что человеческий мозг делает так же хорошо в своем конвейере зрения.


17

Некоторые идеи, ссылки и графики того, почему нормализация ввода может быть полезна для ANN и 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')

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

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

(К вашему сведению: как я могу определить, является ли мой набор данных кластеризованным или некластеризованным (т.е. образующим один кластер )

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

Сравнительный анализ показывает, что результаты распределенной кластеризации зависят от типа процедуры нормализации.

Искусственная нейронная сеть (входы) :

Если входные переменные объединяются линейно, как в 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 )

30000


4
Если вы цитируете сообщение от Quora, вам действительно нужно дать ссылку на источник.
Мэтью Друри

5

Есть две отдельные проблемы:

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

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



1

Эта статья рассказывает только о k-средних, но она довольно хорошо объясняет и доказывает необходимость предварительной обработки данных.

Стандартизация является центральным этапом предварительной обработки в интеллектуальном анализе данных, чтобы стандартизировать значения характеристик или атрибутов из другого динамического диапазона в конкретный диапазон. В этой статье мы проанализировали эффективность трех методов стандартизации на обычном алгоритме K-средних. Сравнивая результаты по наборам данных по инфекционным заболеваниям, было обнаружено, что результат, полученный с помощью метода стандартизации по z-шкале, является более эффективным и действенным, чем методы стандартизации с минимальным и максимальным масштабированием.

,

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

,

... элементы должны быть безразмерными, поскольку числовые значения диапазонов размерных элементов зависят от единиц измерения, и, следовательно, выбор единиц измерения может существенно изменить результаты кластеризации. Следовательно, не следует применять меры расстояния, такие как евклидово расстояние, без нормализации наборов данных.

Источник: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf


1

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


1

Я думаю, что это делается просто для того, чтобы функция с большим значением не заслоняла эффекты объекта с меньшим значением при изучении классификатора. Это становится особенно важным, если функция с меньшими значениями фактически способствует разделению классов. Классификаторам, таким как логистическая регрессия, будет трудно определить границу решения, например, если она существует на микроуровне объекта, и у нас есть другие функции порядка миллионов . Также помогает алгоритму лучше сходиться. Поэтому мы не рискуем при их кодировании в наши алгоритмы. Классификатору гораздо легче узнать вклад (вес) характеристик таким образом. Также верно для K означает при использовании евклидовых норм (путаница из-за масштаба). Некоторые алгоритмы также могут работать без нормализации.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.