อะไรคือความแตกต่างระหว่าง ZCA กับไวท์เทนนิ่ง PCA?


59

ฉันสับสนเกี่ยวกับการฟอกสีฟันแบบ ZCA และการฟอกสีฟันปกติ (ซึ่งได้มาจากการหารส่วนประกอบหลักด้วยค่ารากที่สองของค่าลักษณะ PCA) เท่าที่ฉันรู้,

xZCAwhite=UxPCAwhite,
ที่เป็น PCA eigenvectorsU

ZCA Whitening มีประโยชน์อะไรบ้าง? อะไรคือความแตกต่างระหว่างการฟอกสีฟันปกติและการฟอกสีฟันแบบ ZCA?


2
ตามที่ "โครงข่ายประสาท: เคล็ดลับของการค้า" PCA และ ZCA แตกต่างกันโดยการหมุนเท่านั้น
Martin Thoma

คำตอบ:


80

ให้ข้อมูลของคุณ (กึ่งกลาง) ถูกเก็บไว้ใน matrixพร้อมคุณสมบัติ (ตัวแปร) ในคอลัมน์และจุดข้อมูลในแถว ให้ความแปรปรวนเมทริกซ์มี eigenvectors ในคอลัมน์ของและค่าลักษณะเฉพาะบนเส้นทแยงมุมของเพื่อให้En×dXdnC=XX/nEDC=EDE

จากนั้นสิ่งที่คุณเรียกว่า "ปกติ" การแปลงไวท์เทนนิ่ง PCA จะได้รับโดยดูคำตอบของฉันในวิธีทำให้ข้อมูลขาวขึ้นโดยใช้ การวิเคราะห์องค์ประกอบหลัก?WPCA=D1/2E

อย่างไรก็ตามการเปลี่ยนแปลงการฟอกสีฟันนี้ไม่ได้เป็นเอกลักษณ์ ข้อมูลขาวจะคงขาวหลังจากการหมุนใด ๆ ซึ่งหมายความว่ากับเมทริกซ์มุมฉากก็จะเป็นการเปลี่ยนสีฟัน ในสิ่งที่เรียกว่า ZCA ไวท์เทนนิ่งเรารับ (ซ้อนกัน eigenvectors ของเมทริกซ์ความแปรปรวนร่วม) เป็นเมทริกซ์มุมฉากนี้คือW=RWPCARE

WZCA=ED1/2E=C1/2.

หนึ่งคุณสมบัติที่กำหนดของการแปลง ZCA ( บางครั้งเรียกว่า "การเปลี่ยนแปลง Mahalanobis") คือมันส่งผลให้ข้อมูลสีขาวที่ใกล้เคียงกับข้อมูลต้นฉบับมากที่สุด กล่าวอีกนัยหนึ่งถ้าคุณต้องการย่อภายใต้เป็นสีขาวคุณควรใช้{} นี่คือภาพประกอบ 2D:XXA2XAA=WZCA

PCA และ ZCA ไวท์เทนนิ่ง

แผนย่อยด้านซ้ายแสดงข้อมูลและแกนหลัก สังเกตการแรเงาสีเข้มที่มุมบนขวาของการแจกแจง: มันเป็นเครื่องหมายของการวางแนว แถวของแสดงขึ้นในส่วนย่อยที่สอง: นี่คือเวกเตอร์ที่ข้อมูลถูกคาดการณ์ไว้ หลังจากการฟอกสีฟัน (ด้านล่าง) การกระจายตัวดูกลม แต่สังเกตว่ามันหมุนแล้วด้วย - มุมมืดอยู่ทางด้านตะวันออกไม่ใช่ด้านตะวันออกเฉียงเหนือ แถวของจะแสดงในส่วนย่อยที่สาม (โปรดทราบว่าพวกเขาไม่ใช่ orthogonal!) หลังจากการฟอกสีฟัน (ด้านล่าง) การกระจายจะดูกลมและมีการปรับในลักษณะเดียวกับที่เดิม แน่นอนหนึ่งจะได้รับจาก PCA ขาวข้อมูลไปยัง ZCA ขาวข้อมูลโดยการหมุนด้วยEWPCAWZCAE

