Обзор

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

Вступление

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

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

По моему опыту, в первую очередь для этого есть две причины:

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

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

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

Оглавление

В этой статье мы обсудим следующие темы:

  1. Разница между математикой, лежащей в основе машинного обучения и науки о данных
  2. Регулировка отношения при приближении к бывшему врагу
  3. Линейная алгебра для машинного обучения
  4. Многомерное исчисление для машинного обучения
  5. Вероятность машинного обучения
  6. Статистика для машинного обучения

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

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

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

Я регулярно сталкиваюсь с такими вопросами:

  1. Где использовать вероятность в машинном обучении?
  2. Где я могу использовать многомерное исчисление в науке о данных?
  3. Где использовать линейную алгебру в науке о данных?

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

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

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

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

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

Наука о данных обычно считается предпосылкой машинного обучения. Подумайте об этом - мы ожидаем, что входные данные для алгоритмов машинного обучения будут чистыми и подготовленными в соответствии с используемыми нами методами. Если вы относитесь к числу тех, кто хочет работать от начала до конца (Data Science + Machine Learning), будет лучше научиться сочетать математику, необходимую для Data Science и Machine Learning.

Корректировка отношения к бывшему врагу

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

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

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

Так как же выучить математику, не увязнув в теории?

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

Нам следует больше заботиться об интуиции и геометрической интерпретации любого данного выражения:

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

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

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

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

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

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

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

Допустим, нам даны два линейных уравнения:

Решить относительно x и y довольно просто, не так ли?

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

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

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

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

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

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

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

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

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

Но если вы больше склонны к быстрой интуиции и визуализации, вам понравятся следующие серии видео:

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

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

Если вы сразу сказали "Градиентный спуск", вы на правильном пути! Но, возможно, вам придется дополнить уже имеющиеся знания.

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

Но зачем мы это делаем? Мы знаем, что вычисляем частную производную некоторой функции (функции стоимости или функции оптимизации). Но как это помогает?

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

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

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

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

Но знаете ли вы, что мы можем представить эти отдельные частные производные в векторной форме?

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

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

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

Khan Academy (преподает 3Blue1Brown):

Многомерное исчисление (Имперский колледж Лондона):

Вероятность машинного обучения

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

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

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

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

Давайте рассмотрим пример (без математики вперед!):

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

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

Теперь он встречает Эда в своем колледже.

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

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

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

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

Идеально! Это именно то, чем мы занимались в школе, верно? Я растягиваю это немного дальше и спрашиваю вас - что означает это новое значение?

Большинство людей, утверждающих, что знают теорему Байеса, неизменно здесь застревают.

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

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

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

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

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

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

Вот несколько ресурсов, чтобы узнать больше о вероятности:

Короткий плейлист MIT-OCW о вероятности:

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

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

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

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

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

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

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

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

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

Конечные заметки

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

Обратите внимание, что все источники, которые я упомянул для изучения, не являются исчерпывающими. Их много, и вот пару, которую я повторю:

Вы также можете прочитать эту статью о приложении Google Analytics Vidhya для Android.

Первоначально опубликовано на https://www.analyticsvidhya.com 15 октября 2019 г.