Как стать автором
Обновить

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

Уровень сложностиПростой
Время на прочтение26 мин
Количество просмотров166K
Всего голосов 159: ↑157 и ↓2+155
Комментарии49

Комментарии 49

На первой картинке внезапно встретил "DevOps". Что-то мне подсказывает что там должен был быть "Data Scientist", например.

Картинка взята из доклада, который можно посмотреть по ссылке в описании картинки. Автор доклада действительно имел в виду девопса как часть команд, которые работают с данными и алгоритмами машинного обучения. Я бы это назвала, скорее, MLOps, но не стала портить картинку своим исправлением. Ну, а Data scientist в его терминологии - это зонтичный термин, под который попадают все специализации на картинке. Доклад очень хороший, советую посмотреть (добавлю эти слова к описанию рис. 1)

Будете ли Вы рекомендовать по нейросетям следующую книгу: Хайкин Саймон. Нейронные сети: полный курс. - М.: Издательский дом "Вильямс", 2006. - 1104.

Насколько я смогла понять из предисловия, основной текст книги был написан даже не в 2006, а в 1998 году, а в 2006 она только докатилась до России. Соответственно, и по содержанию книга выглядит на данный момент серьезно устаревшей. Может быть, она может быть полезной в каком-то очень специфическом случае, но новичкам я бы посоветовала почитать что-то посовременнее.

Спасибо!

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

Правильно ли понял, что классическое машинное обучение включает в себя, но не ограничивается нейросетями маленькой размерности?

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

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

С нуля за ноль рублей

Я конечно извиняюсь, но так не бывает. Если с конкретного нуля - то там месяцев шесть нужно чтобы вникнуть (в лучшем, самом лучшем случае, эти 6 месяцев включают стажировку/испытательный, но в среднем, я бы на такое не надеялся бы)

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

Но в целом, имхо, как минимум последовательность обучения неплохая. За конкретные курсы не скажу, но порядок наименований которые я читал звучат неплозо для вкатывания в тему.

Когда речь заходит об обучении, слишком велик фактор субъективности. Материалы есть? Они бесплатны? Значит кто угодно может с нуля выучить бесплатно, было бы желание. А срок зависит от предрасположенности, бэкграунда и, опять же, желания.

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

Про разные "нули" в конце статьи тоже упомянуто.

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

месяцев шесть нужно

Ну так рублей-то всё так же 0 ;)

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

Из вводных курсов пожалуй больше всего понравился курс который читался для НГУ Deep learning на пальцах! (dlcourse.ai)

Что 3blue1brown, что khanacademy. На какие то курсы оно не тянет. Нет целостности картины как это в основном с университетскими программами обучения. Нравится как раскрывают отдельные темы, но минус у них в том, что это так и остается отдельными темами. Да, симпатичненько, наглядненько. Но не более. Только как доп материал к тому что уже проходил.

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

За ссылку спасибо!

Основы матанализа по десятку видео по 15 минут. Хорошая шутка)))

Вполне достаточно для того, чтобы пользоваться матаном. Немножко на производные, немножко на интегралы, на производные композиций функций, на интегралы по частям и по объему, немножко на ряд Тейлора и немножко на ряд Фурье.

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

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

Отлично работает, особенно если речь о прикладном применении.

Спасибо за проделанную работу, мне до этого ещё далеко, но читать было интересно.

Я понимаю (но не разделяю) современный стиль указывать видео вместо книг, но у последних есть и множество плюсов (с минусами вместе) - так почему бы не указывать и книги? Того же Воронцова полно книг-лекций на либген.

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

Необходимые знания по математике - программа первого курса. Если выкинуть все остальные предметы и изучать вместо них ML, то года должно хватить, я думаю. Мне с физическим образованием за плечами хватило 3 месяцев чтоб вкатиться в ML, и какие-то знания дальше первого курса не помню чтоб мне пригождались.
Собственно, в Huawei берут на стажировку студентов 2-3 курсов, так что пять лет не обязательно.

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

