Эта статья возникла из личного публичного аккаунта:TechFlow
Линейная алгебра является очень важным базовым знанием в области машинного обучения, но, к сожалению, немногие люди могут осознать ее важность, прежде чем действительно приступить к работе, и усвоить ее основательно. То же самое и у меня, я попробовал его только в колледже, результаты экзаменов по этому курсу были в порядке, но я мало что помнил потом. В результате многие статьи и материалы потом было очень трудно читать, а многие формулы были трудны для понимания, а если и были поняты, то легко забывались.
Линейная алгебра имеет много содержания, многие из которых очень глубоки, здесь мы извлекаем только самые важные точки знаний. Студенты, которые не учились, могут легко получить суть, а студенты, которые изучали, также могут использовать ее в качестве повторения.
определение определителя
Определение в Википедии состоит в том, что определитель — это функция, которая отображает матрицу n*n в скаляр. Этот скаляр представляет изменение «объема» матрицы в пространстве после линейного изменения, представленного этой матрицей.
То есть вход определителя — это квадратная матрица n*n, а выход — конкретное число. Мы используем det для представления определителя.Предполагая, что A является определенной матрицей n * n, тогда det (A) представляет определитель матрицы.
вычисление определителя
определитель второго порядка
сделать
Так, то есть разность диагональных произведений.
определитель третьего порядка
Рассмотрим ситуацию третьего порядка:
сделать
Так
Просто посмотреть на формулу очень сложно.Если мы соединим произведение всех положительных членов красной линией, а количество отрицательных членов соединим синей линией, то мы можем получить следующую картину.
На самом деле, по сути, это все-таки произведение разности диагоналей, то есть сумма произведений всех положительных (сверху слева направо внизу) диагоналей за вычетом произведения обратных (сверху справа на нижний левый) диагоналей .
Мы привели формулы биномиального и трехчленного определителей, естественно, ниже напишем способ вычисления n-членного определителя. Но перед этим мы должны ввести еще одно родственное понятие — обратное число.
Обратный порядковый номер
Само обратное число в основном используется при расчете определителя, но помимо этого, оно часто фигурирует в вопросах на собеседовании.Многие вопросы на собеседовании просят соискателей написать или продиктовать алгоритм вычисления обратного числа. Это будет объяснено отдельно в следующем столбце алгоритма.
Предположим, у нас есть массив A с n различными элементами. В идеале все элементы в A должны быть упорядочены. Например, они расположены от мала до велика, но идеальное положение встречается редко. В большинстве случаев элементы массива неупорядочены.
Предположим, мы хотим узнать, насколько текущая сортировка массива далека от идеального возрастающего порядка. Нормально думать, что мы можем перебрать всеикомбинации, чтобы увидеть, сколько из них в неправильном порядке. Среди всех комбинаций двух элементов этой последовательности общее число комбинаций в неправильном порядке называется числом обратного порядка.
Простой взгляд на концепцию немного сбивает с толку, но на самом деле очень просто посмотреть непосредственно на код:
reverse = 0
for i in range(n):
for j in range(i):
if A[i] < A[j]:
reverse += 1
То есть для каждого элемента в массиве мы подсчитали количество элементов, которые находятся перед ним и больше его. В общем случае предположим, что расположение массива A равно, для каждогоМы все находим количество более крупных элементов перед ним, которое определяется как, то сумма всех обратных чисел:
определитель n-го порядка
Вернемся к определителю порядка n. Поняв понятие обратных порядковых числительных, мы можем легко написать формулу для определителя порядка n.
Сначала определим матрицу D, которая является квадратной матрицей порядка n:
Предположим натуральные числарасположение, обратный порядок этой перестановки равен t. Тогда мы можем записать определитель D:
Поскольку полная перестановка последовательности длины n имеет в общей сложностивидов, поэтому определитель квадратной матрицы n-го порядка содержит всегопункт.
Кроме того, есть еще один способ вычисления определителя.
В определителе n-го порядка положимПосле того, как все элементы строки и столбца, в которых находится элемент, удалены, называется оставшийся новый n-1 определитель порядкаАлгебраический кофактор элемента, обозначаемый как
Включите определитель 4-го порядка:
вАлгебраический кофактор элемента:
Алгебраические кофакторы могут использоваться для представления определителей:
Определитель матрицы можно записать в виде:
Доказательство тоже очень простое, по сути это всего лишь вариант определительного выражения. В качестве примера возьмем определитель третьего порядка:
Выразим эти значения в алгебраических сомножителях:
Упрощенно, это, очевидно, результат приведенной выше формулы.
Закон Крамера
Определение и вычисление определителя не являются интуитивными, так какова же роль такого относительно сложного понятия?
Помимо использования в моделях машинного обучения, еще одним очень классическим применением является определение того, имеет ли система линейных уравнений решение.
Для системы n линейных уравнений с n неизвестными
Его решение можно представить определителем порядка n.
Если этот n-порядок не равен 0, т.е.:
Тогда эта система уравнений n-го порядка имеет единственное решение, и ее решение:
в- новый определитель, полученный заменой j-го столбца D постоянным членом уравнения:
В дополнение к упомянутому выше содержанию определитель имеет много полезных свойств и несколько вариантов методов вычисления. Однако помощи в области алгоритмов не так много, поэтому здесь не так много перечисления, а заинтересованные студенты могут самостоятельно проверить соответствующую информацию.
Геометрический смысл определителя
В дополнение к своей алгебраической роли определитель также имеет геометрический смысл.
Взяв в качестве примера определитель второго порядка, предположим, что у нас есть два вектора, A и B, где вектор A записывается как, B векторное письмо, матрица, составленная из двух векторов AB, записывается в виде:
Если мы его нарисуем, он на самом деле представляет собой площадь параллелограмма этих двух векторов.
Следовательно, когда мы одновременно умножаем строку или столбец определителя на коэффициент k, его определитель увеличивается в k раз.
расчет кода
Из определения определителя выше несложно сделать вывод, что вычисление определителя более сложное, если мы реализуем его сами, то потребуется не менее 100 строк кода. К счастью, библиотека Python Numpy предоставляет нам множество операций, связанных с матрицами, включая вычисление определителя, поэтому мы можем реализовать вычисление определителя очень просто.
Если вы не установили Numpy, вы можете легко установить его через pip:
pip install numpy
Вызвав функцию det в numpy.linalg, мы можем напрямую найти значение определителя матрицы.
использованная литература
Википедия
Линейная алгебра, пятое издание (издательство Шанхайского университета Цзяотун)