12 правил, которые я усвоил как инженер по машинному обучению


Оглавление (нажмите, чтобы открыть):

12 правил, которые я усвоил как инженер по машинному обучению

8(495)912-63-37
gmc@edu.mos.ru

Специалист по машинному обучению

Специалист по машинному обучению – это специалист, эксперт в области искусственного интеллекта. В его задачи входит составление алгоритмов, по которым машина, компьютер, «думает»: анализирует полученную информацию, выстраивает причинно-следственные связи, делает логические заключения и выводы, производя и усваивая новую информацию, совершенствуя собственный «мыслительный» процесс. Работа таких специалистов предполагает наличие отличной логики, аналитического мышления, умения выстраивать логические цепочки, работать с информацией, а также навыков программирования.

Специалисты по машинному обучению востребованы в самых разнообразных отраслях. Уже сейчас есть автомобили с некоторыми навыками беспилотных. Ошибки, безусловно, ещё случаются. Google идёт по пути накопления огромнейших выборок, большое количество их машин каждый день ездят, собирают информацию, выявляют краевые случаи ошибок, и специалисты по машинному обучению всё время их дообучают. Медицина — также одно из важнейших направлений для машинного обучения. Представьте, что вас обследует не один врач-человек, а объединённое экспертное мнение всей медицины, которая объединяет экспертизу и статистику со всего мира.

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

Как выучить машинное обучение: книги, курсы, подходы — отвечают эксперты

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

Александр Дроздов , директор по инновациям компании «Иннодата»

Если вы решили начать изучение машинного обучения, то в вашем распоряжении есть множество ресурсов. Это и online-курсы (Coursera, Udemy, Udacity и т. д.) и комбинированные online-/offline-курсы (netology, ВШЭ, Яндекс ШАД и т. д.) и большое количество литературы: «Introduction to Machine Learning with Python: A Guide for Data Scientists», «Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems» и т. д.

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

Татьяна Зобнина , ведущий разработчик систем машинного обучения NAUMEN

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

Так или иначе, даже если профильное базовое образование в области математики забыто, придётся вспомнить всё или почти всё в рамках онлайн-курсов по машинному обучению. На сайте Coursera достаточно много отличных курсов, с которых можно начинать изучение машинного обучения, например базовый курс «Машинное обучение и анализ данных», подготовленный совместно МФТИ и компанией «Яндекс». Или «Открытый курс по машинному обучению» от сообщества Open Data Science (ODS). Тем, кто «уже в теме», советую пройти курс «Advanced Machine Learning Specialization» от ВШЭ, а далее рекомендательная система Coursera подскажет вам полезные курсы, которые могут вас заинтересовать.

Важной составляющей успешного развития в области машинного обучения является хорошее владение английским языком, так как большая часть исследований в данной области публикуется на нём. Интересные разработки в области нейронных сетей от OpenAI, Google и Facebook также публикуются на английском языке. Тем не менее, важно также читать современную литературу по машинному обучению, выходящую на русском языке. Наиболее интересные издательства — это «ДМК Пресс» и O’Reilly, которые, наверное, знакомы многим программистам, так как публикуют достаточно много литературы, связанной с разработкой на различных языках программирования.

Не стоит забывать про различные соревнования по машинному обучению. Наиболее популярной площадкой является Kaggle, а в русскоязычном сегменте довольно популярен Boosters. Соревнования по машинному обучению помогут «добрать» и совершенствовать экспертные знания в конкретных областях машинного обучения, таких, например, как машинное зрение и обработка естественного языка. Не потеряться в море информации поможет общение с единомышленниками и профессионалами в данной области в рамках Slack-сообщества ODS. В этом сообществе можно найти массу полезной информации в различных областях машинного обучения, задать вопрос, на который Google не смог ответить, а также найти работу.

Михаил Сичалов , ведущий разработчик программного обеспечения Тверского технологического центра Accenture

Для начала определитесь с задачей, которой вы хотели бы заниматься. В зависимости от вашего интереса это могут быть: компьютерное зрение, обработка естественных языков (NLP), интеллектуальный анализ данных, предсказательный анализ и т. д.

Почти каждое из этих направлений — отдельная область знаний, требующая определённой подготовки — математической и инженерной.

После того, как путь выбран, поищите открытые университетские курсы по соответствующему направлению. Из своего личного академического опыта поделюсь полезными, на мой взгляд, ресурсами.

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

Для тех, кто хочет получить базовое представление о том, что такое машинное обучение, полезным окажется курс от Эндрю Ына (Andrew Ng) на Coursera.

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

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

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

Георгий Бабаян , CEO Elbrus Coding Bootcamp

Чтобы освоить машинное обучение, не обязательно бросать все дела, год готовиться к ЕГЭ, и тратить 4–6 лет в университете. К тому же заведений, которые готовят хороших специалистов по данному направлению, пока что очень мало в нашей стране. Если вы чётко решили для себя, что хотите изучить эту тему, возможно, хотите стать аналитиком, работать с большими данными, разрабатывать искусственный интеллект — вы сможете достичь поставленных перед собой целей в достаточно малые сроки.

Сейчас есть огромное количество ресурсов в открытом доступе в интернете. Мало кто может начать изучение новой для себя области с чтения занудной документации инструментов разработки и аналитики. Однако люди в основном очень хорошо воспринимают визуальную информацию, поэтому наиболее популярный и эффективный вариант — это изучение видеокурсов на Coursera, Udemy, YouTube и прочих платформах. К тому же, чтобы начать работать с машинным обучением, вам даже не обязательно разбираться в матанализе, дифференциальных уравнениях, иметь глубокие познания статистики и т. д. Вы можете использовать уже реализованные алгоритмы, разбирать их самостоятельно по маленьким кусочкам, советоваться с людьми на форумах, можно и просто использовать готовые функции, не разбираясь в их устройстве, хотя это и не очень правильный подход.

Лучше всего для работы с машинным обучением подходит язык Python. Сообщество вокруг языка очень развито, разработано множество инструментов и библиотек для аналитики на Python. К тому же его часто рекомендуют как первый язык к изучению, так как он достаточно прост для понимания.

