8 votos

¿Métodos kernel "escala" con la cantidad de datos?

He estado leyendo acerca de los métodos del núcleo, donde se asignan original $N$ puntos de datos a una función de espacios, calcular el núcleo o matriz de gram y un enchufe que la matriz en un estándar, algoritmo lineal. Todo esto suena bien cuando la característica de que el espacio es infinito dimensional o de lo contrario muy alto dimensiones (mucho mucho más grande de lo $N$), PERO el núcleo de la matriz en sí es también bastante grande en $N \times N$, lo que significa que si se duplica la cantidad de puntos que usted cuádruple de la cantidad de memoria necesaria. ¿Esto significa que el núcleo de los métodos no se adaptan bien a conjuntos de datos más grandes? O no es necesario calcular el núcleo de la matriz y tener toda la cosa en la memoria para la mayoría de los algoritmos?

8voto

Marc Claesen Puntos 9818

No es necesario tener todo el núcleo de la matriz en memoria en todo momento, pero por supuesto que pagar un precio de posibilidad de las entradas si no. Métodos del núcleo son muy eficientes en el trato con entrada de alta dimensionalidad gracias al núcleo truco, pero, como usted bien nota que no escala que fácilmente a un gran número de instancias de formación.

SVM no lineal, por ejemplo, tiene un $\Omega(n^2)$ entrenamiento complejidad ($n$ número de casos). Esto no es ningún problema para conjuntos de datos de hasta unos pocos millones de casos, pero después de que ya no es posible. En ese punto, aproximaciones puede ser utilizado como la de tamaño fijo núcleos o conjunto de pequeñas SVM modelos de base.

3voto

Vanshekaa Puntos 6

Hay una rica historia de la literatura acerca de tratar con grandes núcleos.

"Al azar características a gran escala del núcleo máquinas" por Rahimi y Recht es un hito importante. Se insertan los datos de entrada en una dimensión inferior en un estudio aleatorizado de moda para lograr la escalabilidad. Este trabajo ha generado más interesantes obras en el trato con diferentes tipos de kernels etc.

El Nystrom basadas en el método de enfoque es otra manera de tratar con grandes núcleos. De nuevo, este enfoque ha sido abordado por varios trabajos.

Recientemente, Divide y vencerás núcleo SVM ha abordado este problema en la configuración distribuida. Echa un vistazo: www.cs.utexas.edu/~cjhsieh/dcsvm/

0voto

john Puntos 30

Creo que algún cálculo de núcleo puede ser distribuido a la agrupación. Entonces este algoritmo puede considerarse como escalable, ya que hay gran cantidad de memoria y cpu en el cluster de computación.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X