Configurando a função de perda para uma rede neural baseada em dados sísmicos

Em um artigo anterior, descrevemos um experimento para determinar a quantidade mínima de seções rotuladas manualmente para treinar uma rede neural usando dados sísmicos. Hoje, continuamos esse tópico escolhendo a função de perda mais apropriada.

Duas classes básicas de funções são consideradas - entropia cruzada binária e interseção sobre união - em 6 variantes com seleção de parâmetros, bem como combinações de funções de diferentes classes. Além disso, a regularização da função de perda é considerada.

Spoiler: conseguiu melhorar significativamente a qualidade da previsão da rede.



Objetivos de pesquisa de negócios


Não repetiremos a descrição das especificidades da pesquisa sísmica, os dados obtidos e as tarefas de sua interpretação. Tudo isso é descrito em nosso artigo anterior .

A ideia deste estudo foi motivada pelos resultados da competição pela busca de depósitos de sal em fatias 2D . Segundo os participantes da competição , para resolver esse problema, um zoológico inteiro de várias funções de perda foi usado, além disso, com sucessos diferentes.

Portanto, nos perguntamos: é realmente possível que esses problemas nesses dados selecionem a função de perda que pode proporcionar um ganho significativo de qualidade? Ou essa característica é apenas para as condições da competição, quando há uma luta pela quarta ou quinta casa decimal por uma métrica predefinida pelos organizadores?

Normalmente, em tarefas resolvidas com a ajuda de redes neurais, o ajuste do processo de aprendizagem é baseado principalmente na experiência do pesquisador e em algumas heurísticas. Por exemplo, para os problemas de segmentação de imagens, as funções de perda são usadas com mais frequência, com base na avaliação da coincidência das formas das zonas reconhecidas, a chamada Intersecção sobre União.

Intuitivamente, com base no entendimento do comportamento e dos resultados da pesquisa, esses tipos de funções fornecerão um resultado melhor do que aqueles que não são aguçados por imagens, como as de entropia cruzada. No entanto, experimentos em busca da melhor opção para esse tipo de tarefa como um todo e cada tarefa individualmente continuam.

Os dados sísmicos preparados para interpretação têm vários recursos que podem ter um impacto significativo no comportamento da função de perda. Por exemplo, os horizontes que separam as camadas geológicas são suaves, mudando mais acentuadamente apenas nos locais de falhas. Além disso, as zonas distintas têm uma área suficientemente grande em relação à imagem, isto é, pequenas manchas nos resultados da interpretação são frequentemente consideradas um erro de reconhecimento.

Como parte desse experimento, tentamos encontrar respostas para as seguintes perguntas locais:

  1. A função de perda da classe Intersecção sobre União é realmente o melhor resultado para o problema considerado abaixo? Parece que a resposta é óbvia, mas qual? E qual é o melhor do ponto de vista comercial?
  2. É possível melhorar os resultados combinando funções de diferentes classes? Por exemplo, interseção sobre união e entropia cruzada com pesos diferentes.
  3. É possível melhorar os resultados adicionando à função de perda várias adições projetadas especificamente para dados sísmicos?

E para uma pergunta mais global:

vale a pena se preocupar com a seleção da função de perda para as tarefas de interpretação de dados sísmicos, ou o ganho de qualidade não é comparável com a perda de tempo para a realização de tais estudos? Talvez valha a pena escolher intuitivamente qualquer função e gastar energia na seleção de parâmetros de treinamento mais significativos?

Descrição geral do experimento e os dados utilizados


Para o experimento, realizamos a mesma tarefa de isolar camadas geológicas em fatias 2D de um cubo sísmico (veja a Figura 1).


Figura 1. Um exemplo de uma fatia 2D (esquerda) e o resultado da marcação das camadas geológicas correspondentes (direita) ( origem )

E o mesmo conjunto de dados completamente rotulados do setor holandês do Mar do Norte. Os dados sísmicos de origem estão disponíveis no site do Open Seismic Repository: Project Netherlands Offshore F3 Block . Uma breve descrição pode ser encontrada em Silva et al. "Conjunto de dados da Holanda: um novo conjunto de dados público para aprendizado de máquina na interpretação sísmica . "

Como estamos falando de fatias 2D, no nosso caso, não usamos o cubo 3D original, mas a “fatia” já feita, disponível aqui:Conjunto de Dados de Interpretação F3 da Holanda .

