И сколько вам нужно преуспеть в машинном обучении

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

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

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

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

Понимание аргумента

Чтобы понять, почему этот подход плохой, давайте сначала разберемся, в чем состоит его утверждение. Варианты этого утверждения варьируются от «Вы можете начать машинное обучение без математики» до «Математика бесполезна, она нам не нужна для машинного обучения». Оба ошибочны, но первое гораздо более простительно, чем второе. Ради жесткости аргумента я рассмотрю первое утверждение в этой статье. Как только мы разберемся с этим, вы поймете, почему другие варианты этого утверждения также неверны.

Утверждение основывается на следующих подтверждающих аргументах. Если вы думаете, что я что-то пропустил, дайте мне знать, и я могу сделать продолжение-

  1. Вы можете обучать, тестировать, оценивать, развертывать и даже перекрестно проверять модели без каких-либо математических/теоретических основ. Просто скопируйте Jax, Keras, TF, PyTorch или любой другой фреймворк. С решениями AutoML (в том числе созданными мной) этот процесс становится еще проще.
  2. В Интернете достаточно руководств, чтобы вы могли скопировать и вставить. Просто поищите свою проблему, и вы ее найдете.
  3. Практически ни один инженер глубокого обучения не использует регулярно ряды Фурье, числовые преобразования, исчисление или что-то необычное. Исследователи ИИ — единственные, кто это делает. Если вы не из их числа, вам не о чем беспокоиться.
  4. Вы всегда можете просто начать сначала, а затем подобрать математику. Вам не нужно быть экспертом, когда вы начинаете. Вы можете изучать математику по мере накопления опыта. Таким образом, вы также будете знать, что важнее.

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

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

Обучение модели + развертывание не требует математики

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

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

Ваши данные нарушают принцип IID? Если вы никогда не изучали эту концепцию, вы даже не зададите этот вопрос. Вы пойдете вперед и примените ML, потому что все блоги, учебные пособия и документы неявно делают это предположение, поэтому вы никогда не видели, чтобы это подвергалось сомнению. Однажды я брал интервью у человека с очень высоким рейтингом на Kaggle. Они были очень хороши с чистыми наборами данных и областями задач, у которых был четкий путь вперед. Но поскольку они мало что знали о математике (и предположениях, лежащих в основе различных структур), они не могли ответить на этот основной вопрос:

Почему разработчики могут создавать доверительные интервалы с помощью ARIMA, когда мы предсказываем 100 временных шагов в будущее, но не с помощью более «продвинутых» идей, таких как LSTM?

Ответ на этот вопрос заключается в фундаментальном различии между ARIMA и нейронными сетями. Если вы хотите попробовать решить эту проблему, вперед. Хотелось бы узнать ваш ответ (подсказка: это не ленивые разработчики).

Правда в том, что в такой области, как машинное обучение, вы никогда не станете экспертом. Встретятся вещи, которые сделают ваши идеи устаревшими. Произошло с ньютоновской физикой. Произошло с евклидовой геометрией. Документы по машинному обучению всегда меняют статус-кво и ставят под сомнение то, что мы считали истиной (например, эта статья показывает нам, что многие тесты машинного обучения, выполненные на бенчмарках, имели большой источник случайности). Чтобы убедиться, что вы можете продолжать учиться, вы должны знать основы. Это требует математики.

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

Обучение на работе

Обучение на рабочем месте — феноменальная вещь. Я сделал это. Я даже рекомендую его другим. Однако, чтобы учиться на работе, вы должны соответствовать основным требованиям для работы.

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

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

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

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

Теперь обратимся к последнему большому аргументу. «Никто на самом деле не использует математику изо дня в день в машинном обучении (за исключением нескольких исследователей). Поэтому вы можете начать с машинного обучения, не зная математики». Давайте теперь рассмотрим, почему это неправда.

Математика везде

Если вы работаете инженером по машинному обучению (а не исследователем), у вас в основном будут следующие обязанности:

  1. Оценка+очистка наборов данных, разработка политик очистки, разработка функций и т. д. – большая часть всего этого связана с математикой. Создание новых признаков из существующих требует анализа статистического распределения признаков. Оценка наборов данных на предмет чистоты и выбросов также требует базового понимания математики. Знание того, по каким метрикам оценивать свою производительность (очень важно и всегда упускается из виду), потребует от вас понимания этих метрик. Это также требует (подчеркните барабаны)… Математика.
  2. Обслуживание конвейера данных, проверка на наличие утечек и т. д.. Многие небольшие организации также заставят вас заняться этой частью. Лично я никогда не работал в этой области, но, судя по моим беседам с людьми, которые работали в этой области, эта область требует намного больше разработки программного обеспечения, чем машинное обучение. Здесь можно обойтись без знания математики. Однако для любых переходов в ML вам понадобится Math.
  3. Тестирование моделей, создание политик обучения и т. д. Это то, о чем люди обычно думают, когда думают о машинном обучении. В отличие от того, что продается в Интернете, создание и обучение моделей — это легкая часть. Вы должны иметь возможность читать журналы обучения и результаты (которые вам нужно будет создать для справки), чтобы определить различные протоколы, которые могут работать. Часто вам придется оценивать производительность по пользовательским показателям производительности (на основе того, что ценит клиент/работодатель). Метрики, которые вам нужно будет создать, изменить и понять. Как вы планируете это сделать?

