สถาปัตยกรรมของตัวเข้ารหัสอัตโนมัติแบบเรียงซ้อนคืออะไร?


23

ดังนั้นฉันจึงพยายามที่จะจัดเตรียมภาพลักษณ์ของมนุษย์โดยใช้ตาข่ายแบบ Convolutional ฉันอ่านเอกสาร ( Paper1และPaper2 ) และลิงก์ stackoverflowนี้แต่ฉันไม่แน่ใจว่าฉันเข้าใจโครงสร้างของอวน (มันไม่ได้นิยามไว้อย่างชัดเจนในเอกสาร)

คำถาม:

  • ฉันสามารถป้อนข้อมูลของฉันตามด้วยเลเยอร์เสียงตามด้วยเลเยอร์ Conv ตามด้วยเลเยอร์รวมกำไร - หลังจากนั้นฉันจะยกเลิกการรวมกลุ่มก่อนที่จะให้ผลลัพธ์ของฉัน (ซึ่งเป็นรูปอินพุตของฉัน)

    บอกว่าฉันมีหลายภาพ (135,240) ถ้าฉันใช้ 32, (12,21) เมล็ด, ตามด้วย (2,2) การรวมฉันจะจบลงด้วยแผนที่คุณลักษณะ 32 (62, 110) ตอนนี้ฉันจะยกเลิกการพูลเพื่อรับแผนที่คุณลักษณะ 32 (124, 220) แล้วแบนได้หรือไม่ ก่อนให้เลเยอร์เอาต์พุต (135,240) ของฉัน

  • ถ้าฉันมีเลเยอร์ Conv-pool หลายเลเยอร์ฉันควรฝึกพวกมันทีละตัว - เช่นในระบบถอดรหัสอัตโนมัติ หรือ - ฉันสามารถมีบางสิ่งเช่นอินพุต - Conv-pool-Conv-pool-conv-pool-output (เอาต์พุตเหมือนกับอินพุต) ได้หรือไม่? ในกรณีดังกล่าวการรวมกำไรการลดราคาควรมีการจัดการอย่างไร ฉันควรยกเลิกการพูลในเลเยอร์พูลสุดท้ายก่อนออกผลลัพธ์หรือไม่ และอีกครั้ง - อะไรคือปัจจัยการปรับขนาดของการยกเลิกการรวมกำไร? ความตั้งใจที่จะนำคุณลักษณะของแผนที่กลับไปที่รูปร่างของอินพุตหรือไม่

  • ฉันควรจะแนะนำเลเยอร์เสียงรบกวนหลังจากเลเยอร์ Conv-pool-depool ทุกครั้งหรือไม่

  • และเมื่อปรับแต่งแล้ว - ฉันควรจะเอาเลเยอร์ที่แยกออกมาแล้วปล่อยให้ส่วนที่เหลือเหมือนกัน หรือฉันควรลบทั้งชั้นเสียงและชั้นรวมกัน

  • คนใดคนหนึ่งสามารถชี้ให้ฉันไปที่ URL / กระดาษที่มีรายละเอียดสถาปัตยกรรมของตัวเข้ารหัสอัตโนมัติแบบเรียงซ้อนแบบซ้อนกันเพื่อทำการฝึกอบรมเกี่ยวกับภาพล่วงหน้าได้หรือไม่?

คำตอบ:


12

ขณะนี้ฉันกำลังสำรวจตัวเข้ารหัสอัตโนมัติแบบซ้อน

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

  1. ใช่คุณต้อง "ย้อนกลับ" พูลแล้วตั้งค่าตัวกรองเพื่อกู้ภาพที่ส่งออกของคุณ โครงข่ายประสาทเทียมมาตรฐาน (พิจารณาข้อมูล MNIST เป็นอินพุตเช่นขนาดอินพุต 28x28) จะเป็น:

        28x28(input) -- convolve with 5 filters, each filter 5x5 -->  5 @ 28 x 28 maps -- maxPooling --> 5 @ 14 x 14 (Hidden layer) -- reverse-maxPool --> 5 @ 28 x 28 -- convolve with 5 filters, each filter 5x5 --> 28x28 (output)
    
  2. ความเข้าใจของฉันคือตามอัตภาพว่าเป็นสิ่งที่เราควรทำคือฝึกฝนแต่ละชั้นแยกจากกัน หลังจากนั้นคุณซ้อนเลเยอร์และฝึกอบรมเครือข่ายทั้งหมดอีกครั้งโดยใช้ตุ้มน้ำหนักที่ผ่านการฝึกอบรมมาล่วงหน้า อย่างไรก็ตาม Yohsua Bengio มีงานวิจัยบางส่วน (ข้อมูลอ้างอิงหลบหนีความทรงจำของฉัน) แสดงให้เห็นว่าเราสามารถสร้างเครือข่ายที่มีการเรียงซ้อนเต็มรูปแบบและฝึกอบรมได้ตั้งแต่เริ่มต้น

  3. ความเข้าใจของฉันคือ "ชั้นเสียง" ที่นั่นเพื่อแนะนำความแข็งแกร่ง / ความแปรปรวนในอินพุตเพื่อให้การฝึกอบรมไม่เหมาะสม

  4. ตราบใดที่คุณยังคง "ฝึกอบรม" ก่อนการฝึกซ้อมหรือปรับแต่งฉันคิดว่าส่วนการสร้างใหม่ (เช่น reversePooling, de-convolution ฯลฯ ) เป็นสิ่งจำเป็น มิฉะนั้นวิธีการอย่างใดอย่างหนึ่งควรดำเนินการข้อผิดพลาดกลับเผยแพร่เพื่อปรับน้ำหนัก?

  5. ฉันได้ลองสืบค้นผ่านเอกสารจำนวนมากแล้ว แต่สถาปัตยกรรมก็ไม่เคยอธิบายเต็มที่ หากคุณพบใด ๆ โปรดแจ้งให้เราทราบ


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

