Соавторами этого блога являются Эндрю Смит, Паскаль Филипп, Рэйчел Кей, Кейт Сил и Майк Хаджелл.

Использование недель исследований для расширения границ науки о данных в UKHO

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

Что такое исследовательская неделя?

Члены группы по науке о данных в UKHO выдвигают отличные идеи о том, как мы можем применить последние достижения в области машинного обучения или исследований больших данных в области морских данных. Иногда эти идеи выходят за рамки наших текущих результатов проекта, поэтому, чтобы раздвинуть границы возможного, мы каждый квартал проводим «неделю исследований» — выделенное время для специалистов по данным, чтобы экспериментировать с новыми идей, приемов и технологий. В этом блоге мы рассказываем о нашей работе, о том, как она может быть связана с нашими будущими проектами и как извлеченные уроки помогут в будущих проектах.

Первоначальные исследования обучения с подкреплением: Эндрю Смит

Обучение с подкреплением — это ветвь машинного обучения, которая включает в себя изучение того, как совершать оптимальные действия посредством взаимодействия с окружающей средой. Агент наблюдает за текущим состоянием среды (часто определяемым в форме марковского процесса принятия решений или MDP) и использует его, чтобы определить, какое действие следует предпринять. При этом возвращается вознаграждение, которое агент использует для обновления наилучшего плана действий в будущем (т. е. предпринимать больше действий, которые приводят к положительному вознаграждению, избегая при этом действий, которые приводят к отрицательному вознаграждению).

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

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

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

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

Автоматизация выбора полос индекса для задач сегментации изображений: Паскаль Филипп

Обучение модели сегментации изображений часто начинается так:

  1. У нас есть массив данных вида (num_images, height, width, num_bands)
  2. В зависимости от задачи мы часто добавляем подходящую индексную полосу (например, нормализованный разностный водный индекс или нормализованный разностный индекс вегетации). Индексная полоса представляет собой комбинацию полос в исходном блоке данных и добавляется к ней, предоставляя данные в форме (число_изображений, высота, ширина, число_полос + 1).
  3. Затем это передается в алгоритм машинного обучения.

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

Моделирование

Мы обобщим шаг 2, придав полосе индекса форму:

Это происходит внутри пользовательского слоя под названием IndexFinder, который берет данные с полосами num_bands и создает данные с полосами num_bands + 1. Затем это передается в архитектуру ML, которая в противном случае получила бы блок данных с выбранной полосой индекса из шага 2 выше. Параметры ai, bi инициализируются случайным образом и тренируются так же, как и все остальные веса. Упомянутые выше предопределенные полосы водного и растительного индексов

для некоторых комбинаций i,j. Может ли наш IndexFinder изучить эти конфигурации или найти лучшие?

Результаты

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

Еще один эксперимент, направленный на то, чтобы попытаться получить больше действий на уровне IndexFinder, заключался в работе с фиксированной моделью, которая была обучена работать с выбранной вручную полосой индекса. Вместо того, чтобы вводить эту индексную полосу в модель, позвольте IndexFinder найти ее. Это работает? Ну, мы не получаем чистых параметров (2) выше, но теперь в слое IndexFinder определенно происходит больше. Вот некоторые результаты:

Слева у нас исходное изображение; затем истинные метки (здесь: вода и земля); затем два разных типа нормализованных разностных индексов воды, которые можно использовать, как на шаге 2 выше; затем индексная полоса, которую добавляет IndexFinder: до обучения (случайная инициализация) и после обучения!

Заключение

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

Атмосферная коррекция и коррекция бликов на изображениях Sentinel-2 для машинного обучения морских и прибрежных районов: Рэйчел Кей

Рэйчел написала отдельную запись в блоге о своей исследовательской неделе.

Заметки с Международного симпозиума IEEE по геонаукам и дистанционному зондированию 2020: Кейт Сил

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

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

С одной стороны:

  • Я пошел на конференцию (за 10 долларов!), которая в противном случае была бы непомерно дорогой.
  • Набрать вопрос в чате и получить ответ на него очень просто, по сравнению с тем, чтобы поднять руку в переполненном зале и/или встать, чтобы говорить в микрофон.
  • Посещение конференций лично с физическим телом ограничивает вас посещением одной дорожки за раз, и неизбежно одновременно проводилось более 10 сессий. Здесь постерные презентации представляли собой предварительно записанные видеоролики, авторы которых могли задавать вопросы после трансляции, а слайды и видео были доступны для скачивания. Очень полезно, если вы получаете FOMO.
  • Я избежал воздействия путешествий на окружающую среду, не имел смены часовых поясов или затрат на проживание в отеле — здесь многократные победы!
  • Я смог уклониться от сеанса, не совершая прогулку стыда. 😊

С другой стороны:

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

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

Исследование инструментов и методов: Майк Хаджелл

Техника движущегося окна

Мы написали геоморфологическую функцию, которая классифицирует пиксели батиметрической поверхности по 10 каноническим формам, а именно: равнина, вершина, гребень, плечо, отрог, склон, впадина, подножие склона, долина, депрессия. Эта функция удобна тем, что вы можете иметь разные фокусные расстояния и пороги в соответствии с вашим вариантом использования, и она оказывается полезной в нашей текущей работе с изображениями LIDAR и обнаружением морских водорослей. Однако эта функция медленная, так как ей необходимо вычислять уклон в восьми точках компаса для каждого пикселя. Таким образом, исследование должно было выяснить, сможем ли мы улучшить производительность функции с помощью метода скользящего окна DASK.

Техника «движущегося окна», по сути, разбивает растр на многие тысячи окон (с перекрытием, чтобы не возникало нежелательных артефактов краев) и обрабатывает окна параллельно. Мы достигли следующих результатов:

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

  • мы увидели улучшение производительности на 35%, запустив базовый код на машине с более высокими характеристиками, не усложняя код.
  • мы увидели повышение производительности на 44% и 72% (соответственно для бизнес- и экспериментальных ноутбуков) с DASK, что указывает на то, что если мы возьмемся за распараллеливание наших функций, мы получим наибольшую выгоду на машинах с более высокими характеристиками.

РАПИДЫ

Мы начали использовать новую библиотеку под названием RAPIDS, которая позволяет нам запускать множество различных алгоритмов обработки данных на GPU, а не на CPU, что может не только сэкономить нам время, но и сделать некоторые алгоритмы жизнеспособными — поскольку иногда алгоритм, который мы действительно хотите использовать может быть слишком медленным.

Были проведены два эксперимента, синхронизирующие кластеризацию k-средних и загрузку фрейма данных:

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

Дополнительные методы

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

Вот пример синтетической поверхности, которую мы создали из аэрофотоснимка с использованием алгоритма Morphological Building Index:

Выводы

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

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

Мы рекомендуем использовать этот подход другим группам специалистов по данным — независимо от вашей области.