Анна Воеводская , эксперт по машинному обучению «Инфосистемы Джет»

Если у вас есть время и возможность пойти в магистратуру — используйте этот шанс. В России хорошую репутацию завоевали ВШЭ и Сколтех. Там вы получите систематическое образование.

Если не хочется в магистратуру, можно пройти курсы. Достойные программы у ШАД, DMIA, CSC. Все три есть в офлайн-варианте: ШАД и DMIA в Москве, CSC в Петербурге. В ШАД и CSC также реализован вариант удалённого обучения, в DMIA он планируется.

Если вас интересует исключительно онлайн, то, конечно, есть смысл выбрать требуемое на Coursera. Что это может быть?

Machine Learning — базовый курс по машинному обучению от Andrew Ng, одного из сооснователей Coursera. На мой взгляд, у курса ровно один минус — код нужно будет писать на MATLAB. Если это вас не смущает, то обязательно берите.

Введение в машинное обучение — тоже базовый курс, но уже на русском и на Python, от Константина Воронцова, профессора кафедры интеллектуальных систем ФУПМ МФТИ.

Deep Learning Specialization — это уже целая специализация по нейронным сетям от Andrew Ng. Специализация неспешная, но глубокая. Особенно мне полюбился третий курс, где Эндрю рассуждает о том, как надо вести исследование в области глубокого обучения. Но его советы могут пригодиться и в классическом ML.

Advanced Machine Learning Specialization — курс от российских ребят. Он уже поглубже: там и про байесовскую статистику, и про Natural Language Processing, и про компьютерное зрение.

Кстати, про статистику. Чтобы ставить эксперименты и правильно считать корреляции, вам нужно знать статистику. Есть прекрасный курс уже на Stepik по основам статистики. Рекомендую. А если вам совсем лень, то книжка «Статистика и котики» вас спасёт. Маленькая, с наглядными картинками — читается за пару часов.

Что почитать?

«Python. К вершинам мастерства» (и вообще обратите внимание на издательство «O’Reilly»).

«Глубокое обучение. Погружение в мир нейронных сетей».


А ещё стоит читать Internet Archive — там всегда много интересных публикаций.

Если вас интересует короткий путь, то можно почитать этот Телеграм-канал, в котором просто и понятно разбираются свежие статьи.

Где потренироваться?

Мир машинного обучения богат на разного рода контесты и хакатоны.

Онлайн-площадок много, расскажу немного о самой известной — Kaggle. Там организуется множество соревнований на любой вкус. Ещё она хороша тем, что участники могут выкладывать решения (так называемы кернелы) и есть возможность посмотреть, как эту задачу решают другие.

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

Также существуют смешанные варианты — онлайн и офлайн. Если выбирать один такой хакатон и именно в России, то я, конечно, посоветую RAIF Hackathon (я была одним из организаторов и хорошо знаю, как устроено это мероприятие). Изюминка в том, что вы анализируете данные тех компаний, представители которых находятся совсем рядом с вами. А потом слушаете лекции, например, того же самого Константина Воронцова, чей курс уже упоминался.

И конечно, во всех этих соревнованиях есть ещё приятный бонус в виде денежного вознаграждения победителю (и славы, куда же без неё).

Людмила Дежкина , Solution Architect, Machine learning & AI, DataArt

Знакомство с машинным обучением предлагаю начать с изучения того, из чего оно состоит. Python, математика, алгоритмы, глубокое обучение, компьютерное зрение и обработка естественных языков — основные составляющие того, что принято относить к machine learning. Давайте остановимся на каждом пункте по порядку.

Мастер Йода рекомендует:  Как кодить на JavaScript в 2020 Тренды, тенденции, предсказания

Python

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

Python — один из самых быстроразвивающихся языков, и именно на нём построен целый экомир Data Scientist.

Зачастую на собеседованиях можно встретить вопросы по следующим библиотекам:

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

Из книг достаточно сложно что-то посоветовать, но на рабочем столе есть две:

  • Wes McKinney, «Python for Data Analysis»;
  • Francisko Blanko, «Learning SciPy for Numerical and Scientific Computing».

Математика

Математика — сложный пункт, который многие могут оспорить. Я считаю, что базовые знания — линейная алгебра и статистика — маст хэв хотя бы на элементарном уровне.

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

  • абсолютно бесплатный курс от создателей Kaggle;
  • книга о статистике, которая скорее может использоваться как справочник;
  • сайт о математике вообще для всех, но я бы оставила его здесь для любителей линейной алгебры;
  • курс от MIT для любителей математики и чего-то посложнее.

Из книг, которые лежат у меня на столе:

  • Trevor Hastie, Robert Tibshirani, Jerome Friedman «The Elements of Statistical Learning Data Mining, Inference, and Prediction»;
  • Introduction to Probability, хоть я и не являюсь поклонницей John N. Tsitsiklis.

Алгоритмы

Чем больше у вас алгоритмов, тем разнообразнее и точнее вы сможете решать задачи.

Лучший курс для новичков уже ни один год — от AndrewNG. Он захватывает и нейронные сети, и базовые понятия, однако внутри используется Octave, а не Python. Направлен больше на теорию, чем на практику. Объяснения на грани фантастики, и порог вхождения определённо низкий.

Я брала этот курс, но любой курс Кирилла Ерёменко поражает простотой и насыщенностью материала. При помощи этого курса можно быстро покрыть всё вышеизложенное в списке и ещё много чего. В нём мало теории, но после окончания у вас останется куча практического опыта.

Я постаралась собрать наиболее общий список алгоритмов, чтобы лучше изучить этот раздел ML:

Basic Machine Learning Algorithms:

  • Linear Regression;
  • Logistic Regression;
  • Decision Trees;
  • KNN (K- Nearest Neighbors);
  • K-Means;
  • Naïve Bayes;
  • Dimensionality Reduction.
  • Random Forests;
  • Dimensionality Reduction Techniques;
  • Support Vector Machines;
  • Gradient Boosting Machines;
  • XGBOOST.

Глубокое обучение

