Линейная алгебра для Data Science

10 примеров практического использования

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

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

Если у вас стоит задача определить взаимосвязь двух явлений, вы применяете линейную регрессию. Когда некие данные нужно распределить по классам, вам помогает регрессия логистическая. Методы главных компонент (Principal Component Analysis) и опорных векторов (Support-Vector Machine), функции регуляризации, градиентный спуск — все эти инструменты помогают дата-сайентистам в их ежедневной работе.

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

Функции потерь (Loss Functions)

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

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

Как же подсчитать эту разницу? Для этого вы представляете эти данные в виде двух векторов и применяете к ним функцию потерь. Например, пусть ожидаемый прогноз — это вектор P, а ваши результаты — вектор E. Тогда P-E — это разница между данными, а длина этого третьего вектора и представляет собой величину ошибки.

Курс

Data Scientist с нуля

Cтаньте дата-сайентистом и приручите большие данные. Вы  научитесь выявлять закономерности в данных и создавать модели для решения реальных бизнес-задач. Скидка 5% по промокоду BLOG.

Узнать больше

Регуляризация (Regularization)

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

Недообучение, оптимальный результат, переобучение.

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

Ковариантная матрица (Covariance Matrix)

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

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

Метод опорных векторов (Support-Vector Machine)

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

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

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

Пример метода опорных векторов на двумерном пространстве — гиперплоскость С обеспечивает требуемый результат.

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

Преобразование пространства с помощью z = x^2 + y^2 позволяет расположить точки нужным образом

Метод главных компонент (Principal Component Analysis, PCA)

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

В таких случаях используются техники уменьшения размерности (dimensionality reduction), которые определяют переменные, сильнее всего влияющие на результат. Один из наиболее применимых методов для решения таких задач — метод главных компонент. Если не углубляться в математику, достаточно сказать, что таким образом можно найти основные векторы и спроецировать остальные данные согласно им. Если хотите узнать подробнее, почитайте о вычислении собственных векторов и собственных значений ковариационной матрицы.

Собственные векторы обозначены красными стрелками — они не меняют направление при линейном преобразовании матрицы.

Сингулярное разложение (Singular Value Decomposition)

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

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

Курс

Математика для Data Science

Изучите необходимую базу по математике и статистике для освоения машинного обучения. Скидка 5% по промокоду BLOG.

Узнать больше

Векторное представление слов (Word Embeddings)

Как нетрудно догадаться, этот метод используется для работы с текстом в NLP-системах (Natural Language Processing). Компьютеры не понимают человеческий язык, хотя в последнее время им и удается более-менее успешно производить обратное впечатление. Это становится возможным благодаря техникам «цифровизации» слов, которые переводят их семантическое значение в векторы.

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

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

Латентный семантический анализ (Latent Semantic Analysis, LSA)

Когда вы читаете предложение «Я увидел каменный замок, на его воротах висел замок», вы легко распознаете значения двух омонимов. Аналогично, вам несложно подобрать синоним к какому-либо слову — вы понимаете его значение и представляете, чем можно его заменить. Однако компьютеру такие операции даются с трудом, и создателям NLP-продуктов приходится придумывать, как обеспечить их системе возможность понимать контекст.

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

Тензоры и работа с изображениями

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

Для передачи цвета в цифровых изображениях используется шкала RGB — Red, Green, Blue. Когда аналитическая модель получает некую картинку, она создает тензор, который объединяет в себе три матрицы, у которых в каждой ячейке хранится цветовое значение соответствующего пикселя. Первая такая матрица содержит значения красного, вторая — зеленого, третья — синего. Пример того, как дальше можно работать с этими данными в следующем пункте.

Функция свертки

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

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

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

Курс

Data Science с нуля

Освойте все необходимые инструменты для уровня junior и получите самую востребованную IT-профессию 2021 года.

  • 8 проектов в портфолио;
  • соревнования и хакатоны;
  • помощь в трудоустройстве.

Узнать больше

BLOG +5% скидки

Текст: Помогаев Дмитрий

Какие курсы вам подходят

Курс «Data Science»

От 7500 Р/мес

12 мес

Подробнее о курсе

Курс «Математика для Data Science»

От 8950 Р/мес

2 мес

Подробнее о курсе

Специализация «Аналитик данных»

От 8500 Р/мес

10 мес

Подробнее о курсе
Блог SkillFactory
Добавить комментарий

  1. Александр

    Очень сжато конечно. И в последнем абзаце в разделе «Векторное представление слов (Word Embeddings)» в строке «Собственных мыслей к компьютера нет» предлог стоит заменить

    Ответить