Введение в машинное обучение и быстрый старт с Azure ML. Azure Machine Learning: разработка сервисов машинного обучения и их использование в мобильном приложении Построение прогностической модели

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

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

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

  • влюблены в анализ данных и знают основные принципы и методы машинного обучения (могут отличить переобучение от недообучения, логрегрессию от SVM, бустинг от бэггинга, precision от accuracy);
  • понимают, зачем нужна аналитику математическая статистика;
  • хотят, чтобы их работа влияла на миллионы поездок, совершаемых еженедельно нашими пользователями.

Обязательные требования:

  • знание математической статистики и теории вероятностей;
  • знание наиболее популярных методов supervised learning (линейные модели, ансамбли деревьев, kNN, наивный байесовский классификатор) и понимание, в каких случаях уместно их применять и как диагностировать их работу;
  • знание часто используемых в машинном обучении метрик качества, понимание различий между ними, способность интерпретировать различные значения метрик;
  • хорошая техническая подготовка: уверенное использование Python и знакомство с библиотеками для работы с данными – numpy, scipy, matplotlib, pandas, sklearn, опыт использования xgboost и vowpal wabbit;
  • знание английского языка на уровне чтения технической литературы.

Приветствуются:

  • высшее математическое или техническое образование;
  • опыт решения задач в области анализа данных и машинного обучения;
  • опыт применения прикладной математической статистики, например, оценки доверительных интервалов целевых показателей, статистической значимости результатов А/В-тестирования;
  • понимание, как можно оценить потенциальный экономический эффект от внедрения модели на основе машинного обучения и как связать с этим эффектом метрики качества;
  • понимание, как оценивать качество моделей в офлайне (на исторических данных) и в онлайне (в продакшене);
  • знакомство с Linux;
  • знакомство с Map Reduce;
  • знание классических алгоритмов и структур данных;
  • знание SQL;
  • способность читать код на C++;
  • опыт работы в аналогичной должности.

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

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

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

Распознают текст

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

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

Распознают звуки

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

Анализируют данные с сенсоров

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

У Квентина мигрень. Чтобы предугадать, когда будет приступ сильной головной боли, он скачал специальное приложение , которое будет полезно и при других хронических заболеваниях. Приложение анализирует состояние человека с помощью сенсоров на смартфоне, обрабатывает информацию и предугадывает приступы. Если возникает риск - программа отправляет сообщение пользователю и его близким.

Помогают с навигацией

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

Строят точные прогнозы

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

Кому будет полезно

  • Интернет-компаниям. Почтовые сервисы используют алгоритмы машинного обучения, чтобы фильтровать спам. Социальные сети учатся показывать только интересные новости и пытаются создать «идеальную» ленту новостей.
  • Службам безопасности. Пропускные системы основаны на алгоритмах распознавания фото или биометрических данных. Дорожные службы используют автоматическую обработку данных, чтобы отслеживать нарушителей.
  • Компании в сфере кибербезопасности разрабатывают системы для защиты от взлома мобильных устройств, используя машинное обучение. Яркий пример - Snapdragon от Qualcomm .
  • Ритейлерам. Мобильные приложения торговых сетей могут изучать данные о покупателях, чтобы создавать персональные списки покупок, повышая лояльность клиентов. Еще умное приложение может советовать товары, которые интересны конкретному человеку.
  • Финансовым организациям. Банковские приложения изучают поведение пользователей и предлагают продукты и услуги, основываясь на особенностях клиента.
  • Умным домам. Приложение на основе машинного обучения будет анализировать действия человека и предлагать свои решения. Например, если на улице холодно, закипит чайник, а если в домофон звонят друзья, приложение заказывает пиццу.
  • Медицинским учреждениям. Клиники смогут наблюдать за пациентами, которые находятся вне больницы. Отслеживая показатели организма и физическую активность, алгоритм предложит записаться к врачу или сесть на диету. Если показать алгоритму миллион томографических снимков с опухолями, система с большой точностью сможет предсказывать рак на ранней стадии.

И что дальше?

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

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

