Microsoft создает нейросеть для распознавания рыбы, чтобы следить за популяцией

3 декабря 2018
отслеживание популяции рыбы

Microsoft создает нейросеть для распознавания рыбы, чтобы следить за популяцией

Команда биологов NT Fisheries совместно с Microsoft разработали и применили технологию для автономного отслеживания видов и подсчета количества рыбы даже в мутной воде. Разработка поможет упростить исследования морских биологов, особенно работающих…

Команда биологов NT Fisheries совместно с Microsoft разработали и применили технологию для автономного отслеживания видов и подсчета количества рыбы даже в мутной воде. Разработка поможет упростить исследования морских биологов, особенно работающих в местах с повышенной опасностью — в водоёмах, где обитают хищные рыбы и аллигаторы.

Технология разработана в Microsoft и основана на Azure Cognitive Service. Усовершенствованная модель сегментации позволяет распознавать виды рыб в мутной воде с точностью от 95% до 99%. Исходный код модели доступен на GitHub.

распознавание рыбы microfost ai

Распознавание видов рыб

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

Команда исследователей NT Fisheries использует приманку, а затем снимают приплывшую рыбу на видео с помощью подводных камер. После того как материалы собраны, ученым приходится отсматривать терабайты данных (1 терабайт равен примерно 500 часам видео) и маркировать виды рыб вручную.

В Microsoft создали автоматическую систему помощи исследователям в отслеживании и классификации видов. Разработчики столкнулись с необычными проблемами. Например, как компьютер определит вид золотой трески, которая способна менять цвет, чтобы подстроиться под окружающую среду? Результаты очень сильно зависят от обучающей выборки, поэтому ученые разработали модель, которая обучается непрерывно. После трех месяцев обучения и тестирования, технология распознает 15 видов рыбы.

Хотя уже есть разговоры об использовании AI для создания глобальной базы данных о видах рыб, команда NT Fisheries сосредоточена на работе с существующими проблемами. «У нас много видов рыб, находящихся под угрозой исчезновения, и видов, о которых не хватает данных» — поясняют  исследователи. В Microsoft надеются, что их наработки помогут странам начать эффективно использовать водные ресурсы и управлять ими.

Azure ML туториал: создание простой модели машинного обучения

23 октября 2018
azure ml туториал что это

Azure ML туториал: создание простой модели машинного обучения

Перед вами пошаговое руководство по созданию модели машинного обучения с использованием Microsoft Azure ML, перевод статьи «Tutorial – Build a simple Machine Learning Model using AzureML«. Ссылка на оригинал — в…

Перед вами пошаговое руководство по созданию модели машинного обучения с использованием Microsoft Azure ML, перевод статьи «Tutorial – Build a simple Machine Learning Model using AzureML«. Ссылка на оригинал — в подвале статьи.

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

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

Что такое Azure ML?

azure ml туториал

Хорошая новость — освоить машинное обучение сегодня стало намного проще, чем, например, в 2014 году. Как новичок в этом деле, ты можешь начать познавать машинное обучение с помощью фреймворка Microsoft Azure ML.

Azure ML представляет собой реализацию алгоритма машинного обучения через графический интерфейс от Microsoft.

Какие ресурсы доступны на AzureML

Давайте познакомимся с арсеналом этого инструмента.

  1. Примеры датасетов: мне нравится тестировать инструменты, которые имеют множество встроенных наборов данных. Это упрощает процесс тестирования мощности инструмента. Azure ML поставляется с длинным списком встроенных наборов данных. Список датасетов.
  2. Средства машинного обучения: Azure ML имеет в наличии почти все популярные алгоритмы машинного обучения и формулы оценочных показателей.
  3. Преобразование данных: в Azure ML есть все параметры фильтрации, параметры преобразования, параметры суммирования и варианты расчета матрицы.
  4. Параметры преобразования формата данных: А  что если вы хотите добавить свой собственный набор данных? Azure ML имеет несколько опций для добавления наборов данных из вашей локальной системы. Вот эти варианты:

формат экспорта данных из azure ml

Создание модели

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

Здесь вы начинаете — нажмите на “Создать новый эксперимент”.

Вы получаете пустую таблицу экспериментов:

поле для экспериментов

Теперь вы можете выбрать pallete:

список датасетов azure ml

Шаг 1. Выберите набор данных. Это могут быть ваши примеры данных или же вы можете загрузить их. В этом уроке я буду использовать «Данные о раке молочной железы» из встроенных наборов данных. Просто перетащите эти данные в главное окно.

машинное обучение с azure ml

Шаг 2. Выберите инструмент деления. Вы можете использовать опцию поиска в палитре, чтобы найти «split data». Поместите «split data» под свой набор данных и присоедините.

