Сложность интерпретации и анализа сейсмических данных в основном связана с тем, что для каждой задачи требуется индивидуальный подход, поскольку каждый набор данных уникален. Ручная обработка требует значительных трудозатрат, а результат часто содержит ошибки, связанные с человеческим фактором. Использование нейронных сетей для интерпретации может значительно сократить ручной труд, но уникальность данных накладывает ограничения на общую автоматизацию.

В этой статье описывается аналитический эксперимент, направленный на доказательство применимости нейронных сетей для автоматизации выделения геологических слоев на 2D-изображениях с использованием полностью размеченных данных из результатов сейсмической разведки в Северном море.

Немного теории

Сейсмическая разведка - это геофизический метод изучения геологических объектов с помощью упругих (= сейсмических) волн. Этот метод основан на том факте, что скорость распространения сейсмических волн зависит от свойств геологической среды, в которой они фактически распространяются (состав породы, пористость, трещиноватость, влагонасыщенность и т. Д.)

Проходя через геологические слои с разными свойствами, сейсмические волны отражаются от различных объектов и возвращаются в приемник (см. Рисунок 1). Их характер фиксируется и после обработки позволяет сформировать двухмерное изображение - сейсмический разрез или трехмерный массив данных - сейсмический куб.

Рисунок 1. Морская сейсморазведка (источник)

Рисунок 2. Пример сейсмического куба
(источник)

Горизонтальная ось сейсмического куба расположена вдоль поверхности земли, а вертикальная представляет глубину или время (см. Рисунок 2). В некоторых случаях куб делится на вертикальные секции по оси приемников (так называемые inlines) или поперек (crosslines, xlines). Каждая вертикаль куба (и среза) представляет собой отдельную сейсмическую трассу.

Таким образом, инлайны и кросслайны состоят из одних и тех же сейсмических трасс, только в другом порядке. Соседние сейсмические трассы очень похожи друг на друга. В разломах происходит более резкое изменение, но сходство все же будет, а это означает, что соседние участки очень похожи друг на друга.

Вся эта информация полезна для планирования экспериментов.

Задача интерпретации и роль нейронных сетей

Обычно полученные данные обрабатываются вручную интерпретаторами, которые определяют непосредственно на кубе или на каждом срезе его отдельные геологические слои и их границы (горизонты), солевые отложения, разломы и другие особенности геологического строения исследуемой территории. Интерпретатор, работая с кубом или срезом, начинает с кропотливого ручного выбора геологических слоев и горизонтов. Каждый горизонт необходимо выбрать вручную, указав курсор и щелкнув мышью.

Рис. 3. Пример двухмерного среза (слева) и результатов сегментации с идентифицированными слоями и горизонтами (справа) (источник)

Основная проблема связана с растущим объемом сейсмических данных, получаемых во все более сложных геологических условиях (например, подводные участки с большими глубинами моря) и неоднозначностью интерпретации этих данных. Кроме того, в условиях сжатых сроков и / или больших объемов интерпретатор неизбежно допускает ошибки, например, упускает различные особенности геологического разреза.

Частично эту проблему можно решить с помощью нейронных сетей, значительно сократив ручной труд, тем самым ускорив процесс интерпретации и уменьшив количество ошибок. Для работы нейросети требуется определенное количество готовых, размеченных секций (секций куба), и в результате будет получена полная разметка всех секций (или всего куба), что в идеале потребует лишь незначительной доработки со стороны человека, чтобы скорректировать определенные участки горизонта или пометить небольшие участки, которые сеть не смогла правильно распознать.

Существует множество решений проблем интерпретации с помощью нейронных сетей, вот лишь несколько примеров: один, два, три. Сложность заключается в том, что каждый набор данных уникален - из-за особенностей геологического строения изучаемого региона, из-за различных технических средств и методов сейсморазведки, из-за различных методов, используемых для преобразования исходных данных в готовые. . Проблемы могут возникнуть даже из-за внешнего шума (например, лай собаки и других громких звуков), которые не всегда удается полностью убрать. Поэтому каждую проблему нужно решать индивидуально.