Durante o experimento, resolvemos os seguintes problemas:

  1. Analisamos os dados de origem e selecionamos as fatias, com qualidade mais próxima da marcação manual (semelhante à experiência anterior).
  2. Registramos a arquitetura da rede neural, a metodologia e os parâmetros do treinamento e o princípio de selecionar fatias para treinamento e validação (semelhante ao experimento anterior).
  3. Escolhemos as funções de perda estudadas.
  4. Selecionamos os melhores parâmetros para as funções de perda parametrizadas.
  5. Treinamos redes neurais com funções diferentes no mesmo volume de dados e escolhemos a melhor função.
  6. Treinamos redes neurais com diferentes combinações da função selecionada com funções de outra classe na mesma quantidade de dados.
  7. Treinamos redes neurais com regularização da função selecionada na mesma quantidade de dados.

Para comparação, usamos os resultados de um experimento anterior, no qual a função de perda foi escolhida exclusivamente intuitivamente e era uma combinação de funções de diferentes classes com coeficientes também escolhidos “a olho”.

Os resultados desse experimento na forma de métricas estimadas e previstas pelas redes de máscaras de fatia são apresentados abaixo.

Tarefa 1. Seleção de dados


Como dados iniciais, usamos linhas e linhas cruzadas prontas de um cubo sísmico do setor holandês do Mar do Norte. Como no experimento anterior, simulando o trabalho do intérprete, para treinar a rede, escolhemos apenas máscaras limpas, tendo analisado todas as fatias. Como resultado, foram selecionadas 700 linhas cruzadas e 400 linhas entre ~ 1600 imagens de origem.

Tarefa 2. Corrigindo os parâmetros do experimento


Esta e as seções a seguir são de interesse, em primeiro lugar, para especialistas em Data Science, portanto, terminologia apropriada será usada.

Para o treinamento, escolhemos 5% do número total de fatias, além disso, linhas e linhas cruzadas em partes iguais, ou seja, 40 + 40. As fatias foram selecionadas uniformemente em todo o cubo. Para validação, foi utilizada 1 fatia entre as imagens adjacentes da amostra de treinamento. Assim, a amostra de validação consistiu em 39 linhas e 39 linhas cruzadas.

321 inline e 621 crossline caíram na amostra atrasada, na qual os resultados foram comparados.

Semelhante ao experimento anterior, o pré-processamento de imagem não foi realizado e a mesma arquitetura UNet com os mesmos parâmetros de treinamento foi usada.

As máscaras de fatia de destino foram representadas como cubos binários de dimensão HxWx10, onde a última dimensão corresponde ao número de classes e cada valor do cubo é 0 ou 1, dependendo se esse pixel na imagem pertence ou não à classe da camada correspondente.

Cada previsão de rede era um cubo semelhante, cada valor relacionado à probabilidade de um determinado pixel de imagem pertencer à classe da camada correspondente. Na maioria dos casos, esse valor foi convertido na própria probabilidade usando um sigmóide. No entanto, isso não deve ser feito para todas as funções de perda; portanto, a ativação não foi usada para a última camada da rede. Em vez disso, as conversões correspondentes foram realizadas nas próprias funções.

Para reduzir a influência da aleatoriedade da escolha dos pesos iniciais nos resultados, a rede foi treinada por 1 era com entropia cruzada binária em função de perdas. Todos os outros treinamentos começaram com esses pesos recebidos.

Tarefa 3. A escolha das funções de perda


Para o experimento, duas classes básicas de funções foram selecionadas em 6 variantes:

Entropia cruzada binária :

  • entropia cruzada binária;
  • entropia cruzada binária ponderada;
  • entropia cruzada binária equilibrada.

Interseção sobre União :

  • Perda de Jaccard;
  • Perda de Tversky;
  • Perda de Lovász.

Uma breve descrição das funções listadas com código para Keras é fornecida no artigo . Aqui, apresentamos os links mais importantes (sempre que possível) para uma descrição detalhada de cada função.

Para nosso experimento, a consistência da função usada durante o treinamento é importante com a métrica pela qual avaliamos o resultado da previsão de rede na amostra atrasada. Portanto, usamos nosso código implementado no TensorFlow e Numpy, escrito diretamente usando as fórmulas abaixo.

