Казалось бы, высокоуровневый искусственный интеллект и машинное обучение на самом деле неотделимы от поддержки математики. Из этого математического содержания наиболее важными, несомненно, являются две части: алгебра и теория вероятностей. Я не могу полностью осветить алгебру (в частности, теорию матриц) и теорию вероятностей в блоге, но можно затронуть некоторые интересные и важные ее части.
В этой статье мы говорим о SVD-разложении матриц.
некоторые знания матрицы
Во-первых, давайте рассмотрим некоторые базовые знания о матрицах.
Транспонирование и сопряженное транспонирование
Транспонирование матрицы — простейший вид матричного преобразования. Проще говоря, еслиматрицаТранспонирование записывается как;ноЯвляетсяматрица и.
Поэтому транспонирование матрицы равносильно переворачиванию матрицы по главной диагонали, при этом нетрудно получить.
Сопряженное транспонирование матрицы, вероятно, является предпоследним простейшим матричным преобразованием. Сопряженное транспонирование нужно только наложить сопряженное комплексного числа на основе транспонирования. Следовательно, еслиматрица заметокСопряженное транспонирование , то мы имеем.
Унитарная матрица
Унитарная матрица — это особый вид квадратной матрицы, удовлетворяющий условию
U UH =U H U= In .
U U H =U H U =I n .Нетрудно заметить, что унитарная матрица на самом деле является обобщенной ортогональной матрицей; когда все элементы унитарной матрицы являются действительными числами, унитарная матрица на самом деле является ортогональной матрицей. С другой стороны, поскольку унитарная матрицаудовлетворить, на самом деле это необходимое и достаточное условие унитарности матрицы.
нормальная матрица
Как и унитарная матрица, нормальная матрица также является специальной квадратной матрицей, которая требуется для удовлетворения коммутативного закона с ее сопряженной транспонированной матрицей в смысле матричного умножения. То есть, если матрицаЕсли выполняются следующие условия, она называется нормальной матрицей:
M MH =M H M.
M M H =M H M .Очевидно, что унитарная матрица комплексных коэффициентов и ортогональная матрица действительных коэффициентов являются нормальными матрицами. Очевидно, нормальные матрицы — это не только унитарные матрицы или ортогональные матрицы. Например, матрица— нормальная матрица, но явно не унитарная и не ортогональная матрица, поскольку
M MH =( 2 11 1 21 1 12 ) =M H M.
Спектральная теорема и спектральное разложение
Диагонализация матриц - важное предложение линейной алгебры. Спектральная теорема дает результат диагонализации квадратных матриц: если матрица— нормальная матрица, то существует унитарная матрица, а диагональная матрица, так что
M =UΛ UH .
Иными словами, нормальные матрицы можно разложить на диагональные матрицы посредством унитарного преобразования; этот метод разложения матриц называется спектральным разложением.
разложение СВД
Спектральная теорема дает возможность и форму нормальной матричной факторизации. Однако для матриц нормальные матрицы очень требовательны. Поэтому спектральная теорема — очень слабая теорема, и область ее применения ограничена. В реальном производстве многие матрицы, с которыми мы сталкиваемся, не являются обычными матрицами. Для этих матриц спектральная теорема неверна. Как обобщение спектральной теоремы, разложение SVD требует гораздо меньшего количества исходной матрицы.
Что говорит разложение SVD: предположимЯвляетсяматрица, все элементы которой принадлежат числовому полю(поле реального числаили сложное поле). Ну, естьунитарная матрицаиунитарная матрицасделать
M =UΣ VH ,
вданеотрицательная действительная диагональная матрица , иэлементы по диагоналидаединственное значение . В общем, мы предпочитаем располагать эти сингулярные значения в порядке убывания, чтобыНаТолько уверен.
С другой стороны, посколькуивсе матрицы унитарные, поэтомуиВекторы-столбцы , соответственно, растянуты винабор стандартных ортонормированных базисов. мы будемВектор-столбец;будетВектор-столбец; в то же время,по диагоналиэлементы обозначены. Тогда разложение SVD может фактически преобразовать матрицунаписать итоговую форму
M = мин (m,n) ∑ я знак равно 1 σi→ ты я→ v Т я .
Метод расчета СВД
После понимания введения SVD и связанного с ним геометрического объяснения, следующая самая непосредственная вещь, которую нужно знать, это как вычислить SVD матрицы. Мы изучаем этот вопрос в несколько шагов.
SVD и собственные значения
Теперь предположим, что матрицаРазложение SVD
M =UΣ VH ;
Тогда у нас есть
M MH =UΣV H VΣ H UH =U (ΣΣ H )U H M H M =V ΣH U H UΣ VH =V (Σ H Σ) VH
То есть,Вектор-столбец (левый сингулярный вектор) , равенсобственные векторы ; в то же время,Вектор-столбец (правый сингулярный вектор) , равенсобственные векторы , с другой стороны,Сингулярные значения (ненулевые диагональные элементы ), тоилиКвадратный корень из ненулевых собственных значений .
Как рассчитать СВД
Вооружившись этими знаниями, мы можем вручную вычислить SVD-разложение любой матрицы; в частности, алгоритм выглядит следующим образом:
- рассчитатьи;
- Рассчитать отдельноисобственные векторы и их собственные значения;
- Собственные векторы;иСобственные векторы;
- правильноиКвадратный корень из ненулевого собственного значения , соответствующего положению вышеупомянутого собственного вектора, заполнитедиагональный элемент .
Ознакомьтесь с фактическим расчетом
Теперь попробуем вычислить сингулярное разложение . Рассчитать разложение по сингулярным числам, нужно рассчитатьЛево-правое произведение его сопряженного транспонирования; здесь мы в основном используемНапример.
Во-первых, нам нужно рассчитать,
W =MM H =[ 2 4 1 3 0 0 0 0 ] [ 2 10 0 4 30 0 ] =[ 20 140 0 14 100 0 0 00 0 0 00 0 ] .
Теперь мы просимсобственные значения и собственные векторы . По определению;следовательно. Это означает, что
[ 20 −λ14 00 14 10−λ 00 0 0− λ 0 0 00 −λ ] → Икс =→ 0 .
Согласно теории линейных уравнений, еслиЕсли уравнение имеет ненулевое решение, определитель матрицы коэффициентов должен быть равен 0, т. е.
|20 −λ14 00 14 10−λ 00 0 0− λ 0 0 00 −λ |=|20 −λ14 14 10−λ ||− λ 0 0 −λ |=0 ,
Это;Решения должны, , . Подставьте собственные значения в исходное уравнение, и соответствующие собственные векторы могут быть решены; эти собственные векторы используются в качестве векторов-столбцов для формирования матрицы
U =[ − 0,82 − 0,58 00 − 0,58 0,8200 0 01 0 0 00 1 ] .
То же можно понять (заметим, чтоисобственные значения одинаковы)
V знак равно [ - 0,40 - 0,91 - 0,91 0,40 ] .
а такжеДиагональные элементы на задаются выражениемсостоит из арифметических квадратных корней собственных значений , таким образом, существует
Σ =[ 5.46 0 0 0.37 0 0 0 0 ] .
Итак, мы получаем матрицуРазложение SVD (численно аппроксимировано):
[ 2 4 1 3 0 0 0 0 ] ≈ [ - 0,82 - 0,58 00 - 0,58 0,82 00 0 01 0 0 00 1 ] [ 5,46 0 0 0,37 0 0 0 0 ] [ - 0,40 - 0,91 - 0,91 0,40 ]
Интуитивная интерпретация геометрии
Сначала рассмотрим пример. ПредположениеЯвляетсяматрица иэто линейное пространствовектор в , то
у =М⋅х
это линейное пространствовектор в . Таким образом, матрицасоответствует отприбытьпреобразование, точнее оба.
То есть в линейной алгебре любую матрицу можно рассматривать как преобразование. Таким образом, мы объединяем матрицу и трансформируем.
Преобразование вращения и преобразование отражения (зеркало)
Вращение в линейном пространстве фактически меняет направление вектора, но не меняет длину и хиральность вектора. Теперь предположим, что матрицаэто линейное пространствоМатрица, соответствующая преобразованию поворота в , посмотрим, как она должна выглядеть.
Во-первых, мы рассматриваем векторный скалярный продукт. Потому что поворот не меняет длину вектора, а угол между двумя векторами остается неизменным после такого же поворота. Следовательно, еслиСоответственно преобразованию вращения, должно быть
→ а ⋅→ б = М → а ⋅ М → б ,
это
→ а ⋅→ б Т = М → а ⋅ ( М → б )Т ,
Это означает, что,этоявляется ортогональной матрицей.
Поэтому для двумерного случаямогу написатьили. Бывший определительПоследний определитель. теперь, когдаявляется ортогональной матрицей, то значение ее определителя должно быть. Проблема в том, что определительиКакая из них ротация? Или оба вращаются?
Оглядываясь назад, мы должны обратить внимание на две вещи. Во-первых, в определении вращения мы предполагаем, что вращение сохраняет «хиральность»; во-вторых, в процессе вывода о том, что матрица вращения является ортогональной матрицей, мы не использовали свойство «хиральности-инвариантности», поскольку.
На самом деле, еслиОпределитель, то матрица соответствует ошибочному вращению — сначала повернутьЗатем нажмите прямую линиюзеркало. учитывать, это вращение дефекта по существу представляет собой прямую линиюзеркало.
Поэтому мы говорим, что матрица вращения является определителемявляется положительно определенной матрицей вида
[ cos φ− sin φ sin φ cos φ ] ,
Указывает на вращение в положительном направлении (обычно против часовой стрелки). заСтандартный ортогональный базис на, , они превращаются ви.
Определительявляется положительно определенной матрицей вида
[ cos φsin φ sin φ− cosφ ] ,
Указывает прямую линиюзеркало.
масштабное преобразование
Суть масштабирования в линейном пространстве заключается в преобразовании каждого измерения в линейном пространстве независимо, без влияния других измерений. Таким образом, очевидно, что соответствующая матрица должна быть диагональной матрицей.
Геометрическая интерпретация разложения SVD
Теперь оглядываясь назад на разложение СВД
M =UΣ VH ,
Обсуждаем в реальном диапазоне, мы по сути конвертируем сложное преобразованиеДекомпозируется на три преобразования: поворот/отражение, увеличить, повернуть/отразить.
Без ограничения общности полагаема такжеивсе матрицы вращения, то этот процесс можно выразить как
Легко найти,Сначала поверните (возможно, вырожденную) единичную сферу (вращая ортонормированный базис), затем пройдитеМасштабируйте и растяните единичный круг в эллипс (гиперэллипсоид в гиперпространстве), а затем передайтепоместить гиперэллипсоид ввращаться в пространстве. А длина каждой полуоси этого суперэллипсоида есть матрицаСингулярные значения , то есть матрицаЭлементы по диагонали.
Приложения разложения SVD
В химии есть поговорка, что «структура определяет свойства, свойства определяют использование»; это отражает особенности вещи изнутри и общие законы использования вещей человеком. Это же правило применимо и к математике.
СВД разлагает матрицу в виде накопления и суммирования, в котором коэффициент каждого элемента является сингулярным значением исходной матрицы. Эти сингулярные числа, согласно предыдущей геометрической интерпретации, на самом деле являются длинами коротких осей пространственного гиперэллипсоида. Теперь представьте очень плоский эллипс на двумерной плоскости (с очень большим эксцентриситетом), большая ось которого настолько длиннее малой оси, что весь эллипс выглядит неотличимым от отрезка прямой. В это время, если короткая ось эллипса принудительно установлена на ноль, интуитивно процесс вырождения эллипса в отрезок не является резким. Возвращаясь к разложению SVD, большее сингулярное значение отражает основные характеристики и информацию самой матрицы, меньшее сингулярное значение, такое как очень короткая короткая ось эллипса, почти не отражает характеристики и информацию матрицы. Поэтому, если мы заставим меньшие сингулярные числа в разложении SVD обнулиться, это эквивалентно отбрасыванию неважной части информации в матрице.
Следовательно, декомпозиция SVD работает как минимум двумя способами:
- Проанализируйте и поймите основные характеристики исходной матрицы и информацию, которую она несет (возьмите некоторые из самых больших сингулярных значений), что приводит к анализу основных компонентов (PCA);
- Отбрасывание и игнорирование вторичных особенностей исходной матрицы и переносимой вторичной информации (отбрасывание нескольких меньших сингулярных значений) приводит к таким темам, как сжатие информации с потерями и аппроксимация матриц низкого ранга.
Применение этих двух аспектов на самом деле двояко: ведь после сортировки по важности, с одной стороны, мы можем знать, какая информация (сингулярные значения) важна, а с другой стороны, я могу естественным образом отбросить неважные части. Здесь мы берем сжатие информации с потерями в качестве примера.
В реальной жизни и на работе большое количество информации может быть представлено в матричной форме. Например: изображение (см.PIL Concise Tutorial — Манипуляции с пикселями и фильтры изображений) информация, огромные матрицы признаков в задачах машинного обучения и т. д. Здесь мы следуем предыдущей траектории и визуально отображаем применение декомпозиции SVD при сжатии графики в виде информации об изображении.
Сначала давайте рассмотрим кота, которого мы видели, он выглядит так:
После разложения SVD сингулярные значения трех каналов RGB соответственно имеют вид (код):
[ 8.29754663e+04 1.43568761e+04 8.28098602e+03 7.94075752e+03
6.87204550e+03 4.64118946e+03 3.07326587e+03 2.64043230e+03
2.34251575e+03 2.08293043e+03 1.81457650e+03 1.73772694e+03
1.55535238e+03 1.44987605e+03 1.28556279e+03 1.18657598e+03
1.15156737e+03 1.10588319e+03 1.04069060e+03 9.63555279e+02
...
2.07308001e+00 2.03810704e+00 2.01670137e+00 1.89766075e+00
1.78169821e+00]
[ 7.52035286e+04 1.45096769e+04 1.02416708e+04 7.99187399e+03
5.55763091e+03 4.82795595e+03 3.22590281e+03 2.81678573e+03
2.47269533e+03 2.05484885e+03 1.87922653e+03 1.67558281e+03
1.55022246e+03 1.48494502e+03 1.30714569e+03 1.19338672e+03
1.17078655e+03 1.07687752e+03 1.04558020e+03 9.93807772e+02
...
2.08166328e+00 2.03020090e+00 1.95633445e+00 1.88738236e+00
1.80539295e+00]
[ 7.15164941e+04 1.60372342e+04 1.20401757e+04 8.69602152e+03
5.69604800e+03 3.76913288e+03 3.48390702e+03 3.17683272e+03
2.73730517e+03 2.32005514e+03 2.08571764e+03 1.76733763e+03
1.55393096e+03 1.47436741e+03 1.39202168e+03 1.21607022e+03
1.17991116e+03 1.16377337e+03 1.01255317e+03 9.97811473e+02
...
2.17604369e+00 2.13041080e+00 1.99837012e+00 1.88718778e+00
1.80040166e+00]
Когда мы усекаем от большого к меньшему, отбрасываем меньшие сингулярные значения и реконструируем изображение, мы получаем «сжатое» изображение.
Когда берется только одно единственное значение, реконструированное изображение выглядит следующим образом. В принципе ничего не видно.
Когда берутся только 5 сингулярных значений, реконструированное изображение выглядит следующим образом. В этот момент изображение кота едва можно было разглядеть.
Замечено, что около 20-го сингулярного значения величина сингулярного значения меняется на порядок (от+03
падать до+02
). Поэтому при взятии 20 сингулярных значений реконструированное изображение выглядит следующим образом, образ кота в это время уже очень четкий.
При взятии 50 сингулярных значений восстановленное изображение достаточно близко к исходному изображению.
Точно так же мы можем также наблюдать доступ100/200/300/ 400При наличии сингулярных значений результат получается путем восстановления изображения.
Ваша поддержка - самая большая мотивация для меня, чтобы написать
Как говорится, эффективность инвестиций — лучшая инвестиция. Если вы чувствуете, что мои статьи хорошего качества, вы много выиграете после их прочтения, и ожидается, что это повысит эффективность вашей работы на 10%, вы можете сделать мне небольшое пожертвование, чтобы я был мотивирован продолжать писать больше хороших статей.