Deep Learning — всевозможные архитектуры нейронных сетей. Я видела AI-специалистов, которые предпочитают ограничиваться ML и зачастую не выходят за рамки определённых алгоритмов. Поэтому начать без этого пункта не то чтобы просто, а, скорее, нужно. Но для людей, которые не знают, о чём речь, в этом пункте скрыта вся романтика.

Посоветовать что-то конкретное тяжело. Зачастую люди могут специализироваться на архитектуре одной конкретной сети. Общий обзор можно получить из курса Кирилла Ерёменко.

Компьютерное зрение


Computer Vision — отдельный мир в мире ML. Ну, почти отдельный — здесь кроется немного другая математика, немного другие алгоритмы и немного другие базовые знания.

Моё знакомство ограничилось следующим:

  • David A. Forsyth, «Computer Vision Modern Approach» — хотя почти уверена, что сейчас есть книги намного проще и лучше. Математика там достаточно сложная и уровень объяснений нетривиальный;
  • OpenCV — банально, но здесь есть хорошая документация с очень хорошими примерами.

Обработка естественных языков

Многие считают, что нет начинающего Data Scientist без проекта, связанного с NLP (Natural Language Processing). По собственному опыту могу сказать, что это раздел на любителя. И им стоит заниматься в случае страсти к филологии.

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

Елена Герасимова , руководитель направления Data Science в «Нетологии»

Машинное обучение стало прорывом в аналитике: благодаря ему наконец получилось работать с неструктурированными данными — изображениями, звуками, текстом и так далее.

Для начала, новичку неплохо будет определиться, кем он может быть в команде проекта машинного обучения:

  • Data scientist. Знаток бизнеса. Разрабатывает модели для решения прикладных задач проекта или заказчика;
  • ML Researcher. Исследователь. Сосредоточен на математической стороне вопроса. Разрабатывает новые подходы для решения сложных, часто абстрактных задач;
  • Algorithms dev/engineer. Разработчик. Пишет код и алгоритмы, совершенствует их для ускорения и оптимизации процесса.

Выделяют и другие роли: аналитика данных, devops, системного аналитика, data engineer — но все они являются пользователями и заказчиками результатов работы машинного обучения, а не применяют его напрямую.

Чтобы перейти в Machine learning, нужно понять, как работают базовые алгоритмы, изучить реальные кейсы. Если хотя бы на начальном уровне знаете Python, разобраться будет проще. Владение английским языком помогает выиграть 1–2 года у тех, кто ждёт выхода официальной документации или перевода книг.

Программа-минимум для человека, который хочет разбираться в машинном обучении (учиться примерно 8–12 мес):

  • работа с инструментами обработки данных Pandas, SQL, Hadoop, DWH и другими, чтобы доставать данные;
  • разбор решений задач оптимизации — градиентный спуск и аналоги — для обучения моделей;
  • теория вероятностей и статистика, чтобы понимать полученные результаты, значимость моделей, распределения, ЦПТ, интервалы;
  • основной язык программирования Python и библиотеки для машинного обучения, например Pandas, Scipy, Numpy и другие;
  • введение в математику, сильные алгоритмы и ансамбли и принцип их работы в жизни.

Список книг, на которые стоит обратить внимание:

  • «Numsense! Data Science for the Layman», Annalyn Ng, Kenneth Soo. Поможет вникнуть в основы DS без математической сложности, разобраться в теме при помощи наглядных иллюстраций;
  • «Doing Data Science», Кэти О’Нил, Рэйчел Шатт. Одна из множества книг супер-популярного издательства. Помогает систематизировать знания об основах Data Science;
  • «Python и машинное обучение», Себастьян Рашка. Книга идеально подходит для тех, кто хочет погрузиться в мир прогнозной аналитики и машинного обучения.

Короткие видео про развитие вкуса и вдохновение красотой и универсальностью математики: раз и два.

Бесплатный онлайн видео-курс Академии Хана про базовые понятия статистики (совокупности, выборки, ЦПТ, сравнения средних и т. д. — не обязательно быть в них спецом, но базовое понимание развить стоит ещё до обучения на курсах).

Если вы грезите соревнованиями Kaggle или просто ищете датасеты для обучения моделей, то не проходите мимо их раздела с микро-курсами.

Дамир Заляев , старший менеджер по разработке ПО компании ICL Services

Самый быстрый способ выучить машинное обучение — это погрузиться в решение конкретной задачи и по ходу дела заполнять все пробелы в знаниях. Например, выбрать задачу на платформе онлайн-соревнований Kaggle, где представлены задачи разной сложности из разных областей. Начать можно с обучающих соревнований. Если не понятно, как подступиться, то можно начать с изучения чужих решений. Также можно почитать форум или попросить совета у других участников. Стоит отметить, что Kaggle помимо всего прочего предоставляет и бесплатные вычислительные мощности для решения задач. Так что Data Science можно заниматься даже со смартфона в любую свободную минуту. Главное, чтобы был интерес и желание.

Мария Горькова , эксперт в области IT-разработок

Последние несколько лет тема машинного обучения очень популярна. Её можно увидеть в вакансиях, блогах компаний, о ней пишут статьи и руководства, ей интересуются разработчики. Этот интерес понятен и закономерен: хочется освоить новый интересный пакет знаний, прокачать себя и своё резюме, стать более востребованным и высокооплачиваемым специалистом.
Часто задаваемый вопрос — как всё это выучить?

Ответ зависит от цели, которую ставит перед собой программист. Если задача — получить общее представление о предмете, узнать про основные инструменты и научиться ими пользоваться, то можно воспользоваться онлайн-курсами. Например, на платформе Coursera есть целая специализация из 6 курсов от Яндекса и МФТИ. Материал там изложен качественно и понятно, а интересные практические задания помогают его усвоить. Если этот курс покажется сложным из-за матаппарата (впрочем, используемого в минимально необходимом объёме), можно найти более простой курс на этой же платформе. И в любом случае, для обучения понадобятся хотя бы базовые навыки программирования на Python, так как он и набор библиотек Scikit-learn — сегодняшний стандарт в практике машинного обучения.

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

Илья Калагин , руководитель центра когнитивных технологий «АйТеко»

Доля проектов с применением искусственного интеллекта и машинного обучения ежегодно растёт, и скорость этого роста только увеличится. Рынок испытывает острую нехватку специалистов, что отражается на порядке зарплат в отрасли и ситуации в целом. Молодые люди, привлечённые высокой востребованностью и уровнем компенсаций, видят рекламные объявления онлайн-курсов с обещанием сделать из них Data Scientist за 2–3 месяца, и записываются без сомнений.

В первую очередь стоит опровергнуть распространённое заблуждение, что за 2–3 месяца можно стать Data Scientist. На старте освоения специализации важно осознать, что это долгий путь, и он не сводится к умению строить модели и работать с Kaggle. В приоритете — глубокое понимание работы с данными: определение их структуры, визуализация и анализ. То есть основа всему — системное качественное образование в фундаментальных дисциплинах: линейной алгебре, статистике, теории вероятностей, лингвистике и т. д.

Работа в реальности сильно отличается от опыта решения задач в Kaggle или на хакатонах: редко мы имеем дело с чистыми, качественными и подготовленными данными. Kaggle — это хорошо, но надо отдавать отчёт, что применяемые там сложные алгоритмы, ансамбли моделей в реальной практике часто не работают или работают не так. В жизни нам подчас важнее скорость обработки, которую при подобном подходе обеспечить сложно. На одном из хакатонов призовое место досталось команде, которая случайно и незначительно увеличила точность за счёт введения поля id, но в жизни это ни на что не влияет и было бы удалено за ненадобностью.

Такой фрагмент можно написать, посмотрев небольшое видео или прочитав статью. Но это не значит, что вы стали специалистом и приобрели требуемые навыки. Стать им можно только благодаря опыту, наставничеству и участию в реальных проектах. После 2 лет обучения с погружением в практику, а не через 2–3 месяца пассивного изучения курсов, мы получаем хорошего Junior Data Scientist. Если на входе у человека есть подобное понимание профессии, то он сможет правильно построить обучение и карьеру. И очевидный совет — уже на этапе освоения специальности ищите возможность практики.

Теперь онлайн-курсы и книги, которые будут полезны:

  1. Machine learning. Онлайн-курс Стэнфордского университета на платформе Coursera. Преподаватель — легендарный Эндрю Ын (Andrew Ng), один из самых известных экспертов в сфере искусственного интеллекта. Многие считают этот курс устаревшим. Я согласен, но это основа основ машинного обучения; классический курс, обязательный для изучения и непростой для прохождения. Сам его прошёл с удовольствием: требуются терпение и усилия, чтобы дойти до конца, но он формирует необходимую базу для дальнейшего развития. И также рекомендую более свежий курс этого преподавателя — Deep Learning Specialization.
  2. Школа анализа данных Яндекса. Из русскоязычных ресурсов могу посоветовать онлайн-курсы ШАД в партнерстве с МФТИ в рамках специализации «Машинное обучение и анализ данных». Это около года системного обучения, но стоит помнить, что полученные знания должны быть связаны с практическим опытом решения задач.
  3. Machine Learning A-Z™: Hands-On Python & R In Data Science. Один из популярных и высоко оценённых англоязычных курсов. Состоит из десяти частей, в которых рассматривается обработка данных, регрессия, классификация, кластеризация, обучение с подкреплением, обработка естественного языка и глубокое обучение. Базовый курс, который однозначно стоит вложенных усилий.
  4. «Прикладное машинное обучение c библиотеками Scikit-Learn и TensorFlow». Книга Орельена Жерона (Aurelien Geron) — отличное введение в теорию и практику прикладного машинного обучения. С её помощью можно изучить широкий спектр методов — от линейной регрессии до глубокого обучения. В пособии множество качественных примеров решения задач с применением библиотек Scikit-Learn и TensorFlow.
  5. «Глубокое обучение на Python», Франсуа Шолле. Автор предлагает более 30 примеров программного кода с подробными комментариями и рекомендациями, что делает книгу ориентированной на решение практических задач. В примерах используются фреймворк глубокого обучения Keras, написанный на Python, и библиотека TensorFlow в качестве внутреннего механизма.

С чего начать карьеру в машинном обучении?

Решил попробовать себя в области машинного обучения и/или искусственного интеллекта.
Прослушал (и сдал) пару курсов на coursera.

  • 1. Machine Learning от Эндрю Ына
  • 2. Neural Networks for Machine Learning от Джефри Хинтона

Учился с удовольствием, чувствую — мое.
Теперь встал вопрос, куда двигаться дальше.


Стоит ли покупать эти сертификаты? Или это детский сад ML?
Где учиться дальше?
Посоветуйте ресурсы, где можно порешать задачки.
Kaggle для начинающего сложно. Если только подмастерьем в команду, но в кукую?
Где можно поработать стажером в СПБ (или удаленно)?
Получится ли найти работу фрилансером?

Ну и вообще, буду благодарен за любые советы.

Ex Machina: 4 перспективные профессии в IT

Data scientist в медицине

Data scientist — труднопереводимый на русский язык термин, обозначающий специалиста, который одновременно разбирается в IT (способен программировать, придумывать и решать алгоритмические задачи), математике и статистике, а также хорошо знает определенную отрасль бизнеса или науки, где и может применить вышеперечисленные знания. Аналитики данных нужны везде — от спорта (вспомним знаменитый байопик «Человек, который изменил все» — про спортивного менеджера, впервые использовавшего статистические методы при подборе бейсбольных игроков в команду) до транспорта и добычи полезных ископаемых. По расчетам McKinsey Global Institute, к 2020 году в одних только США понадобится дополнительно 190 тысяч профессионалов такого рода.

Мастер Йода рекомендует:  Бесплатные жирные ссылки или как поднять тИЦ и PR сайта

Получив подобное образование, не прогадаешь в любом случае, но одно из самых перспективных направлений, где data scientist может приложить свои способности, — это медицина, в которой сейчас происходит много громких прорывов (от редактирования генов до 3D-печати органов). Важную роль играет и «революция больших данных» — благодаря разным гаджетам и приложениям исследователи и врачи-диагносты могут быстро собирать и анализировать огромное количество информации. Человек, способный управлять такими базами данных и ориентироваться в них, точно не останется без работы.

