Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сингулярное разложение и его применение. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
1 Мб
Скачать

Тогда

 

 

 

AT A =

25

20 .

 

20

25

√ √

Найдем сингулярные числа σ1 = 45, σ2 = 5 и собственные векторы

матрицы AT A:

 

 

 

 

 

1

 

20

 

25

1

1

20 25 1

 

 

 

 

25 20

 

 

1 = 45 1 ;

 

 

 

 

25

 

20

 

 

−1 = 5 −1 .

Отсюда определяем правые сингулярные векторы:

 

 

 

 

 

 

 

v

1

 

 

 

 

 

1

,

 

 

 

 

2

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 1/2 1

 

 

v = 1/2 −1 .

 

 

Найдем теперь левые сингулярные векторы:

 

 

 

 

 

 

 

 

 

 

Av1 = 2 3

=

45

10

 

3 = σ1u1,

 

 

 

 

 

 

 

 

 

3

1

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

2

2

1

=

 

10

1

2 2

 

 

 

 

 

 

 

 

= 1

 

 

 

 

−3

 

 

1

 

 

−3

 

 

 

 

 

 

 

 

 

Av

 

 

 

 

 

5

 

 

 

 

= σ u .

 

 

Итак, мы имеем сингулярное разложение A = UΣV , в котором

 

10 3 1

 

 

 

 

 

 

 

 

 

5

2 1 1

 

 

 

 

0

 

 

 

U =

1

 

 

1

 

−3 , Σ =

45 0

 

, V = 1

 

 

1

−1 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.ПРИМЕНЕНИЕ СИНГУЛЯРНОГО РАЗЛОЖЕНИЯ

2.1.Метод наименьших квадратов

При обработке данных экспериментальных измерений часто встречается такая задача: необходимо приблизить результаты проделанных измерений некоторой простой функцией, содержащей небольшое число параметров. Нужно выбрать значения этих параметров таким образом, чтобы аппроксимация была в некотором смысле наилучшей. Поясним сказанное простым примером. На рис. 12 показаны результаты измерений зависимости мышечной силы p от массы тела m. Нанесены результаты, полученные для N различных испытуемых.

Рис. 12

Логично предположить, что в среднем сила должна быть пропорциональна массе: p(m) = c1m + c2. Как следует выбрать константы c1 и c2?

Очевидно, что погрешность данной аппроксимации для i-го испытуемого вычисляется по формуле

εi = c1mi + c2 − pi,

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

12

участника велики. В методе наименьших квадратов в качестве критерия берут величину

NN

X

X

E(c1, c2) =

εi2 = (c1mi + c2 − pi)2 = Mc − p 2.

i=1

i=1

Здесь c ≡ (c1, c2)T — искомый двумерный вектор, p ≡ (p1, p2, . . . , pN )T — известный N-мерный вектор и M — прямоугольная матрица размерности

N × 2:

 

m1

1

 

M =

m2

1

...

...

.

 

 

 

 

 

mN

1

 

 

 

 

Таким образом, нужно найти значения параметров, при которых длина вектора Mc − p была бы минимальной. Разумеется, условием минимума данной величины является обращение в нуль частных производных: ∂E/∂c1 = = ∂E/∂c2 = 0. Решив эти два уравнения, мы и определим оптимальные значения c1, c2.

Приведенный пример легко обобщается. Пусть у нас есть результаты измерений xi, yi, i = 1, . . . , N. В примере выше мы пытались представить их линейной комбинацией линейной функции φ1(x) = x и постоянной функции φ2(x) = 1. Попробуем в общем случае аппроксимировать зависимость y(x) суммой K известных функций:

 

 

 

K

 

 

 

X

y(x) ≈ c1φ1(x) + c2φ2(x) + . . . + cKφK(x) = ckφk(x).

 

 

 

k=1

Будем искать c = (c1, . . . , cK)T , минимизируя величину

N

N

K

!2

X

X X

= Ac − y 2,

E(c1, . . . , cK) = εi2 =

 

ckφk(xi) − yi

i=1

i=1

k=1

 

т. е. норму N-мерного вектора Ac − y,

где A теперь N × K-матрица:

A =

φ1(...x1) ·.·..·

φK(...x1) .

 

