Изучение опыта стажировки при запуске

Я два месяца проработал стажером в Inturiyam, компании, специализирующейся на НЛП на индийских языках. Мой основной проект заключался в предсказании текста на изображении и извлечении из него текста. Если вам интересно, в предыдущей части блога я кратко объяснил, как работает проект в целом, во второй части блога.

Я хочу подытожить 9 основных элементов, которые я усвоил. Во-первых, 3 технических урока о реалиях машинного обучения и его развертывании. Во-вторых, 3 основных навыка, которыми должен обладать каждый специалист по данным. И, наконец, я хочу рассказать о 3 способах изучения науки о данных в наши дни, которые мне помогли.

Три урока по машинному обучению и развертыванию на производственном уровне

Не существует «лучшей модели когда-либо». Да, некоторые модели лучше справляются с некоторыми проблемами. Например, нейронные сети показали свое превосходство в компьютерном зрении и обработке естественного языка. Но в целом никто не может утверждать, что одна модель всегда будет работать лучше других. Метрики производительности модели - единственный способ узнать правду. Вот почему у нас не должно быть таких влияний, как «нейронные сети великолепны в сложных задачах, таких как компьютерное зрение, тогда давайте использовать их для наших прогнозов продаж». Это плохой образ мышления. Чтобы найти лучший алгоритм обучения, легко провести первую фазу обучения с набором различных алгоритмов на меньшем подмножестве данных. Затем проведите быстрое обучение и перекрестную проверку, прежде чем сравнивать результаты. Повторите этот процесс на другом подмножестве и определите в среднем лучший алгоритм обучения для использования на всем наборе данных.

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

«Развертывание модели машинного обучения» - еще одна задача. Модель машинного обучения бесполезна, если она не запущена в производство. Чтобы устранить различные аспекты системного проектирования, многие компании предоставляют поддержку, чтобы разработчики могли легко развернуть модель. Мы выбрали Google Cloud Platform для развертывания модели, так как модель легко масштабируется, а меры безопасности могут быть реализованы должным образом. С масштабируемостью дела идут некрасиво.

Три навыка специалиста по данным

«Математика и статистика». На мой взгляд, машинное обучение можно освоить без сложных математических или статистических знаний в этой области. Мы не можем просто выбросить какую-то модель из наших данных, а также мы не можем много экспериментировать, поскольку разработка модели требует усилий, а обучение требует большого количества вычислений, что очень дорого. Несмотря на навыки программирования, фреймворки и базовое понимание принципов машинного обучения, многого еще можно достичь. Но специалисту по обработке данных желательно иметь глубокое понимание своей модели. Например, он должен быть в состоянии ответить «почему модель сделала этот результат Y при входе X», главным образом потому, что пользователи могут положительно стремиться узнать, почему решение было принято службой.

«Информатика и программирование» Да, это важно. В основном для манипулирования данными (файлами, базами данных) и работы с ними (программирование или использование высокоуровневого программного обеспечения). На этапе анализа сценарии полезны для обработки данных и визуализации перед обучением. Но позже в проекте, когда дело доходит до создания приложения с полным спектром услуг, требуются навыки разработки программного обеспечения. В то время как инженер по машинному обучению сосредоточится на этапе обучения, специалист по анализу данных должен работать над всем конвейером, от обработки данных до доставки прогнозов в приложение, которое их использует.

«Терпение и общение» Очень важно проявить терпение при разработке модели. Модель можно разработать в короткие сроки, но она может не дать желаемого результата. Не будучи исследователем и математиком, я не мог понять, почему модель не работает, поэтому довольно неприятно видеть, что усилия последних дней напрасны, но я также понял, что это кривая обучения, которую все должен идти. Обучение на рабочем уровне проекта полностью отличается от академического.

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

Три способа изучить науку о данных

Онлайн-курсы. Очевидно, что первой отправной точкой, по крайней мере для машинного обучения, является Coursera. Классы машинного обучения и глубокого обучения считаются лучшими способами начать обучение. В целом, веб-сайт онлайн-классов может быть отличным способом изучить сложные теории, на изучение которых требуется много времени. Если вас интересует математика, лежащая в основе глубокого обучения, вам следует изучить этот пост, чтобы найти ресурсы, чтобы понять их.

«Практическое выполнение проектов». Лучший способ учиться - это делать проекты. Если вы видите, что происходит на самом деле, это делает обучение более увлекательным и продуктивным. При развертывании чего-либо возникает множество трудностей, и приобретенный опыт заставляет задуматься, почему было необходимо изучать его во время академических курсов.

«Встречи» Бангалор - это Силиконовая долина в Индии, а Индиранагар - место стартапов для многих крупных компаний, поэтому культура встреч довольно известна в Индиранагаре. За последние два месяца каждый раз, когда я посещал любое кафе или ресторан, я встречал людей, сидящих с ноутбуками и обсуждающих свои идеи. Мы знаем, что хотя многие идеи терпят неудачу, но если одна из тысячи оказывается успешной, то это тоже того стоит. Увидеть такую ​​страсть к стартапу у молодых людей было совершенно внове, я знаю, что слушать чей-то разговор - дешево, но я слушал их, чтобы увидеть, как они функционируют, как убедить венчурных капиталистов инвестировать в свой стартап и как заработать. Индия - лучшее место для жизни, потому что не все идеи касались того, как заработать деньги.

В целом, это был отличный опыт в Inturiyam, они не только дали мне много знаний в области информатики и машинного обучения, но и сразу же возложили на меня полезные обязанности.

Спасибо, что дочитали до конца. :)

Ссылка на часть 1: здесь

Ссылка на часть 2: здесь