Где учиться:

  • Подборка зарубежных магистерских программ.
  • Школа аналитики данных «Яндекс».
  • Технопарк Mail.ru, курс «Алгоритмы и структуры данных».
  • Магистерская программа «Науки о данных» ВШЭ.

«Конечно, в зарубежных вузах подобных образовательных программ гораздо больше (как и вакансий для специалистов по анализу данных в медицине), чем у нас. В России магистратуру по анализу данных в медицине и биологии предлагает ВШЭ, в „Сколтехе“ есть магистерские программы по анализу данных и биомедицинским технологиям, интернет-портал Medstatistic.Ru открыл свой курс по статистическому анализу данных в медицине, а мы в Welltory создали академию для персональных аналитиков здоровья. Что касается Запада, вот самые интересные программы, на которых студент медицинского вуза может выучиться дистанционно:

  • дистанционная сертификация Healthcare Data Analyst, проводится Bellevue College, на программе рассматривают инструменты для анализа и визуализации медицинских данных;
  • онлайн-курс Data Analytics in Health — From Basics to Business на сайте EdX, программа курса рассчитана на обучение анализу медицинских данных и использованию big data для улучшения здоровья и сферы здравоохранения;
  • магистерская программа по анализу данных в здравоохранении, колледж при технологическом университете Кларксона;
  • магистратура в университете Джексонвилля».

Компьютерный лингвист

Нам все чаще приходится искать общий язык с машинами, так что в дальнейшем, очевидно, будет активно развиваться самая «точная» ветвь лингвистики, находящаяся на стыке с математикой и IT.

Компьютерные лингвисты могут работать по нескольким направлениям. Во-первых, это разработка алгоритмов распознавания текста и речи. Такие алгоритмы могут использоваться, например, в «умных домах» и при общении с роботами (а владельцы iPhone уже сейчас могут беседовать с виртуальным помощником Siri). Тут есть, над чем поработать: человеческая речь очень сильно различается в устах разных спикеров, и компьютеру сложно ее распознавать.

Вторая крупная задача — синтез искусственной речи. Тут технологии пока тоже несовершенны: искусственно созданная речь звучит неестественно, а точная имитация интонаций, пауз и модуляций человеческого голоса требует кропотливой работы. Кроме того, компьютерные лингвисты создают системы семантического перевода — пока тексты, переведенные в Google Translate, еще режут глаз, но в будущем программы смогут заменить живых переводчиков.

Где учиться

Пока в нашей стране достаточно сильно разделены специальности, связанные с классической лингвистикой и с IT. В зарубежных вузах есть программы высшего образования по компьютерной лингвистике, но в России проще получить базовое лингвистическое образование, а затем дополнительное — в области IT:

Специалист по машинному обучению

Этот специалист учит компьютер «думать»: составляет алгоритмы, по которым машина будет усваивать и анализировать информацию, выстраивать причинно-следственные связи и делать логические умозаключения. Идея устройства искусственного интеллекта по образу и подобию человеческого привела к созданию так называемых нейронных сетей: используя алгоритмы, которые имитируют процессы, происходящие в реальных клетках мозга, можно заставить программу «учиться». Это помогает ей гибко решать сложные задачи — от распознавания лиц и перевода с одного языка на другой до составления прогнозов.

Где учиться:

  • Лаборатория нейронных сетей и глубокого обучения МФТИ.
  • Базовый курс «Аналитика с использованием машинного обучения на платформе Microsoft Azure ML», ЦКО «Специалист» при МГТУ им. Баумана.
  • Курс по машинному обучению в «ПостНаука Academy».
  • Курс «Машинное обучение и анализ данных» на Coursera (разработан МФТИ совместно с «Яндексом»).

Разработчик нейроинтерфейсов

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

Рейтинг профессий в искусственном интеллекте и машинном обучении

Если вы планируете запуск проекта, связанного с искусственным интеллектом, первым шагом будет формирование хорошей команды. Вполне вероятно, что это является наиболее сложной частью процесса, поскольку трудно найти талантов, специализирующихся в области ИИ. По данным NYTimes, во всём мире насчитывается менее 10 000 квалифицированных специалистов в этой области, и из университетов ежегодно выходит всего лишь около сотни новых кандидатов, обладающих необходимыми навыками. Ещё более усложняющим фактором является множество описаний должностных обязанностей, а также титулы, роли, навыки и технологии, используемые в отрасли. Что означают все эти термины? И как они вписываются в вашу стратегию найма талантливых специалистов по ИИ? Сотрудники англоязычного вебсайта Forbes попытались дать ответы на эти вопросы.

Инженер машинного обучения

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

Специалисты по анализу данных (Data Scientists)

Поддержка инженеров машинного обучения возложена на плечи специалистов по научному анализу данных, которые обычно не создают новое программное обеспечение, а решают дискретные проблемы, используя существующие данные для проверки моделей. Они имеют докторские степени в области обработки данных или статистики, или же опыт в области компьютерных наук, математики и физики. По словам Грега Бенсона, профессора компьютерных наук и главного научного сотрудника в занимающейся разработкой ИИ компании SnapLogic, «люди, связанные с научным анализом данных, фокусируются на алгоритмах и аналитике; они не работают с программным обеспечением». В процессе разработки алгоритмов и методов анализа, учёные также выполняют важнейшие задачи по сбору, очистке и подготовке данных, что может являться наиболее трудоемкой частью их работы. Абхи Джа, директор по расширенной аналитике компании McKesson, признает, что «трудной работой является очистка данных, а выбор модели ‑ это просто».

Учёные-исследователи / специалисты по прикладным исследованиям

Учёные-исследователи часто работают с многообещающими примерами данных, которые не были охвачены учёными-специалистами по анализу данных или экспериментируют с новыми подходами, часть из которых происходит из академических или отраслевых исследовательских учреждений. Они в большей степени ориентированы на проведение научных исследований и мало интересуются промышленным применением их выводов. Связыванием этих двух областей в одно целое занимаются специалисты по прикладным исследованиям. Они имеют опыт как в области анализа данных, так и в компьютерных науках, поэтому являются бесценными членами любой команды, занимающейся ИИ. Как объясняет Джапджит Тулси: «Они могут одновременно участвовать в научной работе и писать код. Цена хорошего специалиста по прикладным исследованиям сопоставима с его весом в золоте».