Но, несмотря на это, многочисленные работы позволяют найти отдельные общие подходы к решению различных задач интерпретации.

В MaritimeAI для каждой зоны наших интересов (морские исследования и бизнес-приложения) мы изучаем уже опубликованные работы и проводим собственные эксперименты, которые позволяют уточнить границы и особенности применения тех или иных решений, а иногда и находить наши собственные подходы.

Результаты одного эксперимента мы описываем в этой статье.

Бизнес-пример

Глядя на рисунок 3, специалист по науке о данных может быстро определить стоящую перед ним задачу - обычную задачу семантической сегментации изображений, для которой были изобретены многие архитектуры нейронных сетей и методы обучения. Вам просто нужно выбрать подходящие и обучить сеть.

Однако не все так просто.

Чтобы получить хороший результат с помощью нейронной сети, вам нужно как можно больше уже размеченных данных, на которых она будет учиться. Но наша задача как раз сократить объем ручного труда. И редко можно использовать данные с тегами из других регионов из-за их сильных различий в геологическом строении.

Другими словами, для того, чтобы использование нейронных сетей было экономически оправданным, необходимо минимизировать объем первичной ручной интерпретации и уточнения полученных результатов. Но сокращение данных для обучения сети негативно скажется на качестве ее результата. Так может ли нейронная сеть ускорить и облегчить работу интерпретаторов и улучшить качество помеченных изображений? Или просто усложняют привычный процесс?

Целью данного исследования является попытка определить минимально достаточный объем данных размеченного сейсмического куба для нейронной сети и оценить полученные результаты. Мы попытались найти ответы на следующие вопросы, которые должны помочь «владельцам» результатов сейсморазведки принять решение о ручной или частично автоматизированной интерпретации:

  1. Сколько данных нужно разметить экспертам для обучения нейронной сети? И какие данные для этого выбрать?
  2. Что происходит на таком выходе? Потребуется ли ручное уточнение прогнозов нейронной сети? Если да, то насколько сложным и объемным?

Общие данные и описание эксперимента

Для эксперимента была выбрана одна из задач интерпретации, а именно задача выделения геологических слоев на 2D разрезах сейсмического куба (см. Рис. 3). Попытка решить эту задачу уже была (см. Здесь) и По словам авторов, они получили хороший результат для 1% случайно выбранных срезов. Учитывая объем куба, они использовали 16 изображений. Однако в статье не приводятся метрики для сравнения и нет описания методики обучения (функция потерь, оптимизатор, схема изменения скорости обучения и т. Д.), Что делает эксперимент невоспроизводимым.

Кроме того, представленные там результаты, на наш взгляд, недостаточны для получения полных ответов на поставленные вопросы. Оптимально ли это значение в 1%? А может для другого образца ломтиков будет иначе? Можем ли мы выбрать меньше данных? Стоит ли брать еще? Как изменится результат? И так далее.

Для эксперимента мы взяли тот же набор полностью маркированных данных из голландского сектора Северного моря. Исходные сейсмические данные представлены в Открытом хранилище сейсмических данных: Проект Нидерландский морской блок F3. Краткое описание данных можно найти здесь Silva et al. «Нидерландский набор данных: новый общедоступный набор данных для машинного обучения в сейсмической интерпретации ».

Поскольку в нашем случае мы говорим о 2D-срезах, мы использовали не исходный 3D-куб, а уже сделанный срез, доступный здесь: Нидерланды F3 Interpretation Dataset.