Михаил Ежов — сооснователь блокчейн-сервиса по распознаванию и анализу речи Anryze

«Мы посчитали, если сравнить банк сегодня и Сбербанк пять лет назад, то примерно 50% тех решений, которые принимались людьми, сегодня принимаются машинами. И через пять лет, мы считаем, мы сможем принимать примерно 80% всех решений автоматически с помощью искусственного интеллекта».

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

Основные понятия

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

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

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

Смена парадигмы предоставления банковских услуг в России и в мире

Стремясь выделиться среди конкурентов и завоевать внимание целевой аудитории, банковские компании переходят от пассивного взаимодействия с клиентом к проактивному. Банки создают новые сервисы, продвигают новые услуги и пакеты услуг, опираются на принцип клиентоориентированности — предлагают каждому именно то, в чем он заинтересован, подбирают индивидуальные предложения по кредитам. Развитие решений, основанных на использовании нейросетей, идет в нескольких направлениях. Появляются умные помощники, которые позволяют быстро получить нужную информацию или принять решение, — например, Telegram-бот банка «Райффайзен» поможет найти ближайшее отделение и узнать, работает ли оно по субботам. Совершенствуются решения, связанные со скорингом, — интеллектуальной оценкой кредитной истории клиента. Онлайн-сервис Scorista оценивает благонадежность заемщиков МФО. Инструмент для автоматизации деятельности МФО Credit Sputnik включает в себя интеграцию с продуктами поставщиков кредитных историй ОКБ, Equifax, «Русский Стандарт», сервисом ФССП.

Стартапы разрабатывают системы смарт-контрактов — построенные на технологии блокчейна агенты, поведение которых автоматизировано и определено математической моделью. Смарт-контракты, описывая договор любой сложности, автоматически исполняются на каждом этапе, выполняя определенный набор условий. При этом изменить или стереть историю сделки невозможно. Британский банк Barclays внедряет такую технологию, чтобы регистрировать переход права собственности и автоматически перечислять платежи в другие кредитно-финансовые учреждения.

Нейросети позволяют эффективно обрабатывать данные о клиентах и пользователях услуг. Многие современные стартапы — американская система Brighterion, системы iPrevent и iComply — основаны на применении подхода Know Your Customer (KYC). Суть подхода — в подробном анализе поведения клиента. Сбор данных о поведении помогает составить полное представление о клиенте и обеспечить более персонализированный сервис. А еще подобное позволяет выявлять отклонения от стандартного паттерна и распознавать несанкционированные действия с аккаунтом.

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

Искусственный интеллект для повышения индекса лояльности клиентов

Оценивать можно не только клиентов, но и самих сотрудников банка — чтобы иметь возможность постоянно совершенствовать качество предоставляемых услуг. И тут на помощь снова приходят нейросети: централизованные сервисы Amazon Connect, Google Cloud Speech API или платформа Anryze, использующая распределенные вычисления на базе блокчейна, позволяют расшифровывать телефонные переговоры в текст и обрабатывать полученную информацию. Записи телефонных разговоров позволяют контролировать деятельность сотрудников, дорабатывать скрипты продаж, выявлять ошибки и повышать лояльность клиентов за счет определения и решения основных проблем коммуникации. Текстовый формат обеспечивает больше возможностей для анализа информации: например, поиск по ключевым словам.

Скоринг: нейросети для оценки рисков в кредитовании

Скоринг (англ. score — «счет») — это система и метод оценки рисков по кредитам, а также управление рисками на основе прогноза вероятности просрочки конкретным заемщиком платежа по кредиту. Использование систем скоринга на базе технологий машинного обучения позволяет автоматизировать процесс выдачи кредитов. На сегодняшний день скоринговые решения используют «Банк Москвы», «Юниаструм Банк», банк МДМ, «Росгосстрах» и «Хоум Кредит». «Бинбанк» ведет проекты по включению в анализ данных телекоммуникационных компаний и информации из социальных сетей, чтобы принимать решения по кредиту на основании максимального количества информации о каждом клиенте.

Нейросети для автоматизации рутинных процессов и оптимизации сложных задач

