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

Это первая глава книги по линейной алгебре «Взгляд с высоты птичьего полета на линейную алгебру», которая находится в процессе написания. В этой книге особое внимание будет уделено приложениям ИИ и тому, как они используют линейную алгебру.
Линейная алгебра — это фундаментальная дисциплина, лежащая в основе всего, что можно делать с математикой. От физики до машинного обучения, теории вероятностей (например, цепей Маркова), как вы ее называете. Независимо от того, что вы делаете, линейная алгебра всегда таится под одеялом, готовая наброситься на вас, как только все станет многомерным. По моему опыту (и я слышал это от других), это было источником большого шока между старшей школой и университетом. В старшей школе (Индия) я познакомился с очень базовой линейной алгеброй (в основном с определителями и умножением матриц). Затем в инженерном образовании на университетском уровне каждый предмет внезапно, кажется, предполагает владение такими концепциями, как собственные значения, якобианы и т. д., как будто вы должны были родиться с этими знаниями.
Целью этой главы является предоставление общего обзора концепций и их очевидных приложений, которые существуют и которые важно знать в этой дисциплине.
Революция ИИ
Почти любая информация может быть встроена в векторное пространство. Изображения, видео, язык, речь, биометрическая информация и все, что вы можете себе представить. И все приложения машинного обучения и искусственного интеллекта (например, недавние чат-боты, преобразование текста в изображение и т. д.) работают поверх этих векторных вложений. Поскольку линейная алгебра — это наука о работе с многомерными векторными пространствами, она является незаменимым строительным блоком.

Многие методы предполагают взятие некоторых входных векторов из одного пространства и сопоставление их с другими векторами из другого пространства.
Но почему акцент на «линейном», когда самые интересные функции нелинейны? Это потому, что проблема создания наших моделей с высокой размерностью и проблема создания их нелинейными (достаточно общими, чтобы охватить все виды сложных отношений) оказываются ортогональными друг другу. Многие архитектуры нейронных сетей работают, используя линейные слои с простыми одномерными нелинейностями между ними. И есть теорема, которая гласит, что такой тип архитектуры может моделировать любую функцию.
Поскольку основным способом манипулирования многомерными векторами является умножение матриц, не будет преувеличением сказать, что это основа современной революции ИИ.
I) Векторные пространства
Как упоминалось в предыдущем разделе, линейная алгебра неизбежно возникает, когда вещи становятся многомерными. Мы начинаем со скаляра, который является просто некоторым числом. В этой статье мы рассмотрим действительные и комплексные числа для этих скаляров. В общем случае скаляр может быть любым объектом, в котором определены основные операции сложения, вычитания, умножения и деления (абстрагированные как «поле»). Теперь нам нужна структура для описания наборов таких чисел (добавления измерений). Эти наборы называются «векторными пространствами». Мы рассмотрим случаи, когда элементы векторного пространства являются либо действительными, либо комплексными числами (первое является частным случаем второго). Полученные векторные пространства называются «действительными векторными пространствами» и «комплексными векторными пространствами» соответственно.
Идеи линейной алгебры применимы к этим «векторным пространствам». Наиболее распространенным примером является ваш пол, стол или экран компьютера, на котором вы читаете это. Все это двумерные векторные пространства, поскольку каждая точка на вашем столе может быть задана двумя числами (координатами x и y, как показано ниже). Это пространство обозначается как R², поскольку его определяют два действительных числа.
Мы можем обобщить R² разными способами. Во-первых, мы можем добавить измерения. Пространство, в котором мы живем, трехмерно (R³). Или мы можем искривить его. Поверхность сферы, например, Земли (обозначаемая S²), по-прежнему двумерна, но в отличие от R² (который плоский), она искривлена. До сих пор все эти пространства в основном были массивами чисел. Но идея векторного пространства более общая. Это набор объектов , в котором должны быть четко определены следующие идеи:
- Сложение любых двух объектов.
- Умножение объектов на скаляр (действительное число).
Не только это, но и объекты должны быть «закрыты» под этими операциями. Это означает, что если вы примените эти две операции к объектам векторного пространства, вы должны получить объекты того же типа (вы не должны покидать векторное пространство). Например, множество целых чисел не является векторным пространством, потому что умножение на скаляр (действительное число) может дать нам что-то, что не является целым числом (3*2,5 = 7,5, что не является целым числом).
Один из способов выражения объектов векторного пространства — векторы. Векторы требуют произвольной «базисной основы». Примером базиса является компасная система с направлениями — Север, Юг, Восток и Запад. Любое направление (например, «Юго-Запад») может быть выражено в их терминах. Это «векторы направления», но у нас также могут быть «векторы положения», где нам нужны начало координат и система координат, пересекающаяся в этом начале. Система широты и долготы для ссылки на каждое место на поверхности Земли является примером. Пара широты и долготы — это один из способов идентифицировать ваш дом. Но есть бесконечное множество других способов. Другая культура может рисовать линии широты и долготы под немного другим углом к тому, что является стандартным. И поэтому они придумают другие номера для вашего дома. Но это не меняет физическое местоположение самого дома. Дом существует как объект в векторном пространстве, и эти различные способы выражения этого местоположения называются «базисными основами». Выбор одного базиса позволяет вам присвоить дому пару чисел, а выбор другого базиса позволяет вам присвоить другой набор чисел, которые являются одинаково действительными.