Работодателей немного, конкуренция большая, и она будет с кандидатами физ-мат. наук и/или теми, кто имеет хороший опыт работы в прикладной области. Если на иностранном рынке, то чем российские соискатели лучше своих же доморощенных или индийских, китайских, арабских, израильских специалистов? Да ещё надо довольно хорошо понимать на слух и говорить на английском. Это вам не яндекс-переводчик включать при просмотре роликов или хотя субтитры включать. Не скажу, что редко, я и речь русскоязычных спикеров разобрать не могу - это вам не речь актёров театра и кино времён СССР слушать. Но, тут яндекс переводчик не включить к сожалению, чтобы заменить русскую речь спикера ролика речью русскоговорящего из яндекс-переводчика.

Если кто решает сейчас начать заниматься по этой программе - рассчитывайте на 3-5 лет плюс практика. Много практики. Быстрее это всё качественно не освоить.

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

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

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

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

Как студенты вылетают с первых курсов технических вузов? Так может это и правильно?

Если это работа с изображениями/текстами, то как регрессионный анализ там помогает? Ни разу им не пользовался для CV или NLP задач.
И тензорным исчислением ни разу не пользовался при обучении нейронных сетей. Всё что надо было знать, это то, что "тензор" это многомерный массив.

Откуда возникли изображения и тексты? Хотя и там регрессионный анализ востребован для очистки и трансформации данных. Тот же фильтр Калмана весьма эффективен при обработке изображений.

И тензорным исчислением ни разу не пользовался при обучении нейронных сетей.

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

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

Вероятность того, что про это будут спрашивать на собеседовании на позицию junior, стремится к нулю, хотя, конечно, исключать такого полностью нельзя (всякое попадается).
Ну да, временные ряды не самая простая тема, чтобы с нее влезать в ML. Там математики чуть больше, чем в других направлениях ML.

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

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

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

Можете для самых маленьких: что такое ML, DL, AI? Просто меняется и терминология, и профессиональные требования, и фиг поймешь, что из этого хайп и более стильные названия давно известных вещей, а что на самом деле стоит знать.

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

- Deep Learning, DL - все, что связано с глубокими нейросетями;
- Machine Learning, ML - все, что связано в принципе с самообучающимися алгоритмами, включая нейросети, но не ограничиваясь ими;
- Для того, чтобы выделить в отдельный класс именно "неглубокие" самообучающиеся алгоритмы - т.е. чтобы назвать отдельным словом ML без DL, иногда используется отдельный термин вроде "Классический ML" (также "shallow ML", "shallow learning" и тому подобное).

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

- AI - самый размытый термин, под ним подразумевают буквально всё, что угодно, что выглядит как что-то "умное".

Да благословит Омниссия таких прекрасных техножрецов, что вкладывают свои душу и разум в материалы для младших неофитов!

Спасибо, посмотрю

Отличный гайд. Спасибо!

Спасибо, посмотрю

мой кейс ML 7 лет назад, открываю deepface lab, нахожу научную статью на google scholar и без туториалов и ютуба перевожу статью, читаю, вникаю в deepfake замены лиц.
Научился менять лица, потом смотришь что это используют для мошеничества и производство п*n$ контента и забиваешь на это)

