PCA และ autoencoder แตกต่างกันอย่างไร


56

ทั้ง PCA และ autoencoder สามารถลดการลดความแปรปรวนได้ดังนั้นอะไรคือความแตกต่างระหว่างพวกเขา ฉันควรใช้อีกตัวหนึ่งในสถานการณ์ใด

คำตอบ:


52

PCA ถูก จำกัด แผนที่เชิงเส้นในขณะที่ตัวเข้ารหัสอัตโนมัติสามารถมีตัวเข้ารหัส / ตัวถอดรหัสไม่เชิงเส้น

ตัวเข้ารหัสอัตโนมัติเลเยอร์คู่ที่มีฟังก์ชั่นการถ่ายโอนเชิงเส้นเกือบเทียบเท่ากับ PCA ซึ่งเกือบจะหมายความว่าพบโดย AE และ PCA จะไม่เหมือนกัน - แต่พื้นที่ย่อยที่ถูกขยายตามความประสงค์ของWW


ฉันเห็น! ดังนั้นฉันต้องมีสองชั้นสำหรับการแปลงแบบไม่เป็นเชิงเส้น ดังนั้นหลายเลเยอร์หมายถึงไม่ใช่เชิงเส้นที่ซับซ้อนมาก?
RockTheStar

7
@RockTheStar: ไม่ใช่จำนวนเลเยอร์ที่สำคัญ แต่ฟังก์ชั่นการเปิดใช้งาน [ฟังก์ชั่นการถ่ายโอน] ด้วยฟังก์ชั่นการถ่ายโอนเชิงเส้นจะไม่มีจำนวนเลเยอร์ใดที่จะนำไปสู่โปรแกรมสร้างรหัสอัตโนมัติที่ไม่ใช่เชิงเส้น
อะมีบากล่าวว่า Reinstate Monica

ดังนั้นด้วยการแปลงแบบไม่เป็นเชิงเส้นแม้จะมีหน่วยที่ซ่อนอยู่เพียง 1 ชั้นเท่านั้น วิธีการแก้ปัญหายังคงไม่ใช่เชิงเส้น?
RockTheStar

ใช่. (นอกจากนี้ยังอาจเป็นแบบเส้นตรงในบางกรณีเช่นเมื่อหน่วยที่ซ่อนอยู่ถูกเปิดใช้งานในบริเวณใกล้เคียงแบบเส้นตรง)
bayerj

"เมื่อหน่วยที่ซ่อนอยู่ถูกเปิดใช้งานในบริเวณเชิงเส้นใกล้" คุณหมายถึงส่วนที่เป็นเส้นตรงในฟังก์ชั่น sigmoid ใช่ไหม?
RockTheStar

17

ในฐานะที่เป็น bayerj ชี้ให้เห็น PCA เป็นวิธีการที่ถือว่าระบบเชิงเส้นที่เป็น Autoencoders (AE) ไม่ หากไม่มีการใช้ฟังก์ชั่นที่ไม่ใช่เชิงเส้นใน AE และจำนวนของเซลล์ประสาทในเลเยอร์ที่ซ่อนอยู่มีขนาดที่เล็กกว่านั้นของอินพุตดังนั้น PCA และ AE สามารถให้ผลลัพธ์เดียวกัน ไม่เช่นนั้น AE อาจพบพื้นที่ย่อยอื่น

สิ่งหนึ่งที่ควรทราบคือเลเยอร์ที่ซ่อนอยู่ใน AE สามารถมีมิติที่มากกว่าอินพุท ในกรณีเช่นนี้ AE อาจไม่ทำการลดขนาด ในกรณีนี้เรารับรู้ว่าพวกเขากำลังทำการเปลี่ยนแปลงจากพื้นที่หนึ่งไปยังอีกพื้นที่หนึ่งซึ่งข้อมูลในพื้นที่คุณลักษณะใหม่จะแยกปัจจัยการแปรผัน

เกี่ยวกับคำถามของคุณเกี่ยวกับว่าเลเยอร์หลายชั้นหมายถึงความซับซ้อนที่ไม่ใช่เชิงเส้นในการตอบสนองของคุณกับไบเออร์ "ไม่ซับซ้อนเป็นเชิงเส้น" ซึ่งอาจเป็นจริงขึ้นอยู่กับสิ่งที่คุณหมายถึง อย่างไรก็ตามความลึกนั้นให้ภาพที่ดีกว่า วิธีการจำนวนมากต้องการตัวอย่างจำนวนเท่ากันเท่ากับจำนวนภูมิภาค แต่ปรากฎว่า "เป็นจำนวนมากในภูมิภาคเช่นสามารถกำหนดกับตัวอย่าง" ตามBengio et al, นี่เป็นผลมาจากความซับซ้อนในการเป็นตัวแทนที่เกิดขึ้นจากการเขียนคุณสมบัติที่ต่ำกว่าจากชั้นล่างในเครือข่ายO(2N)O(N)


2
ขอบคุณสำหรับคำตอบของคุณ!
RockTheStar

6

นี่เหมาะกว่าความคิดเห็น แต่ฉันไม่มีชื่อเสียงเพราะมันจะได้รับคำตอบ