φ1

(xN )

· · ·

φK(xN )

 

 

 

 

 

 

 

13

 

 

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

Заметим, что если число параметров равнялось бы числу измерений, K = = N, и матрица A была невырожденной, то погрешность E можно было бы обратить в нуль, решив систему уравнений Ac = y, т. е. взяв c = A−1y. В общем случае, однако, эта система несовместна. Это приводит нас к понятиям псевдорешения системы линейных уравнений и псевдообратной матрицы.

Рассмотрим систему уравнений Ax = b (мы заменили здесь обозначения c на x и y на b). Если система Ax = b несовместна, то равенство Ax = b не выполняется ни для какого вектора x. В этом случае интересуются векторами x, для которых вектор b − Ax имеет наименьшую возможную длину. Вектор b − Ax называется невязкой. Вектор x называется псевдорешением, если

b − Ax = min b − Az .

z

Среди всех псевдорешений имеется псевдорешение наименьшей длины xˆ, оно называется нормальным псевдорешением. Как все это связано с сингулярным разложением? Дело в том, что именно сингулярное разложение позволяет дать явный вид нормального псевдорешения:

Xr v b

xˆ = k uk. σk

k=1

Формулу для нормального псевдорешения можно записать в матричном виде:

 

1 0

1

1/σ2 ·· ·· ··

0

 

 

0

0

V .

xˆ = Mb, M = U

...

 

... ...

...

 

 

 

 

 

 

 

 

 

 

1/σr

 

 

· · ·

· · · · · ·

 

 

Матрица M называется псевдообратной для матрицы A.

2.2. Сжатие изображения

Одним из наиболее эффективных методов сжатия изображений является SVD-алгоритм, основанный на сингулярном разложении матриц. Исходная идея метода очень проста. Предположим для простоты, что изображение является черно-белой фотографией и хранится как файл, содержащий m × n

14

пикселей. Каждому пикселю соответствует оттенок серого цвета, который может быть задан числом. Таким образом, мы имеем некоторую m × n- матрицу A. Выполним сингулярное разложение матрицы A:

A = UΣV T .

Напомним, что размерности матриц U, Σ и V T равны соответственно m × m, m × n и n × n.

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

A= UΣV ′T ,

где матрица Uсодержит первые r столбцов матрицы U и имеет размерность m × r, диагональная r × r-матрица Σвключает только главные компоненты, матрица V ′T размерности r × n содержит первые r строк матрицы V T . Результаты сжатия с различными значениями r можно видеть на рис. 13.

Рис. 13

15

Очевидно, что при r = 160 сжатое изображение морского бога Тритона с его трезубцем вполне адекватно передает практически все детали исходной фотографии, при r = 40 изображение различимо, но мелкие детали размыты, при r = 10 уже трудно понять, что было изображено на фотографии.

2.3. Распознавание рукописных цифр

Задача автоматического распознавания рукописного текста встречается во многих практических приложениях. Рассмотрим для простоты эту задачу, ограничившись распознаванием 10 написанных от руки цифр. На рис. 14 показано несколько примеров того, как по-разному могут быть написаны цифры.

Рис. 14

Предположим, что у нас имеется k тренировочных образцов написания цифры 6, которые мы будем использовать для обучения распознающей системы (рис. 15).

Прежде всего, мы масштабируем цифры таким образом, чтобы они вмещались в прямоугольник с заданным размером 16 × 16 клеток. Затем сконструируем k матриц размера 16 × 16, по одной на каждый образ, элементы которых будут числами, определяющими оттенок серого цвета в соответствующей клетке. Превратим каждую матрицу в вектор в пространстве R256, просто читая матрицы по строкам (или по столбцам). Наконец, составим из этих векторов матрицу M с 256 строками и k столбцами.

16

Рис. 15

Вычислим сингулярное разложение матрицы M:

M = UΣV T .

Пусть r — ранг матрицы M. Тогда векторы u1, u2, . . . , ur, где ui — i-й столбец матрицы U, образуют ортонормальный базис в пространстве столбцов матрицы M (докажите это!). Другими словами, u1, u2, . . . , ur образуют цифровое пространство для данной цифры.