датасеты

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

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

датасет

Вы можете заметить восклицательный знак в узле тренировки модели. Это означает, что вам нужно указать целевую переменную. Выберем целевую переменную, щелкнув по ней. Теперь вы увидите окно с правой стороны. Выберите «Launch column slector».

тренировка модели

Я выбрал «Класс» в качестве целевой переменной.

Шаг 4. Теперь вы оцениваете модель: см. Следующий рисунок

model training azure ml

Шаг 5. Наконец, производите вычисления

Запускаете модель!

Визуализация датасета и вывода

Чтобы визуализировать любой узел, вы просто переходите к узлу, нажимаете на него правой кнопкой мыши, затем выбираете “визуализировать”.

Вот как выглядят визуальные данные в нашем случае:

визуализация данных в azure ml

Как видно, переменная Класс имеет только два значения. Этот инструмент аккуратно рисует распределение для каждой переменной и позволяет проверить нормальность.

Так выглядит подсчитанная модель:

azure машинное обучение

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

Наконец, вот как выглядят графики:

azure ml туториал

azure ml туториал

Заключение

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

Считаете ли вы эту статью полезной ? Поделитесь с нами своим опытом работы с Azure ML.


Интересные статьи по теме:

Сравнение GPU для машинного обучения: Amazon, Google, IBM

25 июня 2018
GPU для машинного обучения

Сравнение GPU для машинного обучения: Amazon, Google, IBM

Результаты тестов популярных GPU для машинного обучения: Amazon AWS, Google Cloud Engine, Hetzner, Leader GPU, IBM, Paperspace. Тестируемые GPU платформы  В этот тест включены: Amazon Web Services AWS EC2, Google Cloud Engine…

Результаты тестов популярных GPU для машинного обучения: Amazon AWS, Google Cloud Engine, Hetzner, Leader GPU, IBM, Paperspace.

Тестируемые GPU платформы 

В этот тест включены: Amazon Web Services AWS EC2, Google Cloud Engine GCE, IBM Softlayer, Hetzner, Paperspace and LeaderGPU.

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

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

Отмечу что, единственный крупный провайдер, который не отвечал, на самом деле у нас не было ответа даже по официальным каналам поддержки, был Microsoft Azure. Сделайте свои собственные выводы.

Мы рассмотрим два типа графических процессоров на основе цен инстансов на каждой платформе — «low-end» и «high-end» (см. Таблицу 1). Цель состоит в том, чтобы показать, стоят ли дорогие инстансы своих денег.

Настройка Benchmark для машинного обучения

Постановка задачи

В RARE Technologies, мы часто занимаемся проблемами обработки естественного языка (NLP), поэтому я остановился на задаче классификации настроений для бенчмарка. Двунаправленная сеть долгой краткосрочной памяти (LSTM) обучается выполнять двоичную категоризацию твитов. Выбор алгоритма не очень важен; моим единственным истинным требованием для этого бенчмарка является то, что он должен загружать GPU. Чтобы обеспечить максимальное использование графического процессора, я воспользовался быстрой реализацией LSTM Keras (v2.1.3), поддерживаемой CuDNN — слоем CuDNNLSM.

Набор данных

В качестве набора данных мы взяли Twitter Sentiment Analysis Dataset, содержащий 1 578 627 классифицированных твитов, каждая строка помечена 1 для положительной тональности и 0 для отрицательной тональности. Модель обучается в течение 4 эпох на 90% перемешанных данных, а оставшиеся удерживаемые 10% используются для оценки модели.

Docker

В целях воспроизводимости я создал Nvidia Docker image, который содержит все зависимости и данные, необходимые для повторного запуска этого бенчмарка . Dockerfile и весь необходимый код можно найти в этом архиве Github.

Мы публикуем настройки и код в полном объеме, не только для того, чтобы каждый мог воспроизвести эти результаты, но так же чтобы вы могли подключить свою собственную HW платформу или другой алгоритм выбора, чтобы сделать свой собственный бенчмарк.

Результаты

GPU для машинного обучения
Таблица 1: сводка результатов тестов GPU для машинного обучения

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

** Это multiple GPU инстансы, в которых модели прошли обучение с использованием только одного из своих графических процессоров из-за вышеуказанных причин.

+ Hetzner предоставляет выделенные серверы ежемесячно. Цифры здесь отражают почасовые пропорциональные затраты.

Простота заказа, настройки и удобство пользования