ดูเหมือนว่าคำว่า "ZCA" จะถูกนำมาใช้ในBell และ Sejnowski 1996ในบริบทของการวิเคราะห์องค์ประกอบอิสระและย่อมาจาก "การวิเคราะห์องค์ประกอบ zero-phase" ดูที่นั่นสำหรับรายละเอียดเพิ่มเติม ส่วนใหญ่คุณจะเจอคำศัพท์นี้ในบริบทของการประมวลผลภาพ ปรากฎว่าเมื่อนำไปใช้กับภาพธรรมชาติจำนวนมาก (พิกเซลเป็นคุณสมบัติภาพแต่ละภาพเป็นจุดข้อมูล) แกนหลักมีลักษณะเหมือนองค์ประกอบฟูริเยร์ที่เพิ่มความถี่ดูคอลัมน์แรกของรูปที่ 1 ด้านล่าง ดังนั้นพวกเขาจึงเป็น "โลก" มาก ในทางกลับกันแถวของการแปลง ZCA มีลักษณะ "ท้องถิ่น" มากดูคอลัมน์ที่สอง นี่เป็นสิ่งที่แม่นยำเนื่องจาก ZCA พยายามแปลงข้อมูลให้น้อยที่สุดเท่าที่จะเป็นไปได้ดังนั้นแต่ละแถวควรใกล้เคียงกับฟังก์ชั่นพื้นฐานดั้งเดิมมากกว่าหนึ่งอัน และนี่เป็นไปได้ที่จะบรรลุ

PCA และ ZCA ใน Bell และ Sejnowski 1996

ปรับปรุง

ตัวอย่างเพิ่มเติมของตัวกรอง ZCA และรูปภาพที่แปลงด้วย ZCA มีให้ในKrizhevsky, 2009, การเรียนรู้คุณลักษณะหลายเลเยอร์จากรูปภาพขนาดเล็กดูตัวอย่างในคำตอบของ @ bayerj (+1)

ฉันคิดว่าตัวอย่างเหล่านี้ให้แนวคิดว่าเมื่อใดที่ ZCA ไวท์เทนนิ่งอาจจะดีกว่า PCA กล่าวคือรูปภาพที่ขาวขึ้น ZCA ยังคงคล้ายกับภาพปกติในขณะที่รูปภาพที่ขาวขึ้น PCA นั้นไม่เหมือนกับภาพปกติ นี่อาจเป็นสิ่งสำคัญสำหรับอัลกอริทึมเช่นโครงข่ายประสาทเทียม (เช่นที่ใช้ในกระดาษของ Krizhevsky) ซึ่งใช้พิกเซลใกล้เคียงกันและพึ่งพาคุณสมบัติของภาพธรรมชาติในท้องถิ่นเป็นอย่างมาก สำหรับอัลกอริทึมการเรียนรู้ของเครื่องอื่น ๆ ส่วนใหญ่มันไม่ควรอย่างยิ่งว่าข้อมูลนั้นจะขาวกับ PCA หรือ ZCA


ขอบคุณ! ฉันมีคำถาม: นั่นหมายความว่าโดยทั่วไปแล้ว ZCA เปลี่ยนการเข้าถึง แต่ไม่เปลี่ยนตำแหน่งของข้อมูลมากนัก? (ขึ้นอยู่กับพื้นที่แรเงาของคุณ) นอกจากนี้นั่นหมายความว่าเมื่อใดก็ตามที่เราทำไวท์เทนนิ่งเราควรทำ ZCA ไวท์เทนนิ่ง เราจะตัดสินใจใช้ PCAwhitening หรือ ZCA whitening อย่างไร
RockTheStar