Векторные пространства также могут быть бесконечномерными. Например, в миниатюре 12 из [2] весь набор действительных чисел рассматривается как бесконечномерное векторное пространство.
II) Линейные карты
Теперь, когда мы знаем, что такое векторное пространство, давайте перейдем на следующий уровень и поговорим о двух векторных пространствах. Поскольку векторные пространства — это просто наборы объектов, мы можем представить себе отображение, которое берет объект из одного из пространств и отображает его в объект из другого. Примером этого являются недавние программы ИИ, такие как Midjourney, где вы вводите текстовую подсказку, а они возвращают изображение, соответствующее ей. Введенный вами текст сначала преобразуется в вектор. Затем этот вектор преобразуется в другой вектор в пространстве изображений с помощью такого «отображения».
Пусть V и W — векторные пространства (оба — действительные или комплексные векторные пространства). Функция f: V ->W называется «линейным отображением», если для любых двух векторов u, v 𝞮 V и любого скаляра c (действительного числа или комплексного числа в зависимости от того, работаем ли мы с действительными или комплексными векторными пространствами) выполняются следующие два условия:
$$f(u+v) = f(u) + f(v) tag{1}$$
$$f(cv) = cf(v)тег{2}$$
Объединяя два приведенных выше свойства, можно получить следующий результат о линейной комбинации n векторов.
$$f(c_1.u_1+ c_2.u_2+ … c_n.u_n) = c_1.f(u_1)+c_2.f(u_2)+…+c_n.f(u_n)$$
И теперь мы можем увидеть, откуда взялось название «линейное отображение». Если мы перейдем к линейному отображению f, линейной комбинации n векторов (левая часть уравнения выше), это эквивалентно применению того же линейного отображения к функциям (f) отдельных векторов. Мы можем сначала применить линейное отображение, а затем линейную комбинацию или сначала линейную комбинацию, а затем линейное отображение. Эти два варианта эквивалентны.
В старших классах мы изучаем линейные уравнения. В двумерном пространстве такое уравнение представляется как f(x)=m.x+c. Здесь m и c — параметры уравнения. Обратите внимание, что эта функция не является линейным отображением. Хотя она удовлетворяет уравнению (1) выше, она не удовлетворяет уравнению (2). Если вместо этого мы установим f(x)=mx, то это будет линейное отображение, поскольку оно удовлетворяет обоим уравнениям.