A seguinte notação é usada nas fórmulas:

  • pt - para a máscara de alvo binário (Ground Truth);
  • pp - para máscara de previsão de rede.

Para todas as funções, a menos que especificado de outra forma, supõe-se que a máscara de previsão da rede contenha probabilidades para cada pixel da imagem, ou seja, valores no intervalo (0, 1).

Entropia cruzada binária


Descrição: https://towardsdatascience.com/understanding-binary-cross-entropy-log-loss-a-visual-explanation-a3ac6025181a .



Essa função procura aproximar a distribuição de previsão da rede do alvo, penalizando não apenas previsões erradas, mas também incertas.

Entropia cruzada binária ponderada




Esta função coincide com a entropia cruzada binária com um valor beta de 1. É recomendado para desequilíbrios de classe fortes. Para beta> 1, o número de previsões de falso negativo (falso negativo) diminui e a integridade (Rechamada) aumenta; para beta <1, o número de previsões de falso positivo (falso positivo) diminui e a precisão aumenta (Precisão).

Entropia cruzada binária equilibrada




Essa função é semelhante à entropia cruzada ponderada, mas corrige a contribuição não apenas dos valores únicos, mas também de zero da máscara de destino. Coincídios (até uma constante) com entropia cruzada binária no valor do coeficiente beta = 0,5.

Perda de Jaccard


O coeficiente de Jacquard (também conhecido como Intersecção sobre União, IoU) determina a medida da “similaridade” das duas áreas. O índice de dados faz a mesma coisa:



não faz sentido considerar essas duas funções. Nós escolhemos Jacquard.

No caso em que ambas as áreas são especificadas usando máscaras binárias, a fórmula acima pode ser facilmente reescrita em termos dos valores das máscaras:



Para previsões não binárias, a otimização do coeficiente Jacquard é uma tarefa não trivial. Usaremos a mesma fórmula para probabilidades na máscara de previsão como uma certa imitação do coeficiente inicial e, consequentemente, a seguinte função de perda:



Perda de Tversky


Descrição: https://arxiv.org/pdf/1706.05721.pdf



Esta função é uma versão parametrizada da otimização do coeficiente Jacquard que coincide com ele em alfa = beta = 1 e com o índice de dados em alfa = beta = 0,5. Para outros valores diferentes de zero e não coincidentes, podemos mudar a ênfase em direção à precisão ou completude da mesma maneira que nas funções de entropia cruzada ponderada e equilibrada.

O problema da mudança de ênfase pode ser reescrito usando um único coeficiente no intervalo (0, 1). A função de perda resultante terá a seguinte aparência:



Perda de Lovász


É difícil fornecer uma fórmula para essa função, pois é uma opção para otimizar o coeficiente de Jacquard por um algoritmo baseado em erros classificados.

Você pode ver a descrição da função aqui , uma das opções de código está aqui .

Explicação importante!


Para simplificar a comparação de valores e gráficos a seguir, sob o termo "coeficiente de Jacquard", entenderemos melhor a unidade menos o próprio coeficiente. A perda de Jaccard é uma maneira de otimizar esse índice, juntamente com a perda de Tversky e Lovász.

Tarefa 4. Escolhendo os melhores parâmetros para funções de perda parametrizadas


Para selecionar a melhor função de perda no mesmo conjunto de dados, é necessário um critério de avaliação. Em sua qualidade, escolhemos o número médio / mediano de componentes conectados nas máscaras resultantes. Além disso, usamos o coeficiente Jacquard para máscaras preditivas convertidas em argmax de camada única e novamente divididas em camadas binarizadas.

O número de componentes conectados (ou seja, pontos sólidos da mesma cor) em cada previsão obtida é um critério indireto para avaliar o volume de seu refinamento subsequente pelo intérprete. Se esse valor for 10, as camadas serão selecionadas corretamente e estamos falando de um máximo de correção menor do horizonte. Se não houver muito mais, será necessário "limpar" pequenas áreas da imagem. Se houver substancialmente mais deles, tudo está ruim e pode até precisar de um re-layout completo.

O coeficiente de Jacquard, por sua vez, caracteriza a coincidência de zonas de imagem atribuídas a uma classe e seus limites.

Entropia cruzada binária ponderada


De acordo com os resultados das experiências, o valor do parâmetro beta = 2 foi selecionado:


Figura 2. Comparação da qualidade da previsão de rede para a principal função de perda e os critérios selecionados