Современные алгоритмы машинного обучения способны автоматизировать некоторые рутинные этапы процесса AML (Anti Money Laundering): создание и подготовку отчетов, рассылку уведомлений, отбор счетов и транзакций по определенным вызывающим подозрение параметрам. Подобную систему — SAS AML — в прошлом году внедрил «Тинькофф-банк» : за счет автоматизации удалось перераспределить человеческие ресурсы с необходимого контроля на непосредственное расследование криминальных схем и повысить индекс выявления подозрительных операций на 95%.

Глубокое обучение: противодействие мошенничеству на базе нейросетей

Ежегодно в мире отмывают от 800 млрд до 2 трлн долларов . Только в США на борьбу с отмыванием денег тратится около 7 млрд долларов в год. С отмыванием боролись вручную, проверяя каждую транзакцию, однако с появлением технологий машинного обучения ситуация изменилась: теперь решить проблему можно с помощью нейросетей.

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

Индийский банк HDFC с помощью SAS Institute внедрил систему, выявляющую мошеннические операции. Американский стартап Merlon Intelligence разработал платформу для выявления подозрительных транзакций с использованием алгоритмов NLP (Natural Language Processing) и в итоге получил финансирование на сумму более 7 млн долларов от венчурного фонда Data Collective.

Что дальше?

Симбиоз «больших данных» и машинного обучения предлагает принципиально новый подход к проблемам сегментации клиентов, выдачи кредитов и составления прогнозов, а также решение широкого спектра аналитических задач. Глубокая интеграция финансовых технологий и искусственного интеллекта в перспективе позволит создать так называемый «умный рынок»: оптимизировать процессы предоставления услуг, сократить издержки на ведение бизнеса, упростить взаимодействие за счет использования смарт-контрактов.

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

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

Если кратко, для того чтобы выполнять задачи аналитики с прогнозированием (predictive analytic) с помощью Azure Machine Learning вам достаточно выполнить следующие шаги:

  1. Загрузить или импортировать онлайн какие-нибудь текущие или накопленные данные (например, демография вашего клиента и его общие расходы)
  2. Построить и валидировать модель (например, предсказать затраты основанные на демографии)
  3. Создать веб-сервис, который использует ваши модели для выполнения быстрых предсказаний в реальном времени (решать, что какие предложения предоставить новому клиенту основываясь на его демографии)

Сервис Azure ML (известный так же как проект Passau ) представлен двумя концептуальными компонентами: Экспериментами и Веб-Сервисами и одним инструментом разработки под названием ML Studio . Вы можете пригласить других людей, имеющих учетную запись Microsoft (Live ID), для совместной работы в вашем рабочем окружении (workdspaces ) с помощью ML Studio и при этом им даже не понадобиться оплачивать подписку Azure для работы с вами.

Эксперименты можно представить как потоковые конфигурации (data-flow ) того, что вам хотелось бы сделать с вашей информацией и вашими моделями. Вы, в качестве исследователя данных Azure ML, фокусируетесь на экспериментах и можете проводить все своем время в ML Studio, занимаясь лишь перестраиванием экспериментов, изменением параметров, алгоритмами, критериями валидации, периодическим внесением изменений в данные и так далее. ML Studio – это веб-приложение и выглядит оно похоже на портал управления Azure (на момент написания статьи, середина 2014). Интерфейс выглядит чистым, приятным и работает хорошо не только в IE, но и в Firefox и Chrome, правда с некоторыми оговорками, но это ведь только первая превью-версия.

