Резюме:Как инженеры-программисты, мы должны жить, чтобы учиться и идти в ногу с развивающимися фреймворками, стандартами и парадигмами. В то же время также необходимо уметь изучать и использовать в работе наиболее подходящие инструменты для повышения эффективности работы. По мере того, как машинное обучение находит место во все большем количестве приложений, и все больше программистов присоединяются к области ИИ, какие навыки необходимы для входа в область ИИ?
Относитесь к машинному обучению как к навыку
Как инженеры-программисты, мы должны жить, чтобы учиться и идти в ногу с развивающимися фреймворками, стандартами и парадигмами. В то же время также необходимо уметь изучать и использовать в работе наиболее подходящие инструменты для повышения эффективности работы. Поскольку машинное обучение находит место во все большем количестве приложений, многие инженеры стремятся освоить его.
Машинное обучение сложнее освоить, чем новый фреймворк. Чтобы быть эффективным практиком, вам необходимо глубокое понимание соответствующей теории в этой области, широкое понимание текущего состояния отрасли и способность формулировать проблемы недетерминированным образом.
Вы можете найти множество руководств в Интернете, которые научат вас обучать готовую модель на хорошо выбранном наборе данных и получать ее с достойной точностью. Фактически, наличие более релевантных навыков является ключом к тому, чтобы стать эффективным инженером по машинному обучению.
Ниже приведены некоторые из наших бесед с более чем 50 ведущими командами машинного обучения из Сан-Франциско и Нью-Йорка, которые приехали в Insight, чтобы изучить общие проблемы, с которыми приходится сталкиваться специалистам по ИИ, и, надеюсь, ускорить их интеграцию в прикладной искусственный интеллект. интеллект.
Почему машинное обучение — это «не просто еще один инструмент»
Развертывание решения для машинного обучения — это больше, чем просто обучение любой модели с данными. Вам также необходимо знать:
-
**тип данных**, которые у вас есть, **статистическое распределение набора данных** и степень асимметрии набора данных.
-
**Статистические модели**, применимые к конкретным наборам данных, и вероятность успеха для этих моделей.
-
Показатели, связанные с **оптимизацией** модели и значением выходных данных модели.
Другими словами, для интеграции, развертывания и отладки моделей в дополнение к инженерным навыкам необходимо понимать основы статистики, линейной алгебры и теории оптимизации.
Чтобы создать индивидуальное решение для машинного обучения для решения проблемы, необходимо учитывать самые разные вещи: от приема данных, маркировки и предварительной обработки до построения, обновления и обслуживания модели, а также всего, что происходит в процессе.
Наконец, мы считаем, что создание набора REST API для стандартных веб-приложений — это задача, которую можно выполнить заранее. С другой стороны, модели машинного обучения не всегда гарантированно сходятся или дают полезные результаты. Лучший способ научиться просматривать и предоставлять эффективные продукты машинного обучения — понять, как их теоретические основы соотносятся с таксономией данных.
5 навыков, которые необходимо освоить перед переходом на ИИ
статистика
Чтобы глубоко понять машинное обучение, вы должны иметь прочные базовые знания статистики, которая включает в себя несколько аспектов:
-
Различные способы измерения успеха модели (точность, полнота, площадь под ROC-кривой и т. д.). Как выбор функции потерь и оценочной метрики **отклоняется от выходных данных модели**.
-
Как понять **переобучение** и **недообучение**, а также **компромисс между смещением и дисперсией**.
-
Насколько **уверены** вы в результатах модели.
теория машинного обучения
Что на самом деле происходит при обучении нейронной сети? Что делает одни задачи выполнимыми, а другие невыполнимыми? Лучший способ разобраться в этих вопросах — не углубляться в теоретические знания, а попытаться понять машинное обучение с помощью графиков и примеров.
Диапазон понятий, которые необходимо понять, включает в себя: как работают различные функции потерь, почему обратное распространение полезно и что такое вычислительный граф. И **как построить функциональную модель** и **как эффективно взаимодействовать с остальной командой** — все это требует глубокого понимания. Ниже я дал несколько ссылок:
-
Курс Deep Learning от Google представляет собой общее введение в глубокое обучение.
-
Курс «Компьютерное зрение» Фей-Фей Ли и курс НЛП Ричарда Сочера представляют собой более специализированное введение.
-
Гудфеллоу написал довольно хорошую книгу по глубокому обучению для всестороннего понимания основ глубокого обучения.
Еще одним важным навыком является умение читать, понимать и реализовывать диссертацию. Сначала это может показаться трудным, поэтому лучше всего прочитать документ с кодом (например, изучить документ на GitXiv) и попытаться понять, как он реализован.
обработка данных
Если вы спросите любого специалиста по данным, какова его основная работа, он скажет вам, что 90% его работы — это обработка данных. Это так же важно, как и применение ИИ, поскольку успех модели тесно связан с качеством (и количеством) данных. Работа с данными включает в себя множество аспектов, но может быть сгруппирована в следующие категории:
-
Сбор данных (в том числе: поиск надежных источников данных, точное измерение **качества** и **классификации** данных, получение и определение меток)
-
Предварительная обработка данных (**вменение отсутствующих данных**, **разработка признаков**, **дополнение данных**, **нормализация данных**, разделение перекрестной проверки)
-
Постобработка данных (приведение результатов модели в действие, очистка, обработка **особых случаев** и **выбросов**) Лучший способ ознакомиться с работой по обработке данных — взять набор данных и попробовать его. вне. В Интернете существует множество наборов данных, а также множество сайтов социальных сетей и новостных медиа, которые предоставляют API. Основываясь на шагах, упомянутых выше, мы можем узнать следующее:
-
Получите набор данных с открытым исходным кодом и изучите его. Насколько он велик (количество точек и признаков)? Как распределяются данные? Есть ли пропущенные значения или выбросы
-
Создайте процесс преобразования, который преобразует необработанные данные в пригодные для использования данные. Как заполнить пропущенные значения? Как правильно обрабатывать выбросы? Как нормализовать данные? Можно ли создать более выразительные черты?
-
Проверьте преобразованный набор данных. Если вместе все выглядит хорошо, переходите к следующей главе!
Отладка или настройка модели
Отладка алгоритмов машинного обучения (которые не сходятся или дают необоснованные результаты) сильно отличается от отладки обычного кода. В то же время для поиска правильной архитектуры и гиперпараметров требуется прочная теоретическая основа и хорошо зарекомендовавшая себя инфраструктура для тщательного тестирования различных конфигураций.
Поскольку область машинного обучения быстро развивается, методы отладки моделей постоянно развиваются. Ниже приведен список «проверок работоспособности», взятых из нашего обсуждения и опыта развертывания моделей, и эти записи также каким-то образом отражают принцип KISS, знакомый многим инженерам-программистам.
-
Начните с **простой модели**, которая, как было показано, работает с аналогичными наборами данных, чтобы как можно быстрее получить **базовую** версию. Классические статистические модели обучения (линейная регрессия, ближайшие соседи и т. д.) или простые эвристики или правила обычно помогают вам **решить 80 % ваших проблем** и быстрее выполнить ваши требования. В начале решите проблему самым простым способом (см. первые несколько пунктов правил машинного обучения Google).
-
Если вы решите обучить более сложную модель для улучшения базовой версии, вы можете обучить очень маленькое подмножество набора данных и добиться переобучения. Это гарантирует, что модель, по крайней мере, имеет возможность учиться. Итерируйте модель непрерывно, пока она не соответствует 5% данных.
-
Как только вы начнете тренироваться с большим количеством данных, гиперпараметры начнут играть большую роль. Вы должны понимать теорию, связанную с этими параметрами, чтобы найти разумные значения.
-
Пожалуйста, используйте целевые методы для настройки модели. Кратко запишите все конфигурации, которые вы использовали, и их результаты. В идеале можно использовать стратегию автоматического поиска гиперпараметров. Вначале было достаточно случайного поиска.
Чем более вы развиты, тем быстрее можно реализовать эти шаги, и наоборот.
разработка программного обеспечения
Многие виды прикладного машинного обучения позволяют в полной мере развивать свои навыки разработки программного обеспечения, хотя и с небольшими изменениями. Эти навыки включают в себя:
-
Протестируйте все аспекты конвейера (предварительная обработка и дополнение данных, сортировка ввода и вывода, время вывода модели).
-
Создавайте код на основе принципов **модульности** и возможности повторного использования.
-
Делайте резервные копии модели (**установите контрольную точку**) на различных этапах процесса обучения.
-
Настройте **распределенную инфраструктуру** для более эффективного обучения, поиска гиперпараметров или логических выводов.
Чтобы узнать о навыках работы с программным обеспечением, необходимых для хорошего инженера по машинному обучению, ознакомьтесь с нашей тематической статьей: «Переход от академических кругов к прикладному ИИ». (https://medium.com/m/global-identity)
Советы по работе
Приведенные выше ресурсы могут помочь вам справиться с реальными проблемами машинного обучения и решить их. Однако область прикладного ИИ меняется очень быстро, поэтому лучший способ научиться — делать это самостоятельно, пытаясь построить сквозное решение реальной проблемы.
Пункт действия:
-
Найдите продукт, который может быть интересен для создания. Что может сделать вашу жизнь более эффективной? Какие инструменты могут улучшить способ использования данных для определенных целей? Что такое управляемый данными подход к решению интересной проблемы?
-
Найдите наборы данных, относящиеся к вопросу. Для большинства поддающихся решению проблем вам могут понадобиться уже отмеченные данные. Если для вашей проблемы нет соответствующего помеченного набора данных, сделайте это сейчас. Какими способами можно найти похожие данные, или эффективно пометить данные, или иным образом ускорить работу?
-
Прежде чем приступить к работе, проверьте, достаточно ли имеющихся у вас данных по количеству и качеству для выполнения поставленной задачи. Прежде чем использовать TensorFlow, лучше всего поискать в Интернете решения аналогичных проблем других людей. Какие соответствующие **сообщения в блоге** и **бумаги** могут ускорить работу?
Найдите немного вдохновения, а затем копайте! Хотя шаблоны и парадигмы, которые вы исследуете, могут впоследствии оказаться неверными, они также полезны для вас, поскольку дают более глубокое понимание сложности проблемы.
последний совет
Искусственный интеллект — захватывающая и развивающаяся область. Инженеры по машинному обучению остро нуждаются в получении соответствующих знаний, которые легко могут быть перегружены актуальными новостями. Мы рекомендуем вам следить только за небольшим количеством источников и информационных бюллетеней, чтобы иметь возможность отделить PR и абстрактные исследования от инноваций в этой области. Вот некоторая информация, которая может вам помочь:
-
Hacker News: Hacker News — это сайт социальных новостей, посвященный информатике, науке о данных и предпринимательству. Он управляется Y Combinator, известным стартап-инкубатором. Не бросайте этот сайт только из-за его названия! Первоначальное значение слова «хакер» не имеет ничего общего с киберпреступниками, оно относится к тем, кто полагается на свои превосходные навыки программирования, чтобы найти идеальное решение.
-
Import AI: информационный бюллетень Джека Кларка об искусственном интеллекте, всегда в курсе самых передовых и важных разработок в этой области.
-
Insight Blog: Мы держим довольно активный темп. Некоторые сообщения в блоге ИИ рассказывают о прошлых проектах, которые могут вдохновить на решение интересных задач. Мы также регулярно отправляем что-то об ИИ в список рассылки.
Замечательные статьи в прошлом
0 Чен Лэй-Управление рисками больших данных: точка зрения AI на Paipaixin
1 Интервью с доктором Синь Лю: глубокое обучение и искусственный интеллект
-END-
Сообщество Юнци
Я БЫ:yunqiinsight
Облачные вычисления, архитектура Интернета, большие данные, машинное обучение, эксплуатация и обслуживание
Нажмите «Читать исходный текст».