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

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

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

"Тензоры — это просто специфичное для машинного обучения обобщение векторов и матриц для любого количества измерений"

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

Идея тензора состоит в том, что он обобщает объекты такого рода на любое количество измерений.

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

Скалярные тензоры

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

Итак, вот очень быстрый пример, где я создал 0-мерный тензор.

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

Итак, как обсуждалось выше, скаляры не имеют размерности.

Теперь давайте посмотрим, как сделать то же самое в TensorFlow, здесь тензоры создаются с помощью обертки.

Итак, глядя на форму, становится ясно, что скалярные тензоры не имеют размерности, как скалярные тензоры в PyTorch.

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

Векторные тензоры

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

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

Теперь давайте создадим простой вектор

Теперь давайте посмотрим на транспонирование вектора в числах. Обычная операция, которую предоставляет NumPy, — это «.T», который мы можем добавить в конец любого заданного вектора, и он транспонирует его для нас.

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

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

И последнее немного о создании векторов с использованием PyTorch и TensorFlow, которые мы использовали для создания скалярных тензоров, мы указываем элементы, которые мы хотели бы иметь в нашем векторе, так же, как мы это делали в NumPy.