ML Studio – это место где вы начинаете свою работу, решая какие источники данных вы хотите использовать: загруженные вами наборы данных или живые данные доступные через механизм Reader из веб-страницы, OData, SQL Azure, Microsoft Azure, Hive или блобов Azure. Затем, вам может потребоваться произвести некоторые Трансформации Данных , например, группировку, переименование колонок, объединения, исключение дубликатов или весьма полезную операцию диcкретизации (binning/discretisation). Кроме того, вы можете воспользоваться и другими, более интересными трансформациями, например, фильтрами конечного и бесконечного входного ответа (Finite and Infinite Input Response), которые используются в обработке сигналов (signal processing). Они также могут применяться более широко для данных относящихся к экономике, которые можно рассмотреть в виде комплексных волн (например, особенно временные ряды ). Это является частью работы определения сезональности и часто связано с поиском частот похожих на музыкальные в этих сезональностях. Кроме того, если вы только начинаете свой проект и не совсем уверены в том, какие из колонок данных включить, то фильтры автоматического выбора функций (Feature Selection ) могут быть вам полезны, представляя вам неплохой выбор корреляции показателей. На практике, тем не менее, на поздних шагах вам захочется указать набор колонок вручную для достижения максимальной точности.

Теперь мы перейдем к тому, что так долго ждали: проделаем настоящее Машинное Обучение – что означает Инициализация (определение) модели, Обучение (Train ) модели некоторыми данными, Проверка (Evaluate ) производительности модели и ее валидности и, если все ок, Оценка (Score ) модели (проведение предсказаний на ее базе). Azure ML предлагает множество алгоритмов для Классификации задач, включая Multiclass и Two-Class Decision Forests, Decision Jungles (разработано Microsoft Research), Logistic Regression, Neural Networks, а так же Two-Class Averages Perceptrons, Bayes Point Machine, Boosted Decision Trees и Support Vector Machines (SVM). Кластеризация использует вариацию стандартного K-Means подхода. Регрессии включают Bayesian Linear, Boosted Decision Trees, Decision Forests, конечно Linear Regression, Neural Network Regression, Ordinal и Poisson Regression. И это только в версии 1.

Вы можете применять полезные Статистические функции в своих экспериментах, включая общие элементарные, например, вычисление отклонений. Попробуйте сами, начните просто с указания задаче Descriptive Statistics своих данных и Визуализируйте (Visualise ) результаты (воспользуйтесь точками соединений на задачах). Наслаждайтесь элементами boxplots в полученных визуализациях – то, чего давно не хватало во всех BI-инструментах Microsoft, даже Excel…

Один классный пример того, как Azure ML привносит внешнее исследование в ваши эксперименты можно найти в секции задачи Text Analytics. Задача Named Entity Recognition позволит обработать входной текст (называемый историями , например, почтовые адреса, типизированные описания ситуаций или твиты) и извлечь из них именованные термины (named terms), автоматически классифицировать их как Люди, Места или Организации . Присутствует также поддержка проекта Vowpal Wabbit , который поддерживается Yahoo и Microsoft Research. Вы можете использовать его для получения хэшей для сущностей по запросу. Я ожидаю в будущем появления большего числа инструментов и возможностей в этой области, так как очевидно, что Microsoft обладает огромной кучей знаний сохраняемых внутри Bing.

Глубокая поддержка языка R

И в добавление ко всему, вы можете использовать внутри Azure ML. По моим подсчетам, на сегодня Azure ML содержит около 410 предустановленных пакетов поверх R 3.1.0 (к удивлению, последняя версия). Среди пакетов есть ggplot2 (да!), plyr и dplyr, car, datasets, HMisc, MASS и все другие наиболее часто используемые пакеты для анализа данных (data mining). вроде rpart, nnet, survival, boot и так далее.

Если вы хотите найти список пакетов, которые были включены в Azure ML, то просто создайте небольшой эксперимент, например, такой как у меня, показанный тут, выполните немного кода R и сохраните результирующий CSV на своем компьютере. Колонка 1 покажет все включенные пакеты.

Что делать, если ваш любимый пакет R (например, ROCR или nleqslv ) отсутствует в списке? На самом деле, документация может вас запутать. В ней говорится, что в “настоящее время” не существует возможности установить свои собственные пакеты, однако, затем в документации описывается обходной путь, который помогает подключить свой пакет с помощью zip-файла. Вы можете найти описание этого подхода снизу по этой ссылке , где показано как применить install.packages() во время использования ссылки на файл переданный в задачу Execute R Script.