4
(1) ฉันไม่แน่ใจว่าคุณหมายถึงอะไร แต่ฉันจะพูดแบบนั้น: ZCA ขยายชุดข้อมูลเพื่อทำให้เป็นทรงกลม แต่พยายามไม่หมุน (ในขณะที่ PCA หมุนได้ค่อนข้างมาก) (2) ฉันคิดว่าจริง ๆ แล้วในกรณีส่วนใหญ่มันไม่สำคัญว่าถ้าคุณใช้ PCA หรือ ZCA ไวท์เทนนิ่ง สถานการณ์เดียวที่ฉันสามารถจินตนาการได้ว่าจุดไหนที่ควรใช้ ZCA คือการประมวลผลล่วงหน้าสำหรับเครือข่ายประสาทเทียม โปรดดูการอัปเดตคำตอบของฉัน
อะมีบาพูดว่า Reinstate Monica

5
PCA เปรียบเสมือนการแปลงฟูริเยร์ ZCA เปรียบเหมือนการแปลงการคูณและการแปลงกลับโดยใช้ฟิลเตอร์เชิงเส้น (ศูนย์เฟส) ดังนั้นสิ่งที่เราเห็นคือการตอบสนองของตัวกรองแบบอิมพัลส์ในแต่ละพิกเซล "องค์ประกอบ" ที่เกี่ยวข้องในการดำเนินการเหมือนกันคอลัมน์ของ E ซึ่งเป็น "องค์ประกอบหลัก" ... ฉันหมายถึงคุณสามารถเรียกแถวขององค์ประกอบ W ได้เช่นกัน แต่ฉันคิดว่ามันเป็นสิ่งสำคัญที่จะต้องเข้าใจว่า "องค์ประกอบหลัก" ที่เหมือนกันมีส่วนเกี่ยวข้องและเมื่อคุณใช้ ZCA คุณจะกลับมาที่โดเมนเดิมในขณะที่ใช้ PCA คุณจะต้อง "สร้างใหม่" สัญญาณ
dividebyzero

1
@dividebyzero +1 ความคิดเห็นล่าสุดของคุณฉันคิดว่านี่เป็นมุมมองที่มีค่า ไม่ว่าในกรณีใด ๆ ฉันหวังว่าความหมายของตัวเลขสุดท้ายของฉัน (ซึ่งนำมาจากเอกสารที่เชื่อมโยง) นั้นชัดเจนในขณะนี้
อะมีบาพูดว่า Reinstate Monica

1
@learning คุณไม่เห็นภาพสีขาวของ PCA ในหน้านั้น! พวกเขาแสดง "ภาพที่ลดขนาด PCA" เช่นการสร้างใหม่ผ่าน PCA แต่ไม่ใช่การฉายภาพด้วย PCA
อะมีบาพูดว่า Reinstate Monica

23

ได้รับ Eigendecomposition ของเมทริกซ์ความแปรปรวน โดยที่เป็นเมทริกซ์แนวทแยงของ Eigenvalues รีสอร์ตไวท์เทนนิ่งธรรมดาเพื่อแปลงข้อมูลให้เป็นพื้นที่ที่เมทริกซ์ความแปรปรวนร่วมเป็นเส้นทแยงมุม: (ด้วยการใช้สัญลักษณ์บางอย่าง) นั่นหมายความว่าเราสามารถเบี่ยงเบนความแปรปรวนร่วมได้โดยการเปลี่ยนข้อมูลตาม

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

นี่คือการฟอกสีฟันธรรมดาด้วย PCA ตอนนี้ ZCA ทำสิ่งที่แตกต่าง - เพิ่ม epsilon ขนาดเล็กลงใน Eigenvalues ​​และแปลงข้อมูลกลับ นี่คือรูปภาพบางส่วนจากชุดข้อมูล CIFAR ก่อนและหลัง ZCA

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

ก่อน ZCA:

