До того, как появилось функциональное машинное обучение, программное обеспечение и компьютерные системы знали только ту информацию, которую им расскажет программист. В результате получается программная система, которая неспособна к инновациям, и для ее функционирования необходимо давать команды.
Машинное обучение позволяет организациям преобразовывать большие наборы данных в статистические знания и полезные аналитические данные. Эти ценные знания можно интегрировать в повседневные бизнес-процессы и операционную деятельность, чтобы реагировать на меняющиеся потребности рынка или обстоятельства бизнеса. Помимо автоматизации повторяемых задач, компании во всем мире используют машинное обучение, чтобы помочь улучшить операции и масштабируемость своего бизнеса.
Поскольку машины обладают гораздо более широкими возможностями обработки данных, чем люди, они могут организовывать и сканировать данные гораздо быстрее, чем любой человек. Это не только создает более полезное программное обеспечение, но и более эффективное.
Это очень актуально для менеджера по найму без сильного технического образования. Их роль - решить, обладает ли кандидат необходимыми навыками машинного обучения для достижения успеха. Итак, давайте углубимся в машинное обучение и лучшие способы проверки кандидатов.
Что такое машинное обучение?
Машинное обучение - это разновидность искусственного интеллекта. То есть все машинное обучение считается ИИ, но не все ИИ считается машинным обучением. Алгоритмы машинного обучения используют статистику для поиска закономерностей в обычно больших объемах данных. В данном случае данные включают в себя широкий спектр вещей - числа, слова, изображения, клики - все, что может быть обработано компьютером. По сути, если его можно сохранить в цифровом виде, его можно передать в алгоритм машинного обучения.
Машинное обучение - это, по сути, форма «самопрограммирования». Алгоритмы машинного обучения автоматически создают математическую модель с использованием выборочных данных, также известных как «обучающие данные», для инновационного принятия решений. Модель машинного обучения - это программа, обученная распознавать определенные типы шаблонов. Вы тренируете модель на наборе данных, предоставляя ей алгоритм, который она может использовать, чтобы рассуждать и учиться на этих данных. Эти решения принимаются без необходимости человеческого программирования, и вуаля искусственный интеллект у вас под рукой.
1.1. Что такое ИИ?
Искусственный интеллект - это концепция компьютерных систем, выполняющих задачи, обычно требующие человеческого интеллекта, такие как визуальное восприятие, распознавание речи, принятие решений и перевод между языками. В искусственном интеллекте машины имитируют когнитивные функции, связанные с человеческим разумом, такие как «обучение» и «решение проблем».
1.2. Для чего используется машинное обучение?
Мы используем возможности машинного обучения для множества современных сервисов: систем рекомендаций, таких как Netflix, YouTube и Spotify; поисковые системы, такие как Google и Яндекс; каналы социальных сетей, такие как Facebook и Twitter, и голосовые помощники, такие как Siri и Алиса. Список бесконечен.
При использовании этих сервисов каждая платформа собирает о вас как можно больше данных. Например, какие жанры вам нравятся, по каким ссылкам вы переходите и на какие статусы вы реагируете. Эти данные затем используются для создания алгоритмов, которые делают расчетные выводы о том, что вы можете захотеть дальше. Этот процесс на самом деле довольно прост: найдите узор, примените узор. Однако он присутствует практически во всех технологиях, к которым мы имеем доступ сегодня.
Другие варианты использования машинного обучения включают в себя прогнозирование (например, поведение пользователей в будущем при покупке, кредитный риск, колебания на рынке жилья), обнаружение аномалий (например, когда совершается мошенничество с использованием электронных средств связи или заводское оборудование находится на грани отказа) или для создания нового контента. (например, перевести текст на иностранный язык, найти лучший маршрут к месту, направить робота, который автоматически очищает поверхности).
1.3. Какова функция инженера по машинному обучению? (Специалист по машинному обучению)
Тех, кто обладает навыками машинного обучения, обычно называют инженером по машинному обучению. Роль довольно новая, хотя термин «машинное обучение» впервые был придуман в 1959 году Артуром Самуэлем, американским пионером в области компьютерных игр и искусственного интеллекта.
Инженер по машинному обучению в первую очередь отвечает за построение, разработку и поддержку бизнес-моделей машинного обучения.
Роль включает в себя выбор правильного метода машинного обучения для компании, а также предпочтительного метода оценки модели. Инженер также отвечает за контроль качества и надзор за развертыванием до стадии производства. После производства инженер по машинному обучению будет отслеживать и корректировать модель в соответствии с изменяющейся рыночной ситуацией. Список их обязанностей включает:
- Проведение экспериментов по машинному обучению с использованием языка программирования с библиотеками машинного обучения
- Внедрение решений машинного обучения в производство
- Оптимизация решений по производительности и масштабируемости
- Инжиниринг данных, то есть обеспечение хорошего потока данных между базой данных и серверными системами
- Реализация пользовательского кода машинного обучения
- Анализ данных.
1.4. Похожи ли должности в машинном обучении на какие-либо другие?
Роль инженера по машинному обучению - это специальная должность, похожая на специалиста по данным, но специалист по анализу данных обучен выполнять более разнообразные задачи.
Хотя есть совпадения, специалисты по обработке данных с опытом разработки программного обеспечения часто переходят в роли инженера по машинному обучению. Специалисты по обработке данных сосредотачиваются на анализе данных, предоставлении бизнес-информации и создании прототипов моделей, в то время как инженеры машинного обучения сосредотачиваются на кодировании и развертывании сложных крупномасштабных продуктов машинного обучения.
Что важно знать ИТ-рекрутеру о машинном обучении?
Внедрение машинного обучения по сути означает, что система больше не ограничивается человеческим видением программистов. Теперь машина может изучать свои собственные методы с помощью новых инновационных процессов, о которых программисты или аналитики, возможно, даже не задумывались.
Это очень полезно, потому что позволяет программистам создавать программное обеспечение с определенной целью, не сосредотачиваясь на том, как это делается.
Поиск способов запрограммировать компьютеры для интерпретации таких огромных объемов информации стал сложной задачей даже для лучших программистов. Машинное обучение позволяет создавать методологии, выходящие за рамки человеческого планирования и предвидения.
2.1. Как часто меняются окружающая среда / какие есть проблемы? Сфера машинного обучения постоянно меняется. Данные всегда становятся больше, проблемы всегда сложнее, поэтому разрабатываются новые методы и последуют новые структуры.
2.2. Насколько много ресурсов / инструментов / технологий (библиотек, фреймворков и т. д.) для машинного обучения?
На языке Python доступно множество инструментов для машинного обучения, в то время как некоторые фреймворки глубокого обучения доступны на C ++ или Java, потому что они быстрее и эффективнее с точки зрения памяти, чем Python. В Python самые популярные библиотеки включают pandas, scikit-learn, PyTorch и TensorFlow.
2.3. С какими навыками, инструментами и методами машинного обучения должен быть знаком инженер?
Успешный инженер по машинному обучению должен обладать большим математическим складом ума. Кроме того, они должны быть экспертами как в программировании, так и в статистике, где они используют свои навыки решения проблем, чтобы иметь глубокие знания моделей машинного обучения. Python - неоспоримый лингва-франка машинного обучения.
2.4. Какие навыки, инструменты и методы искусственного интеллекта должны быть знакомы инженеру по машинному обучению? Хорошее понимание языков программирования, предпочтительно Python, R, Java и C ++. Рекомендуется хорошо понимать концепции матриц, векторов и умножения матриц. Более того, знание производных и интегралов и их приложений важно даже для понимания простых концепций, таких как градиентный спуск. Несомненно, необходимы прочный фундамент и опыт в теории алгоритмов.
Опыт работы с архитектурой нейронных сетей - самый точный способ противостоять многим проблемам, таким как перевод, распознавание речи и классификация изображений, которые играют ключевую роль в отделе искусственного интеллекта.
Инженеру по машинному обучению необходимы хорошие коммуникативные навыки и навыки быстрого прототипирования, а также обширные знания в предметной области.
2.5. Какой опыт важно получить от инженера по машинному обучению?
Для исследовательских проектов - академический или научный опыт будет наиболее важным и всесторонним. Но что касается создания серийных моделей - предыдущий опыт работы с другими производственными моделями даст вам лучшее представление.
Как проверить навыки машинного обучения на этапе отбора? Большинство ИТ-рекрутеров отдают предпочтение проверке навыков при поиске идеального кандидата на вакансии по резюме. В конце концов, наем человека, не обладающего техническими навыками, может стать дорогой ошибкой. Однако успешные инженеры по машинному обучению также обладают ценными качествами, которые невозможно выявить с помощью одного теста. Многому из них нельзя научиться из книги. И так, что это такое и как их идентифицировать?
3.1. Что нужно учитывать при просмотре резюме? Инженеры по машинному обучению должны свободно владеть математическими и статистическими концепциями, включая линейную алгебру, многомерное исчисление, дисперсию, производные, интегралы, стандартные отклонения и т. д.
Они также должны знать основные понятия вероятности, такие как правило Байеса, модели гауссовой смеси и марковские процессы принятия решений. Необходим предыдущий опыт работы с библиотеками машинного обучения.
Кандидат должен иметь образование в области информатики / разработки программного обеспечения и свободно владеть хотя бы одним языком программирования с достаточным опытом программирования. Жизненно важно иметь глубокое понимание концепций информатики, таких как структуры данных, компьютерные архитектуры, алгоритмы, вычислимость и сложности.
Обязательно проверьте, обладает ли кандидат достойной деловой хваткой и всесторонним пониманием основ и принципов бизнеса. Возможность кандидата количественно перечислить свои достижения в организации будет большим преимуществом.
3.2. Какие термины глоссария важно знать в машинном обучении (включая фреймворки, библиотеки и языковые версии)?
- Классическое машинное обучение - решение задач с использованием таких моделей, как линейная или логистическая регрессия, деревья решений, случайные леса, повышение, машины опорных векторов, неотрицательная матричная факторизация, K-средних, k-ближайших соседей.
- Нейронная сеть - это разновидность машинного обучения, вдохновленная работой человеческого мозга. Это вычислительная система, состоящая из взаимосвязанных единиц (например, нейронов), которая обрабатывает информацию, отвечая на внешние входные данные, передавая информацию между каждым элементом. Процесс требует нескольких проходов в данных, чтобы найти связи и извлечь смысл из неопределенных данных.
- Глубокое обучение - решение задач с помощью нейронных сетей (например, имитация мозга). Некоторые типы нейронных сетей включают сверточные нейронные сети и рекуррентные нейронные сети. Глубокое обучение используется для обнаружения объектов, распознавания речи, перевода языков и принятия решений. Искусственный интеллект с глубоким обучением может учиться без участия человека, опираясь на неструктурированные и немаркированные данные.
Библиотеки обработки данных: Python: NumPy, pandas В R: dyplr, tidyr
Распределенные библиотеки управления данными: Python: Dask В Scala, Java и Python: Spark
Общие библиотеки машинного обучения: Python: scikit-learn В Python, R, Java, Scala, C ++: H2O.ai В R: caret, e1071
Библиотеки глубокого обучения: Python: Keras, Tensorflow, PyTorch В R: Nnet В C ++: Caffe
3.3. Какие сертификаты доступны и соблюдаются? Насколько они полезны для определения навыков машинного обучения?
Многие говорят о том, что сертификаты не имеют большого значения для рекрутеров. Напротив, сертификация действительно доказывает, что вы знаете предмет на высоком уровне, а также указывает на то, что у вас есть мотивация продолжать обучение. Кроме того, инженеры могут добавлять работы по проекту в свое портфолио. Некоторые уважаемые курсы включают в себя:
- Сертификация по машинному обучению Стэнфордского университета (Coursera)
- Искусственный интеллект (Северо-Западный | Kellogg School of Management)
- Машинное обучение с TensorFlow на облачной платформе Google
- Искусственный интеллект: бизнес-стратегии и приложения (Berkeley ExecEd)
- Сертификация Deep Learning от DeepLearning.ai - Эндрю Нг (Coursera)
- Сертификат по машинному обучению в области науки о данных от Гарвардского университета (edX)
- Машинное обучение - сертификация по науке о данных от IBM (Coursera)
- Программа профессионального сертификата в области машинного обучения и искусственного интеллекта (MIT Professional Education)
- Сертификация по машинному обучению (Вашингтонский университет)
3.4. Какие еще строки в резюме могут показать навыки машинного обучения?
Участие в соревнованиях по машинному обучению также может быть большим преимуществом. Просмотр учетных записей кандидата в LinkedIn и GitHub может быть полезен для оценки внешнего вида кандидата, а также для оценки его навыков работы с проектами с открытым исходным кодом.
4.1. Вопросы, которые вы должны задать об опыте MLE. Зачем вам задавать каждый из этих вопросов?
Можете ли вы описать, какие проблемы машинного обучения вы решили? Это вводный вопрос для разминки, но он также показывает степень знаний кандидата в этой области. Поскольку существует широкий спектр разнообразных проблем, лучше всего найти людей, которые имели опыт решения проблем, для решения которых вы нанимаете.
Какие модели машинного обучения вы использовали в прошлом? Направлено на выяснение степени знаний инженера в конкретных методах машинного обучения. Между классическими алгоритмами машинного обучения и алгоритмами глубокого обучения существует существенная разница, поэтому знание одного не означает знания другого.
Какой самый интересный проект, над которым вы когда-либо работали? Это хороший вопрос, потому что он дает кандидатам возможность поговорить о том, чем они увлечены, и продемонстрировать свои знания о том, что они очень хорошо знают. Кроме того, это помогает нервным кандидатам чувствовать себя более комфортно и демонстрирует их лучшие качества.
Как долго длился проект? Вы запустили ее в производство и / или доработали модель? Предназначен для проверки наличия у инженера предыдущего опыта создания моделей машинного обучения, которые связаны с определенным набором проблем, которые в противном случае были бы неизвестны.
4.2. Вопросы, которые вам следует задать о знаниях и мнениях MLE. Зачем вам задавать каждый из этих вопросов?
Как вы можете проверить правильность работы модели? Идеальная методология - разделить набор данных на разделы: обучающий набор, набор проверки и набор тестов. Обучающая выборка - единственная доступная модели и основа тренировочного процесса. Параметры модели устанавливаются с использованием набора для проверки, а эффективность модели проверяется на наборе тестов.
В чем разница между классическими моделями машинного обучения и моделями глубокого обучения? В моделях глубокого обучения всегда используются нейронные сети, и они не требуют такой большой функциональной инженерии, как классические модели. Однако для изучения шаблонов им обычно требуются более крупные обучающие наборы, чем классические модели.
Какую библиотеку / библиотеки ML вы бы использовали для набора данных, состоящего из изображений? В настоящее время лучшим подходом к данным изображений является использование OpenCV - библиотеки, которая позволяет выполнять обширные манипуляции с изображениями. А также любые библиотеки глубокого обучения, такие как: Keras, Tensorflow, pyTorch, Caffe.
4.3. Поведенческие вопросы, которые вы должны задать MLE. Зачем вам задавать каждый из этих вопросов?
Какие проблемы вы хотели бы решить в будущем? Какие модели машинного обучения вы хотели бы использовать? Вопрос, чтобы проверить предпочтения кандидата моделям / задачам или узнать, есть ли у него специализация и в какой области он может работать лучше всего. Этот вопрос также может помочь понять, как кандидат планирует развиваться в области машинного обучения.
Где найти информацию о новых методах машинного обучения? Этот вопрос задается, чтобы выяснить, насколько кандидат вовлечен или не вовлечен в технологическое сообщество и в изучении новых навыков в постоянно развивающейся области. Достойны любые из этих источников: доклады конференций, доклады семинаров, MOOC, Facebook или почтовые группы с темой машинного обучения или даже обучение у наставника.
Что вы считаете своим самым большим успехом и самой большой неудачей в области машинного обучения? Довольно общий вопрос, но он показывает способности кандидата к саморефлексии. Это необходимо в процессе обучения, который является важной частью хорошего инженера по машинному обучению.