Инженер по распределённым системам

Инженер по распределённым системам ‑ это вспомогательная должность, предназначенная для решения проблем, связанных с большими массивами данных и масштабированием распределённых систем. Фред Садагхиани, технический директор компании Sift Science, работающей в сфере машинного обучения, считает сложившуюся ситуацию критической. «Вам понадобятся люди, которые понимают, как организовать распределённую систему», ‑ говорит он. «Они невероятно важны как помощь в эксплуатации и производстве этих систем».

Построение команды для проекта, связанного с машинным обучением, является нелёгкой задачей. Хотя всё больше и больше компаний обращаются к решениям на основе Искусственного интеллекта, число опытных научных сотрудников и инженеров значительно отстаёт от спроса. Точный состав команды для любого ИИ-проекта варьируется в зависимости от характера и сроков осуществления этого проекта, однако исключительно важное значение имеет опыт в связанных областях, начиная от фундаментальных исследований и анализа данных до больших объёмов программирования и производства. «Есть старая поговорка», ‑ говорит Тулси. ‑ «Она гласит, что невозможно хлопать одной рукой. В этом случае вам нужно хлопать всеми тремя руками одновременно».

Профессия Data Scientist: машинное обучение

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

Первым 20 участникам курса — скидка 20%.

  • Подходит студентам без опыта
  • Преподаватели практики
  • Реальный проект для диплома
  • Зарплата от 90 000 р. в месяц

Курс идеально подойдет

Новичкам

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

Программистам

Сможете перейти в Data Science и обеспечить себе будущее. Научитесь создавать аналитические системы и алгоритмы машинного обучения, работать с нейросетями — и получите более престижную и высокооплачиваемую работу.

Менеджерам и бизнесу

Получите структурированные прикладные знания о Data Science от практиков. Научитесь использовать данные для построения прогнозов и оптимизации бизнес-процессов и переведете компанию на новый уровень развития.

Чему вы научитесь

Новые знания и навыки можно будет сразу же применять на практике.

Научитесь программировать на Python

это самый популярный язык для работы с данными.

Сможете работать с источниками данных

CSV, XML и XLSX, JSON.

Освоите визуализацию данных

и сможете разрабатывать дашборды или интерактивную инфографику.

Опробуете разные модели машинного обучения

и откроете себе двери в новые интересные проекты.

Поработаете с машинным зрением

и сможете найти себе работу в машиностроении и робототехнике.

Напишете рекомендательную систему

для реального клиента и добавите ее себе в портфолио.

Записаться на курс скидка 20% первым студентам

Программа курса

Программа курса содержит 4 основных блокa.

Аналитика для машинного обучения

Машинное обучение. Начальный уровень

Машинное обучение. Средний уровень

Получите полную программу и индивидуальную консультацию


Преподаватели

  • Валентин Пановский преподаватель МАИ, Chief Data Scientist в Skillbox
  • Михаил Овчинников ведущий инженер-программист Badoo
  • Алла Тамбовцева преподаватель НИУ ВШЭ
  • Александр Джумурат руководитель команды разработки рекомендательной системы в ivi.ru
  • Дмитрий Коробченко Deep Learning R&D, инженер и менеджер в NVIDIA
  • Алексей Мастов Deep Learning инженер в NVIDIA
  • Лидия Храмова Team Lead Data Scientist группы бизнес-моделирования в Qiwi

Как проходит обучение

Вы выполняете домашние задания и открываете доступ к новому уникальному контенту по теме. Достаточно выделить 3–5 часов в неделю.

Изучаете
тему

В курсе — полезные видеоуроки.

Выполняете домашнее задание

В том темпе, в котором вам удобно.

Общаетесь с наставником

Закрепляете знания и исправляете ошибки.

Защищаете дипломный проект

И дополняете им свое портфолио.

Ваше резюме после обучения

Аделина Ветрова специалист по машинному обучению

Ожидаемая зарплата от 90 000

Python Язык программирования общего назначения, применяется для работы с данными.

Jupyter Notebook Командная оболочка для интерактивных вычислений.

NumPy Библиотека с открытым исходным кодом для Python.

Pandas программная библиотека на Python для обработки и анализа данных.

SQL Язык программирования для работы с реляционными БД.

Matplotlib библиотека на Python для визуализации данных 2D-графикой.

SciPy библиотека для Python с открытым исходным кодом для выполнения научных и инженерных расчётов.

Scikit-Learn библиотека машинного обучения для Python.

Keras Открытая нейросетевая библиотека, написанная на Python.

TensorFlow Открытая программная библиотека для машинного обучения от Google

Ключевые навыки:

  • Python для работы с данными
  • чтение и запись данных, работа с библиотеками;
  • визуализация данных на Matplotlib;
  • работа с нейронными сетями;
  • владение методом Q-learning;
  • написание рекомендательных систем.
  • машинное обучение: регрессия, классификация, кластеризация;

Диплом Skillbox

Подтверждает успешное прохождение курса «Профессия Data Scientist: машинное обучение»

Профессия Data Scientist: машинное обучение


Стоимость обучения

Скидка 20% первым 20

Стоимость обучения 88 500

2 950 Рассрочка без первого взноса

70 800 Для первых 20 студентов

Гарантия возврата денег в течение 14 дней

Запишитесь на курс

Дата начала: 10 ноября

Осталось: 15 мест

О Skillbox

Максимально практическое обучение от лидеров digital-рынка. Курсы от компаний, работающих на реальных проектах.

После обучения вы можете трудоустроиться в эти компании или к партнёрам университета.

студентов учатся на наших курсах

студентов довольны преподавателями

выпускников получают карьерный рост

выпускников довольны курсом и результатом

Часто задаваемые вопросы

Я никогда не программировал. У меня получится?

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

Какой график обучения? Получится ли совмещать его с работой?

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

Сколько часов в неделю мне нужно будет уделять учебе?

