Каждую неделю в Microsoft появляются кейсы, посвящённые разработке решений для компаний, университетов и даже государств. Мы решили поделиться с вами самыми интересными из них и начать серию статей «Microsoft Technical Case Studies». В первом материале вы узнаете про IoT-решение для обработки изображений «теплового тоннеля мозга» (Brain Temperature Tunnel) согласно методике, основанной на исследованиях доктора Марка Абреу (Marc Abreu) из Йельского университета.
Цикл статей «Microsoft Technical Case Studies»
1. Power BI Embedded, IoT и машинное обучение для обработки термограмм
2. Поиск пропавших детей с помощью функций Azure.
3. Loading…
Введение
Brain Tunnelgenix Technologies Corp (BTT Corp) — компания, которая занимается производством медицинской техники. Её офисы расположены в США и Бразилии. BTT Corp является владельцем патента на «тепловой тоннель мозга» и разрабатывает несколько семейств продуктов, связанных с этим открытием. Главная цель компании — научиться использовать аналитические данные о термодинамике
Температура
Устройство BTT неинвазивно — в этом одно из главных его преимуществ. Внешний вид устройства показан на фотографии ниже.
BTT Corp предстояло решить две серьёзные задачи. Во-первых, при участии исследователей нужно было собрать термограммы человеческого
В итоге было представлено IoT-решение, в котором используется несколько процессов и последовательностей обработки данных:
- IoT Hub → Stream Analytics → база данных Azure SQL
- IoT Hub → Stream Analytics → база данных Azure SQL → Power BI
- IoT Hub → Stream Analytics → база данных Azure SQL → Power BI Embedded
- IoT Hub → Stream Analytics → база данных Azure SQL → локальные высокопроизводительные вычислительные системы → машинное обучение Azure
Power BI
Power BI играет важную роль в визуализации тепловых сигналов
Использование сложной R-аналитики в Power BI и пакетов визуализации — ценные возможности решения BTT. Благодаря языку R можно использовать развитые аналитические инструменты, в том числе преобразование Фурье, частотный анализ данных и обнаружение минимумов и максимумов.
Традиционно сложной является задача надёжной передачи подробной аналитической информации и зрительных образов клиентским приложениям. Например, настройка R-среды и обеспечение защищённого доступа к ней через Интернет требуют выполнения большого объема работ. С помощью Power BI Embedded можно создавать защищённые интерактивные информационные панели и отчёты, предназначенные для врачей и пациентов. В них используются зрительные образы R, которые передаются через веб-приложение ASP.NET, работающее на платформе Microsoft Azure. Следующие шаги будут выглядеть так:
- Создать рабочую область Power BI в Azure.
- Создать отчет в Power BI Desktop, используя базу данных Azure SQL в качестве источника данных.
- Применить защиту на уровне строк в отчете, где необходимо.
- Отправить результирующий файл .pbix в рабочую область Power BI.
- Добавить учетные данные источника в набор данных.
- Получить надлежащий токен OAuth.
- Внедрить отчет в веб-страницу с помощью токена OAuth.
Агрегирование данных
Для агрегирования данных используется последовательность операторов GROUP BY. Мы принимаем данные, собранные во время сна пользователя, группируем их по пользователям и идентификаторам сеансов, сортируем их в хронологическом порядке, а затем применяем к ним частотные методы обработки сигналов для получения детальной аналитической информации. На текущий момент компания BTT оценивает наиболее эффективные способы подробного анализа и классификации используемых данных.
Стратегия архивирования
На текущий момент архивирование данных не выполняется. Эта функция пока не является необходимой, поскольку в настоящее время компания BTT использует лишь небольшую часть максимального объёма базы данных Azure SQL. Тем не менее, когда используемый объем приблизится к максимальному, BTT потребуется разработать стратегию архивирования. Вероятно, архивирование будет выполняться путем переноса данных на долгосрочное хранение в хранилище больших двоичных объектов Azure посредством пула SQL Server в сочетании с фабрикой данных Azure.
Извлечение, преобразование и загрузка
На текущий момент процессы извлечения, преобразования и загрузки не используются, поскольку у нас есть прямой доступ к базе данных Azure SQL с помощью DirectQuery. Система BTT ещё находится в стадии разработки, поэтому пока совсем немного пользователей обращается к ней для доступа к отчетам Power BI Embedded. Тем не менее с увеличением количества пользователей BTT и приближением нагрузки на базу данных SQL к пороговым значениям начнётся переход на пул SQL Server. На текущий момент BTT создает запросы только на чтение данных к реплицированным нетранзакционным базам данных и архивным хранилищам. В стандартных условиях разработчики не используют транзакционное хранилище, однако в данном кейсе было выбрано именно такое архитектурное решение в существующем начальном сценарии BTT.
Пример
Ниже приведён снимок экрана с информационной панелью, которая отображает исторические данные, обработанные несложными аналитическими методами Power BI.
Информационная панель Power BI, отображаемая посредством Power BI Embedded в приложении ASP.NET.
Технический директор BTT, Роберт Ортега, демонстрирует настройку защиты на уровне строк с помощью Power BI Embedded в веб-приложении ASP.NET.
Интернет вещей и машинное обучение
Важнейшей разработкой компании BTT является технология распознавания образов, на которой основана большая часть её продуктов. Поскольку в компании уже разрабатывают на C++, Python и R на своих рабочих станциях, мы решили дать им возможность приступить к развёртыванию в производственной среде, одновременно продолжая свою научно-исследовательскую работу. Вместе с разработчиками была создана модель на основе пакетов sklearn языка Python и введена в действие с помощью машинного обучения Azure (несколько месяцев назад мы уже рассказывали на Хабре как выбирать алгоритмы для машинного обучения Microsoft Azure). Ниже приведён снимок экрана, сделанный в процессе разработки модели двоичных классификаций с помощью sklearn на рабочей станции Linux.
Как видно, мы используем Linux, Python и Anaconda для анализа данных, извлекаемых из источника Azure SQL. Этот выбор обусловлен исключительно нашими личными предпочтениями, однако процесс настолько гибок, что вы можете использовать почти любые технологии. Процесс ввода модели в эксплуатацию с помощью машинного обучения Azure показан ниже.
Один из наиболее интересных аспектов этого эксперимента заключается в том, что мы смогли отделить обучение модели и поиск зависимостей от выделения отличительных признаков. Это позволяет ранжировать стеки встроенных моделей машинного обучения Azure и пользовательских моделей с помощью отличительных признаков, которые были выделены на рабочих станциях в ходе эксперимента. Этот процесс открывает две возможности. Вы можете выбирать наиболее вероятную наилучшую модель, выполняя итерации только моделей машинного обучения Azure, при этом по необходимости разрабатывая собственные модели и применяя к ним многие другие распространенные алгоритмы.
Затем на основе эксперимента мы получаем производственную модель, выбирая конечные точки и выполняя базовые действия очистки. Производственный эксперимент проиллюстрирован на рисунке ниже.
По завершении процесса мы можем интегрировать и тестировать конечную точку различными способами. Один из простейших способов тестирования — использование предоставленной конечной точки Excel. Ниже показано тестирование сегмента данных на конечной точке, с помощью которого мы проверяем, что получили отрицательную классификацию.
Архитектура решения
Компания BTT разработала IoT-решение, которое использует развитые возможности Microsoft IoT Suite и реализовано в соответствии с руководством по эталонным архитектурам Microsoft Azure IoT. Общие сведения об этом решении опубликованы здесь. Главное отличие этого решения от многих других заключается в возможности анализировать данные как локально, так и в облаке, а также отсутствии масштабной инфраструктуры данных. SQL успешно справляется с текущими нагрузками. BTT оценивает перспективу использования хранилища данных SQL в качестве платформы для работы с большими данными после того, как рабочие нагрузки превысят возможности текущего источника данных Azure SQL.
Используемое устройство и исходники кода
В этой работе мы используем собственное устройство на основе встроенного микроконтроллера Texas Instruments с интерфейсом Bluetooth. Это устройство синхронизируется с клиентским устройством под управлением Windows, которое разработано с помощью универсальной платформы Windows и языка C#. В этом сценарии используется пакет SDK IoT Hub для языка C#. Приложение для маркировки шаблонов временных рядов находится на GitHub. Пошаговые инструкции по развертыванию пользовательских моделей klearn машинного обучения Azure находятся здесь. Инструкции по созданию глубокой нейронной сети с помощью Theano и Lasagne, а также по её вводу в эксплуатацию посредством машинного обучения Azure находятся здесь.
Заключение
С помощью технологий Microsoft (Power BI) компания BTT планирует создать решение анализа сигналов и создания отчетов BTT (в том числе для врачей и специалистов, занимающихся проблемами сна). BTT также собирается реализовать кроссплатформенные возможности отправки оповещений с помощью Azure Notification Hub и перенести BTT Monitor на Xamarin.Forms для обеспечения поддержки различных платформ. Компания также рассматривает возможность использования Microsoft HealthVault и хранилища данных SQL Azure.
Бизнес.IoT: открывая интернет вещей
Приглашаем вас пообщаться на тему IoT для бизнеса 30 марта 2017 года. У нас будет проходить онлайн-конференция «Бизнес.IoT: открывая интернет вещей». В программе будет два параллельных трека (бизнес и технологический) с экспертами в области интернета вещей, машинного обучения и предиктивной аналитики.
Среди спикеров будут присутствовать: Михаил Черномордиков (Microsoft), Сергей Осипов (MAYKOR-GMCS), Дмитрий Бергельсон (GuaranaCam), Анна Кулашова (Microsoft), Дмитрий Марченко (Microsoft), Андрей Мелузов (ГК «КОРУС Консалтинг») и Василий Есипов (КПМГ).
Чтобы принять участие, необходимо зарегистрироваться здесь.
Напоминаем, что бесплатно попробовать Microsoft Azure можно здесь.
Если вы увидели неточность перевода, сообщите, пожалуйста, об этом в личные сообщения.
Автор: Microsoft