Configurar la función de pérdida para una red neuronal basada en datos sísmicos

En un artículo anterior, describimos un experimento para determinar la cantidad mínima de secciones etiquetadas manualmente para entrenar una red neuronal utilizando datos sísmicos. Hoy continuamos este tema eligiendo la función de pérdida más adecuada.

Se consideran dos clases básicas de funciones: entropía cruzada binaria e intersección sobre unión, en 6 variantes con selección de parámetros, así como combinaciones de funciones de diferentes clases. Además, se considera la regularización de la función de pérdida.

Spoiler: logró mejorar significativamente la calidad del pronóstico de la red.



Objetivos de investigación empresarial


No repetiremos la descripción de los detalles de la encuesta sísmica, los datos obtenidos y las tareas de su interpretación. Todo esto se describe en nuestro artículo anterior .

La idea de este estudio fue motivada por los resultados de la competencia para la búsqueda de depósitos de sal en rodajas 2D . Según los participantes de la competencia , para resolver este problema, se utilizó un zoológico completo de varias funciones de pérdida, además, con diferentes éxitos.

Por lo tanto, nos preguntamos: ¿es realmente posible que tales problemas en tales datos seleccionen la función de pérdida y puedan dar una ganancia significativa en la calidad? ¿O es esta característica solo para las condiciones de la competencia, cuando hay una lucha por el cuarto o quinto decimal para las métricas predefinidas por los organizadores?

Típicamente, en las tareas resueltas con la ayuda de redes neuronales, el ajuste del proceso de aprendizaje se basa principalmente en la experiencia del investigador y algunas heurísticas. Por ejemplo, para los problemas de segmentación de imágenes, las funciones de pérdida se utilizan con mayor frecuencia, basadas en la evaluación de la coincidencia de las formas de zonas reconocidas, la llamada Intersección sobre Unión.

Intuitivamente, con base en una comprensión del comportamiento y los resultados de la investigación, este tipo de funciones darán mejores resultados que las que no están definidas para imágenes, como las de entropía cruzada. Sin embargo, los experimentos en busca de la mejor opción para este tipo de tarea en su conjunto y cada tarea individualmente continúan.

Los datos sísmicos preparados para la interpretación tienen una serie de características que pueden tener un impacto significativo en el comportamiento de la función de pérdida. Por ejemplo, los horizontes que separan las capas geológicas son suaves, y cambian más bruscamente solo en los lugares de las fallas. Además, las zonas distinguidas tienen un área suficientemente grande en relación con la imagen, es decir Las pequeñas manchas en los resultados de interpretación se consideran con mayor frecuencia un error de reconocimiento.

Como parte de este experimento, tratamos de encontrar respuestas a las siguientes preguntas locales:

  1. ¿Es la función de pérdida de la clase Intersección sobre Unión realmente el mejor resultado para el problema considerado a continuación? Parece que la respuesta es obvia, pero ¿cuál? ¿Y cuánto es lo mejor desde el punto de vista comercial?
  2. ¿Es posible mejorar los resultados combinando funciones de diferentes clases? Por ejemplo, Intersección sobre Unión y entropía cruzada con diferentes pesos.
  3. ¿Es posible mejorar los resultados agregando a la función de pérdida varias adiciones diseñadas específicamente para datos sísmicos?

Y a una pregunta más global:

¿Vale la pena molestarse con la selección de la función de pérdida para la interpretación de datos sísmicos, o la ganancia en calidad no es comparable con la pérdida de tiempo para realizar tales estudios? ¿Quizás valga la pena elegir intuitivamente cualquier función y gastar energía en la selección de parámetros de entrenamiento más significativos?

Descripción general del experimento y los datos utilizados.


Para el experimento, asumimos la misma tarea de aislar capas geológicas en cortes 2D de un cubo sísmico (ver Figura 1).


Figura 1. Ejemplo de un corte 2D (izquierda) y el resultado del marcado de las capas geológicas correspondientes (derecha) ( fuente )