III) Матрицы
В разделе I мы ввели понятие базиса для векторного пространства. Учитывая базис для первого векторного пространства (V) и размерность второго (U), каждое линейное отображение можно выразить в виде матрицы (подробнее см. здесь). Матрица — это просто набор векторов. Эти векторы можно расположить в столбцах, что даст нам двумерную сетку чисел, как показано ниже.

Матрицы — это объекты, о которых люди в первую очередь думают в контексте линейной алгебры. И на то есть веская причина. Большая часть времени, потраченного на практику линейной алгебры, связана с матрицами. Но важно помнить, что (в общем случае) существует бесконечное количество матриц, которые могут представлять линейную карту, в зависимости от базиса, который мы выбираем для первого пространства, V. Таким образом, линейная карта — это более общее понятие, чем матрица, которую мы используем для ее представления.
Как матрицы помогают нам выполнить линейное отображение, которое они представляют (из одного вектора в другой)? Через умножение матрицы на первый вектор. Результатом является второй вектор, и отображение завершено (из первого во второй).
В деталях, мы берем скалярное произведение (сумма-произведение) первого вектора v_1 с первой строкой матрицы, и это дает первую запись результирующего вектора v_2, а затем скалярное произведение v_1 со второй строкой матрицы, чтобы получить вторую запись v_2 и так далее. Этот процесс продемонстрирован ниже для матрицы с 2 строками и 3 столбцами. Первый вектор v_1 является трехмерным, а второй вектор v_2 является двумерным.

Обратите внимание, что базовая линейная карта, лежащая в основе матрицы с этой размерностью (2×3), всегда будет брать трехмерный вектор v_1 и отображать его в двумерное пространство v_2.

В общем случае матрица (nxm) отображает m-мерный вектор в n-мерный.
III-A) Свойства матриц
Давайте рассмотрим некоторые свойства матриц, которые позволят нам определить свойства линейных отображений, которые они представляют.
Классифицировать
Важным свойством матриц и соответствующих им линейных отображений является ранг. Мы можем говорить об этом в терминах набора векторов, поскольку это все, чем является матрица. Допустим, у нас есть вектор v1=[1,0,0]. Первый элемент вектора — это координата по оси x, второй — по оси y, а третий — по оси z. Эти три оси являются базисом (их много) трехмерного пространства R³, что означает, что любой вектор в этом пространстве может быть выражен как линейная комбинация этих трех векторов.

