Como mencionas, almacenar la matriz del kernel requiere memoria que se escala cuadráticamente con el número de puntos de datos. El tiempo de entrenamiento para los algoritmos SVM tradicionales también se escala superlinealmente con el número de puntos de datos. Por lo tanto, estos algoritmos no son factibles para grandes conjuntos de datos.
Un posible truco es reformular una SVM kernelized como una SVM lineal. Cada elemento de la matriz del núcleo representa el producto de punto entre los puntos de datos y después de (posiblemente no linealmente) en un espacio de características: . La función de mapeo de espacioKijxixjKij=Φ(xi)⋅Φ(xj)Φse define implícitamente por la función del kernel, y las SVM kernelizadas no computan explícitamente las representaciones del espacio de características. Esto es computacionalmente eficiente para conjuntos de datos de tamaño pequeño a mediano, ya que el espacio de características puede ser de muy alta dimensión, o incluso infinito. Pero, como anteriormente, esto se vuelve inviable para grandes conjuntos de datos. En cambio, podemos mapear explícitamente los datos de forma no lineal en el espacio de características, luego entrenar eficientemente un SVM lineal en las representaciones del espacio de características. El mapeo del espacio de características se puede construir para aproximarse a una función de kernel dada, pero usa menos dimensiones que el mapeo del espacio de características 'completo'. Para grandes conjuntos de datos, esto aún puede proporcionarnos representaciones de espacios de características ricas, pero con muchas menos dimensiones que los puntos de datos.
Un enfoque para la aproximación del núcleo utiliza la aproximación de Nyström (Williams y Seeger 2001). Esta es una forma de aproximar los valores propios / vectores propios de una matriz grande usando una submatriz más pequeña. Otro enfoque utiliza características aleatorias, y a veces se llama 'fregaderos de cocina aleatorios' (Rahimi y Recht 2007).
Otro truco para entrenar SVM en grandes conjuntos de datos es aproximar el problema de optimización con un conjunto de subproblemas más pequeños. Por ejemplo, el uso del descenso de gradiente estocástico en el problema primario es un enfoque (entre muchos otros). Se ha trabajado mucho en el frente de la optimización. Menon (2009) ofrece una buena encuesta.
Referencias
Williams y Seeger (2001). Usando el método Nystroem para acelerar las máquinas kernel.
Rahimi y Recht (2007). Características aleatorias para máquinas kernel a gran escala.
Menon (2009) . Máquinas de vectores de soporte a gran escala: Algoritmos y teoría.