Я прокомментировал опыт использования AWS, Softlayer и GCE в моем предыдущем сообщении. Заказать инстанс на LeaderGPU и Paperspace было проще простого без каких-либо сложных настроек. Время предоставления ресурсов для Paperspace и LeaderGPU было порядка пары минут, по сравнению с AWS или GCE, которые предоставили в течение нескольких секунд.

LeaderGPU, Amazon и Paperspace предлагают в свободном доступе Deep Learning Machine Images, которые идут в комплекте с предустановленными драйверами Nvidia вместе со средой разработки Python, и Nvidia-Docker необходим полностью для немедленного начала экспериментов. Для облегчения жизни, особенно для начинающих пользователей, которые просто хотят экспериментировать с моделями машинного обучения, я настроил все с нуля (за исключением LeaderGPU) по старым правилам, чтобы оценить легкость настройки экземпляра по индивидуальным потребностям. В этом процессе я столкнулся с несколькими проблемами, присущими всем платформам, такими как несовместимость драйвера NVIDIA с установленной версией gcc или использование GPU, достигающее 100% после установки драйвера без каких-либо доказательств текущего процесса. Неожиданно, запуск моего Docker на low-end инстансе Paperspace (P6000) привел к ошибке. Эта проблема была вызвана тем, что Tensorflow on Docker строился из источника с оптимизацией ЦП (MSSE, MAVX, MFMA), который Paperspace инстанс не поддерживал. Запуск Docker без этих оптимизаций исправил ошибку.

Что касается стабильности, я не сталкивался с какой-либо проблемой с любой из платформ.

Стоимость

Неудивительно, что выделенные серверы — лучший вариант, чтобы держать расходы под контролем. Это объясняется тем, что Hetzner ежемесячно взимает плату, что приводит к чрезвычайно низким почасовым ценам. На рисунке показаны пропорциональные затраты. Конечно, это справедливо только в том случае, если у вас необходимое количество задач, чтобы сервер был достаточно занят. Среди поставщиков виртуальных инстансов Paperspace является явным победителем. В два раза дешевле обучать модель на Paperspace, чем на AWS в сегменте низкопроизводительных графических процессоров. Кроме того, Paperspace демонстрирует аналогичную экономическую эффективность в классе высокопроизводительных графических процессоров.

Рисунок 1: Стоимость обучения двунаправленной LSTM по задаче классификации настроений в twitter (~ 1,5 миллиона твитов, 4 эпохи) на разных аппаратных платформах GPU
Рисунок 1: Стоимость обучения двунаправленной LSTM по задаче классификации настроений в twitter (~ 1,5 миллиона твитов, 4 эпохи) на разных аппаратных платформах GPU

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

IBM Softlayer и LeaderGPU кажутся дорогими, в основном из-за недостаточного использования инстансов с несколькими GPU. Benchmark был выполнен с использованием фреймворка Keras, реализация которого на нескольких GPU была неожиданно неэффективной, иногда хуже, чем работа одного графического процессора на том же компьютере. Но ни одна из этих платформ не предлагает single GPU инстанс. Бенчмарк проводимый на Softlayer использовал все доступные графические процессоры, использующие multi_gpu_model, тогда как на LeaderGPU использовался только один из доступных графических процессоров. Это привело к значительным дополнительным расходам для недостаточно используемых ресурсов. Кроме того, LeaderGPU предоставляет более мощные графические процессоры, GTX 1080 Ti & Tesla V100, по тем же ценам за минуту, что и GTX 1080 и Tesla P100 соответственно. Запуск на этих серверах определенно снизил бы общие затраты. Принимая во внимание все это, стоимость low-end LeaderGPU вполне разумна. Имейте это в виду, особенно если вы планируете использовать не Keras фреймворк, который лучше использует несколько графических процессоров.

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

Замечание по подготовке обучающих мульти-графических моделей с использованием Keras

Огромному количеству людей в академических кругах и промышленности очень удобно использовать высокоуровневые API, такие как Keras для моделей глубокого обучения. Благодаря одной из наиболее приемлемых и активно разработанных систем глубокого обучения пользователи ожидают ускорения при переключении на многопроцессорную модель без какой-либо дополнительной обработки. Но это, конечно, не так, как видно из графика ниже. Ускорение довольно непредсказуемо. На графике видно, что на сервере «dual GTX 1080» скорость обучения выше, в то время как обучение с multi-GPU заняло больше времени, по сравнению с обучением на single-GPU на сервере «Dual P100». Такое же мнение отражено в других статьях и вопросах на Gidhub , с которыми я столкнулся, исследуя стоимостью.

Рисунок 2: Время обучения, проведенное с помощью multi-GPU и обучения с single-GPU на идентичных машинах с использованием Keras
Рисунок 2: Время обучения, проведенное с помощью multi-GPU и обучения с single-GPU на идентичных машинах с использованием Keras

