Модели и платформы ИИ

Жюльен Ребец, ведущий инженер машинного обучения в Picterra – Интервью

mm
Добавьте Unite.AI в избранные источники в Google

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

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

Это автоматизирует анализ спутниковых и аэрофотоснимков, позволяя пользователям идентифицировать объекты и закономерности.

Что привлекло вас к машинному обучению и ИИ?

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

 

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

Мое первое знакомство со спутниковыми изображениями было проектом Terra-i (для обнаружения вырубки лесов), и я работал над ним во время моих исследований. Я был поражен количеством бесплатно доступных спутниковых данных, которые производятся различными космическими агентствами (NASA, ESA и т. д.). Вы можете получить регулярные изображения планеты бесплатно каждый день или около того, и это является отличным ресурсом для многих научных приложений.

 

Можете ли вы рассказать больше подробностей о проекте “Terra-i”?

Проект Terra-i (http://terra-i.org/terra-i.html) был начат профессором Андезом Перес-Урибе из HEIG-VD (Швейцария) и теперь возглавляется Луисом Реймондinem из CIAT (Колумбия). Идея проекта заключается в обнаружении вырубки лесов с помощью бесплатно доступных спутниковых изображений. В то время мы работали с изображениями MODIS (разрешение 250 м) потому, что они предоставляли унифицированное и предсказуемое покрытие (как пространственно, так и временно). Мы получали измерение для каждого пикселя каждые несколько дней, и из этой временной серии измерений вы можете попытаться обнаружить аномалии или новинки, как мы их называем в машинном обучении.

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

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

 

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

Это было мое первое реальное знакомство с глубоким обучением. В то время, я думаю, основные проблемы были больше связаны с запуском фреймворка и правильным использованием GPU, чем с самим машинным обучением. Мы использовали Theano, который был одним из предшественников Tensorflow.

Цель проекта заключалась в классификации типа культуры в поле по аэрофотоснимкам. Мы попробовали подход, при котором модель глубокого обучения использовала гистограммы цветов в качестве входных данных, а не сырые изображения. Чтобы сделать это работоспособным достаточно быстро, я помню, что мне пришлось реализовать пользовательский слой Theano, вплоть до некоторых кода CUDA. Это был отличный опыт обучения в то время и хороший способ глубже понять технические детали глубокого обучения.

 

Вы официально являетесь ведущим инженером программного обеспечения и машинного обучения в Picterra. Как бы вы описали свою повседневную деятельность?

Это действительно варьируется, но большая часть этого заключается в контроле общей архитектуры системы и продукта в целом, а также в общении с различными заинтересованными сторонами. Хотя машинное обучение является核心 нашей деятельности, вы быстро понимаете, что большая часть времени не тратится на само машинное обучение, а на все, что с ним связано: управление данными, инфраструктура, UI/UX, прототипирование, понимание пользователей и т. д. Это довольно отличается от академии или предыдущего опыта в больших компаниях, где вы более сосредоточены на конкретной проблеме.

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

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

 

Некоторые из ваших обязанностей включают прототипирование новых идей и технологий. Какие из проектов были наиболее интересными для вас?

Я думаю, что наиболее интересным был прототип Custom Detector в Picterra. 1,5 года назад у нас были “встроенные” детекторы на платформе: это были детекторы, которые мы обучали сами и делали доступными для пользователей. Например, у нас был детектор зданий, детектор автомобилей и т. д.

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

Но мы хотели сделать что-то по-другому и немного расширить границы. Итак, мы сказали: “Что, если мы позволим пользователям обучать свои собственные модели直接 на платформе”? Были несколько проблем, чтобы сделать это работоспособным: во-первых, мы не хотели, чтобы это заняло несколько часов. Если вы хотите сохранить это чувство интерактивности, обучение должно занять несколько минут максимум. Во-вторых, мы не хотели требовать тысяч аннотаций, которые обычно необходимы для больших моделей глубокого обучения.

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

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

Мы также применили многие из “правил машинного обучения” Google (GOOGL ), в частности те, которые связаны с реализацией всего конвейера и метрик до начала оптимизации модели. Это ставит вас в режим “системного мышления”, когда вы понимаете, что не все ваши проблемы должны быть решены ядром машинного обучения, а некоторые из них могут быть переданы в интерфейс, некоторые из них могут быть предварительно/постобработаны и т. д.

 

Какие технологии машинного обучения используются в Picterra?

В производстве мы в настоящее время используем Pytorch для обучения и запуска наших моделей. Мы также используем Tensorflow время от времени для некоторых конкретных моделей, разработанных для клиентов. Кроме того, это довольно стандартный научный стек Python (numpy, scipy) с некоторыми геопространственными библиотеками (gdal) добавленными.

 

Можете ли вы рассказать, как работает Picterra на уровне бэкенда, когда кто-то загружает изображения и хочет обучить нейронную сеть для правильной аннотации объектов?

Да, конечно. Итак, сначала, когда вы загружаете изображение, мы обрабатываем его и храним в формате “Cloud-Optimized-Geotiff” (COG) на нашем хранилище (Google Cloud Storage), что позволяет нам быстро получить доступ к блокам изображения без необходимости загружать все изображение позже. Это является ключевым моментом, поскольку геопространственные изображения могут быть огромными: у нас есть пользователи, которые регулярно работают с изображениями 50000×50000 пикселей.

Затем, чтобы обучить вашу модель, вы должны создать свой обучающий набор данных через наш веб-интерфейс. Вы будете делать это, определяя 3 типа областей:

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

Как только вы создали этот набор данных, вы можете просто нажать “Обучить”, и мы обучим детектор для вас. То, что происходит дальше, – это то, что мы ставим обучение в очередь, запускаем одну из наших GPU-работ и обучаем вашу модель, сохраняем ее веса в хранилище и, наконец, предсказываем в области тестирования, чтобы отобразить на интерфейсе. Оттуда вы можете итерировать над вашей моделью. Обычно вы заметите некоторые ошибки в областях тестирования и добавите области обучения, чтобы помочь модели улучшиться.

Как только вы будете довольны оценкой вашей модели, вы можете запустить ее в масштабе. С точки зрения пользователя, это действительно просто: вы просто нажимаете “Обнаружить” рядом с изображением, которое вы хотите запустить. Но это немного более сложно под капотом, если изображение большое. Чтобы ускорить процесс, обработать ошибки и избежать обнаружения, которое занимает несколько часов, мы разбиваем большие обнаружения на сеточные ячейки и запускаем независимую задачу обнаружения для каждой ячейки. Это позволяет нам запускать очень большие обнаружения. Например, у нас был клиент, который запустил обнаружение по всей Дании на 25-сантиметровых изображениях, что находится в диапазоне терабайт данных – для одного проекта. Мы описали подобный проект в этом посте на Medium.

 

Есть ли что-то еще, что вы хотели бы поделиться о Picterra?

Я думаю, что отлично в Picterra то, что это уникальный продукт, находящийся на пересечении между машинным обучением и геопространственными данными. То, что отличает нас от других компаний, которые обрабатывают геопространственные данные, заключается в том, что мы оснащаем наших пользователей самодостаточной платформой. Они могут легко находить места, анализировать закономерности и обнаруживать объекты на спутниковых и аэрофотоснимках. Это было бы невозможно без машинного обучения, но наши пользователи не нуждаются даже в базовых навыках программирования – платформа делает работу на основе нескольких аннотаций, созданных человеком. Для тех, кто хочет глубже изучить основные концепции машинного обучения в геопространственной области, мы запустили комплексный онлайн-курс.

Также стоит упомянуть, что возможные применения Picterra бесконечны – детекторы, построенные на платформе, были использованы в управлении городами, точном сельском хозяйстве, управлении лесами, гуманитарном управлении и управлении рисками стихийных бедствий, фермерстве и т. д., просто чтобы назвать наиболее распространенные применения. Мы基本но удивлены каждый день тем, что наши пользователи пытаются сделать с нашей платформой. Вы можете попробовать и рассказать нам, как это сработало в социальных сетях.

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

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

Как футуролог, он посвящен исследованию того, как эти инновации будут формировать наш мир. Кроме того, он является основателем Securities.io, платформы, ориентированной на инвестиции в передовые технологии, которые переопределяют будущее и меняют целые сектора.