Инженеры по машинному обучению: мифы против реальности
Опубликовано: 2018-05-08Машинное обучение — это то, что дает компьютерам возможность учиться и итеративно улучшать свои задачи. Основное внимание уделяется разработке динамических алгоритмов, которые могут измениться (модифицировать) себя при воздействии нового набора данных. Проще говоря, машинное обучение — это то, что заставляет Facebook спрашивать : «Вы хотите отметить своих друзей на этой картинке?» , каждый раз, когда вы загружаете групповое фото. Люди, которые за кулисами работают над тем, чтобы все это произошло, скромно известны как инженеры по машинному обучению.
Теперь, как и в любой другой области науки о данных, машинное обучение также имеет много неправильных представлений о нем. И очистить их как раз и является нашей сегодняшней целью. Но очень важно, чтобы мы сначала познакомили вас с жизнью инженера по машинному обучению, включая навыки и инструменты, которыми он обладает.
Во-первых, давайте сначала четко отделим машинное обучение от науки о данных.
Оглавление
Являются ли инженеры по машинному обучению учеными данных?
Наука о данных — всеобъемлющий термин, но в том, как работает машинное обучение, есть нечто принципиально иное. Специалисты по науке о данных и аналитики в основном изучают данные и пытаются найти подходы или модели, соответствующие их бизнес-требованиям.
С другой стороны, машинное обучение полностью меняет эту модель. Инженеры по машинному обучению не имеют дело напрямую с данными. Они знают, каких результатов хотят, но позволяют алгоритмам делать за них всю работу. Машинное обучение создает машину, которая побеждает чемпионов Go, помечает фотографии или переводит с одного языка на другой. Эти цели не достигаются за счет тщательного изучения данных, в отличие от анализа данных. Есть много данных для изучения и слишком много измерений для решения (например, какова размерность игры в го? Или языка?) Обещание машинного обучения заключается в том, что оно само строит модель: оно проводит исследование данных. и тюнинг.
Разница между наукой о данных, машинным обучением и большими данными!
В результате инженеры по машинному обучению не «исследуют» так много, как специалисты по данным или аналитики — по крайней мере, не в прямом смысле этого слова. Их цель не в том, чтобы найти значимость в своих данных — они считают, что значимость уже есть. Вместо этого они стремятся построить модель/алгоритм/машину/систему, которая может анализировать данные и давать результаты. Или создать работающую нейронную сеть, которую можно настроить для получения надежных результатов на любом наборе входных данных.
Давайте рассмотрим некоторые важные моменты, связанные с инженерами по машинному обучению:
- У них более сильные навыки разработки программного обеспечения, чем у типичных аналитиков/ученых данных. Инженеры по машинному обучению работают с инженерами, отвечающими за обслуживание производственных систем. Следовательно, им необходимо понимать методологию разработки программного обеспечения, гибкие методы и самые современные инструменты разработки программного обеспечения. Они должны тщательно разбираться во всем, от таких IDE, как Eclipse или IntelliJ, до компонентов конвейера развертывания программного обеспечения.
- Инженеры по машинному обучению сосредоточены на том, чтобы продукты данных работали в производственной среде. В результате они целостны в своем подходе. Они составляют основную часть любой команды разработчиков программного обеспечения и, следовательно, знают, что такое A/B-тестирование. Они не только «понимают» это, но и умеют проводить A/B-тестирование на продакшн-системах. Они понимают важность ведения журнала и безопасности для судьбы любого приложения.
- Они в напряжении, когда дело доходит до мониторинга продуктов данных в производстве. Хотя существует множество ресурсов для автоматизации процесса мониторинга приложений, требования машинного обучения идут еще дальше. Конвейеры данных, модели, алгоритмы или даже системы могут устареть и нуждаться в переобучении. Систему машинного обучения можно легко исказить, скомпрометировав питающие ее конвейеры данных. Следовательно, инженеры по машинному обучению всегда должны знать, как обнаруживать эти компромиссы.
Некоторые необходимые навыки для успешного инженера по машинному обучению:
- Базовые знания информатики и программирования
- Вероятность и статистика
- Моделирование и оценка данных
- Поиск подходящей библиотеки машинного обучения для использования и ее настройка по мере необходимости.
- Программная инженерия и моделирование

Миф № 1. Инженеры по машинному обучению заставляют системы думать точно так же, как люди.
Хотя это возможная конечная цель, на данный момент она далека от истины. Кратко сравните процесс обучения ребенка с процессом обучения машины, и вы поймете, что машинное обучение все еще находится в зачаточном состоянии. Например, ребенку не нужно наблюдать за сотнями людей для таких простых вещей, как ходьба или прием пищи. Они ставят свои собственные цели, воспринимают других людей вокруг, интуитивно создают свою стратегию обучения и совершенствуют ее путем проб и ошибок, пока не добьются успеха. Даже без особого внешнего вмешательства или руководства ребенок может успешно научиться ходить, наряду с другими важными вещами.
С другой стороны, машины требуют контроля на каждом этапе обучения. Кроме того, ребенок без особых усилий целостно и эффективно объединяет различные сигналы, поступающие от нескольких органов чувств. Например, ребенок сможет мгновенно распознавать картинки, а также понимать любой текст, написанный поверх них. Но чтобы научить машину тому же, нужны отдельные сложные алгоритмы, каждый для распознавания данных, выявления шумов и понимания текста.

