¿Las redes neuronales solo son buenas para la clasificación, les va bien en problemas de regresión / agrupamiento?

Debo decir que estoy respondiendo desde la perspectiva de un profesional de la ciencia de datos que aplica ML a problemas de regresión del mundo real, no un especialista en aprendizaje profundo.

Algunas preguntas prácticas primero:

  1. ¿Cuántos ejemplos de entrenamiento tienes?
  2. ¿Cuál es la dimensión de sus datos?
  3. ¿Sus datos están estructurados o no (imágenes, texto, audio, etc.)?

Si tiene muchos ejemplos de entrenamiento (piense en el orden de millones) y datos no estructurados de alta dimensión, entonces las redes neuronales son un buen enfoque. Simplemente use una activación lineal en la etapa de salida y elija la mejor arquitectura para el resto de la red en función del problema en cuestión.

Pero, sinceramente, la mayoría de los problemas de regresión no cumplen con los criterios anteriores. Para los datos de entrenamiento de tamaño medio con características estructuradas y de ingeniería, es probable que obtenga un rendimiento mucho mejor de los árboles de decisión impulsados ​​por gradiente. Esto cubre muchos dominios que encontrará en un contexto comercial que requieren regresión, como la predicción de precios utilizando datos de una base de datos relacional.

Para un pequeño número de ejemplos de entrenamiento y solo dos dimensiones, podría estar mejor con algo como una loess o una regresión lineal. Para series de tiempo univariadas con pocos ejemplos de entrenamiento, podría estar mejor con un modelo ARIMA. Y así sucesivamente.

No estamos en el punto donde las redes neuronales son automáticamente superiores para cada clase de problema, al menos en ningún sentido práctico.

En teoría, serían tan poderosos en la regresión como en la clasificación, ya que el límite de decisión de un clasificador no es muy diferente al de una hiper-superficie de regresión. Pero en la práctica, hay algunas dificultades. En la clasificación, solo desea una decisión con respecto a qué lado del límite de decisión se seleccionará, y las predicciones objetivo son 1 o cero. Pero los problemas de regresión son más difíciles porque desea predecir un cierto valor para cada muestra. Por lo tanto, el entrenamiento de una red neuronal para problemas de regresión podría no ser tan estable como lo es para problemas de clasificación. Como resultado, generalmente es preferible convertir los problemas de regresión en problemas de clasificación cuando sea posible. Pero si esto no es posible, en mi opinión, las redes neuronales seguirán siendo muy potentes para lidiar con los problemas de regresión, la única dificultad que tendrá será optimizar el proceso de entrenamiento.

¿Qué?

En la clasificación de redes neuronales es regresión IS Aprenden la distribución por clases en el espacio de características, no se puede realizar la clasificación sin regresión.

En cuanto a la agrupación, sí, por supuesto. Una gran parte de la investigación se dedica al aprendizaje de representaciones vectoriales para datos de entrada, lo que generalmente supone que la distancia espacial transmite alguna relación significativa entre los puntos, que es la parte principal de un problema de agrupamiento. Después de aprender esas representaciones, puede ejecutar varios medios k con diferentes cantidades de grupos o entrenar conjuntamente un clasificador con capas de representación si no le importan los centroides.

En una nota al margen, nunca puede tener un algoritmo que sea superior a los demás todo el tiempo (Teorema sin almuerzo gratuito), pero la mayoría de las veces las redes neuronales son mejores ([1608.08225] ¿Por qué el aprendizaje profundo y barato funciona tan bien? ?)

Como dijo Roman Trusov, la clasificación ES regresión.

Las redes neuronales se aproximan a una función que genera las estadísticas suficientes de alguna función de masa / densidad de probabilidad. Es su interpretación de la salida de una red neuronal que da lugar a la clasificación como distinta de la regresión.

Para hacerlo más concreto, suponga que desea usar una red neuronal como clasificador de varias clases. En la clasificación de clases múltiples, la suposición que generalmente hacemos sobre nuestros datos objetivo es que se distribuyen de acuerdo con la distribución categórica, es decir:

[math] f (y; a) = \ prod_ {k = 1} ^ {K} ({a_k} ^ {y_k}) [/ math], donde [math] K [/ math] es el número de clases distintas .

En otras palabras, la probabilidad de la clase [matemáticas] k [/ matemáticas] viene dada por [matemáticas] f (y_ {k} = 1; a) = {a_k} ^ {y_k = 1} = a_k [/ matemáticas]

En este caso, elegiría la salida de su red neuronal para que sea la función softmax, es decir, una generalización de la función logística, que se ve así:

[matemáticas] f (x) = \ frac {e ^ x} {\ sum_ {k = 1} ^ {K} (e ^ {x_k})} [/ matemáticas]

¿Por qué harías eso? Debido a que softmax toma algunos logits no normalizados como entrada y genera algo que puede interpretarse fácilmente como una distribución de probabilidad, ya que está normalizado.

Tenga en cuenta que en este punto, todavía está haciendo regresión. Dados los parámetros de su red [matemática] Θ [/ matemática] y los datos de entrada [matemática] X [/ matemática], todo lo que está haciendo es calcular el valor de una función parametrizada de sus datos, [matemática] f (X; Θ )[/mates].

Entonces, digamos, por ejemplo, que tenemos [math] K = 4 [/ math] clases distintas y, según lo anterior, para un punto de datos dado [math] x_i [/ ​​math], digamos que su red le está dando un salida, (que denotaremos como [math] h (x) [/ math]) que se ve así:

