Найти в Дзене

Vector в Машинном обучении простыми словами

Оглавление
Фото: @pawel_czerwinski
Фото: @pawel_czerwinski

Вектор — это кортеж из одного или нескольких значений-скаляров.

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

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

-2

Обычно в Машинном обучении (ML) целевую переменную представляют как вектор ‘y’.

Векторы легче понять с использованием геометрической аналогии: вектор представляет точку или координату в n-мерном пространстве, где n — количество измерений, например 2. Его также можно рассматривать как линию от начала векторного пространства с направлением и величиной. А вот скаляр не имеет направления.

Теперь, когда мы знаем, что такое вектор в линейной алгебре, давайте посмотрим, как инициализировать его на Python.

Инициализация вектора

Вектор принято инициализировать как массив NumPy. Например, мы определяем вектор длиной в три элемента и состоящего из целых чисел 1, 2 и 3. Для начала импортируем все необходимые библиотеки:

-3
-4

Отобразится вектор так:

-5

Векторная арифметика

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

Сложение векторов

Два вектора равной длины можно сложить вместе.

-6

Новый вектор имеет ту же длину, что и два других. Каждый элемент нового вектора — сумма элементов с тем же индексом; например:

-7

Или, по-другому:

-8

Мы можем складывать векторы прямо в Python, суммируя массивы. В примере ниже определяются два вектора с тремя элементами в каждом, которые затем складываются.

-9

При вычислении сначала отображаются два “родительских” вектора, а затем новый вектор-сумма.

-10

Вычитание вектора

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

-11

Как и при сложении, новый вектор имеет ту же длину, что и родительские векторы, и каждый элемент нового вектора – разница между элементами векторов с одинаковыми индексами.

-12

Разницу можно представить и так:

-13

Массивами NumPy можно напрямую оперировать следующим образом:

-14

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

-15

Векторное умножение

Два вектора одинаковой длины можно перемножить.

-16

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

-17

Умножение можно представить и так:

-18

или так:

-19

NumPy позволяет ускорить эту вычислительную операцию:

-20

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

-21

Векторное деление

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

-22

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

-23

Корректно и такое представление:

-24

Мы можем выполнить эту операцию с помощью NumPy.

-25

В примере определяются два вектора с тремя элементами в каждом, а затем первый делится на второй.

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

-26

Векторное перемножение (Dot Product)

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

-27

Скалярное произведение рассчитывается следующим образом:

-28

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

-29

На выходе мы увидим два исходных вектора, затем скалярное скалярное произведение.

-30

Векторно-скалярное умножение

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

Для упрощения обозначений мы будем использовать строчную букву «s» для скалярного значения.

-31

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

-32

или

-33

NumPy прекрасно справляется и с этой операцией:

-34

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

-35

Точно так же выполняются векторно-скалярные сложение, вычитание и деление.

Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.

Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте наши курсы по Машинному обучению на Udemy.