Вы сами выбираете нагрузку и скорость, с которой будете проходить курс. Хотите — занимайтесь два часа в неделю, хотите — шесть часов в день. Но в любом случае не забывайте отдыхать.

Я могу общаться с преподавателем?

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

Действуют ли какие-нибудь программы рассрочки?

Мастер Йода рекомендует:  Более 100 полезных сервисов для разработки на все случаи жизни

Да, вы можете купить курс в рассрочку — и спланировать свой бюджет, разбив всю сумму на мелкие ежемесячные платежи.

А я точно смогу трудоустроиться?

Курс дает достаточно знаний, чтобы получить позицию Data Scientist. Конечно, многое будет зависеть и от вас самих.

Записаться на курс или получить консультацию

Появились вопросы по курсу?

Оставьте ваш номер телефона, и наш специалист свяжется с вами, чтобы дать подробную информацию.

г. Москва, метро Октябрьская,
Ленинский проспект, дом 6, строение 20

Машинное обучение. Технический пост: с чего начинать и на что обратить внимание.

Всем привет! Меня довольно часто спрашивали в комментариях к научным постам, откуда лучше стартовать в машинном обучении и анализе данных. Ну что же. Попробуем собрать воедино мой опыт и посвятить пост техническим вопросам.

0. Как вообще изучать

1. Тематические ресурсы.

2. Техническая часть.

Как вообще изучать это дело?

Любая наука двигается людьми. Каждый учёный имеет свою область интересов, поэтому надо в первую очередь определиться, что тебе интересно. Вообще, в России самый-самый главный по машинному обучению — это Воронцов Константин Вячеславович. Он написал ряд лекций, каждая из которых от «А» до «Я» всё объясняет.


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

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

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

Я походу своей деятельности занимался компьютерной лингвистикой. В компьютерной лингвистике правит бал сейчас модель word2vec. Поэтому, берём работы Tomasa Mikolova и гуглим его труды. Это даст вам необходимый минимум.

Вообще, литературы по этому делу в интернете масса. Однако,что редкость, в русскоязычном сегменте есть весьма достойный сайт. Там можно найти почти всё! Вообще, такие сайты большая редкость. Думаю, что многие вспомнят хабр. Ну там. Там больше технические моменты описываются. С точки зрения программиста, хабр вещь незаменимая, но с научной. Мне попадались там действительно удачные циклы научпопа про тематическое моделирование. Если вам надо постараться смоделировать поведение пользователя, опираясь на тематики, то рекомендую их блог. На пальцах объясняют как это сделать и почему это будет работать. Результаты экспериментов прилагаются.

В последнее время, детище Грефа стало проявлять интерес к машинному обучению. Второй год подряд проводят конкурсы с очень неплохими призовыми, а результаты публикуют здесь. Также могу порекомендовать неплохую конфу «АИСТ». ВНИМАНИЕ, её результаты идут в Scopus. То есть — неплохая возможность получить публикацию в зарубежном журнале. Примите к сведению. Помимо чисто практических интересов (публикация) там проскакивают весьма и весьма интересные работы.

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

ШАД — это бренд. Я не знаю, что там проходят точно, но я уверен, что там круто. Очень круто. Поступление бесплатное, но очень трудное. Подробнее с задачами можно ознакомиться здесь. Из онлайн курсов я бы порекомендовал мониторить stepic. Там можно выцепить весьма любопытные курсы. Между прочим, с сертификатами, что весьма приятно. И бесплатно.

Ну, тут всё просто. Идём и смотрим на hh/linkedin/stackoverflow что интересует потенциального работодателя.

2. Стэк: Big Data: Hadoop, Hive, Spark (для инженеров)

3. Python — просто маст хэв. Особенно его библиотеки для машинного обучения.

4. Желательно java

Если интересно для себя, то:

1. h20. Интуитивно просто и понятно. Я всегда использую для разных конкурсов 🙂

2. MS Azure. Детище майкрософта. Интерфейсом напоминает RapidMiner, раньше была платной, как сейчас — хз. Есть всё. В сети довольно много уроков, которые рассказывают, как этим пользоваться.

3. RapidMIner. Штука прикольная. Интерфейс довольно простой и дружелюбный. Из минусов: в бесплатной версии всего 1 гиг оперативки можно использовать, что довольно печально.

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

1. Kaggle. Самая-самая платформа для конкурсов по машинному обучению. Для сильных духом. Вообще, помимо конкурсов, можно почитать форумы, посмотреть тестовые проекты и поискать работу.

2. Гугл наш друг. Вбиваем machine learning contest и смотрим, что есть.

12 правил, которые я усвоил как инженер по машинному обучению

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

Специалисты в области машинного обучения занимаются разработкой таких алгоритмов и нейросетей. Области применения алгоритмов могут быть абсолютно разные. Компьютерное зрение, распознавание и сегментация изображений и видеопотока, распознавание текстов, прогноз событий, рекомендательные системы — все это области применения нейросетей и алгоритмов машинного обучения. В общем виде работу специалиста можно разделить на две составляющие: исследование (research) и разработка (development).

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

Чаще всего разработчики используют для таких задач Python и/или С++, а также ряд специальных библиотек/фреймворков: OpenCV, OpenCL, Caffe, Tensorflow.

Первое, что нужно оценивать — как будет подходить человек по характеру к существующей команде, и насколько сильно он интересуется выходящими работами. Ведь очень много работ публикуют, предлагают новые подходы, и возможно решение для вашей задачи уже есть, нужно за новыми статьями следить. Следующий важный момент — хорошое знание базовых основ (математика, базовые понятия машинного обучения и сверточных сетей). Дальше уже идет специализация под ваши задачи, если человек занимался нейронными сетями для распознавания речи, нельзя ожидать, что он будет все знать по машинному обучению в компьютерном зрении.

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

Вопросы для собеседования с Machine Learning инженером:

  • Какие основные задачи выполняли на проекте?
  • С какими типами архитектур нейросетей работали?
  • Какие библиотеки и фреймворки использовали?
  • Расскажите о самой интересной и сложной задаче?
  • Какое соотношение разработки и исследований было на последнем проекте? Какое соотношение интересно сейчас?