Продолжим этот процесс, повторив все перечисленные операции для каждой из 10 цифр. На рис. 16 показаны усредненные образы всех цифр (их иногда называют центроидами), полученные при обучении системы по 100 тренировочным образцам для каждой цифры. Более точно, чтобы получить эти образы, для каждой цифры было вычислено среднее арифметическое каждой компоненты 100 векторов в пространстве R256.

Пусть теперь мы хотим распознать некоторую написанную от руки цифру. Составим для нее, как описано выше, 256-мерный вектор q. Мы хотим определить, к какому из 10 цифровых пространств ближе всего этот вектор. В качестве критерия близости выберем величину

r

X

E = q − (q, ui)ui ,

i=1

т. е. норму разности между вектором q и его проекцией на подпространство, образованное векторами u1, u2, . . . , ur.

17

Рис. 16

Вычислим эту величину для каждой из 10 цифр. Пусть E имеет минимальное значение для цифры d. Тогда будем считать, что именно d и является распознаваемой цифрой.

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

Насколько большое количество тренировочных образов может потребоваться на практике? На рис. 17 показаны результаты эксперимента, в котором 1000 рукописных цифр распознавалась, используя различное количество тренировочных образцов — от 5 до 100. Видно, что доля правильно распознанных цифр составляет примерно 90 % с 20 образцами и практически перестает увеличиваться, достигнув 92 % при 40 образцах. Это увеличение на 2 % сопровождается значительным увеличением времени, необходимого для вычисления цифрового пространства.

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

18

Рис. 17

2.4. Рекомендательные системы

В настоящее время интернет-компании широко используют рекомендательные системы, т. е. специальные программы, которые пытаются предсказать, какие объекты (фильмы, музыка, книги, новости, веб-сайты) будут интересны пользователю, имея определенную информацию о его профиле. В 2006 г. фирма Netflix объявила открытое соревнование с призом в 1 000 000 долларов на лучший алгоритм предсказания оценки, которую зритель поставит фильму, на основе предыдущих оценок этого и других зрителей. Для его получения необходимо было улучшить алгоритм Netflix на 10 %. В 2009 г. приз выиграла команда, чей алгоритм использовал сингулярное разложение.

Чтобы дать представление как это может работать, рассмотрим простой пример. Предположим, что у нас имеется семь пользователей: Дмитрий, Борис, Эмма, Елисей, Ольга, Вячеслав и Лукерья, которые выставили следующие оценки просмотренным ими голливудским фильмам:

19

 

Матрица

Начало

Гравитация

Касабланка

Титаник

Дмитрий

1

1

1

0

0

Борис

3

3

3

0

0

Эмма

4

4

4

0

0

Елисей

5

5

5

0

0

Ольга

0

0

0

4

4

Вячеслав

0

0

0

5

5

Лукерья

0

0

0

2

2

Заметим, что первые три фильма — научная фантастика, а два последних — мелодрамы.

Представим эти оценки в виде матрицы A, строки которой соответствуют пользователям, а столбцы — фильмам:

 

3

3

3

0

0

 

 

 

 

1

1

1

0

0

 

 

 

A =

4

4

4

0

0

= UΣV

T

.

5 5 5 0 0

 

 

 

 

 

 

 

 

 

 

 

0

0

0

4

4

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

5

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

2

2

 

 

 

 

 

 

 

 

 

 

 

 

Вычислим сингулярные числа матрицы A и ее сингулярное разложение. Только два сингулярных числа оказываются ненулевыми: σ1 ≈ 12,4, σ2 ≈ 9,5, так что ранг матрицы r = 2. Удобно записать сингулярное разложение в так называемом компактном или сокращенном виде, взяв Σ в виде матрицы 2 × 2 и сохранив в U только первые два столбца, а в V T — первые две строки, т. е. отбросив все те столбцы и строки, которые в полной записи разложения заведомо умножаются на нулевые строки и столбцы соответственно. Тогда получаем

 

0,42

0

 

 

 

 

 

 

 

0,14

0

 

 

 

 

 

U =

0,56

0

 

,

Σ =

12,4

0

0,70

0

 

0

,

 

 

0

 

 

 

 

9,5

 

 

0,60

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,75

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,30

 

 

 

 

 

 

 

 

 

 

 

 

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]