¿Tiene alguna implementación de clasificación de una clase utilizando la red neuronal?

La clasificación de una clase (OCC) se refiere a una situación en la que solo tiene datos de entrenamiento para una clase (o clase positiva) pero durante la prueba puede encontrar muestras positivas y negativas. En principio, esto es similar a la anomalía o detección atípica.

La mayoría de las arquitecturas de aprendizaje profundo son discriminatorias, por ejemplo, CNN, DeepNets, etc., porque necesitan datos de dos o más clases para aprender el clasificador. En la situación de OCC, su mejor opción son los Autoencoders (AE), porque puede entrenar un AE en un tipo de datos (o positivo) y, según un umbral, puede identificar una muestra de prueba como perteneciente a una clase positiva o no. El principal desafío aquí es cómo ajustar el umbral. La mayoría de las veces, el máximo de error de reconstrucción en el conjunto de entrenamiento se toma como un umbral. Sin embargo, si los datos de entrenamiento son ruidosos, esto puede resultar en aceptar una muestra negativa como miembro de la clase positiva. Por lo tanto, este umbral debe ser ajustado.

Ahora, si desea usar AE para la clasificación de una clase, hay varias bibliotecas que puede usar.

  • En R, puede usar el paquete H2O: un pequeño experimento de profundización de H2O en el conjunto de datos MNIST
  • En python, puede usar Theano – Denoising Autoencoders (dA)
  • En MATLAB, hay una función para entrenar AE – Entrenar un autoencoder – MATLAB trainAutoencoder
  • En Java, puede usar Deeplearning4j – Deep Autoencoders

Hay una nueva variante generativa de AE ​​que puede usarse para este propósito: AE variacional – cdoersch / vae_tutorial (código en github).

Otras lecturas

  • En mi artículo de revisión sobre OCC, discutí varias técnicas que usan redes neuronales, lea la Sección 4.2.2.2 en la Página 12 [1].
  • Los AE son buenos cuando aprendes de datos en bruto. Si sus datos ya tienen características de ingeniería, puede que no sea una buena idea entrenar un AE en ellos. Sin embargo, aún puede usar AE.
  • ¿Hay alguna razón particular por la que desea utilizar redes neuronales para OCC? Si no tiene una razón suficientemente buena, recomendaría probar primero métodos más estándar, como SVM de una clase, vecinos más cercanos de una clase, etc. También puede leer esta respuesta: cómo hacer una clasificación de una clase usando SVM?
  • Aplicar árboles de decisión no es tan sencillo para resolver problemas de OCC; sin embargo, puede encontrar varias de estas y otras técnicas en el documento de revisión mencionado anteriormente.

Buena suerte.

Notas al pie

[1] https://cs.uwaterloo.ca/~s255kha…

¿Te refieres a la clasificación de dos clases (binario)? Si solo tiene una clase, simplemente clasifique todo como esa clase.

Para la clasificación binaria, use una red neuronal con una función de activación log-sig en la capa de salida.

Eso es todo lo que puedo decir dado el nivel de detalle en la pregunta.

Tal vez pueda entrenar una GAN (Redes Adversarias Generativas) y luego usar la red Discriminator para la clasificación. Devuelve 1 si la entrada es real (= está en la clase) o 0 si la entrada no está en la clase. Lo bueno es que solo necesita datos de clase (y, por lo tanto, no hay ejemplos que no estén en la clase) para entrenar la red. Esta red puede detectar miembros (no) de clase.

More Interesting

¿Qué podríamos hacer con Asimo si la computadora dentro estuviera con el poder de la caja de aprendizaje profundo Nvidia DGX-1?

¿Cuál es la mejor introducción al aprendizaje profundo para un estudiante graduado con experiencia en matemáticas y CS?

¿SVM siempre supera a J48? Tengo un caso de uso donde J48 funciona mejor. ¿Significa que algo está mal con mi enfoque / implementación?

¿Cómo se explica el aprendizaje automático y la inteligencia artificial a un niño de 5 años?

¿Cuáles son las ventajas de la regresión logística?

¿Cuál es la mejor técnica de aprendizaje automático para clasificar ~ 50,000 imágenes sin etiquetar (2-3% de ruido) en 3 clases diferentes?

¿Qué es el cambio de covariable?

¿Por qué PCA y LDA se usan juntas en el reconocimiento facial?

¿El aprendizaje profundo ha vuelto obsoletos los métodos del núcleo?

¿Cuáles son las características únicas de una red neuronal en comparación con otras técnicas de aprendizaje automático?

Quiero solicitar un programa de doctorado en Machine Learning, ¿cómo debo prepararme?

¿La regresión logística tiene en cuenta el desequilibrio de datos?

¿Qué tan buenos son los conjuntos de datos SIG en India (por ejemplo, red de carreteras / calles, parcelas municipales, etc.)? ¿Cuáles son las fuentes para este tipo de conjuntos de datos?

¿Debo ir al análisis de datos o al aprendizaje automático?

¿Por qué la similitud de un coseno menos es igual a la distancia del coseno?