7 votos

Pocos máquina de problemas de aprendizaje

En una aplicación en particular yo estaba en la necesidad de aprendizaje de máquina (sé que las cosas que he estudiado en mi curso de licenciatura). He utilizado Máquinas de Soporte Vectorial y tengo el problema resuelto. Su trabajo bien.

Ahora tengo que mejorar el sistema. Los problemas aquí son

  1. Puedo obtener capacitación adicional ejemplos de cada semana. Ahora se inicia el sistema de formación recién actualizado con ejemplos (ejemplos antiguos + nuevos ejemplos). Quiero hacer incremental de aprendizaje. El uso de conocimientos previos (en lugar de los ejemplos anteriores) con nuevos ejemplos de obtener un nuevo modelo (el conocimiento)

  2. A la derecha de mi ejemplos de formación tiene 3 clases. Por lo tanto, cada entrenamiento de ejemplo se coloca en una de estas 3 clases. Quiero funcionalidad de "Desconocido" de la clase. Cualquier cosa que no encaje en estas 3 clases debe ser marcado como "desconocido". Pero no se puede tratar como "Desconocido" una nueva clase y se proporcionan ejemplos de esto también.

  3. Suponiendo, el "desconocido" de la clase se implementa. Cuando la clase es "desconocido", el usuario de la aplicación de los insumos de la lo que él piensa que la clase puede ser. Ahora, tengo la necesidad de incorporar a la entrada del usuario en el aprendizaje. Yo no tengo ni idea acerca de cómo hacer esto. ¿Sería la diferencia si el usuario introduce una nueva clase (i.e.. una clase que ya no está en el conjunto de entrenamiento)?

Necesito elegir un nuevo algoritmo o Máquinas de Soporte Vectorial puede hacer esto?

PS: yo estoy usando libsvm aplicación de la SVM.

13voto

John Richardson Puntos 1197

Para (1), como ebony1 sugiere, hay varios incremental o en la línea de los algoritmos SVM que usted puede probar, la única cosa que me gustaría mencionar es que el hyper-parámetros (de regularización y de los parámetros del kernel) también puede necesitar ajuste a medida que avanza así, y hay menos algorítmica trucos para ayudar con eso. La regularización parámetro es casi seguro que el beneficio de la optimización, porque a medida que la cantidad de datos de entrenamiento aumenta, menos de regularización que se requiere normalmente.

(2) puedes probar el ajuste de un one-class SVM a los datos de entrenamiento, que por lo menos digan si los datos fueron consistentes con las clases a las que conocemos, y luego clasificar como "desconocido" si la salida de la one-class SVM es lo suficientemente baja. IIRC libsvm tiene una puesta en práctica de una clase de la SVM.

(3) si usted acaba de uso 1-v-1 componente de clase SVMs, entonces usted sólo tiene que realizar tres nuevas SVMs, uno para cada uno de los desconocidos-v-conocido clase de combinaciones, y no hay necesidad de volver a capacitar a los demás.

HTH

2voto

Evan M. Puntos 231

No estoy realmente seguro de si una aplicación existe para solucionar todas sus necesidades.

Para (1), puede utilizar cualquiera de las aplicaciones en línea de SVM como Pegasos o LASVM. Si quieres algo más sencillo, puedes usar de tipo perceptrón o el Kernel de tipo perceptrón. Básicamente, en todos estos algoritmos, dado que ya aprendió de peso vector (es decir w0), puede actualizar w0 de forma incremental, dado un nuevo conjunto de nuevos ejemplos.

Para (2) y (3), no estoy seguro de si los anteriores enfoques, de inmediato permitir pero usted probablemente puede prestadas algunas de las ideas de la literatura desconocidas clases. Te sugiero echar un vistazo a esto.

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