- PVSM.RU - https://www.pvsm.ru -

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга

Каждую неделю в Microsoft появляются кейсы, посвящённые разработке решений для компаний, университетов и даже государств. Мы решили поделиться с вами самыми интересными из них и начать серию статей «Microsoft Technical Case Studies». В первом материале вы узнаете про IoT-решение для обработки изображений «теплового тоннеля мозга» (Brain Temperature Tunnel) согласно методике, основанной на исследованиях доктора Марка Абреу (Marc Abreu) из Йельского университета.

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 1

Цикл статей «Microsoft Technical Case Studies»

1. Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга [1].
2. Поиск пропавших детей с помощью функций Azure.
3. Loading…

Введение

Brain Tunnelgenix Technologies Corp (BTT Corp) [2] — компания, которая занимается производством медицинской техники. Её офисы расположены в США и Бразилии. BTT Corp является владельцем патента на «тепловой тоннель мозга» и разрабатывает несколько семейств продуктов, связанных с этим открытием. Главная цель компании — научиться использовать аналитические данные о термодинамике мозга [1] для лечения пациентов.

Температура мозга [1] отслеживается непрерывно и обрабатывается в качестве многоканального сигнала. Анализ этого сигнала и поиск в нем закономерностей позволяют делать заключения о состоянии конкретного пациента.

Устройство BTT неинвазивно — в этом одно из главных его преимуществ. Внешний вид устройства показан на фотографии ниже.

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 2

BTT Corp предстояло решить две серьёзные задачи. Во-первых, при участии исследователей нужно было собрать термограммы человеческого мозга [1] и создать компьютерные алгоритмы для их высокоточного распознавания. Во-вторых, алгоритмы нужно было интегрировать в производственное приложение, способное распознавать изображения в реальном времени и в пакетном режиме при поступлении данных с устройств BTT.

В итоге было представлено IoT-решение, в котором используется несколько процессов и последовательностей обработки данных:

  1. IoT Hub → Stream Analytics → база данных Azure SQL
  2. IoT Hub → Stream Analytics → база данных Azure SQL → Power BI
  3. IoT Hub → Stream Analytics → база данных Azure SQL → Power BI Embedded
  4. IoT Hub → Stream Analytics → база данных Azure SQL → локальные высокопроизводительные вычислительные системы → машинное обучение Azure

Power BI

Power BI играет важную роль в визуализации тепловых сигналов мозга [1], которые получает устройство BTT. Эти данные отражаются во внутренних отчетах Power BI и демонстрируются внешним пользователям с помощью Power BI Embedded. Защита данных на уровне строк обеспечивает безопасный доступ к ним.

Использование сложной R-аналитики в Power BI [3] и пакетов визуализации [4] — ценные возможности решения BTT. Благодаря языку R можно использовать развитые аналитические инструменты, в том числе преобразование Фурье, частотный анализ данных и обнаружение минимумов и максимумов.

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 3

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 4

Традиционно сложной является задача надёжной передачи подробной аналитической информации и зрительных образов клиентским приложениям. Например, настройка R-среды и обеспечение защищённого доступа к ней через Интернет требуют выполнения большого объема работ. С помощью Power BI Embedded можно создавать защищённые интерактивные информационные панели и отчёты, предназначенные для врачей и пациентов. В них используются зрительные образы R, которые передаются через веб-приложение ASP.NET, работающее на платформе Microsoft Azure. Следующие шаги будут выглядеть так:

  1. Создать рабочую область Power BI в Azure [5].
  2. Создать отчет в Power BI Desktop, используя базу данных Azure SQL в качестве источника данных [6].
  3. Применить защиту на уровне строк в отчете, где необходимо [7].
  4. Отправить результирующий файл .pbix в рабочую область Power BI. [8]
  5. Добавить учетные данные источника в набор данных [9].
  6. Получить надлежащий токен OAuth [10].
  7. Внедрить отчет в веб-страницу с помощью токена OAuth [11].

Агрегирование данных

Для агрегирования данных используется последовательность операторов GROUP BY. Мы принимаем данные, собранные во время сна пользователя, группируем их по пользователям и идентификаторам сеансов, сортируем их в хронологическом порядке, а затем применяем к ним частотные методы обработки сигналов для получения детальной аналитической информации. На текущий момент компания BTT оценивает наиболее эффективные способы подробного анализа и классификации используемых данных.

