8 votos

¿Cuál es el algoritmo de aprendizaje de características no supervisado más rápido?

He estudiado varios algoritmos de aprendizaje de características sin supervisión. La mayoría de ellos (máquinas de Boltzmann restringidas y autocodificadores dispersos) tienen tiempos de entrenamiento muy largos, incluso en conjuntos de datos pequeños como MNIST . Me pregunto si hay algoritmos similares que puedan entrenarse en menos tiempo.

Algoritmos similares que parecen ser prometedores podrían ser el filtrado disperso y el ICA de coste de reconstrucción (RICA). ¿Hay más?

Otro problema con algunos de estos algoritmos es que la mayoría de ellos requieren un entrenamiento por lotes con algoritmos como L-BFGS. En un entorno en línea, lo más probable es que sea difícil entrenarlos sin almacenar en caché un lote de instancias para el entrenamiento. ¿Existen alternativas? ¿Hay algo en la literatura? No he podido encontrar nada.

5voto

Boris Tsirelson Puntos 191

K-means es bastante rápido, al igual que PCA. Si se utiliza una biblioteca SVD dispersa (como la paquete irlba para R) se puede aproximar el PCA con bastante rapidez en grandes conjuntos de datos.

Creo que hay algunos algoritmos bastante rápidos para k-means en línea (también conocido como secuencial).

0 votos

¿Es posible también apilar k-means para construir arquitecturas de redes profundas?

0 votos

@Alfa: Supongo que "apilar" k-means te daría una jerarquía de clusters, pero no creo que te sirva de mucho. A fin de cuentas, k-means encuentra "clusters" de observaciones que están cerca unas de otras en el espacio euclidiano. He oído hablar del "clustering de acumulación de pruebas", que utiliza un clustering jerárquico construido sobre k-means con varios centros diferentes, pero en ese punto se pierde mucha velocidad.

0 votos

Vale, recuerdo que el grupo de investigación de Andrew Ng ya publicó un artículo sobre k-means y cómo se compara con los autocodificadores dispersos, los GMM y los RBM dispersos en CIFAR-10 y NORB. Voy a releer ese artículo ahora :)

1voto

sabalaba Puntos 450

Una de las cosas que hay que tener en cuenta es el MDA, el Autoencoder de Desenmascaramiento Marginalizado. Entrena órdenes de magnitud más rápido que un SdA y puede ser la solución que estás buscando. [1] [2] Personalmente, estoy más interesado en este último artículo, ya que el aprendizaje de representaciones no lineales es importante en dominios que tienen una estructura altamente no lineal. En mi caso, las imágenes de caras.

La configuración "en línea" para un algoritmo que utiliza el descenso de gradiente estocástico es simplemente establecer el tamaño del mini lote a 1, es decir, calcular el gradiente y dar un paso después de cada nueva muestra. Debería ser obvio que, en el caso del aprendizaje en línea, el descenso de gradiente "por lotes" estándar nunca actualizará sus pesos. (El descenso de gradiente por lotes sólo actualiza sus pesos después de ver todos los ejemplos de un conjunto de datos). El tamaño real del minilote va a cambiar en función del hardware que esté utilizando. Puede que incluso descubras que, dado que el ancho de banda de los datos será probablemente la principal preocupación, las CPUs podrían funcionar mejor que las GPUs, al menos hasta que salga nvlink.

Yoshua Bengio tiene algunas ideas interesantes sobre lo que significa entrenar una red en un entorno en línea (donde cada nueva muestra de entrenamiento $x_t$ entra en el paso de tiempo $t$ se ve una vez y no se vuelve a ver). Sugiere que, *"en el caso simplificado de datos independientes e idénticamente distribuidos (i.i.d.), un aprendiz en línea está realizando un descenso de gradiente estocástico en su error de generalización"[3] Es de esperar que esté claro que la mayoría de los conjuntos de datos en línea no son i.i.d., sino que suelen mostrar correlación temporal. (Desde luego, no me gustaría ver un flujo de imágenes i.i. durante mucho tiempo. ^^)

  1. http://arxiv.org/abs/1206.4683

  2. http://arxiv.org/abs/1206.4683

  3. http://arxiv.org/abs/1206.5533

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