Чим відрізняється відбілювання ZCA від відбілювання PCA?


60

Мене бентежить питання відбілювання ZCA та нормального відбілювання (що отримується шляхом ділення основних компонентів на квадратні корені власних значень PCA). Наскільки мені відомо,

xZCAwhite=UxPCAwhite,
деU - власні вектори PCA.

У чому полягає застосування відбілювання ZCA? Які відмінності між нормальним відбілюванням та відбілюванням ZCA?


2
За даними "Нейронні мережі: фокуси торгівлі", PCA та ZCA відрізняються лише обертанням.
Мартін Тома

Відповіді:


81

Нехай ваші (по центру) дані зберігаються в n×d матриці X з d функціями (змінними) у стовпцях і n точками даних у рядках. Нехай матриця коваріації C=XX/n має власні вектори в стовпцях E і власне значення на діагоналі D , так що C=EDE .

WPCA=D1/2E

W=RWPCARE

WZCA=ED1/2E=C1/2.

XXA2XAA=WZCA

Відбілювання PCA та ZCA

Ліва підгрупа показує дані та її основні осі. Зверніть увагу на темне затінення у правому верхньому куті розподілу: воно позначає його орієнтацію. Рядки показані на другому субплоті: це вектори, на які прогнозуються дані. Після відбілювання (внизу) розподіл виглядає круглим, але зауважте, що він також виглядає повернутим --- темний кут зараз знаходиться на сході, а не на північно-східній стороні. Рядки відображаються на третьому підмножині (зауважте, що вони не є ортогональними!). Після відбілювання (внизу) розподіл виглядає круглим і орієнтований так само, як і спочатку. Звичайно, можна отримати від PCA відбілити дані в ZCA відбілити дані шляхом обертання з .WPCAWZCAE

Термін "ZCA", здається, був введений у Беллі та Сейновському в 1996 роців контексті незалежного аналізу компонентів і розшифровується як "аналіз нульового фазового компонента". Дивіться там докладнішу інформацію. Швидше за все, ви стикалися з цим терміном у контексті обробки зображень. Виявляється, що при застосуванні до набору природних зображень (пікселі як функції, кожне зображення у вигляді точки даних) головні осі виглядають як компоненти Фур'є із зростаючими частотами, див. Перший стовпець їх рисунка 1 нижче. Тож вони дуже "глобальні". З іншого боку, рядки трансформації ZCA виглядають дуже "локально", дивіться другий стовпчик. Це саме тому, що ZCA намагається якомога менше перетворити дані, і тому кожен рядок повинен бути ближчим до однієї оригінальної базової функції (це були б зображення із лише одним активним пікселем). І цього можливо досягти,

PCA і ZCA у Беллі та Сейновському, 1996

Оновлення

Більше прикладів фільтрів ZCA та зображень, трансформованих за допомогою ZCA, наведено у Крижевському, 2009, Навчання декількох шарів функцій із крихітних зображень , див. Також приклади у відповіді @ bayerj (+1).

Я думаю, що ці приклади дають уявлення про те, коли відбілювання ZCA може бути кращим для PCA. А саме, побілені ZCA зображення все ще нагадують звичайні зображення , тоді як побілені PCA зображення не схожі на звичайні зображення. Це, мабуть, важливо для таких алгоритмів, як звивисті нейронні мережі (як, наприклад, використано в роботі Крижевського), які разом обробляють сусідні пікселі і так сильно покладаються на локальні властивості природних зображень. Для більшості інших алгоритмів машинного навчання має бути абсолютно не важливо, чи дані побілені за допомогою PCA або ZCA.


Дякую! У мене виникає питання: так це означає, що ZCA в основному змінить доступ, але не сильно змінить позицію даних? (на основі вашої зони затінення). Також це означає, що коли ми робимо відбілювання, нам слід робити відбілювання ZCA? Як ми вирішили використовувати PCAwhitening або ZCA відбілювання?
RockTheStar

4
(1) Я не точно впевнений, що ви маєте на увазі, але я би сказав так: ZCA розтягує набір даних, щоб зробити його кулястим, але намагається не повертати його (тоді як PCA дуже обертає його). (2) Насправді я думаю, що в більшості випадків не має значення, якщо ви використовуєте відбілювання PCA або ZCA. Єдина ситуація, яку я можу уявити, де ZCA може бути кращим, - це попередня обробка конволюційних нейронних мереж. Перегляньте оновлення моєї відповіді.
амеба каже: Відновити Моніку

