Почему машинное обучение?

В марте 2016 года было много шума вокруг программы AlphaGo от Google, где чемпион мира Ли Седол принял участие в игре го, настольной игре, о которой я понятия не имел. AlphaGo выиграла серию из 5 игр 4–1 у Седола. В чем вся суета? - подумал я про себя, как программиста, - Закодируйте правила игры в программу и принимайте наилучшее возможное решение на каждом шагу. Но это было иначе. Го считалось одной из самых сложных игр для обучения на компьютере. Компьютеры не уступают лучшим игрокам в самых разных играх: Отелло, Эрудит, нарды, покер и даже Jeopardy. Но не иди. Еще в 2014 году автоматизация Go на уровне экспертов оставалась одной из величайших нерешенных загадок ИИ.

Очевидно, люди из Deep Mind, которые разработали AlphaGo и позже были приобретены Google, обучили компьютерную программу, чтобы научить себя Go. Они явно не закодировали правила игры в программе, а запрограммировали ее изучать игру методом проб и ошибок. Они назвали это глубоким обучением с подкреплением. Это считалось грандиозным событием. Для меня все звучало как ракетостроение.

Произошел внезапный всплеск статей об искусственном интеллекте и машинном обучении. Ходили разговоры о сверхразумных ботах, отнимающих у нас все рабочие места. Илон Маск даже назвал ИИ самой большой экзистенциальной угрозой человечеству !! Это правда? Как мир к этому пришел? Чего еще можно достичь с помощью машинного обучения? Могу ли я использовать это в своей работе? У меня было так много вопросов. Поэтому я решил научиться достаточно, чтобы понимать все это.

Так с чего же начать?

Не тратьте время на поиски и пройдите этот курс на Coursera. Это вводный курс по машинному обучению. Начиная с линейной регрессии, курс постепенно знакомит вас с продвинутыми темами машинного обучения. Содержание курса разделено на 10 недель. Каждую неделю включают видеолекции продолжительностью около 2 часов и задание, которое может занять до 3 часов в зависимости от вашего понимания материалов курса. Курс предназначен для самостоятельного изучения, и вам не нужно придерживаться недельного графика. Я прошел курс за 2 недели (не работал и в результате у меня было много свободного времени).

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

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

Помогло ли прохождение этого курса?

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

Что дальше?

Этот вопрос на Quora служит очень полезным руководством по более сложным темам, которые можно продолжить после вводного курса.

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

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

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

Удачного обучения :)