В ходе эксперимента были решены следующие задачи:

  1. Мы посмотрели исходные данные и отобрали срезы, наиболее близкие по качеству к ручной разметке.
  2. Мы зафиксировали архитектуру нейронной сети, методологию и параметры обучения, а также принцип выбора срезов для обучения и проверки.
  3. Мы обучили 20 идентичных нейронных сетей на разных объемах данных одного и того же типа срезов, чтобы сравнить результаты.
  4. Мы обучили еще 20 нейронных сетей на разном количестве данных из разных типов срезов, чтобы сравнить результаты.
  5. Оценили объем необходимой ручной доработки результатов, полученных сетями.

Результаты эксперимента в виде оценочных метрик и масок, предсказываемых нейронной сетью, представлены ниже.

Проблема 1. Выбор данных

Итак, в качестве исходных данных мы использовали готовые инлайны и кросслайны сейсмического куба из голландского сектора Северного моря. Детальный анализ показал, что там не все гладко - много изображений и масок с артефактами и даже сильно искаженными (см. Рисунки 4 и 5).

Рисунок 4. Маски с артефактами

Рисунок 5. Пример искаженной маски

При ручной разметке ничего подобного не будет. Поэтому, моделируя работу интерпретатора, для обучения сети мы выбрали только чистые маски, просмотрев все срезы. В результате было отобрано 700 кросслайнов и 400 инлайнов.

Проблема 2. Настройка эксперимента

Этот раздел представляет интерес, прежде всего, для специалистов в области Data Science, поэтому будет использована соответствующая терминология.

Поскольку инлайны и кросслайны состоят из одних и тех же сейсмических трасс, можно выдвинуть две взаимоисключающие гипотезы:

  1. Обучение можно проводить только на одном типе срезов (например, встроенных), используя изображения другого типа в качестве набора данных для проверки. Это даст более адекватную оценку результата, потому что оставшиеся срезы того же типа, что использовались при обучении, все равно будут похожи на обучающие.
  2. Для тренировок лучше использовать смесь срезов разного вида, так как это уже готовая аугментация.

Давай проверим.

Кроме того, схожесть соседних срезов одного типа и желание получить воспроизводимый результат привели нас к стратегии выбора срезов для обучения и проверки не по произвольному принципу, а равномерно по всему кубу, то есть так, чтобы срезы находятся как можно дальше друг от друга и, следовательно, охватывают максимальное разнообразие данных.

Для проверки использовались 2 среза, также равномерно распределенных между соседними изображениями обучающей выборки. Например, для обучающей выборки из 3 инлайнов, валидационная выборка состояла из 4 инлайнов, для 3 инлайнов и 3 кросслайнов - из 8 срезов соответственно.

В результате мы провели 2 серии тренингов:

  1. Обучение на выборках инлайнов от 3 до 20 срезов, равномерно распределенных по кубу, с проверкой результата сетевых предсказаний на оставшихся инлайнах и на всех кросслайнах. Дополнительно обучение проводилось на 80 и 160 секциях.
  2. Обучение на комбинированных выборках из инлайнов и кросслайнов 3–10 секций каждого типа, равномерно распределенных по кубу, с проверкой результата сетевых предсказаний на остальных изображениях. Дополнительно обучение проводилось по 40 + 40 и 80 + 80 секциям.

При таком подходе необходимо учитывать, что размеры обучающей и проверочной выборок значительно различаются, что затрудняет сравнение, но объем оставшихся изображений уменьшается не так сильно, поэтому его все же можно использовать для адекватной оценки изменения в результате.

Для уменьшения переобучения для обучающей выборки использовалось аугментация с произвольным размером кадрирования 448x64 и зеркальным отображением по вертикальной оси с вероятностью 0,5.

Поскольку нас интересует зависимость качества результата только от количества срезов в обучающей выборке, предварительной обработкой изображений можно пренебречь. Мы использовали один слой изображений PNG без каких-либо изменений.

По этой же причине в рамках этого эксперимента нет необходимости искать лучшую сетевую архитектуру - главное, чтобы она была одинаковой на каждом этапе. Мы выбрали простой, но хорошо зарекомендовавший себя UNet:

Рисунок 6. Архитектура UNet