Мы можем умножить этот вектор на скаляр s. Это дает нам s.[1,0,0] = [s,0,0]. Изменяя значение s, мы можем получить любую точку вдоль оси x. Но это все. Допустим, мы добавляем еще один вектор в нашу коллекцию, v2=[3.5,0,0]. Теперь, какие векторы мы можем получить с помощью линейных комбинаций этих двух векторов? Мы можем умножить первый на любой скаляр s_1, а второй на любой скаляр s_2. Это дает нам:
$$s_1.[1,0,0] + s_2[3.5,0,0] = [s_1+3.5 s_2, 0,0] = [s',0,0]$$
Здесь s' — это просто еще один скаляр. Таким образом, мы все еще можем достичь точек только на оси x, даже с помощью линейных комбинаций обоих этих векторов. Второй вектор вообще не «расширил нашу досягаемость». Количество точек, которых мы можем достичь с помощью линейных комбинаций этих двух, в точности совпадает с количеством, которого мы можем достичь с помощью первого. Таким образом, даже если у нас есть два вектора, ранг этого набора векторов равен 1, поскольку пространство, которое они охватывают, одномерно. Если бы, с другой стороны, второй вектор был v2=[0,1,0], то вы могли бы получить любую точку на плоскости xy с помощью этих двух векторов. Таким образом, охватываемое пространство было бы двумерным, а ранг этого набора был бы 2. Если бы второй вектор был v2=[2.1,1.5,0.8], мы все еще могли бы охватить двумерное пространство с помощью v1 и v2 (хотя это пространство теперь отличалось бы от плоскости xy, это была бы какая-то другая двумерная плоскость). И оба вектора по-прежнему будут иметь ранг 2. Если ранг набора векторов совпадает с числом векторов (то есть они могут вместе охватывать пространство размерности, равной числу векторов), то они называются «линейно независимыми».
Если векторы, составляющие матрицу, могут охватывать m-мерное пространство, то ранг матрицы равен m. Но матрицу можно рассматривать как набор векторов двумя способами. Поскольку это простая двумерная сетка чисел, мы можем либо рассматривать все столбцы как группу векторов, либо рассматривать все строки как группу, как показано ниже. Здесь у нас есть матрица (3×4) (три строки и 4 столбца). Ее можно рассматривать либо как набор из 4 векторов-столбцов (каждый 3-мерный), либо как набор из 3 векторов-строк (каждый 4-мерный).

Полный ранг строки означает, что все строки векторов строк линейно независимы. Полный ранг столбца означает, что все векторы столбцов линейно независимы.
Когда матрица является квадратной, оказывается, что ранг строки и ранг столбца всегда будут одинаковыми. Это совсем не очевидно, и доказательство дано в посте mathexchange, [3]. Это означает, что для квадратной матрицы мы можем говорить только в терминах ранга и не должны заморачиваться указанием «ранга строки» или «ранга столбца».
Линейное преобразование, соответствующее матрице (3 x 3), имеющей ранг 2, отобразит все в трехмерном пространстве в более низкое, двумерное пространство, очень похожее на матрицу (3 x 2), с которой мы столкнулись в предыдущем разделе.

Понятия, тесно связанные с рангом квадратных матриц, — это определитель и обратимость.
Определители
Определитель квадратной матрицы — это ее «мера» в некотором смысле. Позвольте мне объяснить, вернувшись к представлению о матрице как о наборе векторов. Давайте начнем с одного вектора. Способ «измерения» очевиден — его длина. И поскольку мы имеем дело только с квадратными матрицами, единственный способ иметь один вектор — сделать его одномерным. Что по сути является просто скаляром. Все становится интереснее, когда мы переходим от одного измерения к двум. Теперь мы находимся в двумерном пространстве. Итак, понятие «меры» больше не является длиной, но перешло к площадям. И с двумя векторами в этом двумерном пространстве это площадь параллелограмма, который они образуют. Если два вектора параллельны друг другу (например, оба лежат на оси x). Другими словами, они не являются линейно независимыми, то площадь параллелограмма между ними станет равной нулю. Определитель матрицы, образованной ими, будет равен нулю, и поэтому ранг этой матрицы будет равен нулю.

Поднимая ее на одно измерение выше, мы получаем 3-мерное пространство. И чтобы построить квадратную матрицу (3×3), нам теперь нужно три вектора. И поскольку понятие «меры» в трехмерном пространстве — это объем, определитель матрицы (3×3) становится объемом, заключенным между векторами, которые ее составляют.

И это можно распространить на пространство любой размерности.
Обратите внимание, что мы говорили о площади или объеме, заключенном между векторами. Мы не уточняли, являются ли эти векторы составляющими строки квадратной матрицы или те, которые составляют ее столбцы. И несколько удивительно то, что нам не нужно это уточнять, потому что это не имеет значения в любом случае. Если мы возьмем векторы, образующие строки, и измерим объем между ними или векторы, образующие столбцы, мы получим тот же ответ. Это доказано в посте mathexchange [4].
Есть множество других свойств линейных отображений и соответствующих матриц, которые бесценны для их понимания и извлечения из них ценности. Мы углубимся в обратимость, собственные значения, диагонализируемость и различные преобразования, которые можно сделать в следующих статьях (вернитесь сюда для ссылок).
Источник: towardsdatascience.com



























