В чем разница между отбеливанием ZCA и отбеливанием PCA?

60

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

xZCAwhite=UxPCAwhite,
где - собственные векторы PCA.U

Каковы виды использования ZCA отбеливания? Каковы различия между нормальным отбеливанием и отбеливанием ZCA?

RockTheStar
источник
2
Согласно «Нейронные сети: хитрости торговли», PCA и ZCA отличаются только ротацией.
Мартин Тома

Ответы:

81

Пусть ваши (центрированные) данные будут храниться в матрице с характеристиками (переменными) в столбцах и точками данных в строках. Пусть ковариационная матрица имеет собственные векторы в столбцах и собственные значения на диагонали , так что .n×dXdnC=XX/nEDC=EDE

Тогда то, что вы называете «обычным» преобразованием для отбеливания PCA, задается как , см., Например, мой ответ в статье Как отбеливать данные с помощью Анализ главных компонентов?WPCA=D1/2E

Однако эта отбеливающая трансформация не уникальна. Действительно, отбеленные данные останутся побеленными после любого поворота, что означает, что любое с ортогональной матрицей также будет отбеливающим преобразованием. В том, что называется отбеливание ZCA, мы принимаем (собранные вместе собственные векторы ковариационной матрицы) в качестве этой ортогональной матрицы, то естьW=RWPCARE

WZCA=ED1/2E=C1/2.

Одним из определяющих свойств преобразования ZCA ( иногда также называемого «преобразованием Махаланобиса») является то, что оно приводит к тому, что отбеленные данные максимально приближены к исходным данным (в смысле наименьших квадратов). Другими словами, если вы хотите минимизировать условии отбеливания , вам следует взять . Вот 2D иллюстрация:XXA2XAA=WZCA

PCA и ZCA отбеливание

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

Термин "ZCA", кажется, был введен в Bell и Sejnowski 1996в контексте анализа независимых компонентов и означает «анализ нулевой фазы компонентов». Смотрите там для более подробной информации. Скорее всего, вы столкнулись с этим термином в контексте обработки изображений. Оказывается, что при применении к группе естественных изображений (пиксели как объекты, каждое изображение как точка данных), главные оси выглядят как компоненты Фурье увеличивающихся частот, см. Первый столбец их рисунка 1 ниже. Так что они очень «глобальные». С другой стороны, строки преобразования ZCA выглядят очень «локально», см. Второй столбец. Это именно потому, что ZCA пытается преобразовать данные как можно меньше, и поэтому каждая строка должна быть лучше близка к одной исходной базисной функции (которая будет изображением с одним активным пикселем). И это возможно достичь,

PCA и ZCA в Белле и Сейновски 1996

Обновить

Дополнительные примеры ZCA-фильтров и изображений, преобразованных с помощью ZCA, приведены в Krizhevsky, 2009, Изучение множества слоев функций из Tiny Images , см. Также примеры в ответе @ bayerj (+1).

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

амеба говорит восстановить монику
источник
Спасибо! У меня вопрос: так значит ли это, что ZCA в основном меняет доступ, а не сильно меняет положение данных? (в зависимости от вашей области затенения). Кроме того, означает ли это, что когда мы делаем отбеливание, мы должны делать отбеливание ZCA? Как бы мы решили использовать PCAwhitening или ZCA отбеливание?
RockTheStar
4
(1) Я не совсем уверен, что вы имеете в виду, но я бы сказал так: ZCA растягивает набор данных, чтобы сделать его сферическим, но старается не вращать его (в то время как PCA вращает его довольно часто). (2) Я на самом деле думаю, что в большинстве случаев не имеет значения, используете ли вы отбеливание PCA или ZCA. Единственная ситуация, которую я могу себе представить, где ZCA может быть предпочтительнее, это предварительная обработка для сверточных нейронных сетей. Пожалуйста, смотрите обновление к моему ответу.
говорит амеба, восстанови Монику
5
PCA - это как преобразование Фурье, ZCA - как преобразование, умножение и обратное преобразование с применением линейного фильтра (нулевой фазы). Итак, что мы видим, это импульсный отклик фильтра на каждый пиксель. «Компоненты», вовлеченные в операцию, одинаковы, столбцы E, которые являются «главными компонентами» ... Я имею в виду, вы также можете вызывать строки компонентов W, но я думаю, что важно понимать, что задействованы одни и те же «основные компоненты», и когда вы применяете ZCA, вы возвращаетесь в исходный домен, в то время как с PCA вам необходимо «реконструировать» сигнал.
Divybyzero
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 - это способ усилить их, приводя к более заметным краям и т. Д.

bayerj
источник
1
Не следует ли добавлять эпсилон перед тем, как принимать инверс? Я думаю, что это просто добавлено, чтобы стабилизировать инверсию в случае близких к нулю собственных значений. Так что на самом деле, если имеет смысл добавить его для отбеливания ZCA, то имеет смысл добавить его и для отбеливания PCA.
говорит амеба, восстанови Монику
Да, до обратного, спасибо. Поскольку на практике это обычно делается с SVD, я не знаю, нужна ли вообще стабилизация инверсии.
Bayerj
Я добавил еще одну картинку, чтобы показать эффект.
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 encoders, RICA) и / или выполняют аналогичную работу, как PCA, алгебраическая независимость функций вредит, но У меня нет твердых знаний об этом.
Bayerj