Функция потерь состояла из комбинации коэффициента Жаккара и бинарной кросс-энтропии:

def jaccard_loss (y_true, y_pred):

сглаживание = 1.

пересечение = tf.reduce_sum (y_true * y_pred, axis = (1, 2))

union = tf.reduce_sum (y_true + y_pred, axis = (1, 2))

jaccard = (пересечение + сглаживание) / (объединение - пересечение + сглаживание)

возврат 1. - tf.reduce_mean (jaccard)

def loss (y_true, y_pred):

возврат 0,75 * jaccard_loss (y_true, y_pred) + 0,25 * keras.losses.binary_crossentropy (y_true, y_pred)

Другие параметры тренировки:

keras.optimizers.SGD (lr = 0,01, импульс = 0,9, нестеров = True)

keras.callbacks.EarlyStopping (monitor = ‘val_loss’, терпение = 10),

keras.callbacks.ReduceLROnPlateau (monitor = ‘val_loss’, терпение = 5)

Чтобы уменьшить влияние случайности при выборе начальных весов на результаты, сеть была обучена на 3 инлайнах за 1 эпоху. Все остальные тренировки начинались с этих весов.

Проблема 3. Обучение с использованием одного типа фрагментов - встроенные

Первая серия состояла из 18 независимых сетевых тренингов на 3–20 инлайнах. И хотя нас интересует только оценка коэффициента Жаккара на срезах, не используемых при обучении и проверке, интересно рассмотреть все графики.

Рисунок 7. Коэффициент Жаккарда для обучающей выборки

Рисунок 8. Коэффициент Жаккарда для проверочного набора

Рисунок 9. Коэффициент Жаккарда для других инлайнов

Рисунок 10. Коэффициент Жаккарда для кросслайнов

Из приведенных выше диаграмм можно сделать ряд выводов.

Во-первых, качество прогноза, измеряемое коэффициентом Жаккара, достигает очень высокого значения уже на 9 строчках, после чего продолжает расти, но не так интенсивно. Итак, гипотеза о достаточности небольшого количества помеченных изображений для обучения нейронной сети подтверждается.

Во-вторых, очень высокий результат был получен для кросслайнов, несмотря на то, что для обучения и валидации использовались только инлайны - также подтверждается гипотеза о достаточности только одного типа срезов. Однако для окончательного вывода нужно сравнить результаты с тренировкой на смеси инлайнов и кросслайнов.

В-третьих, метрики для разных слоев, иными словами - качество «распознавания» разных слоев очень разное. Это приводит к идее выбора другой стратегии обучения, например, использования весов или дополнительных сетей для слабых классов или полноценной схемы «один против всех».

И наконец, следует отметить, что коэффициент Жаккара не может дать полного описания качества результата. В этом случае для оценки предсказаний сети лучше посмотреть на сами маски, чтобы оценить их пригодность для проверки интерпретатором.

На следующих рисунках показаны маски, предсказанные нейронной сетью, обученной на 10 инлайнах.

Рис. 11. Маски, предсказанные нейронной сетью, и маски истинности на земле

Рис. 12. Маски, спрогнозированные нейронной сетью, и маски наземных истинных линий для кросслайнов

Из рисунков видно, что, помимо довольно чистых масок, сети труднее всего распознать сложные случаи даже на самих инлайнах. Таким образом, несмотря на достаточно высокую метрику для 10 срезов, часть результатов потребует значительной доработки.

Рассматриваемые нами размеры выборки колеблются в районе 1% от общего объема данных - и это уже позволяет достаточно хорошо выделить часть оставшихся срезов. Но стоит ли увеличивать количество изначально отмеченных разделов? Даст ли это сопоставимое повышение качества?

Рассмотрим динамику изменения результатов прогноза по сетям, обученным на 5, 10, 15, 20, 80 (5% от общего объема куба) и 160 (10%) инлайнах на примере тех же секций.

Рисунок 13. Пример масок, предсказанных нейронной сетью для разных размеров набора обучающих данных

