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

Что такое линейная алгебра?

Как определяет это Википедия: линейная алгебра — это раздел математики, касающийся линейных уравнений, таких как:

линейные карты, такие как:

и их представления в векторных пространствах и через матрицы.

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

Зачем нужно знать линейную алгебру?

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

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

Давайте посмотрим на некоторые интересные (но определенно не исчерпывающие) применения линейной алгебры в науке о данных:

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

1. Работа с наборами данных

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

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

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

Это не что иное, как матрица 5x4. Каждая запись представляет собой строку и индексируется числами 0, 1, …, 4. Каждый столбец имеет свое имя сверху.

2. Линейная регрессия

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

Такие уравнения типа Y = MX + C легко решаются с помощью матричного умножения, выражая каждую из переменных, Y = {y1, y2, …, yn}, X = {x1, x2, …, xn}, M = {m1, m2, … , mn}, C = {c1, c2, … , cn} как матрица. Для пошагового процесса и для тех, кто хочет углубиться в решение, вы можете прочитать эту статью.

3. Регуляризация

Переоснащение — одно из самых больших препятствий в машинном обучении, особенно для новичков в науке о данных. Это когда модель слишком близко соответствует имеющимся данным, до такой степени, что она плохо работает с любыми новыми или внешними данными. Концепция под названием Регуляризация используется для предотвращения переобучения модели. Эта концепция использует линейную алгебру, поскольку она использует «норму».

«Норма» может быть определена просто как величина вектора. Эту величину можно вычислить различными способами. Одним из популярных способов является использование евклидова расстояния, то есть использование расстояния от начала координат.

Определение Википедии:

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

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

4. Уменьшение размеров

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

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

Методы декомпозиции, такие как декомпозиция матрицы LU и декомпозиция QR-матрицы, можно легко выполнить с помощью программирования на Python.

5. Линейная алгебра в обработке естественного языка

Обработка естественного языка (NLP) — это применение вычислительных методов для анализа и синтеза естественного языка и речи.

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

Внедрение Word

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

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

6. Линейная алгебра в распознавании изображений

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

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

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