Встановлення нових зображень з розрахунку SVD / PCA


16

Я намагаюся тиражувати ідеї зі сторінки Eigenface у вікіпедії. Зі сто вибіркових зображень, представлених матрицею даних (де кожне зображення сплющується до вектора довжиною , таким чином є матрицею на ), я обчислив декомпозицію SVD:n X 100 nХнХ100н

Х=UΣVТ

звідси:

ХХТ=UΣ2UТ

Беручи підмножину найбільших власних моделей , я можу наблизити матрицю (нехай \ sigma_1 \ ge \ sigma_2 \ ge \ cdots ):σ 1σ 2qσ1σ2

Хσ1у1v1Т+σ2у2v2Т++σqуqvqТ

Тепер, отримавши новий вектор у , який представляє зображення не в Х , як я можу визначити зважування q власних векторів U щоб найкраще представити моє нове зображення у ? Окрім патологічних випадків, чи є це уявлення унікальним?

Коротше кажучи, я хотів би зробити це (зі сторінки вікі):

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

Як зробити цю проекцію?


1
Майбутні читачі можуть вважати цю реалізацію цінною.
Емре

Відповіді:


11

"Проекція", про яку йдеться, - векторна проекція . Для обчислення проекції вектора на вектор ви використовуєте внутрішній добуток двох векторів:bab

aproj=a,bb

a baproj в цьому випадку є векторною складовою що лежить у тому ж напрямку . В евклідовому просторі внутрішній оператор продукту визначається як їх крапковий продукт :ab

a,b=ab=i=1naibi

де є число компонентів в векторах і і і є -й компонент векторів і , відповідно. Інтуїтивно, обчислюючи внутрішній добуток двох векторів, ви знаходите "скільки" вектора йде у напрямку вектора . Зауважте, що це підписана величина, тому від'ємне значення означало б, що кут між двома векторами перевищує 90 градусів, як це проілюстровано альтернативним визначенням для оператора проекції:a b a i b i i a b a bнабаiбiiабаб

аprоj=|а|cos(θ)б

де - кут між двома векторами.θ

Отже, з огляду на вектор та купу бази векторів можна знайти "скільки " йде у кожному з напрямків кожного із базових векторів. Зазвичай ці базові вектори будуть взаємно ортогональними. У вашому випадку SVD є ортогональним розкладанням, тому цю умову слід задовольнити. Отже, щоб виконати те, що ви описуєте, ви б взяли матрицю власних векторів і обчислили внутрішній добуток вектора-кандидата з кожним стовпцем матриці:b i a U yабiаUу

pi=ууi

Скалярне значення яке ви отримуєте від кожного внутрішнього продукту, відображає, наскільки добре вектор "вишикувався" з -го власного вектора. Оскільки власні вектори є ортонормальними , ви можете реконструювати початковий вектор наступним чином:у я уpiуiу

у=i=1нpiуi

Ви запитали, чи унікальне це представництво; Я не впевнений, що саме ви маєте на увазі, але це не є унікальним у тому сенсі, що даний вектор може бути розкладений проекцією на будь-яку кількість ортонормальних основ. Власні вектори, що містяться в матриці є одним з таких прикладів, але ви можете використовувати будь-яку кількість інших. Так , наприклад, обчислення дискретного перетворення Фур'є з можна розглядати як проектування його на ортонормованій комплексні експоненціальні вектори різної частоти.уUу


Чудова відповідь дякую! Під "унікальним" я мав на увазі унікальний у розумінні основи, наданих SVD. Я здогадуюсь, що, з огляду на ортонормальну основу, тоді ви обчислюєте, повинен бути унікальним, але якщо основа не ортонормальна, то вона може не бути (оскільки якщо вони не були ортогональними, то ми могли б знайти менший набір бази )? у
Зачепили

Ще не впевнений, у що ви потрапляєте. - вектор, до якого ви перегнали нове зображення, тому він є таким же унікальним, як оригінальне зображення та процес, який ви використовуєте для визначення відповідного вектора. Основа векторного простору за визначенням складається з лінійно незалежних векторів, що зумовлює властивість взаємної ортогональності. Ви правильно зазначаєте, що якщо ви спроектували на набір неортогональних векторів, ви могли б створити більш компактне зображення, якби простір, що охоплюється векторами, має меншу основну розмірність (менша основа). уу
Jason R
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.