Я закончил в начале февраля курс Machine Learning Стэнфордского университета, лекции в котором читал Andrew Ng (один из создателей Coursera). Также попробовал начать курс Машинного обучения от Яндекс и Высшей школы экономики и закончил 4 из 6 недель первого курса специализации Machine Learning Вашингтонского университета. Попробую сравнить свои впечатления, расписать плюсы и минусы. Сразу скажу, что, в целом, плюсы перевешивают минусы. Заранее извиняюсь за то, что написано суховато, лучше не получилось ))
Итак,
курс Machine Learning от Andrew NgДает представление о том, как устроены алгоритмы машинного обучения без сложных теоретических выводов. Для понимания курса достаточно знаний линейной алгебры (умножение матриц, дифференциальное исчисление поможет, но не обязательно) и английского. Практическая часть выполняется в Matlab или Octave (бесплатный аналог Matlab без графического интерфейса). Практика нацелена на усвоение алгоритмов машинного обучения. В результате, после прохождения каждой темы, получается хорошо понимать какие есть плюсы, минусы каждого алгоритма и в каком случае конкретный метод стоит применять. Курс отлажен, на любые вопросы можно найти ответ либо в Wiki, либо на форуме - отвечают быстро, даже в выходные, не круглые сутки, конечно, а когда в США день.
Минусы курса:
- у лектора странный «шепелявый» акцент, видимо азиатский, Andrew Ng провел детство в Гонконге и Сингапуре, субтитры есть, но совпадают где-то на 95%;
- для практической работы курса недостаточно, так как нужно знать больше методов и уметь работать с Python и соответствующими библиотеками к нему;
- моего английского не всегда хватало, чтобы понять какой ответ правильный в тестах к теоретической части.
Курс Машинного обучения от Яндекса и ВШЭЛекции читает на русском языке Константин Вячеславович Воронцов, практические задания выполняются на Python и близки к практическим задачам data scientist. Лекции Константин Вячеславович читает довольно безэмоционально - сложно удержать внимание и не заснуть. К сожалению, на данный момент, курс сырой. Требования к слушателям слишком мягкие - не соответствуют действительности. Реально, для выполнения практических заданий, нужно иметь опыт решения более простых задач на Python в этой области, нужно уметь работать с библиотеками. Вот что написано на странице курса о том, что нужно знать и уметь:
«Слушателю нужно знать об основных понятиях математики: функциях, производных, векторах, матрицах. Для выполнения практических заданий потребуются базовые навыки программирования. Желательно знать Python.»
То есть, если выразить простыми словами, то получится что-то вроде: любой человек с математическим образованием и минимальными навыками программирования может пройти этот курс, реально все не так.
Минусы курса:
- Неверные требования к слушателям. Из-за этого я не смог заранее подготовиться к курсу;
- Неинтересная подача лекций;
- Лекции слабовато связаны с практическими заданиями, в самих лекциях нет примеров на Python;
- Слушатели постоянно находят ошибки в практических заданиях, в финальном задании тоже...
- На выполнение практических заданий нужно намного больше времени, чем указано на страницах курса - нужно 8-20 часов, указано 3-5;
- Неудобная загрузка ответов к практическим заданиям - нужно загружать текстовые файлы с ответами.
Предполагаю, что если пройти этот курс, то появится возможность самостоятельно выполнять задания на kaggle.com (сайт, на котором соревнуются специалисты по машинному обучению).
Я пока прервал обучение на этом курсе, возможно, позже вернусь, чтобы выполнить практические задания и узнать о тех методах, о которых не говорилось в курсе Andrew Ng.
Специализация Machine Learning от Вашингтонского университетаСостоит из 6-ти курсов, каждый где-то по 6 недель. Читают на английском попеременно Carlos Guestrin и Emily Fox. Теоретическая часть представлена слабее чем, в двух других рассматриваемых курсах, но мне ее достаточно. Практическая часть выполняется в iPython notebook с помощью платной библиотеки GraphLab (для обучения можно получить бесплатную лицензию). Практика мне очень нравится, последовательно проводят по всем элементам, что очень хорошо подходит для работающего человека. При выполнении самостоятельных заданий мне очень редко нужно чем-то пользоваться, 2-3 раза искал ответы на форуме, 1 раз в Гугле искал реализацию части функции, которую нужно было написать. Думаю после этого курса я смогу сам освоить другие библиотеки (Pandas и NumPy, на пример). Минусы нужно выискивать, самым большим, наверное, является то, что при сдаче теоретической части, бывает, в вопросах перефразируют предложения и моего английского недостаточно, чтобы понять, о чем там вообще написано и какой ответ правильный в тесте, а какой - нет.
P.S. Уровень моего английского, на данный момент,
Preliminary, тест проходил
здесь.