Y el mismo conjunto de datos completamente etiquetados del sector holandés del Mar del Norte. Los datos sísmicos de origen están disponibles en el repositorio sísmico abierto: sitio web del Proyecto Países Bajos Offshore F3 Block . Una breve descripción se puede encontrar en Silva et al. "Conjunto de datos de los Países Bajos: un nuevo conjunto de datos públicos para el aprendizaje automático en la interpretación sísmica" .

Como en nuestro caso estamos hablando de cortes 2D, no utilizamos el cubo 3D original, sino el "corte" ya hecho, disponible aquí:Conjunto de datos de interpretación de los Países Bajos F3 .

Durante el experimento, resolvimos los siguientes problemas:

  1. Observamos los datos de origen y seleccionamos los cortes, que son más cercanos en calidad al marcado manual (similar al experimento anterior).
  2. Registramos la arquitectura de la red neuronal, la metodología y los parámetros del entrenamiento, y el principio de seleccionar cortes para el entrenamiento y la validación (similar al experimento anterior).
  3. Elegimos las funciones de pérdida estudiadas.
  4. Seleccionamos los mejores parámetros para las funciones de pérdida parametrizadas.
  5. Entrenamos redes neuronales con diferentes funciones en el mismo volumen de datos y elegimos la mejor función.
  6. Entrenamos redes neuronales con diferentes combinaciones de la función seleccionada con funciones de otra clase en la misma cantidad de datos.
  7. Entrenamos redes neuronales con regularización de la función seleccionada en la misma cantidad de datos.

A modo de comparación, utilizamos los resultados de un experimento anterior en el que la función de pérdida se elegía exclusivamente de forma intuitiva y era una combinación de funciones de diferentes clases con coeficientes también elegidos "a simple vista".

A continuación se presentan los resultados de este experimento en forma de métricas estimadas y predichas por las redes de máscaras de corte.

Tarea 1. Selección de datos


Como datos iniciales, utilizamos líneas y líneas cruzadas ya preparadas de un cubo sísmico del sector holandés del Mar del Norte. Como en el experimento anterior, simulando el trabajo del intérprete, para entrenar a la red, elegimos solo máscaras limpias, después de haber examinado todas las secciones. Como resultado, se seleccionaron 700 líneas cruzadas y 400 líneas de ~ 1600 imágenes de origen.

Tarea 2. Fijar los parámetros del experimento.


Esta y las siguientes secciones son de interés, en primer lugar, para los especialistas en ciencia de datos, por lo tanto, se utilizará la terminología adecuada.

Para la capacitación, elegimos el 5% del número total de cortes, además, líneas y líneas cruzadas en partes iguales, es decir. 40 + 40. Las rebanadas se seleccionaron de manera uniforme en todo el cubo. Para la validación, se utilizó 1 corte entre imágenes adyacentes de la muestra de entrenamiento. Por lo tanto, la muestra de validación consistió en 39 líneas y 39 líneas cruzadas.

321 en línea y 621 en línea cruzada cayeron en la muestra retrasada, en la que se compararon los resultados.

Al igual que en el experimento anterior, no se realizó el preprocesamiento de la imagen y se utilizó la misma arquitectura UNet con los mismos parámetros de entrenamiento.

Las máscaras de corte objetivo se representaron como cubos binarios de dimensión HxWx10, donde la última dimensión corresponde al número de clases, y cada valor del cubo es 0 o 1, dependiendo de si este píxel en la imagen pertenece o no a la clase de la capa correspondiente.

Cada pronóstico de red era un cubo similar, cuyo valor se relaciona con la probabilidad de que un píxel de imagen dado pertenezca a la clase de la capa correspondiente. En la mayoría de los casos, este valor se convirtió en la probabilidad misma mediante el uso de un sigmoide. Sin embargo, esto no debe hacerse para todas las funciones de pérdida, por lo tanto, la activación no se utilizó para la última capa de la red. En cambio, las conversiones correspondientes se realizaron en las funciones mismas.

