Основы машинного обучения за неделю

Можно ли получить навыки машинного обучения за неделю? Да!


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

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

machine_learning

Перед тем, как мы начнем…

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

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

В качестве старта Харальд выбрал модуль Scikit Learn на питоне. Это позволяло использовать огромное количество различных встроенных алгоритмов и, соответственно, сократить код до нескольких строк.

Понедельник: учимся на практике

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

Sentdex_machine_learning

Отличительная особенность Sentdex’а – полное погружение в каждый аспект сбора информации. Чем больше вы учитесь, тем яснее понимаете, что поиск и подготовка информации занимает куда больше времени, чем само машинное обучение. Поэтому придется научиться писать скрипты для блуждания по интернету в поисках необходимых данных, чтобы исполнить свои гиковские мечты.

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

Однако, если вы уже знакомы с технологиями сбора информации, уроки Sentdex’a могут показаться вам скучноватыми, поскольку довольно много времени он уделяет именно написанию таких скриптов. В таком случае курс на Udacity может быть более подходящим вариантом.

Вторник: решаем реальные задачи

Во вторник Харальд решил оценить, что уже может сделать на основе полученных знаний. Как раз в это время Банк Англии, в котором работает его друг, проводил соревнование по визуализации данных. Объединившись они приступили к анализу доступных баз данных. Выбор пал на результаты опросов в области ведения домашнего хозяйства. Это ежегодный опрос, который банк проводит, чтобы узнать мнение своих клиентов относительно различных денежных вопросов. Целью исследования было определение пола клиента на основе уровня его образования, дохода и возраста с помощью машинного обучения.

Харальд провел несколько часов за чисткой информации и определением подходящего алгоритма для решения проблемы (для этого он использовал карту Scikit Learn).

machine_learning_data_base

По завершении работы компьютер успешно определял пол 63% клиентов. Не самый впечатляющий результат, однако это, очевидно, была не просто «угадайка», которая дала бы 50% попаданий.

Результат, даже такой, даст вам мотивацию продолжать заниматься кодингом, поэтому, как только вы овладеете основами Scikit Learn, обязательно попробуйте сделать что-то подобное.

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

Среда: снова в начало

Поиграв с разнообразными модулями Scikit Learn, Харальд решил с нуля написать алгоритм для описания линейной регрессии.

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

машинное_обучение_код

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

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

Четверг: время соревнований

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

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

Kaggle_ml

Из курса Bag of Words вы узнаете все, что необходимо сделать для того, чтобы участвовать в соревнованиях. Бонусом к этому является краткое введение в Обработку Естественного Языка. Сам Харальд признается, что после прохождения обучения он заинтересовался этой темой намного сильнее, чем раньше.

Пятница: снова в школу

В пятницу Харальд продолжил заниматься на Kaggle и начал курс на Udacity по машинному обучению. Этот курс намного проще, чем его аналог на Coursera, поскольку не затрагивает детальное описание алгоритмов. К тому же его изучение гораздо практичнее в связи с тем, что вы освоите Scikit Learn. Эту технологию куда удобнее использовать при решении реальных задач, чем писать алгоритмы с нуля в Octave, как это сделано на Coursera.

coursera_ml

Дальнейший путь

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

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

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

Удачи!

 

Оригинал статьи на Iamwire доступен по ссылке.

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