Роль математики в машинном обучении

Автор оригинала: Writuparna Banerjee
  • Перевод

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

«Так ли необходимо разбираться в математике, лежащей в основе алгоритмов машинного обучения? В Python ведь уже есть масса широко доступных библиотек, которые можно без труда использовать для построения моделей!»

Я слышал это от дата-сайентистов любителей не один раз. Это заблуждение распространено куда больше, чем хотелось бы, и продолжает порождать наивные фантазии среди начинающих профессионалов в области обработки данных.

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

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

На каком уровне нужно разбираться в математике чтобы быть компетентным в машинном обучении?

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

(Важность математических дисциплин в машинном обучении:

Линейная алгебра - 35%

Теория вероятности и мат статистика - 25%

Многомерный анализ - 15%

Алгоритмы и их сложность - 15%

Остальное - 15%)

Разница между математическими концепциями, лежащими в основе машинного обучения и Data Science

Один из наиболее распространенных вопросов - в чем разница между Data Science (или наука о данных) и машинным обучением, и чем разница математика, лежащая в основе этих направлений?

Хотя Data Science и машинное обучение имеют много общего, все же существуют небольшие различия в их мат-аппаратах. Разница показана на приведенной ниже лепестковой диаграмме:

Да, Data Science и машинное обучение во многом пересекаются, но их основная направленность существенно различается.

В Data Science наша основная цель - исследовать и анализировать данные, генерировать гипотезы и проверять их.

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

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

Тактика сближения с бывшим противником

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

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

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

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

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

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

Линейная алгебра для машинного обучения

Некоторые люди считают линейную алгебру математикой 21 века. Причина в том, что линейная алгебра является основой машинного обучения и Data Science, которые в ближайшие годы совершат революцию во всех остальных отраслях.

Но почему именно линейная алгебра?

Линейная алгебра дает нам систематизированный базис для представления систем линейных уравнений.

Давайте решим это уравнение относительно x и y:

Мы можем сделать это, просто умножив первое уравнение на -2, а затем сложив оба уравнения:

В результате переменная x исключается, а y получается равным 9. При обратной подстановке мы получаем значение x равное 0.

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

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

Наборы данных часто содержат сотни и тысячи наблюдений (даже миллионы). Как вы думаете, сможем ли мы работать с такими наборами данных и вручную находить оптимальные значения x и y?

Конечно нет! Мы определенно предпочли бы автоматизировать эту задачу. И здесь в игру вступает линейная алгебра. В широком смысле:

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

Это алгебраическое представление задачи, которую мы решили выше. Используя матричные операции, мы можем найти значения x и y в мгновение ока. Это основная причина, по которой линейная алгебра необходима в Data Science и машинном обучении.

Многомерное исчисление для машинного обучения

Какова роль многомерного исчисления в машинном обучении?

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

Рассмотрим случай градиентного спуска. Мы знаем, что функция стоимости градиентного спуска задается таким образом:

И мы вычисляем производные по наклону (m) и точке пересечения (c) таким образом:

Но почему только частная производная? Мы могли бы вычислить интеграл или совершить другую операцию. Это связано с тем, что производная показывает нам скорость изменения функции стоимости по отношению к стоимости 丁 по отношению к m и c по отдельности.

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

Это алгебраическое векторное представление частных производных.--=-

=

Это представление называется Якобианом.

Теория вероятности для машинного обучения

Самая интересная часть теории вероятности - это теорема Байеса. Еще со школы мы встречаем эту теорему во множестве разных мест. Вот ее формула:

Мы вычисляем ответы, подставляя числа. Но что на самом деле говорит нам теорема Байеса, что именно означает апостериорная вероятность? Почему мы вообще ее рассчитываем?

Давайте рассмотрим пример (Успокойтесь! На это раз без математики!):

 

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

Итак, P(A) называется априорной вероятностью. В данном случае это будет нашим предположением, что Боб редко любит заводить новых друзей.

Теперь, Боб встречает Эрика в своем колледже.

 

В отличие от Боба, Эрик - экстраверт, которому не терпится завести новых друзей.

P(B) в данном случае - это вероятность того, что Эрик дружелюбен. Проведя день вместе, Боб понимает, что он и Эрик очень похожи друг на друга. В результате они стали друзьями.

Их дружба представляет собой P (B|A):

Теперь, глядя на правую часть и на приведенный выше пример, числитель представляет вероятность того, что Боб был дружелюбен P(A) и стал другом Эрика P (B|A). И все эти значения вычисляются по отношению к результату в левой части, а именно:

Однако что это новое значение представляет?

Это новое значение - не что иное, как наша вера в Боба. Или, другими словами, это наше новое представление о Бобе и новом значении P(A).

Если бы я извлек весь сок из этого примера, это выглядело бы примерно так:

(Р(А) Предположение: Боб - типичный интроверт! → P(В|А)P(А) Сведения: Боб завел нового друга! → P(А|В) Обновленное предположение: В Бобе что-то есть от интроверта!

Мы сделали предположение о Бобе, и обнаруженные нами сведения заключались в том, что он действительно завел нового друга!

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

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

Статистика для машинного обучения

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

  • Распределения

  • Проверка гипотез и т. д.

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

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

Заключение:

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

Узнать подробнее о курсе.

Читать ещё:

OTUS. Онлайн-образование
Цифровые навыки от ведущих экспертов

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

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

Самое читаемое