- BrainTools - https://www.braintools.ru -
Machine Learning и Data Science — это одни из самых популярных и востребованных направлений в IT. Но вместе с этим — они и одни из самых сложных для входа. Здесь огромное количество тем, инструментов, библиотек, подходов и постоянно появляющихся технологий.
Из-за этого многие новички начинают обучение [1] с энтузиазмом, но через пару месяцев теряют интерес [2]. Причины могут быть разные: слишком много теории, мало практики, нет чёткого плана или понимания, зачем вообще всё это нужно.
Эта статья — не очередной «гайд по ML для новичков». Это мой личный взгляд на то, как бы я подошёл к обучению, если бы начинал с нуля уже сегодня , учитывая свой опыт [3] работы в крупных компаниях, проваленные проекты, ошибки [4] и победы.
Кратко об авторе
Я уже успел отработать в Яндексе, ВК, Сбере, отучиться в МФТИ и на протяжении всей карьеры занимаюсь компьютерным зрением [5] и ML. В начале пути наделал уйму ошибок:
Долго не мог определиться с направлением
Вообще не понимал, что от меня буду ждать на собесах
Боялся конкуренции: казалось, что вакансий мало, а требования слишком высоки для новичков
Разочарование, когда казалось, что я ничему не научился за последние несколько месяцев
Именно поэтому я решил написать эту статью — чтобы поделиться своим опытом и показать, как можно начать с нуля и дойти до реальной работы , минуя типичные ловушки.
Первое, что нужно сделать, прежде чем погружаться в Machine Learning или Data Science — понять свою цель. Это одна из самых бурно развивающихся областей в IT. Объём знаний необходимых для прохождения собеседований огромен, и он растёт год за годом.
И если ты выбрал эту сферу наобум, без чёткого понимания, зачем ты это делаешь — велик шанс, что ты бросишь обучение на полпути.
Легко не будет — но это того стоит
Готовься много и упорно зубрить. Готовься к тому, что обучение потребует времени, усилий и терпения. Никаких «за месяц станьте ML-инженером» — это миф. Но если подойти правильно, можно пройти путь от новичка до Junior или Middle специалиста за реальное время, с реальным результатом.
Сядь и реши, точно ли ты хочешь в эту сферу? Может лучше пойти в более привычное направление разработки на Go/Python?
Найди свою собственную долгосрочную мотивацию [6], зачем ты будешь изучать машинное обучение в течение полугода-год, до нахождения первой работы
Моя история: как я нашёл свою мотивацию [7]
Когда я только начинал, я наткнулся на примеры компьютерного зрения: алгоритмы, которые умеют находить объекты на картинках, следить за ними, определять действия, даже описывать изображения текстом.
Для меня это был настоящий вау-эффект .
Мне чисто для себя стало интересно разобраться в том, как это устроено, как самому обучить нейросети делать такие крутые вещи.
Меня и до сих пор удивляет и дико забавляет, то что можно делать с помощью нейросеток, я ни дня не скучаю от своей работы, поэтому в начале пути, мне было просто весело этим заниматься.
И самое первое, что вам необходимо освоить это конечно же Python.
Без базового понимания синтаксиса и структуры кода ты не сможешь ни обучить модель, ни обработать данные, ни даже запустить чужой проект с GitHub.
Многие новички пытаются сразу прыгнуть в теорию ML или нейросети, но спотыкаются уже на уровне элементарного скрипта, который загружает датасет.
Именно поэтому начинать нужно с Python — не с глубокого погружения в ООП или метаклассы, а с практического минимума, который позволит тебе двигаться дальше.
Синтаксис — это основа. Ты должен свободно ориентироваться в конструкциях for, if, while, уметь писать функции. Эти вещи встречаются буквально в каждом скрипте, будь то предобработка данных или логика [8] обучения модели.
Структуры данных — это инструменты, которые определяют, насколько эффективно ты можешь работать с информацией. Списки, словари, кортежи — они используются повсеместно. Например, словари удобны для хранения параметров модели, списки — для батчей данных, а кортежи — как неизменяемые структуры часто применяются внутри фреймворков вроде PyTorch или scikit-learn.
Работа с файлами — ты постоянно будешь сталкиваться с необходимостью считать .csv, прочитать .json с гиперпараметрами или сохранить результаты в .txt
😇 Вот мой список лучших материалов для старта:
Про хэш-мапу [11]
Контекстный менеджер [13]
😎 Проверь себя – Вопросы с собеседований:
Что произойдёт, если изменить список внутри кортежа, который был ключом в словаре?
Какая сложность по времени у вставки/поиска в списке vs в связном списке?
Как работает декоратор @property и зачем он нужен?
В чём разница между __new__ и __init__?
Освоение этого навыка займёт у вас скорее всего от 2 до 4х недель
Одна из самых частых ошибок новичков — это следование советам, которые звучат логично, но на практике ведут к выгоранию и потере мотивации [14].
В интернете полно статей вроде: «Как стать ML-инженером за 6 месяцев», где первым пунктом стоит «выучи матанализ, алгоритмы и LeetCode».
Не делай этого.
Да, понимание базовых алгоритмов полезно. Но не на старте.
Когда ты только начинаешь путь, тратить недели на сортировки, графы и динамическое программирование — это как учить грамматику языка, прежде чем научиться говорить хотя бы пару фраз.
Тебе не нужно знать, как работает алгоритм Кнута-Морриса-Пратта, чтобы обучить модель классификации текстов или запустить YOLO для детекции объектов.
Многие считают, что без глубокого понимания матана, линейной алгебры и теории вероятностей нельзя заниматься ML. Это миф.
На самом деле, большая часть современных библиотек и фреймворков уже реализует сложные формулы за тебя.
Понимать, что такое матричное умножение или функция активации — полезно.
А вот выводить формулу градиентного спуска на бумажке — не обязательно.
Это не означает, что математика [15] вообще не нужна. Она важна, когда ты переходишь на более продвинутый уровень — например, начинаешь оптимизировать архитектуры нейросетей или разрабатывать свои собственные модели.
Но в начале пути она чаще становится преградой, чем помощником.
LeetCode — отличный инструмент для подготовки к интервью в крупные IT-компании.
Но он не учит тому, что реально требуется в работе ML-инженера .
Решение сложных задач на бинарные деревья, перестановки и оптимизацию памяти [16] — это скорее тест на стрессоустойчивость, чем реальный навык для работы с данными.
Если ты хочешь просто начать делать проекты, разбираться в моделях и понимать, как устроена реальная работа — забудь про LeetCode на первые пару месяцев.
Переходи к практике, как можно быстрее. Решай и реализуй реальные практические МЛ задачи, как только ты увидишь первые результаты, твой мозг [17] получит положительно закрепление
Ты потрудился – получил результат
А значит стал ближе к своей цели – получению оффера
Когда ты освоишь Python, следующий шаг — понять, что такое Machine Learning и как он работает на практике .
Многие думают, что ML — это про сложные формулы и нейросети. На самом деле, большая часть работы в этой сфере — это работа с данными, выбор модели и оценка её качества.
И начинать нужно не с глубокого обучения, а с базовых задач и моделей.
Классификация — определение категории. Например: спам или не спам, кошка или собака на картинке.
Регрессия — предсказание числа. Например: сколько будет стоить квартира, или сколько времени пользователь проведёт на сайте.
Кластеризация — поиск групп в данных. Например: выделение групп пользователей с похожим поведением [18], если заранее неизвестно, какие они.
С этими типами задач ты будешь сталкиваться постоянно, особенно на старте.
Не все модели одинаково полезны. Иногда кажется, что всё работает отлично, а на деле — модель просто угадывает.
Вот почему важно знать метрики — числа, которые показывают, насколько хорошо работает твоя модель.
Например:
accuracy — процент правильных ответов. Но он обманчив, если классы несбалансированы (например, 95% случаев — “нет”, и модель всегда отвечает “нет”).
precision и recall — покажут, насколько точна модель при поиске нужного ответа.
F1-score — удобная свёртка этих двух метрик.
Для регрессии часто используют MAE или RMSE — они говорят, насколько в среднем модель ошибается в своих числовых предсказаниях.
Эти метрики несложно понять, но очень важно уметь их использовать правильно.
😇 Вот мой список лучших материалов для старта:
Основы pandas [19]
Линейная регрессия [20]
Регуляризация [22]
😎 Проверь себя – Вопросы с собеседований:
Нужно ли нормировать данные прежде, чем подать в их в линейную регрессию?
Когда использовать MAE, а когда MSE?
Что такое boxplot и как найти выбросы в данных, метод 3-х сигм?
Возможно ли такое, что Precision=19%, Recall=92%, Accuracy=10%?
Что такое F2 мера, F3 мера, F100500 мера?
Освоение этого навыка займёт у вас скорее всего от 3х до 5 месяцев
Подходим к концу. Третий навык в моем списке это SQL – синтаксис для составления запросов к базам данных, это одна из самых простых технологий для освоения, от вас требуется знание всего лишь базовых аспектов
Отличие left join от cross join
Что такое транзакции
Составление сложных запросов с разными условиями
Освоить SQL на достаточном для собеса уровне можно за 1-2 недели
И последний, четвертый навык — это как можно скорее переходить к практике и заниматься реальными задачами. Именно через практическую работу вы быстрее всего приблизитесь к тому, чтобы стать настоящим, уверенным в себе [23] специалистом.
Вам нужно научиться решать те самые задачи, с которыми вас будут просить работать на реальной работе. Речь о бизнес-задачах — именно за них и платят зарплату.
Идеи для пет-проектов легко найти на YouTube и GitHub. Там уже есть огромное количество материалов, примеров и готовых решений, которые другие люди создавали во время своего обучения и делились ими с сообществом. Это сильно облегчает начало пути и помогает не терять мотивацию [24].
Вот, в принципе, и всё. Я рассказал о ключевых навыках, распространённых проблемах и мифах, с которыми я сам сталкивался на пути изучения Machine Learning. Надеюсь, этот опыт поможет и вам освоить эту сферу и дойти до своей цели.
Про интерактивный сборник материалов по ML [25]
Про CLIP модели и базу к Computer vision собесам [26]
Вопросы с ML | Computer vision собесов
Читай у меня в телеграм канале
Автор: boterxxx
Источник [28]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/16233
URLs in this post:
[1] обучение: http://www.braintools.ru/article/5125
[2] интерес: http://www.braintools.ru/article/4220
[3] опыт: http://www.braintools.ru/article/6952
[4] ошибки: http://www.braintools.ru/article/4192
[5] зрением: http://www.braintools.ru/article/6238
[6] мотивацию: http://www.braintools.ru/article/9537
[7] мотивацию: http://www.braintools.ru/article/9384
[8] логика: http://www.braintools.ru/article/7640
[9] 6-ти часовой курс по Python от Ильина: https://www.youtube.com/watch?v=wDmPgXhlDIg
[10] Курс на Stepik, если формат с тестами удобнее: https://stepik.org/course/67/promo#toc
[11] Про хэш-мапу: https://www.youtube.com/watch?v=rPp46idEvnM
[12] Декоратор с аргументами: https://www.youtube.com/watch?v=KlBPCzcQNU8&t=41s
[13] Контекстный менеджер: https://www.youtube.com/watch?v=FkhnVkl0EgM
[14] мотивации: http://www.braintools.ru/article/7075
[15] математика: http://www.braintools.ru/article/7620
[16] памяти: http://www.braintools.ru/article/4140
[17] мозг: http://www.braintools.ru/parts-of-the-brain
[18] поведением: http://www.braintools.ru/article/9372
[19] Основы pandas: https://www.youtube.com/watch?v=sF5AcBsOewU
[20] Линейная регрессия: https://youtu.be/KJA9A1q9l7E?si=tBxJsYayX1Z2e8NS
[21] Метрики классификации: https://youtu.be/7dcVmFHyuUY
[22] Регуляризация: https://youtu.be/4WcHxtYy3_8?si=M0G-7dN2CX4fWUR0
[23] уверенным в себе: http://www.braintools.ru/article/4166
[24] мотивацию: http://www.braintools.ru/article/4230
[25] Про интерактивный сборник материалов по ML: https://t.me/Ai_bolno_ml/30
[26] Про CLIP модели и базу к Computer vision собесам: https://habr.com/ru/articles/908168/
[27] t.me: https://t.me/AI_bolno_ml
[28] Источник: https://habr.com/ru/articles/918582/?utm_campaign=918582&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.