Яка інтуїція стоїть за SVD?


50

Я читав про сингулярне розкладання значення (SVD). Майже у всіх підручниках зазначається, що вона розподіляє матрицю на три матриці із заданою специфікацією.

Але яка інтуїція за розбиттям матриці в такій формі? PCA та інші алгоритми зменшення розмірності є інтуїтивно зрозумілими, оскільки алгоритм має властивість візуалізації, але з SVD це не так.


4
Ви можете почати з інтуїції розкладання власного значення-власного вектора, оскільки SVD є розширенням його для всіх видів матриць, а не лише квадратних.
ДжонК

В Інтернеті є багато приміток та відповідей на резюме про SVD та його роботу.
Владислав Довгалець

2
SVD можна розглядати як алгоритм стиснення / навчання. Це лінійний компресорний декомпресор. Матриця M може бути представлена ​​множенням SVD. S - компресор V визначає, скільки помилок ви хотіли б мати (стиснення втрат), а D - декомпресор. Якщо ви зберігаєте всі діагональні значення V, то у вас є компресор без втрат. Якщо ви почнете викидати невеликі сингулярні значення (нулюючи їх), ви не зможете точно реконструювати початкову матрицю, але все одно буде близькою. Тут термін близький вимірюється нормою Фробеніуса.
Cagdas Ozgenc

2
@Cagdas, якщо ви це зробите, будь ласка, уважно визначте, що ви приймаєте "S" "V" і "D" математично. Я раніше не бачив, щоб ініціали перевантажувались у самій нотації (яка, наприклад, має особливі значення). Здається, це ймовірне джерело плутанини,
Glen_b

3
Чи знаєте ви, як оцінити PCA за допомогою SVD? Якщо так, то чи можете ви пояснити, чому ви відчуваєте, що чогось не вистачає у вашому розумінні SVD? Дивіться це
Аксакал

Відповіді:


63

Запишіть SVD матриці (дійсне, n × p ) як X = U D V T, де U дорівнює n × p , D - діагональна p × p, а V T - p × p . З точки зору стовпців матриць U і V можна записати X = p i = 1 d i u i v T iXn×p

X=UDVT
Un×pDp×pVTp×pUVX=i=1pdiuiviT. Це показує записаний у вигляді суми p матриць 1 рангу. Як виглядає матриця 1-го рангу? Подивимось: ( 1 2 3 ) ( 4 5 6 ) = ( 4 5 6 8 10 12 12 15 18 ) Рядки пропорційні, а стовпці пропорційні.Xp
(123)(456)=(45681012121518)

Подумайте тепер про як містить значення сірого масштабу чорно-білого зображення, кожен запис у матриці представляє один піксель. Наприклад, наступна картина бабуїна:X

зображення бабуїна

Потім прочитайте це зображення в R і отримайте матричну частину отриманої структури, можливо, використовуючи бібліотеку pixmap.


Якщо ви хочете покрокове керівництво щодо відтворення результатів, код ви можете знайти тут .


Обчисліть SVD:

baboon.svd  <-  svd(bab) # May take some time

512×512512512120

baboon.1  <-  sweep(baboon.svd$u[,1,drop=FALSE],2,baboon.svd$d[1],"*") %*%
                   t(baboon.svd$v[,1,drop=FALSE])

baboon.20 <-  sweep(baboon.svd$u[,1:20,drop=FALSE],2,baboon.svd$d[1:20],"*") %*%
                   t(baboon.svd$v[,1:20,drop=FALSE])

в результаті виходять наступні два зображення:

перше місце і 20 місце реконструкція бабуїнового образу

Ліворуч ми можемо легко побачити вертикальні / горизонтальні смуги на зображенні ранг-1.

20

зображення залишків реконструкції бабуїна 20 рангу

Що досить цікаво: ми бачимо частини оригінального зображення, які важко зобразити як накладку вертикальних / горизонтальних ліній, переважно діагональних волосся з носа та деякої текстури та очей!


11
Я думаю, ви мали на увазі реконструкцію низького рангу, а не малу дальність. Не звертай уваги. Це дуже гарна ілюстрація (+1). Ось чому це лінійний компресорний декомпресор. Зображення наближене лініями. Якщо ви справді виконуєте подібний автокодер з нейронною мережею з функціями лінійної активації, ви дійсно побачите, що він також дозволяє лініям з будь-яким нахилом не тільки вертикальних і горизонтальних ліній, що робить його трохи більш потужним, ніж SVD.
Cagdas Ozgenc

X=UΣVn×pXUn×nΣn×pVp×p

1
Дивіться math.stackexchange.com/questions/92171/… ще кілька прикладів
kjetil b halvorsen

@ kjetil-b-halvorsen Мене цікавить, як зміниться дешифрування, якби я використовував PCA для позначення програми. Буду вдячний, якщо ви можете відповісти на моє запитання тут stats.stackexchange.com/questions/412123/…
Kumar