Ключ к пониманию важности того, что R является частью Azure ML, по моему мнению, не только в том, что платформа предоставляет доступ к языку статистики и аналитики де-факто (lingua-franca), но также в том, насколько она быстрая и безболезненная в процессе обработки ваших данных. Это особенно заметно на фоне того, что R сам по себе не такой уж удобный инструмент для манипулирования данными. Так что вместо того чтобы использовать уважаемый RODBC (включен) внутри своего R-скрипта, вы можете рассмотреть применение Azure ML для всех тяжелых задач обработки данных (прошу прощения, фанаты plyr ) и передать данные в R-скрипт в виде Azure ML Dataset Data Table , который становится доступен в виде нативного для R фрейма данных (data frame). Данные магически появятся внутри вашего скрипта в виде объекта под названием dataset . Вы можете добавлять несколько источников данных.

Пока я еще не закончил свои тесты производительности, но все, что так или иначе сможет улучшить производительность R на обработке больших объемов данных можно только горячо приветствовать. Кроме того, эти возможности выглядят как очевидное преимущество облачного провайдера, по сравнению с обычным коробочным решением. И я могу представить, что Microsoft использует ряд трюков для увеличения производительности, когда наборы данных из Azure связываются с сервисом Azure ML, даже если иметь в виду лимит на 10ГБ в настоящее время.

Вместе с R или без него, у вас может быть рабочий эксперимент, который вы можете использовать в качестве рабочего кирпичика внутри своего веб-ориентированного приложения. Представьте, что вы только что построили систему рекомендаций. В терминах Azure ML, у вас есть эксперимент, который использует задачу Оценки (Scoring, предсказания). Вы определяете, какой из входных портов должен использоваться в качестве Publish Input для вашего веб-сервиса и соответственно что должно считаться Publish Output . Они будут представлены в виде небольших зеленых и синих буллитов на контуре задачи. Вы перезапускаете ваш эксперимент еще раз и с помощью Studio ML публикуете его в качестве Azure ML Web Service . Теперь вы можете потреблять результаты через Azure ML REST API в виде простого веб-сервиса или конечной точки OData . Этот API предлагает Request Response Service (RRS) для синхронного доступа с низкими задержками для выполнения предсказаний, и асинхронного выполнения Batch Execution Service (BES) для переобучения модели, скажем, с вашими будущими свежими данными. Этот API предлагает автоматически сгенерированный пример кода, который вы можете просто скопировать и вставить для использования в Python, R или приложении C#, а так же в любом другом месте, так как все это просто основано на REST и JSON.

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

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

Стоимость

Сколько все это стоит? Имея в виду ценообразование превью-версии, выглядит это очень привлекательно. Есть два вида затрат, почасовая оплата вычислений (per-hour active compute ) и оплата вызовов API веб-сервиса (per-web-service API call ), оба вида затрат пропорциональные. Почасовая оплата ниже пока вы используете ML Studio ($0.38/час) и чуть выше в промышленной эксплуатации через ML API Service ($0.75/час). Затраты на вызовы API не считаются, пока вы работаете в ML Studio и стоят $0.18 за 1000 предсказаний во время применения в промышленной эксплуатации. Если что, это интересная и крайне простая модель ценообразования, в отличии от других, которые бывали у Microsoft. Мне крайне интересно узнать, что думают мои клиенты-разработчики в связи с тем, что существует классная возможность эффективно перепродавать Azure ML в виде части вашего собственного веб-приложения, затратив только минимум сил на поддержку, без необходимости строить всю систему самому.

С чего начать?

С чего начать? Посетите azure.microsoft.com , подпишитесь и создайте рабочую область в New/Data Services/Machine Learning. Затем перейдите в панель Dashboard и нажмите ссылку Sign-in to ML Studio. После обзора задач, которые определят Эксперимент, я посоветую вам выбрать один из многих примеров, создать его копию и запустить его на выполнение. Если он заработает, следуйте шагам описанным выше для публикации его в качестве своего первого веб-сервиса предсказания.

Конечно, убедитесь, что вы не пропустите наши грядущие видео и статьи по этой теме: станьте участником сайта для получения новостного листка с большим набором информации. Если вы хотите быстро начать, обратите внимание на наш тренинг Data mining Training , особенно на модули посвященные подготовке данных, так как эти концепции, особенно, cases, input и output columns совершенно точно пригодятся при работе с Azure ML.

Желаю вам наслаждаться изучением машинного обучения!

Когда-то давно я рассказывал, как проходил курс по машинному обучению на Coursera. Курс ведет Andrew Ng, который объясняет все настолько простыми словами, что довольно сложный материал поймет даже не самый усердный студент. С тех пор тема машинного обучения мне стала близка, и я периодически смотрю проекты как в области Big Data (читай предыдущую колонку), так и в области машинного обучения.

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

Google Prediction API

Одним из самых первых предлагать Machine Leaning as a Service стал Гугл! Уже довольно долгое время любой желающий может воспользоваться Google Prediction API (дословно «API для предсказаний»). До определенного объема данных использовать его можно абсолютно бесплатно, просто заведя аккаунт на Google Prediction API . О каких предсказаниях идет речь? Задача может быть разная: определить будущее значение некоего параметра на базе имеющихся данных или определить принадлежность объекта к какому-то из типов (например, язык текста: русский, французский, английский).

После регистрации у тебя появляется доступ к полноценному RESTful API, на базе которого можно построить, скажем, рекомендательную систему, детектирование спама и подозрительной активности, анализа поведения пользователей и многое другое. Уже успели появиться интересные проекты, построенные на базе интенсивного использования Google Prediction API, например Pondera Solutions, который использует машинное обучение от Гугла для построения системы антифрод.

В качестве эксперимента можно взять готовые модели данных: идентификаторов языка для построения системы, определяющих, на каком языке написан входящий текст, или идентификаторов настроения, чтобы автоматически определить тональность комментариев, которые оставляют пользователи. Думаю, в будущем мы расскажем о Google Prediction API подробнее.

BigML

Сегодня же хочу коснуться другого похожего проекта, который попался мне на глаза относительно недавно, - BigML . По сути, он предоставляет ровно тот же самый Rest API для собственного ML-движка, но с одним важным для новичка плюсом - наличием довольно наглядного интерфейса. А последний факт сильно упрощает задачу старта, когда нужно с нуля разобраться, что к чему.

Разработчики сделали все, чтобы с системой могла справиться домохозяйка. После регистрации к твоим услугам несколько примеров исходных данных, в том числе часто используемый в учебниках набор данных «Ирисы Фишера», который считается классикой для решения задачи по классификации. В набор описывается 150 экземпляров цветка ириса трех разных видов, с описанием характеристик. На базе этих данных можно построить систему, которая будет определять принадлежность цветка к одному из видов по введенным параметрам.

Эксперимент

Все действия выполняются в понятной админке (не стану описывать нюансы, все будет предельно доступно).

  1. Выбираем CSV-файл, в котором хранятся строчки, описывающие характеристики разных видов цветков, как источник данных (Source).
  2. Далее используем эти данные для построения набора данных (Dataset), указав, что предсказывать нужно будет тип цветка. BigML автоматически распарсит файл и, проведя анализ, построит различные графики, визуализируя данные.
  3. На базе этого Dataset’а одним кликом строится модель, на которой будут основываться предсказания. Причем BigML опять же визуализирует модель, объясняя логику ее работы. Можно даже экспортировать результат в виде скрипта для Python или любого другого языка.
  4. После того как модель готова, появляется возможность делать предсказания (Predictions). Причем делать это в разных режимах: сразу задать все параметры цветка или же отвечать на вопросы системы, которая, исходя из ситуации, будет спрашивать только то, что ей нужно.

То же самое можно было бы провернуть и без UI, а общаясь с BigML через консольное приложение BigMLer или через REST API, общаясь из консоли обычным curl’ом.

Две главные задачи

Внутри BigML и Google Prediction API ничего сверхъестественного нет. И неглупые разработчики смогут реализовать аналогичные движки самостоятельно, дабы не платить сторонним сервисам (и не выгружать им данные, которые часто нельзя выгружать).

Поделиться