ก่อน ZCA

หลังจาก ZCA ด้วยϵ=0.0001

หลังจาก ZCA 1e-4

หลังจาก ZCA ด้วยϵ=0.1

หลัง ZCA ด้วย. 1

สำหรับข้อมูลการมองเห็นข้อมูลความถี่สูงมักจะอยู่ในพื้นที่ที่ถูกขยายโดยค่าลักษณะเฉพาะที่ต่ำกว่า ดังนั้น ZCA เป็นวิธีในการเสริมความแข็งแกร่งเหล่านี้นำไปสู่การมองเห็นขอบ ฯลฯ


1
ไม่ควรเพิ่ม epsilon ก่อนที่จะกลับด้าน ฉันคิดว่ามันเป็นเพียงแค่การเพิ่มความเสถียรให้กับการผกผันในกรณีที่ค่าลักษณะเฉพาะใกล้ศูนย์ ดังนั้นจริง ๆ แล้วถ้ามันเหมาะสมที่จะเพิ่มสำหรับ ZCA ไวท์เทนนิ่งแล้วมันก็สมเหตุสมผลที่จะเพิ่มสำหรับ PCA ไวท์เทนนิ่งเช่นกัน
อะมีบาพูดว่า Reinstate Monica

ใช่ก่อนที่จะกลับคำขอบคุณ เนื่องจากโดยทั่วไปจะทำกับ SVD ในทางปฏิบัติฉันไม่ทราบว่าจำเป็นต้องรักษาเสถียรภาพของการผกผันหรือไม่
bayerj

ฉันได้เพิ่มรูปภาพอื่นเพื่อแสดงเอฟเฟกต์
bayerj

2
+1 แต่ฉันมี nitpicks และคำถามเพิ่มเติมอีกจำนวนหนึ่ง (1) สิ่งที่ฉันหมายถึงเกี่ยวกับ epsilon คือมันไม่เฉพาะเจาะจงกับ ZCA มันสามารถใช้สำหรับการฟอกสีฟันด้วย PCA ได้เช่นกัน (2) ฉันไม่แน่ใจว่าฉันเข้าใจความคิดเห็นของคุณเกี่ยวกับ SVD: SVD หรือไม่เราจำเป็นต้องสลับค่าเอกพจน์ดังนั้นจึงจำเป็นต้องใช้ epsilon (3) การแปลง PCA ไวท์เทนนิ่งคือคุณเขียนมันในทางกลับกันและนี่ทำให้การคำนวณในสูตรที่สองผิด ... (4) ตัวเลขที่ดีพวกเขาอยู่ที่ไหน จาก? (5) คุณรู้หรือไม่ว่าในสถานการณ์ใดจะดีกว่า ZA การฟอกสีฟัน PCA และทำไม? D1/2L
อะมีบาพูดว่า Reinstate Monica

(1) เห็นด้วย ฉันไม่มีสัญชาตญาณเกี่ยวกับความหมาย (2) ความรู้การสลายตัวของฉันไม่สมบูรณ์ที่นี่ แต่ฉันคิดว่าเมทริกซ์ผกผันแบบดั้งเดิมบนเมทริกซ์ความแปรปรวนร่วมเอกพจน์จะล้มเหลวในขณะที่ SVD บนเมทริกซ์ข้อมูลก่อให้เกิดความแปรปรวนร่วมแบบเอกพจน์จะไม่ (3) ขอบคุณจะแก้ไข (4) จากรหัสของฉัน :) (5) ฉันตั้งสมมติฐานว่าอัลกอริธึมหลายอย่างที่ให้การแทนที่สมบูรณ์เกินไป (เช่น GainShape K-Means, ตัวเข้ารหัสอัตโนมัติ, RICA) และ / หรือทำงานคล้าย ๆ กันกับพีชคณิตเชิง PCA ฉันไม่มีความรู้เกี่ยวกับเรื่องนี้
bayerj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.