Figura 3. Estatísticas para o número de componentes conectados em termos dos valores do parâmetro beta

Entropia cruzada binária equilibrada


De acordo com os resultados dos experimentos, foi escolhido o valor do parâmetro beta = 0,7:


Figura 4. Comparação da qualidade da rede prevista pela principal função de perda e os critérios selecionados


Figura 5. Estatísticas para o número de componentes conectados

Perda de Tversky


De acordo com os resultados dos experimentos, foi escolhido o valor do parâmetro beta = 0,7:


Figura 6. Comparação da qualidade da rede prevista pela principal função de perda e os critérios selecionados


Figura 7. Comparação da qualidade da rede prevista pela principal função de perda e os critérios selecionados

Duas conclusões podem ser tiradas das figuras acima.

Primeiro, os critérios selecionados se correlacionam bastante bem entre si, ou seja, o coeficiente de Jacquard é consistente com uma estimativa do volume de refinamento necessário. Em segundo lugar, o comportamento das funções de perda de entropia cruzada é bastante logicamente diferente do comportamento dos critérios, ou seja, usar o treinamento apenas nesta categoria de funções sem avaliação adicional dos resultados ainda não vale a pena.

Tarefa 5. Escolhendo a melhor função de perda.


Agora compare os resultados que mostraram as 6 funções de perda selecionadas no mesmo conjunto de dados. Para completar, adicionamos as previsões da rede obtidas no experimento anterior.


Figura 8. redes projecções Comparação formados com diferentes funções de perda para os critérios seleccionados

Tabela 1. Os valores médios de critérios




Figura 9. Comparação redes projecções sobre o número de previsões do número indicado de componentes ligados entre si

a partir dos diagramas apresentados e tabelas, as seguintes conclusões em relação ao uso de "solo" funções de perda:

  • No nosso caso, as funções "Jacquard" da classe Intersection over Union mostram realmente melhores valores que os da entropia cruzada. Além disso, significativamente melhor.
  • Lovazh loss.

Vamos comparar visualmente as previsões para as fatias com um dos melhores e um dos piores valores de perda do Lovazh e o número de componentes conectados. A máscara de destino é exibido no canto superior direito, a previsão obtida no experimento anterior no canto inferior direito:


previsões Figura 10. Rede de para uma das melhores fatias


previsões Figura 11. Rede de para um dos piores fatias

Pode ser visto que todas as redes funcionam igualmente bem em facilmente reconhecível fatias. Mas mesmo em uma fatia pouco reconhecível em que todas as redes estão erradas, a previsão para a perda de Lovazh é visualmente melhor do que as previsões de outras redes. Embora seja uma das piores perdas para essa função.

Portanto, nesta etapa, decidimos um líder claro - a perda de Lovazh, cujos resultados podem ser descritos da seguinte forma:

  • cerca de 60% das previsões estão próximas do ideal, ou seja, não requerem mais do que ajustes em seções individuais dos horizontes;
  • aproximadamente 30% das previsões não contêm mais de 2 pontos extras, ou seja, requer pequenas melhorias;
  • aproximadamente 1% das previsões contém de 10 a 25 pontos extras, ou seja, requer melhorias substanciais.

Nesta etapa, substituindo apenas a função de perda, obtivemos uma melhora significativa nos resultados em comparação com o experimento anterior.

Ainda pode ser melhorado por uma combinação de funções diferentes? Confira.

Tarefa 6. Escolhendo a melhor combinação de função de perda


A combinação de funções de perda de várias naturezas é usada com bastante frequência. No entanto, encontrar a melhor combinação não é fácil. Um bom exemplo é o resultado de um experimento anterior, que acabou sendo ainda pior do que a função "solo". O objetivo de tais combinações é melhorar o resultado otimizando de acordo com diferentes princípios.

Vamos tentar classificar as diferentes opções da função selecionada na etapa anterior com outras pessoas, mas não com todas seguidas. Nos limitamos a combinações de funções de diferentes tipos, neste caso, com entropia cruzada. Não faz sentido considerar combinações de funções do mesmo tipo.

No total, verificamos 3 pares com 9 possíveis coeficientes cada (de 0,1 \ 0,9 a 0,9 \ 0,1). Nas figuras abaixo, o eixo x mostra o coeficiente antes da perda de Lovazh. O coeficiente antes da segunda função é igual a um menos o coeficiente antes da primeira. O valor esquerdo é apenas uma função de entropia cruzada, o valor correto é apenas a perda de Lovazh.


