Казахстан, г. Алматы, ул. Шевченко 90, БЦ «Каратал», офис 53
Казахстан, г. Астана, ул. Иманова 19, БЦ Деловой Дом "Алма-Ата", офис 612

3 декабря 2019

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

«Объединяет методы по обработке данных в условиях больших объёмов и высокого уровня параллелизма, статистические методы, методы интеллектуального анализа данных и приложения искусственного интеллекта для работы с данными, а также методы проектирования и разработки баз данных.»

«... с начала 2010-х годов считается одной из самых привлекательных, высокооплачиваемых и перспективных профессий».

Т.е. Data Science — это такой же обширный «зонтик», как и Computer Science, только направленный на обработку данных и извлечение из них полезной информации.

Хорошо, с Data Science мы поверхностно разобрались. Что же такое машинное обучение (Machine Learning)?

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

То есть глобальная цель машинного обучения — это научить машину решать различные сложные задачи, которые сложно решить алгоритмически, используя лишь привычные нам циклы и ветвления. Например, узнавать человеческие лица или другие объекты, понимать голос, водить автомобиль (Google Self-Driving Car), диагностировать заболевания по симптомам (Watson), понимать тональность или смысл текста, принимать решения о рисках выдачи кредита, предсказывать продажи и спрос на аренду велосипедов в городе, советовать товары, книги (Amazon), фильмы (Netflix), выполнять функции личного помощника или секретаря (Siri, Android Now, Cortana), захватывать мир и многие другие.

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

Так чем же занимаются Data Science и Machine Learning специалисты?

Позиция Data Scientist

Если посмотреть на вакансии Data Scientist от различных компаний, можно увидеть достаточно большое разнообразие задач и требований. Иногда под Data Scientist позициями понимают даже обычных Data Analyst. Однако определенная срединная линия всё же прослеживается.

Стандартные задачи:

  • Выделять, агрегировать и синтезировать данные из различных структурированных и неструктурированных источников
  • Исследовать, разрабатывать и применять интеллектуальное обучение на данных, полученных из реального мира, обеспечивать важные выводы и успешные действия, основываясь на них
  • Анализировать и предоставлять данные, собранные в организации
  • Проектировать и строить новые процессы для моделирования, интеллектуального анализа данных и внедрения
  • Разрабатывать прототипы, алгоритмы, прогнозирующие модели, прототипы
  • Выполнять запросы на анализ данных и доносить их выводы и решения

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

Для выполнения этих задач в основном требуются такие знания и навыки:

  • Дискретная математика, статистика и статистический анализ
  • Machine Learning алгоритмы
  • Умение работать с хранилища данных (реляционными и нереляционными), владение SQL и другими языками запросов

Инструменты для анализа данных и моделирования:

  • R
  • Python (NumPy/SciPy)
  • Matlab
  • SPSS/SAS

В случае обработки больших объемов данных (Big Data) часто добавляются:

  • Hadoop и весь спектр сопутствующих технологий и инструментов: Pig, Hive и т.д.
  • Java
  • Визуализация данных
  • Понимание предметной области (крайне важно!)
  • Высокий уровень коммуникации

Самое интересное, что Data Scientist не обязан уметь хорошо программировать, а может ограничиться инструментами вроде Matlab, SPSS, SAS и др. Возможно, поэтому на эту позицию часто претендуют не столько разработчики, сколько бизнес аналитики (Business Analyst), аналитики данных (Data Analyst) и другие специалисты по анализу.

Из-за небольшого присутствия в специальности программистов чисто технические навыки, такие как умение программировать, работать с Big Data и базами данных, очень ценятся. По оценке Payscale.com знание Python, Java и Hadoop могут добавить к средней зарплате от 5% до 14%.

Таким образом, позиция Data Scientist может быть интересна не только программистам, но и специалистам в прикладной математике и статистике, Machine Learning, Business Intelligence, а также аналитикам данных.

Позиция Machine Learning Engineer

Позиция Machine Learning Engineer является более «технической», если можно так выразиться. Иными словами, ML Engineer имеет больше общего с классическим Software Engineering, чем Data Scientist.

Стандартные задачи ML Engineer в целом похожи на Data Scientist. Также необходимо уметь работать с данными, экспериментировать с различными Machine Learning алгоритмами, которые позволят решить поставленную задачу, создавать прототипы и готовые решения.

Требуемые знания и навыки для данной позиции тоже во многом пересекаются с Data Scientist. Из ключевых отличий можно выделить:

  • Сильные навыки программирования в одном или нескольких популярных языках (как правило, Python и Java), а также в базах данных;
  • Меньший упор на умение работать в средах для анализа данных, но больший упор на алгоритмы Machine Learning;
  • R и Python для моделирования предпочтительнее Matlab, SPSS и SAS;
  • Умение использовать в приложении готовые библиотеки для различных стеков, например, Mahout, Lucene для Java, NumPy/SciPy для Python;
  • Умение создавать распределенные приложения, используя Hadoop и другие решения.
  • Кроме того, для более узких применений требуются дополнительные знания:
  • Natural Language Processing, Computer Linguistics, Sentiment Analysis для обработки, понимания и оценки тональности текста;
  • Computer Vision для распознавания изображений и видео;
  • Digital Signal Processing для работы со звуком, сенсорными данными и различными другими сигналами;
  • Recommender Systems для построение рекомендательных систем.

Для Data Scientist подобные требования встречаются намного реже. Они больше работают с датасетами.

Кроме того, довольно часто компании, которые специализируются в более узких областях, могут и свои позиции называть уже, например, Text Mining Engineer, Senior Computer Vision Engineer, Computer Vision Scientist и т.д.

Как видите, позиция ML Engineer (или более узкие) требует больше знаний в Software Engineering, и, соответственно, хорошо подойдет опытным разработчикам. Довольно часто срабатывает кейс, когда обычному разработчику по долгу службы приходится решать ML задачу, и он начинает разбираться в нужных алгоритмах и библиотеках.

Машинное обучение Алматы

Источник: dou.ua