3 votos

¿Es la regresión logística estocástica como la red neuronal?

He observado que los modelos de redes neuronales (usando Keras TensorFlow) pueden ser muy inestables (cuando mi tamaño de muestra es pequeño) en el sentido de que si entrenara 999 modelos de redes neuronales, puede que solo haya 99 con una buena precisión de entrenamiento. Imagino que esto se debe a la naturaleza estocástica de la iniciación de los pesos en la red neuronal; por lo tanto, solo algunas iniciaciones pudieron conducir a un mínimo local. Sin embargo, cuando uso regresión logística (específicamente el paquete statsmodels en Python), el modelo entrenado es bastante estable en el sentido de que no importa cuántas veces lo entrene, la precisión y la recuperación etc son bastante constantes.

Mi pregunta es - ¿esto es una consecuencia de la diferencia en la naturaleza entre la regresión logística y la red neuronal (por ejemplo, podría ser porque la regresión logística no necesita una iniciación aleatoria de pesos?) o es simplemente una consecuencia de los paquetes que estoy usando? (por ejemplo, ¿quizás statsmodels tiene un estado inicial constante definido?)

Entiendo que una regresión logística también podría ser vista como una red neuronal de un solo nodo, por lo que me pregunto por qué debería ser diferente.

8voto

user777 Puntos 10934

Hasta ahora, ninguna respuesta ha abordado la diferencia conceptual fundamental entre la regresión logística y las redes neuronales.

La regresión logística es un problema de optimización convexo.

Cuando la matriz de diseño es de rango completo y los datos no muestran separación, la regresión logística es fuertemente convexa con un minimizador único y finito. Esto significa que un método de optimización adecuado podrá recuperar el mismo minimizador en ejecuciones repetidas, porque solo hay un mínimo. Estos hilos desarrollan este tema en más detalle.

En general, las redes neuronales no son un problema de minimización convexa. Una característica fundamental de un problema no convexo es que tiene más de un mínimo, posiblemente incluso múltiples mínimos globales. Múltiples mínimos implican que un esquema de minimización es susceptible de encontrar soluciones diferentes en diferentes ejecuciones, especialmente cuando hay un componente aleatorio (inicialización aleatoria, entrenamiento en lotes pequeños) en el procedimiento de optimización. Estos hilos desarrollan este tema en más detalle.

Ejemplos de redes neuronales fuertemente convexas surgen de casos especiales. El ejemplo más simple de una red neuronal fuertemente convexa es la red neuronal sin capas ocultas y una activación monótona para la salida de la única capa de salida lineal. Estas redes son modelos lineales generalizados de manera idéntica (regresión logística, OLS, etc.). En particular, la regresión logística es un modelo lineal generalizado (glm) en el sentido de que el logit de la respuesta de probabilidad estimada es una función lineal de los parámetros. Ver: ¿Por qué la regresión logística es un modelo lineal?

3voto

grifaton Puntos 1686

Hay una diferencia clave entre la regresión logística y las redes neuronales. Las redes neuronales tienen múltiples mínimos locales y, por lo tanto, es inherentemente sensato comenzar tu descenso de gradiente varias veces desde diferentes inicializaciones, así como utilizar el descenso de gradiente estocástico. Se esperaría terminar en lugares diferentes dependiendo de dónde comiences.

La función de coste de la regresión logística, sin embargo, puede mostrarse que es convexa, por lo que incluso si comienzas tu descenso de gradiente desde diferentes inicializaciones, siempre deberías terminar en el mismo lugar, con los efectos numéricos asociados con (S)GD.

Es cierto que la regresión logística es una red neuronal de una sola capa, pero en términos algo vagos, el término que pasa a través de la función logística es lineal en todos los parámetros del modelo (el límite de decisión es lineal en todos los parámetros del modelo). Tan pronto como añades otra capa, el término que pasa a través de la función logística es una función no lineal de algunos de los parámetros del modelo. Esto es lo que empieza a hacer que la función de coste no sea convexa (lo afirmo vagamente sin prueba), y por eso incluso una red neuronal de dos capas terminará en lugares diferentes si inicializas de manera diferente y la regresión logística es el caso especial

1voto

Si deseamos modelar la distribución de una variable aleatoria binaria (distribuida bernoulli), condicionada a un vector aleatorio ${\bf x}_n\in\mathbb{R}^M$, podríamos asumir que

$$ t_n \vert {\bf x}_n \sim \text{Bern}(f({\bf x}_n)) $$

Para alguna función $f:\mathbb{R}^M\to[0,1]$.

En una regresión logística, elegimos $f({\bf x})=\sigma({\bf w}^T{\bf x}$), mientras que para una red neuronal feed-forward (FFNN), elegimos $f$ para ser alguna función no lineal complicada de la forma

$$ f({\bf x}) = \sigma\left({{\bf w}^{(L)}}^Th\left({{\bf w}^{(L-1)}}^Th(...)\right)\right) $$

Mientras que la regresión logística lleva a una simple ecuación iterativa para encontrar su mínimo, que siempre lleva al mismo mínimo para un dataset fijo, el FFNN depende del número de capas, la elección de $h$ y el número deseado de parámetros. Por lo tanto, puede ser mucho más complicado entrenar un FFNN.

1voto

Mi entendimiento es que una regresión logística también podría ser vista como una única neurona en una red neuronal, por lo que me pregunto por qué debería ser diferente

Supongamos que quisieras hacer una regresión logística con 4 salidas y 16 entradas usando una red neuronal en TensorFlow. Podría verse algo así:

import tensorflow as tf

tf.random.set_seed(1)

model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(4, input_shape=(16,)))
model.add(tf.keras.layers.Softmax())

Ahora para responder a tu pregunta:

¿La regresión logística es estocástica como una red neuronal?

Todo depende del método de optimización utilizado para entrenar tu clasificador de regresión logística o red neuronal. No he usado el paquete statsmodels, pero en TensorFlow necesitas elegir tu optimizador. Hay varios optimizadores incorporados para elegir.

Además, si te preguntas por qué cada vez que entrenas tu red neuronal obtienes un resultado diferente, generalmente es buena práctica mantener la semilla aleatoria fija a lo largo de tus experimentos. Esto se puede hacer fácilmente configurando tf.random.set_seed(1) u otro número fijo. Esto debería devolver el mismo resultado cada vez que entrenes tu modelo (asumiendo que se mantuvieron iguales todos los demás hiperparámetros).

0voto

dot Puntos 157

La razón por la que la regresión logística parece más "estable" que las redes neuronales (asumo que te refieres a perceptrones multicapa) es debido a la diferencia de naturaleza. Podemos resumir estas diferencias en términos de la frontera de decisión y flexibilidad.

Los modelos de regresión logística son modelos lineales (ver el hilo de CV ¿Por qué la regresión logística es un clasificador lineal?), por lo que sus fronteras de decisión están relativamente restringidas. Las redes neuronales son modelos altamente no lineales (asumiendo que estás utilizando alguna forma de activación no lineal) que son capaces de formar fronteras de decisión mucho más complejas. Es innecesario mencionar que esto también nos lleva a la conclusión de que la regresión logística es menos flexible que las redes neuronales lo son.

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