Специалист по машинному обучению — о том, как учатся компьютеры и случится ли восстание машин

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

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

IBM обучила свой суперкомпьютер Watson определять у пациентов рак на основе истории болезни и массы других показателей

Что нужно знать о machine learning, чтобы найти хорошую работу?

Автор: Рауль Шарма

Перевод: Мария Агеева, Binary District

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

Термин «искусственный интеллект», как известно, программисты и исследователи использовали ещё в 1950-х — для описания машин, способных без посредничества человека адекватно решать абстрактные задачи. А machine learning — это один из наиболее известных методов практической реализации возможностей искусственного интеллекта. Машинное обучение базируется на создании алгоритмов, обладающих встроенной способностью распознавать паттерны при анализе больших массивов данных и использовать их для самообучения.

Почему карьера в machine learning — отличный выбор?

Кейсы Netflix и Amazon наглядно иллюстрируют, насколько умными, причём именно по-человечески умными, могут быть технологии благодаря применению machine learning. Когда Netflix, словно читая ваши мысли, предлагает вам именно те фильмы и сериалы, что непременно вас заинтересуют, — за этим стоит ML. Благодаря машинному обучению Amazon столь успешно убеждает вас купить в нагрузку к приобретаемому товару ещё что-нибудь. Чтобы предложить именно те товары, которые придутся вам по вкусу, используются сложные алгоритмы, обрабатывающие терабайты данных. Попробуйте представить, сколько существует бизнес-кейсов, в которых ML может изменить статус-кво. Очевидно, что machine learning — привлекательная сфера как для тех, кто только готовится к выбору профессии, так и для тех, кто мечтает о новом витке IT-карьеры.

Гибкий подход к языкам программирования

Большинство энтузиастов machine learning волнует вопрос – учить Python или R? Для разработки программ, основанных на алгоритмах машинного обучения, действительно чаще всего применяются эти два языка программирования. Однако разработчикам, ориентированным на долгосрочный карьерный успех, такой вопрос себе задавать не стоит.

— Уникальные преимущества некоторых языков программирования облегчают решение связанных с AI проблем, а вы ведь не хотите провалить проект?

— Обладая доступом к библиотекам, не так уж сложно разрабатывать основанные на ML программы на любом языке программирования

— Некоторые из основанных на ML технологий не могут справиться с определёнными задачами, в таком случае программист должен уметь найти альтернативный вариант

— Помимо этого, появляются и новые подходы к реализации алгоритмов ML. Чтобы «оставаться в игре», нужно уметь адаптироваться к ситуации и осваивать технологию по мере того, как она меняется

Теория вероятности и статистика

Основы теории вероятности составляют ядро машинного обучения. Теорема Байеса, условная вероятность, функция правдоподобия, независимые и взаимообусловленные события — всем, кто мечтает об интересной работе в сфере machine learning, необходимо разобраться в этих элементах теории вероятности. Ведь эти концепции являются научной базой для решения проблемы неопределённости в алгоритмах машинного обучения. Математическое ожидание, медиана, мода, дисперсия, биномиальное распределение и т.д. — любой программист или специалист по анализу данных должен владеть этими концепциями, ведь иначе он не сможет проверять работу алгоритмов ML и совершенствовать их. Многие алгоритмы машинного обучения представляют из себя логичное продолжение процедур статистического моделирования.

Моделирование данных

Моделирование данных — это определение базовой структуры сложных массивов. Результативность алгоритма машинного обучения зависит от того, найдутся ли в этом массиве полезные паттерны: например, корреляция, собственный вектор, категоризация. В основе ML лежит постоянное совершенствование моделей данных. В зависимости от того, какая степень толерантности к ошибке заложена в приложении, для которого вы разрабатываете модель, принимается решение о мере точности и мере погрешности. Итеративные алгоритмы обучения должны уметь модифицировать модель в зависимости от меры погрешности. Без базовых знаний в области моделирования данных не получится разработать даже самый простой алгоритм.

Почему вам необходимо освоить библиотеки machine learning

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

— уметь выбирать подходящую модель (ближайший сосед, дерево решений, нейросеть, компиляция нескольких моделей)

— уметь выбирать подходящую для конкретного типа данных обучающую процедуру

— понимать, как гиперпараметры влияют на обучаемость алгоритма

— уметь оценивать плюсы и минусы разных подходов

Советуем энтузиастам, желающим постичь все нюансы machine learning, посетить сайт Kaggle, где собрано немало интересного материала по ML и анализу данных, включая практические задания.

Умелое обращение с данными

Важно понимать, что данные всегда важнее алгоритмов. На основе данных можно реализовать выдающуюся программу — даже если алгоритм будет базовым. Так что всем, кто хочет построить IT-карьеру, работая с ML, придётся сначала изучить управление данными, организацию данных, анализ данных и только потом погружаться в разработку продвинутых алгоритмов. Ведь программисты, специализирующиеся на machine learning, много времени уделяют преобразованию данных, это – ключевой аспект их работы.

Распределённая обработка данных

Технология machine learning сопряжена с обработкой больших массивов данных. Программисты едва смогли бы выполнять такой огромный объём работ, используя ресурсы лишь одного компьютера. Решение проблемы — распределённая обработка данных. Любой опыт в этой сфере может оказаться бесценным. Apache Hadoop и Amazon EC2 предлагают удачные решения для распределённой обработки данных, так что вам, вероятно, было бы полезно ознакомиться хотя бы с их основами.

Machine learning — единственная технология, способная обеспечить работу приложений с достаточно мощным потенциалом, чтобы произвести переворот в функционировании целых отраслей. Компании по всему миру уже вкладывают огромные суммы денег в разработку основанных на ML сервисов для внутреннего пользования. Таким образом, появляется всё больше новых вакансий, открывается широкий спектр возможностей трудоустройства. Следуйте советам, изложенным в этой статье, чтобы освоить machine learning и спланировать новый виток карьеры.

17 февраля на площадке Digital October пройдёт интенсивный однодневный курс Introduction to Machine learning, AI . Мы расскажем всё о самом перспективном инструменте для бизнеса, основанном на технологии искусственного интеллекта.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Добавить комментарий