Миф № 2: все данные полезны для инженеров по машинному обучению.
Нет сомнений в том, что инженерам по машинному обучению тоже нужны данные, но не все из них имеют отношение к машинному обучению. Им нужны репрезентативные данные, которые охватывают закономерности и результаты, с которыми их система должна будет работать. В данные не должны быть включены нерелевантные шаблоны, потому что модель машинного обучения будет отражать эти несвязанные шаблоны и искать их в данных, с которыми она будет использоваться.
Все данные, которые вы используете для обучения, должны быть хорошо помечены и помечены функциями, которые соответствуют вопросам, которые вы собираетесь задать системе машинного обучения, что требует большой работы. Все эти данные должны быть хорошо помечены функциями, которые соответствуют вопросам, которые вы собираетесь задать своей системе. Он также должен быть безупречным и свободным от каких-либо несоответствий или ошибок. Таким образом, для инженеров по машинному обучению ценны не все данные, а только релевантные данные!
Следите за следующей большой вещью: машинное обучение
Миф № 3: Инженеры по машинному обучению игнорируют уже существующие знания.
Эксперты во многих областях отвергают машинное обучение за то, что используют подход «с чистого листа» в своих алгоритмах обучения. Они предполагают, что все алгоритмы машинного обучения начинаются с нуля — без знания уже существующих данных. Инженеры по машинному обучению лучше понимают, что обучение — это длительный процесс, требующий постоянного контроля. Его нельзя имитировать, просто вводя данные в алгоритм. Следовательно, не все алгоритмы обучения начинаются с чистого листа; некоторые используют наборы данных для уточнения ранее существовавшего пула знаний. В конце концов, это зависит от бизнес-требований организации.
Миф № 4. Простые модели машинного обучения всегда более точны.
Это соответствует бритве Оккама. Но, скажем вам, бритва говорит лишь о том, что более простые объяснения предпочтительнее, а не почему. Их предпочитают, потому что их легче понять, запомнить и с ними справиться. Однако когда дело доходит до машинного обучения, иногда самая простая гипотеза, согласующаяся с данными, менее точна для предсказания, чем более сложная. Некоторые из самых мощных алгоритмов обучения выдают модели, которые кажутся неоправданно сложными — иногда даже продолжая добавлять к ним после того, как они правильно соответствуют данным — но именно так они побеждают менее мощные.

Изучите курс машинного обучения онлайн в лучших университетах мира. Заработайте программы Masters, Executive PGP или Advanced Certificate Programs, чтобы ускорить свою карьеру. Поскольку машинное обучение является частью науки о данных, сочетания информатики и математики, знание математики является обязательным для инженеров по машинному обучению. Вам понадобятся знания математических понятий, таких как линейная алгебра, исчисление, оптимизация, вероятность и статистика, чтобы создавать и понимать алгоритмы машинного обучения. Чтобы быть более точным, вам нужно иметь общее представление о математических операциях, которые помогают в анализе данных. Но самое приятное то, что вы можете изучить эти основные понятия математики со временем, изучая машинное обучение, и большинство из этих понятий довольно легко понять. Мы знаем, что наука о данных и машинное обучение неразрывно связаны, поэтому машинное обучение будет настолько хорошим, насколько хороши данные, которые оно предоставляет, и способность алгоритмов их обрабатывать. Специалисты по данным должны будут иметь базовое представление о машинном обучении. Исследователи данных извлекают полезные знания из огромных объемов данных. Они выявляют тенденции и помогают в разработке решений для автоматизации определенных бизнес-операций. Для точных прогнозов и оценок специалисты по данным должны понимать машинное обучение. Это может помочь роботам принимать более обоснованные решения и предпринимать более разумные действия в режиме реального времени без необходимости взаимодействия с человеком. Интеллектуальный анализ и интерпретация данных трансформируются благодаря машинному обучению. Традиционные статистические процедуры были заменены более точными автоматизированными наборами общих алгоритмов. Python — наиболее часто используемый язык для анализа данных и машинного обучения. Большинство инженеров по машинному обучению выбирают Python для задач НЛП, R или Python предпочитают для работы по анализу настроений, а Java используется для других приложений машинного обучения, таких как безопасность и обнаружение угроз. Python стал предпочтительным языком для анализа данных, машинного обучения и искусственного интеллекта (ИИ) из-за его обширной библиотечной экосистемы, которая позволяет специалистам по машинному обучению легко получать доступ, управлять, преобразовывать и анализировать данные. Python популярен среди разработчиков машинного обучения из-за его независимости от платформы, простоты и удобочитаемости. Является ли математика обязательной для инженеров по машинному обучению?
Нужно ли специалистам по данным машинное обучение?
Какой язык программирования предпочитают инженеры машинного обучения?