Стратегия архивирования

На текущий момент архивирование данных не выполняется. Эта функция пока не является необходимой, поскольку в настоящее время компания BTT использует лишь небольшую часть максимального объёма базы данных Azure SQL [12]. Тем не менее, когда используемый объем приблизится к максимальному, BTT потребуется разработать стратегию архивирования. Вероятно, архивирование будет выполняться путем переноса данных на долгосрочное хранение в хранилище больших двоичных объектов Azure [13] посредством пула SQL Server [14] в сочетании с фабрикой данных Azure [15].

Извлечение, преобразование и загрузка

На текущий момент процессы извлечения, преобразования и загрузки не используются, поскольку у нас есть прямой доступ к базе данных Azure SQL с помощью DirectQuery [16]. Система BTT ещё находится в стадии разработки, поэтому пока совсем немного пользователей обращается к ней для доступа к отчетам Power BI Embedded. Тем не менее с увеличением количества пользователей BTT и приближением нагрузки на базу данных SQL к пороговым значениям начнётся переход на пул SQL Server. На текущий момент BTT создает запросы только на чтение данных к реплицированным нетранзакционным базам данных и архивным хранилищам. В стандартных условиях разработчики не используют транзакционное хранилище, однако в данном кейсе было выбрано именно такое архитектурное решение в существующем начальном сценарии BTT.

Пример

Ниже приведён снимок экрана с информационной панелью, которая отображает исторические данные, обработанные несложными аналитическими методами Power BI.

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 5

Информационная панель Power BI, отображаемая посредством Power BI Embedded в приложении ASP.NET.

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 6

Технический директор BTT, Роберт Ортега, демонстрирует настройку защиты на уровне строк с помощью Power BI Embedded в веб-приложении ASP.NET.

Интернет вещей и машинное обучение

Важнейшей разработкой компании BTT является технология распознавания образов, на которой основана большая часть её продуктов. Поскольку в компании уже разрабатывают на C++, Python и R на своих рабочих станциях, мы решили дать им возможность приступить к развёртыванию в производственной среде, одновременно продолжая свою научно-исследовательскую работу. Вместе с разработчиками была создана модель на основе пакетов sklearn языка Python и введена в действие с помощью машинного обучения Azure (несколько месяцев назад мы уже рассказывали на Хабре [17] как выбирать алгоритмы для машинного обучения Microsoft Azure). Ниже приведён снимок экрана, сделанный в процессе разработки модели двоичных классификаций с помощью sklearn на рабочей станции Linux.

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 7

Как видно, мы используем Linux, Python и Anaconda для анализа данных, извлекаемых из источника Azure SQL. Этот выбор обусловлен исключительно нашими личными предпочтениями, однако процесс настолько гибок, что вы можете использовать почти любые технологии. Процесс ввода модели в эксплуатацию с помощью машинного обучения Azure показан ниже.

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 8

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

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

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 9

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

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 10

Архитектура решения

Компания BTT разработала IoT-решение, которое использует развитые возможности Microsoft IoT Suite и реализовано в соответствии с руководством по эталонным архитектурам Microsoft Azure IoT [18]. Общие сведения об этом решении опубликованы здесь [19]. Главное отличие этого решения от многих других заключается в возможности анализировать данные как локально, так и в облаке, а также отсутствии масштабной инфраструктуры данных. SQL успешно справляется с текущими нагрузками. BTT оценивает перспективу использования хранилища данных SQL в качестве платформы для работы с большими данными после того, как рабочие нагрузки превысят возможности текущего источника данных Azure SQL.

Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга - 11

Используемое устройство и исходники кода

В этой работе мы используем собственное устройство на основе встроенного микроконтроллера Texas Instruments с интерфейсом Bluetooth. Это устройство синхронизируется с клиентским устройством под управлением Windows, которое разработано с помощью универсальной платформы Windows и языка C#. В этом сценарии используется пакет SDK IoT Hub для языка C#. Приложение для маркировки шаблонов временных рядов находится на GitHub [20]. Пошаговые инструкции по развертыванию пользовательских моделей klearn машинного обучения Azure находятся здесь [21]. Инструкции по созданию глубокой нейронной сети с помощью Theano и Lasagne, а также по её вводу в эксплуатацию посредством машинного обучения Azure находятся здесь [22].