Кажется я ЦА вашей статьи. Расскажу свою точку зрения нулевого лица. Недавно заметила, что мне стало интересно заниматься алгоритмами и их программированием. Началось все с компьютерных игр, которые в игровом формате предлагают решать алгоритмические головоломки. Например, мне очень понравились "Human Resource Machine" и "7 Billion Humans". После них захотелось что-то сделать в реальном мире, близкое к программированию задачек. Первое, что пришло в голову это программируемые конструкторы, например, роботы. Пока что до роботов я не дошла, но продолжила интересоваться этой темой. И вот мне попала на глаза и откликнулась ваша подробная статья о входе в ML. Я честно села смотреть первое видео про векторы по плану из статьи. В целом это интересно для общей эрудиции, но я поймала себя на мысли, что приходится себя заставлять. Почему так происходит? Ведь мне интересна эта тема, ну вернее не именно эта тема, а её прямое отношение к теме машинного обучения. Мне пришла в голову мысль, что такой подход похож на обучение в университете: мне нужно изучить кучу теории, прежде чем я смогу заняться реальными задачами. При этом полноценного понимания того, что мне действительно понравится решать ML задачи у меня нет. Можно ли считать интерес к компьютерным игрушкам про алгоритмы достаточным, чтобы погрузиться в такую сложную область? Или когда в статье говорится про обучение с нуля, то имеется в виду, что человек уже должен понимать что-то в теме машинного обучения, то есть всё-таки быть ненулевым? Как тогда быть? И тут я подумала, что мне было бы комфортнее погружаться в область через постепенное решение прикладных задачек от простых к сложным. И чтобы желание решить конкретную задачу мотивировало меня изучить линейную алгебру, а не абстрактное понимание, что "надо, Федя, надо". То есть, например, сначала дать поиграть в игры на алгоритмы, потом предложить запрограммировать робота на шаги, потом обучить простую нейронную сеть и так далее. И для каждой задачи указывать какие знания будут нужны. Мне бы хотелось использовать такой формат обучения, но есть ли такой?

Спасибо за ответ и интерес! К сожалению, не встречала курса по ML в таком формате. Создание такого курса требовало бы много усилий и креативности от создателей.
Под "обучением с нуля" в статье действительно имеется в виду, что возможно обучение с нуля, но понятное дело, что при этом потребуется много усилий и времени.
Чтобы стало чуть более понятно, зачем нужны векторы или мат.анализ, можно забежать немного вперед и посмотреть, например, плейлист 3blue1brown с объяснениями того, что такое нейросети: https://www.youtube.com/watch?v=aircAruvnKk&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi&ab_channel=3Blue1Brown .
Также можно пробовать забежать еще вперед и попробовать посмотреть лекции и порешать задачи из DL School https://stepik.org/course/124070 - фокус этого курса идет именно на прикладные задачи в Deep Learning. Но без математики быстро станет слишком сложно, и придется опять вернуться к векторам.

Да deep learning на степике от deep learning school отличный курс. Highly recommend 👌

Спасибо за статью, все очень детально! Еще есть детский (без кавычек) способ влиться в машинное обучение и тоже практически за "ноль" рублей. Это Сириус курсы и региональные центры олимпиадной подготовки для школьников. На сириус курсах есть курс по мат анализу, линейной алгебре, введению в машинное обучение, курс по глубокому обучению, курсы по алгоритмам на на python и C++ (и т.п.). Все курсы включают видео модули, радачи для решения. В курсах по машинному обучению есть еще и проектный модуль для отработки навыков. Одновременно с Сириус курсами будут не лишними и курсы по математике и программированию, озвученные в статье. Их по силам освоить и старшекласснику. А в региональных центрах олимпиадной подготовки на проектных программах вместе с наставниками можно создать и защитить проект в команде на реальных данных. Хорошие проекты могут далее поучаствовать в конкурсе "Большие вызовы" от Сириуса. То есть школьники 10-11 класса могут влиться в тему, создать рабочий проект, засветиться на защите у организаций-партнеров Сириуса, получить доп баллы ЕГЭ и даже получить президентский грант. Работает ли это при получении в дальнейшем работы по этому направлению? Пруфов у меня нет. Но опыт выглядит реальным + мотивация, соревновательный дух и т.п. Так что в жизни может и пригодиться ;)

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

К слову о "бесплатности", автор абсолютно корректно использует термин!

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

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

спасибо за подробный гайд

к хорошим годным вводным курсам хочу добавить еще один, StatQuest.

это известный канал на ютубе который поверхностно рассматривает ключевые понятия матстата. https://www.youtube.com@statquest

можно с ним просто сверяться, когда что-то непонятно, а можно посмотреть его через следующую карту знаний:

https://maps.joindeltaacademy.com/maps/StatQuest

Лучше StatQuest'a нет ничего :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории