Сообщения

"Вы выполняли проекты в нашей отрасли?"

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

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

***

На этой неделе завершился конкурс на Каггл, в котором наш ведущий дата-сайнтист, Андрей Кирясов, со своим индивидуальным решением занял второе место (из 1500 команд) и стал Каггл грандмастером. В этом конкурсе нужно было распоз…

Datalytica worldwide. Новые вызовы и новые возможности.

Выход на международный рынок – волнительный момент. В прошлом году компания Даталитика успешно завершила свой первый проект для иностранного заказчика и стартовала несколько новых. Так, я поучаствовала в трех data science проектах для фирм из разных уголков планеты – из Сингапура, Израиля, Штатов. Работая с иностранцами, я не могла не обратить внимание на различия между ними и российскими заказчиками. Языковые особенности, разница во времени, менталитет и пр. накладывают ограничения на проект и на команду, заставляют пересмотреть привычную организацию проекта, выйти за устоявшиеся рамки. 
Иностранный язык
Знание иностранного языка накладывает серьезные ограничения при формировании проектной команды. С учетом загрузки на других проектах, выделение незанятых англоговорящих специалистов превращается в квест.

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

Тест на настоящего Data Scientist: знание всего

Изображение
В области Data Science часто можно попасть на собеседование, где вас будут тестировать абстрактными вопросами, ответы на которые весьма отдаленно оценивают вас как хорошего кандидата. Страдают этим, как правило, вчерашние выпускники или интервьюеры, которые в ходе собеседования решают какие-то другие задачи, например, показать, какие они умные или самоутвердится перед руководством.

Мне приходится проводить много собеседований в сфере Data Science. Так как в Даталитике мы ищем по-настоящему крутых сотрудников, чтобы отделять талантливых кандидатов от средних, приходится искать варианты нестандартных задач. С одной стороны, емкие, а с другой - чтобы у соискателя оставалось легкое и приятное впечатление от собеседования.

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

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

Итак, задача: Выберит…

Сборка библиотеки нейронных сетей tensorflow в среде Windows

Разработка и тестирование сверточных нейронных сетей (CNN) в среде Python, в настоящее время не вызывает каких либо трудностей. Доступно много готовых фреймвоков для реализации CNN какой угодно структуры. Сложности обычно возникают, когда нужно реализовать CNN за пределами Python, например в С++, в какой либо программе для выполнения в среде Windows. Обычно нужно реализовать функционал предсказания по уже обученной модели.

Итак, мы создали модель tensorflow или keras, обучили и сохранили ее (обычно в формате hdf5). Дальше мы хотим написать на языке C++ функцию predict в среде Windows 7 x64 или выше, загрузить модель, какие то данные и получить отклик сети. Подобных примеров на C++ достаточно много, но для сборки любого из них потребуются библиотеки tensorflow. В данной статье описны шаги для сборки библиотек tensorflow версии 1.10.0 используая CMake.
Системные требования

Windows 7 x64 или выше, 16Gb RAM, 128Gb SSD ( HDD конечно тоже подойдет, но собираться будет медленней )

Шаги установк…

Прикладная кластеризация. Выделение объективных ниш мобильных приложений Apple App Store.

Изображение
Введение Когда очень много приложений – это проблема.

Растущий из года в год рынок мобильных приложений к 2020 году достигнет объема $189 млрд. Только в Apple App Store количество мобильных приложений превысило 3 миллиона, из которых 783 000 приходится на игры, а остальное - на неигровые приложения. И если все игры распределены по 19 игровым категориям (в среднем 41 000 игр на каждую категорию), то 2,3 млн неигровых приложений заключены в рамки всего 24 категорий (почти 96 000 приложений в среднем на категорию).

Проблема пользователя. Приложений очень много, а категорий мало.

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

Выбор метрики в машинном обучении

Изображение
Как выбрать метрики для валидации результата Machine Learning 
Главные шаги по выбору метрики 
Следует заметить, что метрика, которую мы оптимизируем и метрика, по которой определяем качество модели, - как правило, разные. Ниже рассмотрим метрики, которые мы в том или ином виде можем оптимизировать непосредственно в модели. За метрики, которыми мы оцениваем результат работы модели, можно принять исходные бизнес-метрики.

Понимание бизнес задачи Из исходных предпосылок нужно выделить, какого типа задачу мы решаем. Основные типы задач:

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

Мы решаем задачу нахождения математическая метр…

Философия построения machine learning pipeline

Изображение
Философия построения machine learning pipeline
Введение Этим постом мы открываем цикл статей о методологиях построения pipeline в машинном обучении. Здесь вы не найдете погружение в конкретные детали. Наша цель - верхнеуровнево понять, что есть хорошо, а что - плохо. Наша повесть - не о machine learning, а об инфраструктуре, которой вы должны окружить вашу модель для достижения конкретной цели, для удовлетворения бизнес-потребности. Речь пойдет не про ажурные и утонченные архитектуры, красивые сами в себе. Мы поговорим о молотке, которым можно будет забивать гвозди.

Что делает решение успешным? Можно заметить, что зачастую применение простой baseline модели, с умом конечно же, дает ~95% точности суперзаточенного решения под конкретную область. Ниже представлены подходы, которые дают стабильное улучшение. Итак к сути, что же делает конкретное решение эффективным:

Знание множества state-of-the-art алгоритмов? Увлечение инструментом вместо решения задач может создать проблему: мы можем н…