Путь в искусственный интеллект: top-down или bottom-up?

Путь в искусственный интеллект: top-down или bottom-up?

Как быстро приобрести профессию Data Scientist и начать работать в сфере искусственного интеллекта
5 минут9754

Многие специалисты по искусственному интеллекту, машинному обучению, Data Science и Big Data сетуют на то, что в своё время неправильно изучали свою профессию и потратили слишком много времени на обучение там, где можно было справиться гораздо быстрее. Они могли бы получить столько же знаний, сколько у них есть сейчас, за меньшее время, если бы получали эти знания в правильной последовательности.

Хорошая новость в том, что на чужих ошибках сегодня могут учиться те, кто только начинает свою карьеру. Очень часто начинающие специалисты, желающие попасть в профессию, задают вопрос: «Как стать дата сайентистом?» Ответы, как правило, не очень утешают. Нужно пройти семь кругов ада, потратить несколько лет на штудирование огромных учебников по теории вероятностей, статистике, математическому анализу, линейной алгебре, изучить программирование на языке Python, алгоритмы и структуры данных, язык запросов SQL. И только потом будущий специалист может подступиться непосредственно к машинному обучению и анализу данных, которые составляют основу искусственного интеллекта. А в завершение подготовки — если ещё останется желание — можно изучить нейронные сети, компьютерное зрение, обработку естественного языка, обучение с подкреплением.

Действительно, без математики не обойтись, и она у любого дата-сайентиста должна быть на довольно высоком уровне. Всё-таки слово “scientist” в названии профессии задаёт определённую планку. Кстати, буквальный перевод профессии на русский — «исследователь данных» — встречается реже, чем «математик-программист». Даже если такой специалист создаёт модели машинного обучения не с нуля, а использует готовые реализации, то для получения адекватных результатов он должен понимать внутренние механизмы алгоритмов, используемых в искусственном интеллекте. 

Но действительно ли обучение обязательно должно быть таким долгим? Можно ли так составить программу обучения, чтобы сэкономить время?

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

Первое препятствие, которое не даст ему создать даже простейшую модель, — отсутствие навыков работы с библиотеками Python, применяемых в Data Science. У моделей машинного обучения в Python, как правило, удобный синтаксис. Основные методы для обучения и применения моделей в наиболее популярных реализациях одинаковы — это fit и predict. Но прежде чем дойти до стадии применения, нужно как-то прочитать данные, изучить, обработать и только потом отправить их в модель.

В итоге наш новичок понимает, что у него пробелы в программировании, обработке данных и визуализации, которая необходима не только для описательной статистики, но и для изучения данных перед их обработкой и применением моделей. Далее следует осознание того, что пришёл на соревнование по анализу данных полным «нулём». Хотя до этого была уверенность: есть чёткая картина, как применять машинное обучение.

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

Человек изучил теорию машинного обучения, но не может применить её на практике. Теперь он начинает изучать библиотеки Python для Data Science, то есть получать практические знания, которые постоянно применяются в работе и поэтому не стираются из памяти. Пока он восполняет пробелы в программировании и обработке данных, знания, полученные ранее (математика и алгоритмы машинного обучения), не находят применения и постепенно улетучиваются.

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

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

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

В случае с математиком всё сложнее. Студент старших курсов или аспирант мехмата, ВМК (вычислительной математики и кибернетики) или другого похожего факультета при желании может легко изучить основы программирования за пару месяцев. Если же под словом «математик» мы подразумеваем человека, только что зазубрившего несколько десятков математических формул на курсе теоретического машинного обучения, ему будет тяжело. Пока он будет становиться Junior-программистом, абстрактные знания из мира математики забудутся. Такой сценарий мы как раз описали в начале статьи.

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

Для врача, например, нормально раз в три года проходить профессиональные трёхнедельные курсы. Для дата-сайентиста это неприемлемо — за три года как профессия, так и технологии могут сильно измениться. Поэтому приходится развиваться постоянно и во всех направлениях.

Начинающему специалисту такое развитие доступно не сразу. Для начала нужно освоить что-то простое — то, что в дальнейшем будет постоянно встречаться в работе и не забудется. От начинающих можно часто услышать такие фразы: «Знаю, как работает алгоритм, но не могу его запустить», «Почему я раньше не изучил pandas и sklearn?», «Оказывается, с матрицами в numpy работать проще простого». Из этих фраз понятно одно: навыки работы с библиотеками для дата-сайентиста очень важны.

Резюмируя всё вышесказанное, можно сделать следующий вывод: оптимальный путь обучения начинающего дата-сайентиста — top-down. Если подобрать близкое выражение на русском языке — от простого к сложному, а если перевести максимально близко по смыслу — от верхнеуровневого к низкоуровневому. Такой подход к обучению позволяет почти сразу начать делать что-то своими руками, постепенно углубляя понимание и повышая свой профессиональный уровень.

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

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

Самоизоляция закончилась, а значит — самое время освоить новую профессию, чтобы уверенно смотреть в будущее при любых обстоятельствах! Мы хотим помочь вам и с 1 по 31 августа 2020 г. дарим скидку 40% почти на все программы обучения GeekBrains. Будьте здоровы и успешны! :)
программированиеdata-science
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!
Posts popup