5
PCA - це як зробити перетворення Фур'є, ZCA - це як перетворення, множення та перетворення назад, застосовуючи (нульовий фаз) лінійний фільтр. Отже, що ми бачимо там, це імпульсна відповідь фільтра на кожен піксель. "Компоненти", що беруть участь в операції, ті ж самі, стовпці Е, які є "головними компонентами" ... Я маю на увазі, ви також можете називати рядки компонентів W, але я думаю, що важливо розуміти, що задіяні ті ж "основні компоненти", і коли ви застосовуєте ZCA, ви знову на початковому домені, тоді як з PCA вам потрібно "реконструювати" сигнал.
ділбізеро

1
@dividebyzero +1 до вашого останнього коментаря, я думаю, це цінна перспектива. У будь-якому випадку, я сподіваюся, що значення моєї останньої цифри (яка взята із пов'язаного паперу) зараз зрозуміла.
Амеба каже: Відновити Моніку

1
@learning На цій сторінці ви не бачите побілених зображень PCA! Вони показують "зображення з зменшеними розмірами PCA", тобто реконструкції за допомогою PCA, але не самі проекції PCA.
амеба каже: Відновити Моніку

23

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

X¯X¯T=LDLT
D=diag(λ1,λ2,,λn)
D1L1X¯X¯TLTD1=D1L1LDLTLTD1=I
X~=D1L1X.

Це звичайне відбілювання за допомогою PCA. Тепер ZCA робить щось інше - додає невеликий епсилон до власних значень і перетворює дані назад. Ось кілька зображень із даних CIFAR, встановлених до та після ZCA.

X~=L(D+ϵ)1L1X.

Перед ZCA:

перед ZCA

Після ZCA зϵ=0.0001

після ZCA 1e-4

Після ZCA зϵ=0.1

після ZCA з .1

Для даних зору, дані високої частоти зазвичай проживають у просторі, що охоплюється нижчими власними значеннями. Отже, ZCA - це спосіб їх зміцнити, ведучи до більш помітних країв тощо.


1
Чи не слід додавати епсилон перед прийомом зворотного? Я думаю, що його просто додають для стабілізації інверсії у випадку майже нульових власних значень. Так що насправді, якщо є сенс додавати його для відбілювання ZCA, то було б доцільно додавати його і для відбілювання PCA.
Амеба каже: Відновити Моніку

Так, перед зворотним, спасибі. Оскільки це зазвичай робиться зі SVD на практиці, я не знаю, чи потрібна взагалі стабілізація інверсії.
bayerj

Я додав ще одну картину, щоб показати ефект.
байерж

2
+1, але у мене є низка подальших запитань і запитань. (1) Що я мав на увазі про епсилон, це те, що він не є специфічним для ZCA, його можна використовувати і для відбілювання PCA. (2) Я не впевнений, я розумію ваш коментар щодо SVD: SVD чи ні, потрібно інвертувати окремі значення, отже, необхідність у епсилоні. (3) Перетворення відбілювання PCA , ви написали це навпаки, і це робить обчислення у другій формулі неправильним ... (4) Хороші цифри, де вони з? (5) Чи знаєте ви, в яких ситуаціях відбілювання ZCA було б кращим від відбілювання PCA, і чому? D1/2L
амеба каже, що повернеться до Моніки

(1) домовились. Я не маю інтуїції щодо того, що це означає. (2) Мої знання про декомпозицію тут неповні, але я припускав, що класична інверсійна матриця на сингулярній матриці коваріації вийде з ладу, тоді як SVD на матриці даних, що породжує сингулярну коваріацію, не буде. (3) Спасибі, це виправить. (4) З мого коду :) (5) Я гіпотезую, що для багатьох алгоритмів, які дають неповні уявлення (наприклад, GainShape K-Means, Auto-кодери, RICA) та / або виконують подібну роботу, як алгебраїчна незалежність PCA шкодить, але У мене немає важких знань з цього приводу.
bayerj
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.