Para reducir la influencia de la aleatoriedad de la elección de los pesos iniciales en los resultados, la red se entrenó durante 1 era con entropía cruzada binaria en función de las pérdidas. Todos los demás entrenamientos comenzaron con estos pesos recibidos.

Tarea 3. La elección de las funciones de pérdida


Para el experimento, se seleccionaron 2 clases básicas de funciones en 6 variantes:

entropía cruzada binaria :

  • entropía cruzada binaria;
  • entropía cruzada binaria ponderada;
  • entropía cruzada binaria balanceada.

Intersección sobre Unión :

  • Pérdida de Jaccard;
  • Pérdida de Tversky;
  • Pérdida de Lovász.

En el artículo se proporciona una breve descripción de las funciones enumeradas con código para Keras . Aquí presentamos los más importantes con enlaces (cuando sea posible) a una descripción detallada de cada función.

Para nuestro experimento, la consistencia de la función utilizada durante el entrenamiento es importante con la métrica mediante la cual evaluamos el resultado del pronóstico de la red en la muestra retrasada. Por lo tanto, usamos nuestro código implementado en TensorFlow y Numpy, escrito directamente usando las fórmulas a continuación.

La siguiente notación se usa en las fórmulas:

  • pt - para la máscara objetivo binaria (Ground Truth);
  • pp: para la máscara de predicción de red.

Para todas las funciones, a menos que se especifique lo contrario, se supone que la máscara de predicción de red contiene probabilidades para cada píxel en la imagen, es decir. valores en el intervalo (0, 1).

Entropía cruzada binaria


Descripción: https://towardsdatascience.com/understanding-binary-cross-entropy-log-loss-a-visual-explanation-a3ac6025181a .



Esta función busca acercar la distribución del pronóstico de la red al objetivo, penalizando no solo las predicciones erróneas, sino también las inciertas.

Entropía cruzada binaria ponderada




Esta función coincide con la entropía cruzada binaria con un valor beta de 1. Se recomienda para fuertes desequilibrios de clase. Para beta> 1, el número de pronósticos falsos negativos (Falso negativo) disminuye y la integridad (Recuperación) aumenta, para beta <1 el número de pronósticos falsos positivos (Falso positivo) disminuye y la precisión aumenta (Precisión).

Entropía cruzada binaria balanceada




Esta función es similar a la entropía cruzada ponderada, pero corrige la contribución no solo de valores únicos, sino también de cero de la máscara de destino. Coincide (hasta una constante) con entropía cruzada binaria en un valor de coeficiente beta = 0.5.

Pérdida de Jaccard


El coeficiente Jacquard (también conocido como Intersección sobre Unión, IoU) determina la medida de la "similitud" de las dos áreas. El índice Dice hace lo mismo:



no tiene sentido considerar ambas funciones. Elegimos Jacquard.

En el caso de que ambas áreas se especifiquen utilizando máscaras binarias, la fórmula anterior se puede reescribir fácilmente en términos de los valores de las máscaras:



para pronósticos no binarios, la optimización del coeficiente Jacquard es una tarea no trivial. Usaremos la misma fórmula para las probabilidades en la máscara de pronóstico como una cierta imitación del coeficiente inicial y, en consecuencia, la siguiente función de pérdida:



Pérdida de Tversky


Descripción: https://arxiv.org/pdf/1706.05721.pdf



Esta función es una versión parametrizada de la optimización del coeficiente Jacquard que coincide con ella en alpha = beta = 1 y con el índice Dice en alpha = beta = 0.5. Para otros valores distintos de cero y no coincidentes, podemos cambiar el énfasis hacia la precisión o la integridad de la misma manera que en las funciones de entropía cruzada ponderada y equilibrada.

El problema de cambio de énfasis puede reescribirse usando un solo coeficiente que se encuentra en el intervalo (0, 1). La función de pérdida resultante se verá así:



Pérdida de Lovász


Es difícil dar una fórmula para esta función, ya que es una opción para optimizar el coeficiente Jacquard mediante un algoritmo basado en errores ordenados.