Figura 12. Avaliação dos resultados previstos das redes treinadas em BCE + Lovazh


Figura 13. Avaliação dos resultados previstos das redes treinadas em BCE + Lovazh


Figura 14. Avaliação dos resultados previstos das redes treinadas em BCE + Lovazh

Pode-se observar que a função “solo” selecionada não foi aprimorada com a adição de entropia cruzada. Reduzir alguns valores do coeficiente Jacquard em 1-2 milésimos pode ser importante em um ambiente competitivo, mas não compensa a deterioração dos negócios no critério para o número de componentes conectados.

Para verificar o comportamento típico de uma combinação de funções de diferentes tipos, realizamos uma série semelhante de treinamento para perda de Jaccard. Para apenas um par, foi possível melhorar ligeiramente os valores de ambos os critérios simultaneamente:

0,8 * JaccardLoss + 0,2 * BBCE
Média de componentes conectados: 11,5695 -> 11,2895
Média de Jaccard: 0,0307 -> 0,0283

Mas mesmo esses valores são piores que a perda "solo" do Lovazh.

Assim, faz sentido investigar combinações de funções de natureza diferente em nossos dados apenas em condições de competição ou na presença de tempo e recursos livres. É pouco provável que alcançar um aumento significativo na qualidade.

Tarefa 7. Regularização da melhor função de perda.


Nesta etapa, tentamos melhorar a função de perda selecionada anteriormente com uma adição projetada especificamente para dados sísmicos. Esta é a regularização descrita no artigo: "Redes neurais para geofísicos e sua aplicação à interpretação de dados sísmicos" .

O artigo menciona que regularizações padrão como pesos se deterioram em dados sísmicos não funcionam bem. Em vez disso, é proposta uma abordagem baseada na norma da matriz de gradiente, que visa suavizar os limites das classes. A abordagem é lógica se lembrarmos que os limites das camadas geológicas devem ser suaves.

No entanto, ao usar essa regularização, deve-se esperar alguma deterioração nos resultados pelo critério Jacquard, uma vez que limites de classe suavizados provavelmente coincidirão com possíveis transições abruptas obtidas com a marcação manual. Mas temos mais um critério para verificação - pelo número de componentes conectados.

Treinamos 13 redes com a regularização descrita no artigo e o coeficiente à sua frente, assumindo valores de 0,1 a 0,0001. As figuras abaixo mostram algumas das classificações para ambos os critérios.


Figura 15. Comparação da qualidade da previsão de rede pelos critérios selecionados


Figura 16. Estatísticas para o número de componentes conectados em termos dos valores do coeficiente antes da regularização

Observa-se que a regularização com um coeficiente de 0,025 reduziu significativamente as estatísticas do critério para o número de componentes conectados. No entanto, o critério Jacquard nesse caso aumentou para 0,0357. No entanto, este é um pequeno aumento em comparação com uma redução no refinamento manual.


Figura 17. Comparação de previsões de rede pelo número de previsões com o número especificado de componentes conectados.Finalmente

, comparamos os limites de classe no destino e nas máscaras previstas para o pior corte selecionado anteriormente.


Figura 18. A previsão da rede para uma das piores fatias


Figura 19. Sobreposição de parte do horizonte da máscara de destino e previsão

Como pode ser visto nas figuras, a máscara de previsão, é claro, é equivocada em alguns lugares, mas ao mesmo tempo suaviza as oscilações dos horizontes alvo, ou seja, corrige pequenos erros na marcação inicial.

Resumo das características da função de perda selecionada com regularização:

  • cerca de 87% das previsões estão próximas do ideal, ou seja, não requerem mais do que ajustes em seções individuais dos horizontes;
  • aproximadamente 10% das previsões contêm 1 ponto extra, ou seja, requer pequenas melhorias;
  • cerca de 3% das previsões contêm de 2 a 5 pontos extras, ou seja, requer um refinamento um pouco mais substancial.

achados


  • Somente ajustando um parâmetro de aprendizado - a função de perda - conseguimos melhorar significativamente a qualidade da previsão da rede e reduzir a quantidade de refinamento necessário em cerca de três vezes.
  • 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