[matemáticas] h (x_i) _1 = 0.25 [/ matemáticas]

[matemáticas] h (x_i) _2 = 0.25 [/ matemáticas]

[matemáticas] h (x_i) _3 = 0.1 [/ matemáticas]

[matemáticas] h (x_i) _4 = 0.4 [/ matemáticas]

En forma vectorial:

[matemáticas] {[h (x_i) _1, h (x_i) _2, h (x_i) _3, h (x_i) _4]} ^ T = {[0.25, 0.25, 0.1, 0.4]} ^ T [/ matemáticas]

¿Cómo conviertes esto en una predicción? Simplemente haces una tarea difícil; argmax es una operación que hace exactamente eso y aplicarlo a la salida anterior devolverá el elemento con el mayor valor, que en nuestro caso es, por supuesto, [math] h (x_i) _4 [/ math].

Y así, elegimos interpretar este resultado como el parámetro [math] a [/ math] de nuestra función de masa de probabilidad de distribución categórica (PMF). En otras palabras: [matemáticas] h (x_i) _4 = {a_4} ^ {y_4 = 1} = a_4 [/ matemáticas].

Y ahí lo tienes. Convirtió su regresor, que se aproxima suavemente a la distribución categórica PMF, en un clasificador “duro” al elegir interpretar su salida como predicción a través de una asignación dura (a través de argmax).

(Perdón por el mal espaciado en los vectores, pero no sé cómo insertar espacios correctamente en el látex aquí en Quora)

En lo que respecta al aprendizaje no supervisado, te sugiero que busques en codificadores automáticos variacionales ([1312.6114] Bayes variacionales de codificación automática; probablemente sería útil ver también el [1606.05908] Tutorial sobre codificadores automáticos variables), así como sus discretos variantes ([1611.01144] Reparametrización categórica con Gumbel-Softmax, [1609.02200] Autoencoders variacionales discretos).

La red neuronal es un tipo de regresión con parámetros más grandes. Para una tarea de agrupación común, necesita # característica * # parámetros de agrupación ; Pero, NN necesita los parámetros # f * # h + # h * # c .

Entonces, con objetivos especiales, podemos entrenar el modelo NN o pre-entrenar un espacio vectorial continuo. En general, solo agrupamiento.

Las redes neuronales son tan buenas en regresión como en clasificación. Como muestra mi experiencia, cuando cambia la función de pérdida a una adecuada para la tarea en particular, no solo puede esperar una alta calidad y una capacidad de generalización decente, sino que también encontrará que aprende características “buenas” en sus capas: el mismo efecto observado para redes preformadas por clasificación. Esta es una de las propiedades más deseadas de las redes neuronales convolucionales (suponiendo que se trate de este tipo de NN).

También permite utilizar técnicas de aprendizaje de transferencia para tareas de regresión, mientras que la red desde la que copia los pesos se puede entrenar previamente para la clasificación u otro tipo de tarea.

Algunos ejemplos:

Pérdida de L2 en TensowFlow: red neuronal TensorFlow

Pérdida de MSE en Keras: Objetivos – Documentación de Keras

Pérdida euclidiana en Caffe: Caffe | Catálogo de capas

Esencialmente lo mismo, que es la pérdida que usamos para la regresión.

Lo hacen muy bien en problemas de regresión; de hecho, pueden modelar básicamente cualquier función, siempre que haya al menos una capa oculta lo suficientemente grande (consulte el “Teorema de aproximación universal”).

Por supuesto que puedes hacer Regresión con redes neuronales. Es solo cuestión de cambiar la función de pérdida y las dimensiones de su capa de salida. Muchas tareas de detección y localización de objetos se realizan con una CNN que regresa a cuadros delimitadores alrededor de elementos en una imagen. Puede consultar http://pjreddie.com/darknet/yolo/ como un buen ejemplo.

More Interesting

¿Tendría una inteligencia artificial miedo a la muerte?

¿Cuál es la aplicación del aprendizaje automático en contabilidad / auditoría / impuestos y finanzas corporativas?

¿Qué chatbot debo construir para ganar dinero?

¿Cómo juega el póker DeepStack, el algoritmo de IA actualmente publicado, el póker?

¿Pueden las computadoras y el software de AI eliminar a los contadores? Si puede, ¿cuándo?

Quora: ¿Se volverá sensible la base de datos de Quora?

Matemáticamente, ¿cómo afecta la temperatura (como en el hiperparámetro, no la temperatura física) a las predicciones de una red neuronal? Ver comentario a continuación.

¿Cómo se enseña la Inteligencia Artificial (IA) y el Aprendizaje automático (ML) en las universidades de 2/3 niveles en la India?

¿Hay alguna base de datos que dé resultados basados ​​en la entrada de voz?

¿Qué hace que un sonido parezca artificial?

¿Por qué necesitamos IA?

¿Cuál es la importancia de la Tercera Ley de Robótica?

¿Hay proyectos de inteligencia artificial que se centren en personas con discapacidad?

Si las células 'tontas' individuales independientes pueden agruparse para desarrollar la conciencia y la vida inteligente (es decir, nosotros), ¿por qué los grupos de hormigas ya inteligentes (que ya exhiben un comportamiento grupal inteligente) se convierten en un 'enjambre' inteligente con conciencia cuya inteligencia enana incluso el nuestro?

Cómo estar bien versado en el aprendizaje automático desde el nivel cero