Puede ver la descripción de la función aquí , una de las opciones de código está aquí .

¡Explicación importante!


Para simplificar la comparación de valores y gráficos de aquí en adelante, bajo el término "coeficiente Jacquard" entenderemos mejor la unidad menos el coeficiente en sí. La pérdida de Jaccard es una forma de optimizar esta relación, junto con la pérdida de Tversky y la pérdida de Lovász.

Tarea 4. Elegir los mejores parámetros para las funciones de pérdida parametrizadas


Para seleccionar la mejor función de pérdida en el mismo conjunto de datos, se necesita un criterio de evaluación. En su calidad, elegimos el número promedio / medio de componentes conectados en las máscaras resultantes. Además, utilizamos el coeficiente Jacquard para las máscaras predictivas convertidas en argmax de una sola capa y nuevamente divididas en capas binarizadas.

El número de componentes conectados (es decir, puntos sólidos del mismo color) en cada pronóstico obtenido es un criterio indirecto para evaluar el volumen de su posterior refinamiento por parte del intérprete. Si este valor es 10, las capas se seleccionan correctamente y estamos hablando de un máximo de corrección menor del horizonte. Si no hay muchos más, solo necesita "limpiar" pequeñas áreas de la imagen. Si hay sustancialmente más de ellos, entonces todo es malo e incluso puede necesitar un rediseño completo.

El coeficiente Jacquard, a su vez, caracteriza la coincidencia de zonas de imagen asignadas a una clase y sus límites.

Entropía cruzada binaria ponderada


Según los resultados de los experimentos, se seleccionó el valor del parámetro beta = 2:


Figura 2. Comparación de la calidad del pronóstico de la red para la función de pérdida principal y los criterios seleccionados


Figura 3. Estadísticas para el número de componentes conectados en términos del valor de la beta

Entropía cruzada binaria balanceada


Según los resultados de los experimentos, se eligió el valor del parámetro beta = 0.7:


Figura 4. Comparación de la calidad del pronóstico de la red por la función de pérdida principal y los criterios seleccionados


Figura 5. Estadísticas para el número de componentes conectados

Pérdida de Tversky


Según los resultados de los experimentos, se eligió el valor del parámetro beta = 0.7:


Figura 6. Comparación de la calidad del pronóstico de la red por la función de pérdida principal y los criterios seleccionados


Figura 7. Comparación de la calidad del pronóstico de la red por la función de pérdida principal y los criterios seleccionados

Se pueden sacar dos conclusiones de las figuras anteriores.

Primero, los criterios seleccionados se correlacionan bastante bien entre sí, es decir El coeficiente Jacquard es consistente con una estimación del volumen de refinamiento necesario. En segundo lugar, el comportamiento de las funciones de pérdida de entropía cruzada es lógicamente diferente del comportamiento de los criterios, es decir. usar la capacitación solo en esta categoría de funciones sin una evaluación adicional de los resultados todavía no vale la pena.

Tarea 5. Elegir la mejor función de pérdida.


Ahora compare los resultados que mostraron las 6 funciones de pérdida seleccionadas en el mismo conjunto de datos. Para completar, agregamos las predicciones de la red obtenidas en el experimento anterior.


Figura 8. Comparación de pronósticos de redes capacitados con diferentes funciones de pérdida de acuerdo con los criterios seleccionados

Tabla 1. Valores promedio de los criterios




Figura 9. Comparación de pronósticos de redes por el número de predicciones con un número específico de componentes conectados

De los diagramas y tablas presentados, se pueden sacar las siguientes conclusiones con respecto al uso de "solo" funciones de pérdida:

  • En nuestro caso, las funciones "Jacquard" de la clase Intersección sobre Unión realmente muestran mejores valores que las de entropía cruzada. Por otra parte, significativamente mejor.
  • Lovazh loss.

