2009-06-12 6 views
5

Классификатор на основе ядра обычно требует времени обучения O (n^3) из-за вычисления внутреннего продукта между двумя экземплярами. Чтобы ускорить обучение, значения внутреннего продукта могут быть предварительно вычислены и сохранены в двумерном массиве. Однако, когда нет. экземпляров очень велико, скажем, более 100 000, для этого не хватит памяти.Ядровые методы для крупномасштабного набора данных

Итак, какая-нибудь лучшая идея для этого?

+0

Я понятия не имею, о чем вы говорите. Кто-нибудь еще понимает это и может объяснить это мне? –

+0

«Классификаторы на основе ядра» - это своего рода алгоритм машинного обучения, который можно обучать данным (input -> output) для прогнозирования выходных значений для входных значений, которые они никогда ранее не видели. Вопроситель обеспокоен тем, что алгоритмы, похоже, плохо влияют на количество пар (входных, выходных). – Stompchicken

ответ

0

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

0

Я не численный аналитик, но не является QR decomposition, который вам нужен для обычной линейной регрессии наименьших квадратов также O (n^3)?

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

1

Для современных реализаций векторных машин поддержки масштабирование алгоритма обучения зависит от множества факторов, таких как характер данных обучения и используемого ядра. Масштабный коэффициент O (n^3) является аналитическим результатом и не особенно полезен для прогнозирования того, как обучение SVM будет масштабироваться в реальных ситуациях. Например, эмпирические оценки алгоритма обучения, используемые SVMLight, придают масштабируемость по размеру установленного обучения approximately O(n^2).

Я предлагаю вам задать этот вопрос в kernel machines forum. Я думаю, что у вас больше шансов получить лучший ответ, чем на Stack Overflow, который является скорее универсальным сайтом программирования.