ฉันค่อนข้างสับสนกับแนวคิดเกี่ยวกับคำตอบของ bayerj: การอ่านโครงข่ายประสาทและการวิเคราะห์องค์ประกอบหลัก: การเรียนรู้จากตัวอย่างที่ไม่มี Local Minimaที่จะได้รับการพิสูจน์

'' ในกรณีอัตโนมัติเชื่อมโยง ... และดังนั้นจึงไม่ซ้ำกันทั้งในประเทศและทั่วโลกที่ดีที่สุดแผนที่ W มีการฉายฉากบนพื้นที่ทอดแรก eigenvectors ของ '' pΣXX

นี่ไม่ใช่พื้นที่สำหรับผู้สื่อข่าวเหมือนกับที่ถูกขยายโดย PCA หรือไม่


1
กระดาษที่คุณอ้างถึงใช้ตัวเข้ารหัสอัตโนมัติเป็นเส้นตรงนั่นคือไม่มีฟังก์ชั่นการเปิดใช้งานที่ไม่ใช่เชิงเส้น นั่นคือเหตุผลว่าทำไมน้ำหนักของมันจึงขยายขอบเขตย่อยเดียวกันโดย PCA
elliotp

6

คำตอบที่ได้รับการยอมรับในปัจจุบันโดย @bayerj ระบุว่าน้ำหนักของ autoencoder เชิงเส้นครอบคลุมพื้นที่ย่อยเดียวกันกับส่วนประกอบหลักที่พบโดย PCA แต่มันไม่ใช่เวกเตอร์เดียวกัน โดยเฉพาะอย่างยิ่งพวกเขาไม่ได้เป็นพื้นฐานมุมฉาก นี่เป็นความจริงอย่างไรก็ตามเราสามารถกู้คืนส่วนประกอบหลักที่โหลดเวกเตอร์ได้จากตุ้มน้ำหนักอัตโนมัติ นิด ๆ หน่อย ๆ ของโน้ต: ให้เป็นชุดของเวกเตอร์มิติที่เราต้องการในการคำนวณ PCA และให้เป็นเมทริกซ์ที่มีคอลัมน์\จากนั้นเราจะกำหนดตัวเข้ารหัสเชิงเส้นอัตโนมัติเป็นเครือข่ายประสาทชั้นเดียวที่ซ่อนอยู่ซึ่งกำหนดโดยสมการต่อไปนี้:{xiRn}i=1NN nXx1,,xN

h1=W1x+b1x^=W2h1+b2

โดยที่คือเอาท์พุทของ autoencoder (เชิงเส้น) แสดงด้วยหมวกเพื่อเน้นถึงข้อเท็จจริงที่ว่าเอาต์พุตของ autoencoder เป็น "การสร้างใหม่" ของอินพุต โปรดทราบว่าเนื่องจากเป็นเรื่องปกติของ autoencoders เลเยอร์ที่ซ่อนอยู่มีหน่วยน้อยกว่าเลเยอร์อินพุตเช่นและกับ<nx^W1Rn×mW2Rm×nm<n

ตอนนี้หลังจากการฝึกอบรม autoencoder เชิงเส้นของคุณคำนวณแรกเวกเตอร์เอกพจน์W_2มันเป็นไปได้ที่จะพิสูจน์ว่าสิ่งเหล่านี้เป็นพาหะเอกพจน์เป็นจริงคนแรกที่ส่วนประกอบหลักของและหลักฐานอยู่ใน Plaut, อีจาก subspaces หลักที่จะมีองค์ประกอบหลักเป็น Linear Autoencoders , Arxiv.org:1804.10253mW2mX

เนื่องจาก SVD นั้นเป็นอัลกอริธึมที่ใช้กันทั่วไปในการคำนวณ PCA มันอาจไม่มีความหมายเลยที่จะฝึกให้เป็น Linear autoencoder เป็นครั้งแรกและจากนั้นใช้ SVD กับเพื่อกู้คืนจากการโหลดเวกเตอร์แรกแทนการใช้ SVD กับโดยตรง ประเด็นก็คือว่าเป็นเมทริกซ์ในขณะที่เป็นn ตอนนี้ความซับซ้อนของเวลาของ SVD สำหรับคือในขณะที่สำหรับคือด้วยW2mXXn×NW2m×nW2O(m2n)XO(n2N)m<nดังนั้นการบันทึกบางอย่างอาจบรรลุผลได้ (แม้ว่าจะไม่ใหญ่เท่าที่ผู้อ้างสิทธิ์ในบทความเชื่อมโยง) แน่นอนว่ายังมีวิธีอื่นที่เป็นประโยชน์มากกว่าในการคำนวณ PCA ของ Big Data (สุ่ม PCA ออนไลน์มาถึงใจ) แต่ประเด็นหลักของความเท่าเทียมกันระหว่าง linear autoencoders เชิงเส้นและ PCA นี้ไม่ใช่การหาวิธีการคำนวณ PCA สำหรับข้อมูลขนาดใหญ่ ชุด: มันเกี่ยวกับการให้เรามีสัญชาตญาณในการเชื่อมต่อระหว่าง autoencoders และวิธีการทางสถิติอื่น ๆ เพื่อลดขนาด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.