¿En qué problemas de aprendizaje profundo las redes neuronales son propensas a grandes sesgos?

El sesgo es favorecer una aproximación particular de una solución compleja.

Por ejemplo, supongamos que está tratando de encontrar una tendencia sobre cómo aumenta el riesgo de cáncer con el tabaquismo. Recopila algunos datos para analizar una posible tendencia.

En este simple ejemplo, fumar y el cáncer son las dos únicas variables. Por lo tanto, podría trazar sus datos como puntos en un gráfico con bastante facilidad.

Ahora, si estos puntos de datos se esparcen de manera desordenada y está utilizando una regresión lineal para modelar la tendencia, lo que haría la regresión lineal sería básicamente intentar dibujar una línea a través de todos los puntos. Puedes ver cómo quedarían fuera algunos puntos. Eso es parcial.

Ahora, comprenda que estos puntos excluidos son diferentes de los valores atípicos. Es natural que haya valores atípicos en cualquier caso, sin importar cuán fuertemente convencional sea la tendencia.

Por ejemplo, si cargó un tigre con las manos vacías, casi siempre aumenta el riesgo de morir. Un caso atípico es un caso de comportamiento anormal. En este caso, un ejemplo sería un tigre que no está dispuesto a participar. Casi nunca sucede, atípico.

Los puntos de datos omitidos debido al sesgo son diferentes de los valores atípicos porque de hecho son ejemplos del comportamiento normal del sujeto que está analizando, no un comportamiento anormal. Dejar tales datos apunta a sesgos a favor de una tendencia es un problema.

Cuando utiliza la regresión lineal, prefiere una tendencia lineal y, por muy compleja que sea la información, espera poder dibujar una línea a través de todos los puntos de datos. Desea que haya una tendencia lineal. Eso es parcial.

Una red neuronal, por propósito y diseño, presenta aproximaciones complejas de una tendencia. Entonces, en la gran mayoría de los casos, una red neuronal se sobre ajusta (que es lo opuesto al sesgo).

Para los puntos dispersos, la red neuronal literalmente trataría de salir con una tendencia en forma de estrella que conecte tantos puntos de datos como sea posible.

Su pregunta solicitó un ejemplo de sesgo al usar una red neuronal. La única forma en que puedo pensar para que esto suceda es si la red neuronal solo tiene una capa. Para que una red neuronal de este tipo funcione de manera efectiva, el sujeto del análisis tendría que ser considerablemente menos complejo de lo que suele estar acostumbrado una red neuronal.

Tome el riesgo de cáncer, por ejemplo. Fumar no es el único factor involucrado. Ahora, no hay ninguna razón por la que usaría una red neuronal para analizar el efecto del tabaquismo sobre el riesgo de cáncer.

Sin embargo, en algunos procesos de lenguaje natural, se hacen conjeturas simples sobre cuál podría ser la siguiente palabra, en una oración, utilizando redes neuronales de capa única. Nuevamente, no deberías usar uno para experimentos simples, pero sucede.

Por ejemplo, la computadora podría estar tratando de aprender sobre la oración “¿cómo estás?”. Una red neuronal de una sola capa funcionaría en este ejemplo para construir un espacio vectorial bastante sencillo para determinar cosas como “hay una alta probabilidad de que haya un” son “después de” cómo “en oraciones de tres palabras”. Se podría llamar a ese sesgo, principalmente porque casi siempre sucede.

Ese es el único ejemplo que puedo pensar, fuera de mi cabeza. Gracias por el A2A!

Esto depende de cómo configure su red y de las estadísticas del conjunto de datos. Solo hablaré sobre los clasificadores tradicionales de redes neuronales, ya que creo que esa es la pregunta. Además, mencionaré cómo solucionar muchos de estos problemas en Keras (aunque las mismas ideas también se pueden usar en otros lugares).

Firat, considere si las entradas a la red tienen una ponderación muy desigual. Por ejemplo, si está tratando de predecir la altura de una persona a partir de la longitud del brazo y la longitud de los dedos. El gradiente en la primera capa de la red será desigual, porque la longitud del brazo es mucho mayor que la longitud del dedo; el gradiente de los pesos depende de la magnitud de las entradas, por lo que desea que las magnitudes sean aproximadamente las mismas para todas sus características de entrada. Esta es una forma en que la red puede sesgar hacia entradas particulares. La solución es normalizar sus datos de antemano para tener una media cero y una varianza. Para redes muy profundas, desea renormalizar en cada capa; Esto se logra en Keras utilizando la capa BatchNormalization, que es muy importante para el éxito de muchas redes de reconocimiento de objetos profundos.

