Интервью с Machine Learning инженером

Добавлено: 21/02/2018
4579

Machine learning — одна из самых востребованных областей разработки, которая подразумевает собой совокупность методов анализа данных и создания искусственного интеллекта. О том, что должен уметь и знать разработчик в этой сфере, DigitalHR рассказывает в новой статье.

 

 

 

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

Специалисты в области машинного обучения занимаются разработкой таких алгоритмов и нейросетей. Области применения алгоритмов могут быть абсолютно разные. Компьютерное зрение, распознавание и сегментация изображений и видеопотока, распознавание текстов, прогноз событий, рекомендательные системы — все это области применения нейросетей и алгоритмов машинного обучения. В общем виде работу специалиста можно разделить на две составляющие: исследование (research) и разработка (development).

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

Чаще всего разработчики используют для таких задач Python и/или С++, а также ряд специальных библиотек/фреймворков: OpenCV, OpenCL, Caffe, Tensorflow.

 

Первое, что нужно оценивать — как будет подходить человек по характеру к существующей команде, и насколько сильно он интересуется выходящими работами. Ведь очень много работ публикуют, предлагают новые подходы, и возможно решение для вашей задачи уже есть, нужно за новыми статьями следить. Следующий важный момент — хорошое знание базовых основ (математика, базовые понятия машинного обучения и сверточных сетей). Дальше уже идет специализация под ваши задачи, если человек занимался нейронными сетями для распознавания речи, нельзя ожидать, что он будет все знать по машинному обучению в компьютерном зрении.

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

Станислав Веретенников, CTO Cherry labs


Вопросы для собеседования с Machine Learning инженером:

  • Какие основные задачи выполняли на проекте?
  • С какими типами архитектур нейросетей работали?
  • Какие библиотеки и фреймворки использовали?
  • Расскажите о самой интересной и сложной задаче?
  • Какое соотношение разработки и исследований было на последнем проекте? Какое соотношение интересно сейчас?

ПОДПИШИТЕСЬ НА БЛОГ