Векторы и матрицы | Вводный курс ML

Векторы и матрицы

Все курсы > Вводный курс > Занятие 12

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

$$y = w_1 \times x_1 + w_2 \times x_2 + e$$

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

С помощью этого графика мы можем представить зависимость обхвата шеи не только от роста, но и, например, от веса.

векторы и матрицы: представим данные на трехмерном графике

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

Данные как векторы и матрицы

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

Если взять несколько точек и соответственно несколько векторов,

то получится набор чисел, называемых матрицей.

Из сказанного выше очевидно, что любой вектор — не что иное как матрица, в которой один столбец или одна строка.

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

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

Умножение векторов

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

Если представить и значения независимых переменных, и веса с помощью векторов, то можно воспользоваться инструментом, который называется скалярным произведением векторов (dot product), чтобы получить прогнозное значение (ŷ).

Скалярное произведение векторов на Питоне

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

Сегодня рассмотрим эти массивы сами по себе. По сути, массив Numpy (Numpy array), это и есть вектор или матрица. Давайте посмотрим, как создать такой массив (вектор или матрицу), и как перемножить два вектора.

Вначале откроем ноутбук к этому занятию

Вначале разберемся с основами работы с массивами.

Теперь мы готовы умножить один вектор на другой.

Именно благодаря скалярному произведению векторов компьютер так эффективно перемножает веса и данные и минимизирует функцию потерь.

Теперь посмотрим на угол между векторами.

Угол между векторами

Представление данных в форме вектора имеет ещё одно полезное свойство. Мы можем измерить близость двух векторов или угол между ними. Чем угол меньше, тем они ближе.

Посмотрим на формулу.

$$ \cos(\theta )={\mathbf {b} \cdot \mathbf {c} \over \|\mathbf {b} \|\|\mathbf {c} \|} $$

В этой формуле мы умножаем один вектор на другой и делим на произведение их длин. Результатом будет косинус угла θ между ними. Зная косинус, мы можем найти сам угол в градусах.

Косинусное сходство с помощью Питона

В первую очередь найдем косинус угла по формуле, приведенной выше.

Теперь рассчитаем угол в градусах

Как мы видим угол чрезвычайно мал, а значит векторы очень близки друг к другу.

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

Подведем итог

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

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

Вопросы для закрепления

Какие два вектора мы перемножаем для того, чтобы сделать прогноз?

Ответ: вектор весов и вектор данных (ну и еще прибавляем ошибку).

Какое расстояние (сходство) помогает определить близость векторов?

Ответ: косинусное расстояние

Дополнительные упражнения⧉ вы найдете в конце ноутбука.

Последний штрих

Прежде чем перейти к построению моделей остается последний штрих: научиться разделять данные, на которых мы будем обучать модель.

guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии