Подтвердить что ты не робот

Почему масштабирование функции?

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

"Основное преимущество масштабирования - избегать атрибутов в более широких числовых диапазонах, преобладающих в меньших числовых диапазонах".

К сожалению, это не помогло мне... Может ли кто-нибудь дать мне лучшее объяснение? Заранее благодарю вас!

4b9b3361

Ответ 1

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

Рассмотрим пример: у вас есть мужчина и женщина, закодированные по полу и росту (две особенности). Давайте предположим очень простой случай с такими данными:

0 → мужчина 1 → женщина

╔═════╦════════╗
║ sex ║ height ║
╠═════╬════════╣
║  1  ║  150   ║
╠═════╬════════╣
║  1  ║  160   ║
╠═════╬════════╣
║  1  ║  170   ║
╠═════╬════════╣
║  0  ║  180   ║
╠═════╬════════╣
║  0  ║  190   ║
╠═════╬════════╣
║  0  ║  200   ║
╚═════╩════════╝

И давайте сделаем что-нибудь глупое. Тренируйте его, чтобы предсказать пол человека, поэтому мы пытаемся выучить f (x, y) = x (игнорируя второй параметр).

Легко видеть, что для таких данных классификатор наибольшего запаса будет "разрезать" плоскость горизонтально где-то около высоты "175", поэтому, как только мы получим новый образец "0 178" (женщина ростом 178 см), мы получим классификацию, что она это мужчина.

Однако, если мы уменьшим все до [0,1], мы получим что-то вроде

╔═════╦════════╗
║ sex ║ height ║
╠═════╬════════╣
║  1  ║  0.0   ║
╠═════╬════════╣
║  1  ║  0.2   ║
╠═════╬════════╣
║  1  ║  0.4   ║
╠═════╬════════╣
║  0  ║  0.6   ║
╠═════╬════════╣
║  0  ║  0.8   ║
╠═════╬════════╣
║  0  ║  1.0   ║
╚═════╩════════╝

и теперь самый большой классификатор полей "разрезает" плоскость почти вертикально (как и ожидалось), и, учитывая новую выборку "0 178", которая также масштабируется до "0 0,56", мы получаем, что это женщина (правильно!)

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

Ответ 2

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

Я проиллюстрирую основные идеи здесь (я одалживаю Andrew slides). Предположим, у вас есть только два параметра, и один из параметров может принимать относительно большой диапазон значений. Тогда контур функции стоимости могут быть похожими на очень высокие и тощие овалы (см. синие овалы ниже). Ваши градиенты (путь градиента рисуется красным цветом) могут занять много времени и идти туда и обратно, чтобы найти оптимальное решение.
enter image description here

Вместо того, чтобы масштабировать вашу функцию, контур функции стоимости может выглядеть как круги; то градиент может принимать гораздо более прямой путь и достичь оптимальной точки намного быстрее. enter image description here

Ответ 3

Просто личные мысли с другой точки зрения.
1. почему влияние масштабирования функции?
Там слово в применении алгоритма машинного обучения, "мусор, мусор". Чем более реальным отражением ваших функций, тем больше будет ваш алгоритм. Это также относится к тому, как алгоритмы машинного обучения рассматривают взаимосвязь между функциями. В отличие от человеческого мозга, когда алгоритмы машинного обучения классифицируют, например, все функции выражаются и вычисляются одной и той же системой координат, которая в некотором смысле устанавливает априорное предположение между функциями (на самом деле отражение самих данных). А также характер большинства алгоритмов заключается в том, чтобы найти наиболее подходящий процент по весу между функциями для приспособления данных. Поэтому, когда вход этих алгоритмов является немасштабированным, данные крупномасштабного масштаба оказывают большее влияние на вес. На самом деле это не отражение данных. 2. почему обычно функция масштабирования повышает точность?
Общепринятая практика в неконтролируемых алгоритмах машинного обучения по выбору гиперпараметров (или гипер-гиперпараметров) (например, иерархический процесс Дирихле, hLDA) заключается в том, что вы не должны добавлять какие-либо личные субъективные предположения о данных. Лучше всего только предположить, что они имеют вероятность равенства. Я думаю, что это применимо и здесь. Масштабирование функции просто пытается сделать предположение, что все функции имеют возможность равенства влиять на вес, что более реально отражает информацию/знания, которые вы знаете о данных. Обычно также приводят к лучшей точности.

Кстати, об аффинном преобразовании инвариантны и сходятся быстрее, есть интересная ссылка здесь на stats.stackexchange.com.

Ответ 4

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

Итак, это делается для того, чтобы сделать что-то вроде стандартизации данных. Иногда исследователи хотят знать, является ли конкретное наблюдение распространенным или исключительным. выражайте оценку с точки зрения количества стандартных отклонений, которые она удаляется из среднего. Это число - это то, что мы называем z-балл. Если мы перекодируем исходные оценки в z-баллы, мы говорим, что мы стандартизируем переменную.

Ответ 5

Из того, что я узнал из курса Andrew Ng по coursera, является то, что масштабирование функции помогает нам достичь градиента приличным быстрее, если данные будут более распространены, это означает, что если у него будет более высокое отклонение от вертикали, оно будет относительно уделите больше времени, чтобы вычислить градиент приличный по сравнению с ситуацией, когда мы масштабируем наши данные с помощью масштабирования функций

Ответ 6

Идея масштабирования состоит в том, чтобы удалить вычисления exess по определенной переменной, стандартизируя всю переменную на один и тот же масштаб, с этим мы склонны вычислять наклон намного легче (y = mx + c), где мы нормализуем M для сближения как можно быстрее.

Ответ 7

Да, если нормализации там нет, тогда контур будет тощим, с нормализацией:

  • Значения находятся в пределах диапазона
  • Ускоряет вычисление theta, потому что количество требуемых вычислений будет меньше