Точность модели

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

Стоимость

Цены на графические процессоры часто меняются, но на данный момент AWS предоставляет графические процессоры K80, начиная с $0,9 в час, которые выставляются с шагом в одну секунду, тогда как более мощные и эффективные графические процессоры Tesla V100 стоят от $3,06 в час. Дополнительные услуги, такие как передача данных, Elastic IP адреса и оптимизированные инстансы EBS, предоставляются за дополнительную плату. GCE — экономичная альтернатива, которая предоставляет Tesla K80 и P100 по запросу, начиная с $0,45 в час и $1,46 в час. Они тарифицируются с шагом в одну секунду и предлагают значительные льготы через скидки на их использование.

Paperspace конкурирует с GCE в низкой ценовой категории со ставками для выделенных графических процессоров, начиная с Quadro M4000 по цене $0,4 в час до Tesla V100 по цене $2,3 в час. Помимо обычных почасовых сборов, они также взимают ежемесячную абонентскую плату в размере $5, включающая в себя хранение и обслуживание. Paperspace предоставляет дополнительные услуги за дополнительную плату. Hetzner предлагает только один выделенный сервер с GTX 1080 ежемесячно с дополнительной одноразовой настройкой.

IBM Softlayer — одна из немногих платформ на рынке, которая предоставляет bare metal GPU сервера на ежемесячной и ежечасной основе. IBM Softlayer предлагает 3 GPU сервера с Tesla M60s & K80s, начиная с $2,8 в час. Эти серверы имеют статическую конфигурацию, что означает, что их возможности настройки ограничены по сравнению с другими облачными провайдерами. Стоимость Softlayer с почасовыми надбавками будет финансово невыгодно и может оказаться более дорогостоящим для краткосрочных задач.

LeaderGPU, относительно новый участник на рынке, предоставляет выделенные серверы с широким спектром графических процессоров (P100, V100, GTX 1080, GTX 1080Ti). Пользователи могут воспользоваться ежемесячной, ежечасной или ежеминутной оплатой, которая рассчитывается по секундам. Серверы имеют от 2 до 8 графических процессоров, со стоимостью от 0,02 € до 0,08 € в минуту.

Спотовые/вытесняемые инстансы

Некоторые из платформ предоставляют значительные скидки (50% -90%) на их запасную вычислительную мощность (AWS spot instances and GCE’s preemptive instances), хотя скидки могут неожиданно закончиться или вновь появиться. Это приводит к крайне непредсказуемому времени обучения, так как нет никакой гарантии, когда инстанс снова появится. Это нормально для приложений, которые могут обрабатывать такие завершения, но многие задачи, например, time-bound projects будут плохо выполняться в таком случае, особенно если вы считаете потраченное рабочее время. Выполнение задач на Spot/Preemptive Instances требует дополнительного кода для корректного завершения и повторного запуска инстансов. (проверка / сохранение данных на постоянный диск и т.д.).

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

Поэтому, вы можете сэкономить деньги с помощью spot/preemptive инстансов, если вы будете осторожны. Что касается меня, то я не стал включать их в этот бенчмарк из-за этих осложнений.

Результаты тестов

  • Paperspace на один шаг вперед в отношении производительности и стоимости. Это особенно верно для разовых или нечастых пользователей, которые просто хотят экспериментировать с методами глубокого обучения (аналогичный вывод в другом бенчмарке).
  • Выделенные серверы (например, предоставляемые LeaderGPU) и bare metal servers, например, Hetzner подходят для пользователей, которые рассматривают долговременную работу этих ресурсов. Обратите внимание, что ваша задача прилично загружает CPU / GPU, чтобы действительно выиграть в цен
  • Новые игроки, такие как Paperspace и LeaderGPU, не должны быть списаны со счетов, поскольку они могут помочь сократить основную часть затрат. Предприятия могут быть против смены провайдеров из-за связанных инерционных и коммутационных расходов, но эти небольшие платформы, безусловно, стоит рассмотреть.
  • AWS и GCE могут быть потрясающими вариантами для тех, кто ищет объединение со своими другими сервисами (Amazon Rekognition, Google Cloud AI).
  • Если Вы не планируете выполнять задачу, выполнение которой займет несколько дней, лучше всего выбрать lower-end single-GPU инстанс с одним графическим процессором (см. также здесь).
  • Higher-End GPUs значительно быстрее, но на самом деле имеют плохую окупаемость. Вы должны выбрать их только тогда, когда короткое время обучения является приоритетней, чем затраты на оборудование.

Перевод статьи Шива Манне Machine learning mega-benchmark: GPU providers.