На рисунке 13 видно, что увеличение объема обучающей выборки в 5 и даже 10 раз не приводит к существенному улучшению. Срезы, которые уже хорошо распознаются в 10 обучающих образах, не ухудшаются.

Таким образом, даже простая сеть без настройки и предварительной обработки изображений способна интерпретировать часть срезов с достаточно высоким качеством с небольшим количеством размеченных вручную изображений. Вопрос о доле таких интерпретаций и сложности доработки плохо распознаваемых срезов мы рассмотрим далее.

Точный выбор сетевой архитектуры, параметров обучения и предварительной обработки изображений может улучшить эти результаты на том же объеме помеченных вручную данных. Но это выходит за рамки текущего эксперимента.

Проблема 4. Обучение на комбинации инлайнов и кросслайнов

Теперь сравним результаты этой серии с прогнозами, полученными во время тренировки на смеси инлайнов и кросслайнов.

На диаграммах ниже показаны оценки коэффициента Жаккара для разных образцов, в том числе сравнение с результатами предыдущей серии. Для сравнения (см. Правые диаграммы на рисунках) использовались только образцы одинакового объема, т.е. 10 инлайнов против 5 инлайнов + 5 кросслайнов и т. Д.

Рисунок 14. Коэффициент Жаккарда для обучающей выборки

Рисунок 15. Коэффициент Жаккарда для проверочного набора

Рисунок 16. Коэффициент Жаккарда для других инлайнов

Рисунок 17. Коэффициент Жаккарда для других кросслайнов

Диаграммы ясно показывают, что добавление срезов другого типа не улучшает результатов. Даже в контексте классов (см. Рис. 18) эффект добавления поперечной линии к смесям не наблюдается ни для одного из рассматриваемых размеров выборки.

Рисунок 18. Коэффициент Жаккарда для разных классов (по оси X) и разных размеров и состава обучающей выборки

Для полноты сравним результаты сетевого прогноза на одних и тех же срезах:

Рисунок 19. Сравнение результатов сетевого прогноза для инлайнов

Рисунок 20. Сравнение результатов сетевого прогноза для кросслайнов

Визуальное сравнение подтверждает предположение, что добавление к обучению срезов другого типа принципиально не меняет ситуацию. Некоторые улучшения наблюдаются только для левого кросслайна, но значительны ли они в целом? Мы постараемся ответить на этот вопрос дальше.

Проблема 5. Оценка объема необходимого ручного уточнения

Для окончательного вывода о результатах необходимо оценить объем ручного уточнения полученных сетевых прогнозов. Для этого мы определили количество связанных компонентов (т. Е. Сплошных пятен одного цвета) на каждом полученном прогнозе. Если это значение равно 10, то слои выбраны правильно и речь идет о незначительной коррекции горизонта. Случай среднего уровня - это когда вам нужно «очистить» только небольшие области изображения. Если неправильных слоев существенно больше, значит, все плохо и может потребоваться полная повторная разметка.

Для тестирования мы выбрали 110 инлайнов и 360 кросслайнов, которые не использовались при обучении ни одной из рассмотренных сетей.

Таблица 1. Статистика, усредненная по обоим типам срезов

Таблица 1 подтверждает некоторые из предыдущих результатов. В частности, при использовании 1% срезов для обучения нет разницы, используйте один тип срезов или оба, а результат можно охарактеризовать следующим образом:

  • около 10% прогнозов близки к идеальным, т.е. требуют не более чем корректировки отдельных участков горизонта;
  • 50% прогнозов содержат не более 15 спотов, т. Е. Не более 5 дополнительных;
  • 75% прогнозов содержат не более 20 спотов, т. Е. Не более 10 дополнительных;
  • оставшиеся 25% прогнозов требуют более существенной доработки, в том числе, возможно, полной перемаркировки.