A continuación, considere si sus salidas están distribuidas de manera desigual. Por ejemplo, supongamos que está tratando de predecir si alguien es zurdo. Hay un pequeño número de zurdos en comparación con los diestros. En este caso, debe decidir qué desea que haga su red. ¿Está buscando una alta precisión , que es (verdaderos positivos) / (verdaderos positivos + falsos positivos) o alta recuperación, que es (verdaderos positivos) / (verdaderos positivos + falsos negativos). En Keras puede realizar un seguimiento de estas métricas.

También debe tener en cuenta que la red se inclinará fuertemente hacia la clase dominante. Si las clases no están equilibradas de manera uniforme, puede obtener una precisión mejor que incluso al predecir siempre la clase dominante. Hay algunas formas de arreglar esto:

  1. Utilice una función de pérdida que se penalice más por predicciones incorrectas que por recompensas correctas, como la crossentropía binaria en lugar del error cuadrático medio o la correlación de Pearson.
  2. Equilibre las clases en las muestras que se envían a la red: puede hacer un muestreo aleatorio de los datos para obtener cada minibatch, pero pondera las muestras por el inverso de su frecuencia en el conjunto de datos.
  3. Realice la ponderación de clase: en Keras, puede pasar el argumento “class_weights” al método de ajuste, para cambiar las magnitudes de los gradientes de las muestras de entrenamiento de acuerdo con la etiqueta de clase de salida.
  4. Aumente el tamaño de su lote: esto no está estrictamente relacionado con los demás, pero ayuda a suavizar el descenso del gradiente y evita que el modelo se atasque en una especie de mínimos locales, lo que lo hace sesgado. Sin embargo, puedes probar otros trucos para prevenir los mínimos locales.

En cualquier tipo de control de bucle cerrado. Es fácil demostrar que cualquier estimación de parámetros de modelos dinámicos (¡incluso los lineales!) Estará sesgada si el algoritmo de estimación tiene en cuenta las salidas. Es por eso que entrenamos modelos en circuito abierto. Pero, ¿qué pasa si no es posible abrir el bucle? ¿Por ejemplo? Prestar dinero, admitir para universidades, aliviar la presión ambiental del carbono. No puedes simplemente abrir el bucle. Es entonces cuando las NN refuerzan los prejuicios, actúan como pendejos misantrópicos y dan malos consejos.

Cualquier cosa con un conjunto de datos muy sesgado es propenso a un alto sesgo. Por ejemplo, un conjunto de datos sobre cáncer con solo datos csv puede lograr una precisión muy alta simplemente diciendo que no para cada ejemplo.

More Interesting

¿El aprendizaje por refuerzo es el primer paso para la IA general?

¿Cuál es el estado del arte con respecto a la IA y la simulación para un juego de estrategia?

En las redes neuronales, ¿cómo se transporta la propagación hacia atrás a través de las capas softmax? ¿Puedes explicar su derivada (matriz jacobiana)?

¿Puede un sistema artificialmente inteligente obtener la iluminación?

¿Por qué API AI no es de código abierto?

¿A quién le pagarían más en el campo de la inteligencia artificial (aprendizaje automático), un graduado de doctorado o un graduado de MBA?

¿El desarrollo avanzado de la IA eventualmente se convertirá en una amenaza contra la raza humana?

¿Cómo se codifica la información en la actividad neuronal?

Ray Kurzweil siente que es probable que la IA poderosa sea buena para la humanidad, mientras que Bill Joy siente lo contrario. ¿Quién es correcto y por qué?

¿Es realmente necesario comprender todas las matemáticas detrás de las redes neuronales para usarlas?

¿Dónde debo comenzar a desarrollar Chatbot desde el principio?

¿Qué relevancia tiene la investigación sobre la estructura fisiológica y la función de los sistemas biológicos para la ingeniería de los programas de IA?

¿Cuándo puedo ver el aprendizaje automático en el desarrollo de IDE?

¿Qué tan válido es este artículo sobre IA y qué significa?

Al sintonizar una red neuronal, ¿cuánto tiempo suele esperar mientras entrena antes de cambiar los hiperparámetros y probar otra configuración?