@CowboyTrader цікаве спостереження. Моє розуміння машинного навчання / нейронної мережі досить обмежене. Отже, я не розумію, що якби у одного єдиного галасливого зображення і більше нічого не тренуватися, як би працювала нейронна мережа?
Душиант Кумар

3

Am×nmnvA

(1)v1=argmaxvRnAv2subject to v2=1.
v1A
v2=argmaxvRnAv2subject to v1,v=0,v2=1.
v1,,vnRnRnA

Нехай (так кількісно визначає вибухову силу у напрямку ). Припустимо, що одиничні вектори визначені так, що Рівняння (2) можна виразити стисло, використовуючи позначення матриці як де - матриця , й стовпець , - матриця , стовпець - це , іσi=Avi2σiAviui

(2)Avi=σiuifor i=1,,n.
(3)AV=UΣ,
Vn×niviUm×niuiΣ- діагональна матриця , - діагональна запис - . Матриця є ортогональною, тому ми можемо помножити обидві сторони (3) на щоб отримати Може здатися, що зараз ми отримали SVD з майже нульовим зусиллям. Жоден із кроків поки що не був складним. Однак вирішальний фрагмент картини відсутній - ми ще не знаємо, що є ортогональним.n×niσiVVT
A=UΣVT.
AU

Ось найважливіший факт, відсутній фрагмент: виявляється, що є ортогональним : Я стверджую, що якби це не було правдою, то не було б оптимальним для проблеми (1). Дійсно, якби (4) не були задоволені, то можна було б покращити , потурбувавши його трохи у напрямку .Av1Av2

(4)Av1,Av2=0.
v1 v1v2

Припустимо (для суперечності), що (4) не виконується. Якщо обурений трохи в ортогональному напрямку , норма не змінюється (або, принаймні, зміна норми є незначною). Коли я ходжу по поверхні землі, моя відстань від центру землі не змінюється. Однак, коли обурений у напрямку , вектор обурений в неортогональному напрямку , і тому зміна норми є незначним . Нормаv1v2v1v1v1v2Av1Av2Av1Av1може бути збільшена на незначну кількість. Це означає, що не є оптимальним для проблеми (1), що є протиріччям. Мені подобається цей аргумент, тому що: 1) інтуїція дуже чітка; 2) інтуїція може бути перетворена безпосередньо в суворий доказ.v1

Аналогічний аргумент показує, що є ортогональним як для і для тощо. Вектори попарно ортогональні. Це означає, що одиничні вектори можна вибрати ортогональними, а це означає, що матриця вище є ортогональною матрицею. Це завершує наше відкриття SVD.Av3Av1Av2Av1,,Avnu1,,unU


Щоб перетворити вищезазначений інтуїтивний аргумент у суворий доказ, ми маємо протистояти тому, що якщо обурений у напрямку , збурений вектор насправді не є одиничним вектором. (Його норма - .) Щоб отримати суворий доказ, визначте Вектор справді одиничний вектор. Але як ви легко можете показати, якщо (4) не задоволено, то для досить малих значень маємо (припустимо, що знакv1v2

v~1=v1+ϵv2
1+ϵ2
v¯1(ϵ)=1ϵ2v1+ϵv2.
v¯1(ϵ)ϵ
f(ϵ)=Av¯1(ϵ)22>Av122
ϵобрано правильно). Щоб показати це, просто перевірте, що . Це означає, що не є оптимальним для проблеми (1), що є протиріччям.f(0)0v1

(До речі, я рекомендую ознайомитись із поясненням ЦДАочу Юану щодо СВД тут . Зокрема, погляньте на "Ключову лему № 1", про що ми говорили вище. Як каже Цяочу, ключова лема № 1 - "технічне серце" сингулярного розкладання значення ".)


0

Чувак взяв годину свого дня і переглянь цю лекцію: https://www.youtube.com/watch?v=EokL7E6o1AE

Цей хлопець супер прямо вперед, важливо не пропустити жодне з нього, тому що все це зрештою збирається. Навіть якщо на початку це може здатися трохи повільним, він намагається закріпити критичну точку, що і робить!

Я підсумую це для вас, а не просто дам вам три матриці, які всі роблять (бо це мене бентежило, коли я читав інші описи). Звідки беруться ці матриці і чому ми її встановлюємо так? Лекція нігтів це! Кожна матриця (будь-коли в історії вічності) може бути побудована з базової матриці з однаковими розмірами, потім повернути її та розтягнути (це основна теорема лінійної алгебри). Кожна з цих трьох матриць, які люди перекидають, являють собою початкову матрицю (U), матрицю масштабування (сигму) та матрицю обертання (V).

Матриця масштабування показує, які вектори обертання домінують, вони називаються сингулярними значеннями. Розкладання розв’язується для U, сигми та V.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.