Увеличение размера выборки до 5% меняет ситуацию. В частности, сети, обученные на смеси секций, показывают значительно более высокие показатели, хотя максимальное значение компонентов также увеличивается, что свидетельствует о появлении отдельных интерпретаций очень низкого качества. Однако если вы увеличите образец в 5 раз и используете смесь ломтиков:

  • около 30% прогнозов близки к идеальным, т.е. требуют не более чем корректировки отдельных участков горизонта;
  • 50% прогнозов содержат не более 12 роликов, т.е. не более 2 дополнительных;
  • 75% прогнозов содержат не более 14 спотов, т. Е. Не более 4 дополнительных;
  • оставшиеся 25% прогнозов требуют более существенной доработки, в том числе, возможно, полной перемаркировки.

Дальнейшее увеличение размера выборки не приводит к улучшению результатов.

В целом по исследованному нами кубу данных можно сделать выводы о достаточности 1–5% от общего объема данных для получения хорошего результата от нейронной сети.

По таким данным в совокупности с приведенными выше метриками и иллюстрациями уже можно делать выводы о целесообразности использования нейронных сетей в помощь интерпретаторам и о результатах, с которыми будут иметь дело специалисты.

Вывод:

Итак, теперь мы можем ответить на вопросы, поставленные в начале статьи, используя результаты, полученные на примере сейсмического куба Северного моря:

  1. Сколько данных нужно разметить экспертам для обучения нейронной сети? А какие данные выбрать?

Чтобы получить хороший результат прогноза сети, действительно достаточно предварительно разметить 1–5% от общего количества срезов. Дальнейшее увеличение объема не приводит к улучшению результата, сравнимому с увеличением количества ранее отмеченных данных. Чтобы получить лучшую разметку на таком небольшом объеме с помощью нейронной сети, вам нужно попробовать другие подходы, например, тонкую настройку архитектуры и стратегии обучения, предварительную обработку изображений и т. Д.

Для предварительной разметки стоит выбирать срезы обоих типов - инлайны и кросслайны.

  1. Что происходит на таком выходе? Потребуется ли ручное уточнение прогнозов нейронной сети? Если да, то насколько сложным и объемным?

В результате значительная часть изображений, размеченных такой нейронной сетью, потребует не самой значительной доработки, заключающейся в коррекции отдельных плохо распознаваемых зон. Среди них будут такие интерпретации, которые не потребуют никаких исправлений. И только для отдельных изображений может потребоваться новая ручная разметка.

Конечно, при оптимизации алгоритма обучения и параметров сети его прогностические возможности могут быть улучшены. В наш эксперимент решение таких задач не входило.

Кроме того, результаты одного исследования на одном сейсмическом кубе не следует бездумно обобщать - именно из-за уникальности каждого набора данных. Но эти результаты являются подтверждением эксперимента, проведенного другими авторами, и основанием для сравнения с нашими последующими исследованиями, о которых мы также вскоре напишем.

Дополнительная литература:

  1. Бас Петерс, Эльдад Хабер, Джастин Гранек. Нейронные сети для геофизиков и их применение для интерпретации сейсмических данных (https://arxiv.org/abs/1903.11215)
  2. Хао Ву, Бо Чжан. Нейронная сеть глубокого сверточного кодера-декодера для помощи в отслеживании сейсмического горизонта (https://arxiv.org/ftp/arxiv/papers/1804/1804.06814.pdf)
  3. Тило Врона, Индранил Пан, Роберт Л. Гавторп и Хокон Фоссен. Анализ сейсмических фаций с использованием машинного обучения (https://library.seg.org/doi/full/10.1190/geo2017-0595.1)
  4. Рейнальдо Моцарт Силва, Лаис Барони, Родриго С. Феррейра, Даниэль Чивитарезе, Даниэла Шварцман, Эмилио Витал Бразилия. Набор данных Нидерландов: новый общедоступный набор данных для машинного обучения в сейсмической интерпретации (https://arxiv.org/pdf/1904.00770v1.pdf)