Посмотрите на это с точки зрения работодателя. Если все, что вы умеете, это копировать-вставлять и брать чужие модели, зачем им вас нанимать? Конечно, вы можете попробовать перейти от Data Engineering к ML. Многие так делают. Но этот процесс идет медленно. И вам придется конкурировать с людьми с реальным опытом машинного обучения. Вы просто усложняете себе жизнь. Технические интервью и так достаточно сложны.

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

Предварительные математические требования для машинного обучения

Чтобы разобраться в этом, изучение этих понятий очень поможет вам.

  1. Pre+Calculus. Вы хотите пройти как минимум интеграцию и серию Тейлора. Это позволит вам понять материал, связанный с вероятностью, обратным распространением и другими основополагающими идеями.
  2. Вероятности и статистика. Важно пройти через ковариацию, узнать различные распределения и получить базовое понимание байесовского мышления. Вбейте центральную предельную теорему в свою душу.
  3. Линейная алгебра. Понимание матричного умножения и изменения базиса. Этого достаточно в качестве базы.

Чтобы получить более подробное пошаговое руководство по изучению машинного обучения, ознакомьтесь с моей статьей Как научиться машинному обучению в 2022 году. В этом разделе вы найдете более подробную информацию об этих темах (и многом другом) и укажете на бесплатные ресурсы, которые вы можете использовать для изучения этих тем.

В завершение предлагаю посмотреть следующее видео от 3Blue1Brown. Это не имеет ничего общего с машинным обучением. Тем не менее, это прекрасный пример того, что делает математику такой красивой (и сложной). Я не буду портить вам видео. Не пропустите это.

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

Для машинного обучения крайне важна база в области разработки программного обеспечения, математики и компьютерных наук. Это поможет вам концептуализировать, построить и оптимизировать машинное обучение. Мой ежедневный информационный бюллетень Простые интервью по программированию охватывает темы проектирования алгоритмов, математики, последних событий в области технологий, разработки программного обеспечения и многого другого, чтобы помочь вам стать лучшим разработчиком. Сейчас действует скидка 20 % на ЦЕЛЫЙ ГОД, так что не забудьте проверить ее.

Я создал Coding Interviews Made Simple, используя новые методы, полученные благодаря обучению нескольких людей в ведущих технологических фирмах. Информационный бюллетень предназначен для того, чтобы помочь вам добиться успеха, избавив вас от часов, потраченных впустую на работу с Leetcode. У меня есть политика 100% удовлетворения, поэтому вы можете попробовать ее без риска для себя. Вы можете прочитать FAQ и узнать больше здесь

Не стесняйтесь обращаться, если у вас есть какие-либо интересные работы/проекты/идеи для меня. Всегда рад вас выслушать.

Для денежной поддержки моей работы следуют мои Venmo и Paypal. Любая сумма приветствуется и очень помогает. Пожертвования открывают эксклюзивный контент, такой как анализ бумаги, специальный код, консультации и специальные тренировки:

Венмо: https://account.venmo.com/u/FNU-Devansh

Paypal: paypal.me/ISeeThings

Свяжитесь со мной

Воспользуйтесь ссылками ниже, чтобы ознакомиться с другим моим контентом, узнать больше о репетиторстве или просто поздороваться. Кроме того, ознакомьтесь с бесплатной реферальной ссылкой Robinhood. Мы оба получаем свободный сток (денег вкладывать не надо), и никакого риска для вас нет. Таким образом, если вы не используете его, вы просто потеряете бесплатные деньги.

Ознакомьтесь с другими моими статьями на Medium. : https://rb.gy/zn1aiu

Мой Ютуб: https://rb.gy/88iwdd

Свяжитесь со мной в LinkedIn. Подключаемся: https://rb.gy/m5ok2y

Мой Инстаграм: https://rb.gy/gmvuy9

Мой Твиттер: https://twitter.com/Machine01776819

Если вы готовитесь к программированию/техническим интервью: https://codinginterviewsmadesimple.substack.com/

Получите бесплатный сток на Robinhood: https://join.robinhood.com/fnud75