Comparemos visualmente las previsiones para los sectores con uno de los mejores y peores valores de pérdida de Lovazh y el número de componentes conectados. La máscara de destino se muestra en la esquina superior derecha, y el pronóstico obtenido en el experimento anterior en la esquina inferior derecha:


Figura 10. Pronósticos de red para uno de los mejores segmentos


Figura 11. Pronósticos de red para uno de los peores sectores

Se puede ver que todas las redes funcionan igualmente bien en sistemas fácilmente reconocibles rebanadas Pero incluso en un segmento poco reconocible donde todas las redes están equivocadas, el pronóstico para la pérdida de Lovazh es visualmente mejor que el pronóstico de otras redes. Aunque es una de las peores pérdidas para esta función.

Entonces, en este paso, hemos decidido un líder claro: la pérdida de Lovazh, cuyos resultados se pueden describir de la siguiente manera:

  • Alrededor del 60% de los pronósticos son casi ideales, es decir no requieren más que ajustes a secciones individuales de los horizontes;
  • aproximadamente el 30% de los pronósticos contienen no más de 2 puntos adicionales, es decir requieren mejoras menores;
  • aproximadamente el 1% de los pronósticos contienen de 10 a 25 puntos adicionales, es decir Requiere una mejora sustancial.

En este paso, solo reemplazando la función de pérdida, logramos una mejora significativa en los resultados en comparación con el experimento anterior.

¿Todavía se puede mejorar mediante una combinación de diferentes funciones? Echale un vistazo.

Tarea 6. Elegir la mejor combinación de función de pérdida


La combinación de funciones de pérdida de diversa naturaleza se usa con bastante frecuencia. Sin embargo, encontrar la mejor combinación no es fácil. Un buen ejemplo es el resultado de un experimento anterior, que resultó ser incluso peor que la función "solo". El propósito de tales combinaciones es mejorar el resultado mediante la optimización de acuerdo con diferentes principios.

Intentemos ordenar las diferentes opciones de la función seleccionada en el paso anterior con otras, pero no con todas en una fila. Nos limitamos a combinaciones de funciones de diferentes tipos, en este caso, con funciones de entropía cruzada. No tiene sentido considerar combinaciones de funciones del mismo tipo.

En total, verificamos 3 pares con 9 posibles coeficientes cada uno (de 0.1 \ 0.9 a 0.9 \ 0.1). En las siguientes figuras, el eje x muestra el coeficiente antes de la pérdida de Lovazh. El coeficiente antes de la segunda función es igual a uno menos el coeficiente antes de la primera. El valor izquierdo es solo una función de entropía cruzada, el valor derecho es solo la pérdida de Lovazh.


Figura 12. Evaluación de los resultados del pronóstico de redes capacitadas en BCE + Lovazh


Figura 13. Evaluación de los resultados del pronóstico de redes capacitadas en BCE + Lovazh


Figura 14. Evaluación de los resultados del pronóstico de las redes capacitadas en BBCE + Lovazh

Se puede ver que la función "solo" seleccionada no se mejoró al agregar entropía cruzada. Reducir algunos valores del coeficiente Jacquard en 1-2 milésimas puede ser importante en un entorno competitivo, pero no compensa el deterioro del negocio en el criterio para el número de componentes conectados.

Para verificar el comportamiento típico de una combinación de funciones de diferentes tipos, realizamos una serie similar de entrenamiento para la pérdida de Jaccard. Para un solo par, fue posible mejorar ligeramente los valores de ambos criterios simultáneamente:

0.8 * JaccardLoss + 0.2 * BBCE
Promedio de componentes conectados: 11.5695 -> 11.2895
Promedio de Jaccard: 0.0307 -> 0.0283

Pero incluso estos valores son peores que la pérdida de Lovazh "solo".

Por lo tanto, tiene sentido investigar combinaciones de funciones de diferente naturaleza en nuestros datos solo en condiciones de competencia o en presencia de tiempo y recursos libres. Para lograr un aumento significativo en la calidad es poco probable que tenga éxito.

Tarea 7. Regularización de la mejor función de pérdida.


En este paso, tratamos de mejorar la función de pérdida previamente seleccionada con una adición diseñada específicamente para datos sísmicos. Esta es la regularización descrita en el artículo: "Redes neuronales para geofísicos y su aplicación a la interpretación de datos sísmicos" .

El artículo menciona que las regularizaciones estándar como la disminución de los pesos en los datos sísmicos no funcionan bien. En cambio, se propone un enfoque basado en la norma de la matriz de gradiente, que tiene como objetivo suavizar los límites de las clases. El enfoque es lógico si recordamos que los límites de las capas geológicas deberían ser suaves.

Sin embargo, cuando se usa dicha regularización, uno debería esperar cierto deterioro en los resultados por el criterio de Jacquard, ya que los límites de clase suavizados probablemente coincidan con posibles transiciones abruptas obtenidas con el marcado manual. Pero tenemos un criterio más para la verificación: por el número de componentes conectados.

Entrenamos 13 redes con la regularización descrita en el artículo y el coeficiente en frente, tomando valores de 0.1 a 0.0001. Las siguientes figuras muestran algunas de las calificaciones para ambos criterios.


Figura 15. Comparación de la calidad del pronóstico de la red según los criterios seleccionados


Figura 16. Estadísticas para el número de componentes conectados en términos de los valores de los coeficientes antes de la regularización

Se ve que la regularización con un coeficiente de 0.025 redujo significativamente las estadísticas para el criterio para el número de componentes conectados. Sin embargo, el criterio Jacquard en este caso se esperaba que aumentara a 0.0357. Sin embargo, este es un ligero aumento en comparación con una reducción en el refinamiento manual.


Figura 17. Comparación de los pronósticos de la red por el número de predicciones con el número especificado de componentes conectados

Finalmente, comparamos los límites de clase en el objetivo y las máscaras predichas para el peor corte seleccionado previamente.


Figura 18. Pronóstico de la red para uno de los peores cortes


Figura 19. Superposición de parte del horizonte de la máscara objetivo y pronóstico

Como se puede ver en las figuras, la máscara de pronóstico, por supuesto, está equivocada en algunos lugares, pero al mismo tiempo suaviza las oscilaciones de los horizontes objetivo, es decir. corrige errores menores en el marcado inicial.

Resumen de características de la función de pérdida seleccionada con regularización:

  • Alrededor del 87% de los pronósticos son casi ideales, es decir no requieren más que ajustes a secciones individuales de los horizontes;
  • aproximadamente el 10% de los pronósticos contienen 1 lugar adicional, es decir requieren mejoras menores;
  • Alrededor del 3% de los pronósticos contienen de 2 a 5 puntos adicionales, es decir requieren un refinamiento un poco más sustancial.

recomendaciones


  • Solo ajustando un parámetro de aprendizaje, la función de pérdida, pudimos mejorar significativamente la calidad del pronóstico de la red y reducir la cantidad de refinamiento necesario en aproximadamente tres veces.
  • Intersection over Union ( Lovazh loss) . -, .
  • -, . , .. .

:


  1. Reinaldo Mozart Silva, Lais Baroni, Rodrigo S. Ferreira, Daniel Civitarese, Daniela Szwarcman, Emilio Vital Brazil. Netherlands Dataset: A New Public Dataset for Machine Learning in Seismic Interpretation
  2. Lars Nieradzik. Losses for Image Segmentation
  3. Daniel Godoy. Understanding binary cross-entropy / log loss: a visual explanation
  4. Seyed Sadegh Mohseni Salehi, Deniz Erdogmus, and Ali Gholipour. Tversky loss function for image segmentation using 3D fully convolutional deep networks
  5. Maxim Berman, Amal Rannen Triki, Matthew B. Blaschko. The Lovasz-Softmax loss: A tractable surrogate for the optimization of the intersection-over-union measure in neural networks
  6. Bas Peters, Eldad Haber, and Justin Granek. Neural-networks for geophysicists and their application to seismic data interpretation

All Articles