2
"reverse-maxPool" เป็นไปได้อย่างไร คุณไม่สามารถสร้างชุดของตัวเลขที่ให้ค่าสูงสุดเท่านั้น ... ?
30864 Equequish

1
@Fequish มันเป็น reverse-maxpool โดยประมาณเช่น: ถ้า pool = 2x2, ฉันจะรักษาตำแหน่งของ max และใส่ max เข้าไปในตำแหน่งนั้นใน 2x2, rest เป็น 0
user2979010

1
@jwalker เป้าหมายสุดท้ายของฉันไม่ได้จัดประเภทดังนั้นปรับจูนด้วยเครือข่ายที่ไม่ได้ควบคุม
user2979010

@Fequish เพื่อจุดประสงค์ในการถอดรหัส reverse เป็นเพียงเพื่อนบ้านที่ใกล้ที่สุด
jwalker

2

ฉันยังได้ค้นหาโมเดลที่ได้รับการอธิบายอย่างครบถ้วนของ Stacked Convolutional Autoencoders

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

  1. สิ่งที่คุณพูดถึงโดยใช้การรวมกำไร - ยกเลิกการสำรวจ
  2. เลเยอร์ของ (convolve) __ x_times -> (deconvolve) __ x_times

    และรับขนาดเดียวกันกับอินพุต

  3. (convolve -> pool) __ x_times -> (deconvolution แบบ strided) __ y_times
    • เลือกแพ็ดดิ้งและความก้าวหน้าเพื่อให้ขนาดภาพสุดท้ายเหมือนกับภาพต้นฉบับ
    • การอ้างอิง

2
ยินดีต้อนรับสู่เว็บไซต์ นี่เป็นจุดประสงค์ของคำตอบสำหรับคำถามของ OP ความคิดเห็นที่ขอคำชี้แจงจาก OP หรือหนึ่งในผู้ตอบหรือคำถามใหม่ของคุณเองหรือไม่ โปรดใช้ฟิลด์ "คำตอบของคุณ" เพื่อให้คำตอบสำหรับคำถามเดิม คุณจะสามารถแสดงความคิดเห็นได้ทุกที่เมื่อชื่อเสียงของคุณคือ> 50 หากคุณมีคำถามใหม่ให้คลิกที่สีเทาASK QUESTION ที่ด้านบนของหน้า & ถามที่นั่นเราจะช่วยคุณได้อย่างถูกต้อง เนื่องจากคุณใหม่ที่นี่คุณอาจต้องการเข้าชมทัวร์ของเราซึ่งมีข้อมูลสำหรับผู้ใช้ใหม่
gung - Reinstate Monica

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

โอเคขอบคุณ. วิธีที่มันออกมาจะคลุมเครือ เช่น "ฉันยังค้นหา ... " & "การอ้างอิงเพิ่มเติมใด ๆ กับเอกสารหรือการใช้งานจะช่วยได้มาก" โปรดทราบว่า CV เป็นเว็บไซต์ถามตอบจริงไม่ใช่ฟอรัมสนทนา ทำไมไม่ลองทัวร์ของเรา& เรียนรู้เพิ่มเติมเกี่ยวกับเว็บไซต์?
gung - Reinstate Monica

-1

ฉันไม่คิดว่าวิธีการฝึกอบรมแบบเลเยอร์ที่ถูกต้องนั้นถูกต้อง ตัวอย่างเช่นสถาปัตยกรรมของตัวเข้ารหัสอัตโนมัติแบบ Convolutional คือ:

input-> conv-> max_poo-> de_max_pool-> de_conv-> เอาท์พุท

นี่คือโปรแกรมเปลี่ยนไฟล์อัตโนมัติและควรได้รับการฝึกอบรมเกี่ยวกับสถาปัตยกรรมทั้งหมด นอกจากนี้ยังไม่มีเกณฑ์ที่เข้มงวดว่าหนึ่งตัวเข้ารหัสอัตโนมัติต้องมีพูลและ un_pool หรือไม่ โดยปกติแล้วหนึ่งพูล แต่ไม่มี un_pool นี่คือการเปรียบเทียบการทดลองโดยไม่มีพูลและ un_pool

https://arxiv.org/pdf/1701.04949.pdf

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