Заключение

С помощью технологий Microsoft (Power BI) компания BTT планирует создать решение анализа сигналов и создания отчетов BTT (в том числе для врачей и специалистов, занимающихся проблемами сна). BTT также собирается реализовать кроссплатформенные возможности отправки оповещений с помощью Azure Notification Hub и перенести BTT Monitor на Xamarin.Forms для обеспечения поддержки различных платформ. Компания также рассматривает возможность использования Microsoft HealthVault и хранилища данных SQL Azure.

Бизнес.IoT: открывая интернет вещей

Приглашаем вас пообщаться на тему IoT для бизнеса 30 марта 2017 года. У нас будет проходить онлайн-конференция «Бизнес.IoT: открывая интернет вещей» [23]. В программе будет два параллельных трека (бизнес и технологический) с экспертами в области интернета вещей, машинного обучения и предиктивной аналитики.

Среди спикеров будут присутствовать: Михаил Черномордиков (Microsoft), Сергей Осипов (MAYKOR-GMCS), Дмитрий Бергельсон (GuaranaCam), Анна Кулашова (Microsoft), Дмитрий Марченко (Microsoft), Андрей Мелузов (ГК «КОРУС Консалтинг») и Василий Есипов (КПМГ).

Чтобы принять участие, необходимо зарегистрироваться здесь [23].

Напоминаем, что бесплатно попробовать Microsoft Azure можно здесь [24].

Если вы увидели неточность перевода, сообщите, пожалуйста, об этом в личные сообщения.

Автор: Microsoft

Источник [25]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/microsoft/248030

Ссылки в тексте:

[1] мозга: http://www.braintools.ru

[2] Brain Tunnelgenix Technologies Corp (BTT Corp): https://aka.ms/habr_323200_1

[3] R-аналитики в Power BI: https://aka.ms/habr_323200_2

[4] пакетов визуализации: https://aka.ms/habr_323200_3

[5] Создать рабочую область Power BI в Azure: https://aka.ms/habr_323200_4

[6] Создать отчет в Power BI Desktop, используя базу данных Azure SQL в качестве источника данных: https://aka.ms/habr_323200_10

[7] Применить защиту на уровне строк в отчете, где необходимо: https://aka.ms/habr_323200_5

[8] Отправить результирующий файл .pbix в рабочую область Power BI.: https://aka.ms/habr_323200_6

[9] Добавить учетные данные источника в набор данных: https://aka.ms/habr_323200_7

[10] Получить надлежащий токен OAuth: https://aka.ms/habr_323200_8

[11] Внедрить отчет в веб-страницу с помощью токена OAuth: https://aka.ms/habr_323200_9

[12] базы данных Azure SQL: https://aka.ms/habr_323200_11

[13] хранилище больших двоичных объектов Azure: https://aka.ms/habr_323200_13

[14] пула SQL Server: https://aka.ms/habr_323200_12

[15] фабрикой данных Azure: https://aka.ms/habr_323200_14

[16] прямой доступ к базе данных Azure SQL с помощью DirectQuery: https://aka.ms/habr_323200_15

[17] рассказывали на Хабре: https://aka.ms/habr_323200_16

[18] руководством по эталонным архитектурам Microsoft Azure IoT: https://aka.ms/habr_323200_17

[19] здесь: https://aka.ms/habr_323200_18

[20] на GitHub: https://aka.ms/habr_323200_19

[21] здесь: https://aka.ms/habr_323200_20

[22] здесь: https://aka.ms/habr_323200_21

[23] онлайн-конференция «Бизнес.IoT: открывая интернет вещей»: https://aka.ms/habr_323200_22

[24] здесь: https://azure.microsoft.com/ru-ru/free/?wt.mc_id=AID570629_QSG_SCL_139068 https://azure.microsoft.com/ru-ru/free/?wt.mc_id=AID570629_QSG_BLOG_139069

[25] Источник: https://habrahabr.ru/post/323200/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best