เครื่องจักร Boltzmann ที่ จำกัด สำหรับการถดถอย


13

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

คำตอบ:


18

คุณพูดถูกเกี่ยวกับข้อมูลที่ไม่มีป้ายกำกับ RBMs เป็นรูปแบบกำเนิดและใช้กันมากที่สุดในฐานะผู้เรียนที่ไม่ได้รับการดูแล

เมื่อใช้สำหรับการสร้างเครือข่ายความเชื่อที่ลึกที่สุดขั้นตอนทั่วไปที่สุดก็คือการฝึกอบรม RBM ใหม่แต่ละรายการในแต่ละครั้งในขณะที่วางซ้อนทับกัน ดังนั้นความแตกต่างที่ตรงกันข้ามจะไม่ขึ้นและลงในแง่ที่ฉันคิดว่าคุณหมายถึง ใช้งานได้ครั้งละหนึ่ง RBM เท่านั้นโดยใช้เลเยอร์ที่ซ่อนอยู่ของ RBM ระดับบนสุดก่อนหน้านี้เป็นอินพุตสำหรับ RBM ระดับบนสุดใหม่ หลังจากทั้งหมดนี้คุณสามารถจัดการน้ำหนักกอง RBM เป็นน้ำหนักเริ่มต้นสำหรับเครือข่ายประสาทส่งต่อฟีดมาตรฐานและฝึกอบรมโดยใช้ข้อมูลที่มีป้ายกำกับของคุณและ backpropagation หรือทำสิ่งแปลกใหม่เช่นใช้อัลกอริธึมการนอน โปรดสังเกตว่าเราไม่ได้ใช้ข้อมูลที่มีป้ายกำกับใด ๆ จนกว่าจะถึงขั้นตอนสุดท้ายซึ่งเป็นหนึ่งในข้อดีของรุ่นประเภทนี้

ในอีกทางหนึ่งมีหลายวิธีที่คุณสามารถใช้ RBM สำหรับการจำแนกประเภท

  • ฝึก RBM หรือ RBM หลายกอง ใช้เลเยอร์ที่ซ่อนอยู่สูงสุดเป็นอินพุตสำหรับผู้เรียนที่มีผู้ควบคุมรายอื่น
  • ฝึก RBM สำหรับแต่ละชั้นเรียนและใช้พลังงานที่ไม่ปกติเป็นตัวป้อนเข้ากับตัวจําแนกที่เลือกปฏิบัติ
  • ฝึก RBM ให้เป็นโมเดลความหนาแน่นร่วมของ P (X, Y) จากนั้นให้อินพุท x เพียงแค่เลือกคลาส y ซึ่งจะลดฟังก์ชั่นพลังงาน (การทำให้เป็นมาตรฐานไม่ใช่ปัญหาที่นี่เหมือนในข้างต้นเนื่องจากค่าคงที่ Z จะเหมือนกันสำหรับทุกคลาส)
  • ฝึกRBM ที่เลือกปฏิบัติ

ฉันขอแนะนำให้คุณอ่านรายงานทางเทคนิคคู่มือปฏิบัติเพื่อการฝึกอบรมเครื่อง Boltzmann ที่ถูก จำกัดโดย Geoff Hinton มันกล่าวถึงปัญหาเหล่านี้หลายอย่างในรายละเอียดมากขึ้นให้คำแนะนำอันล้ำค่าอ้างอิงเอกสารที่เกี่ยวข้องจำนวนมากและอาจช่วยขจัดความสับสนอื่น ๆ ที่คุณอาจมี


1
RBMs สามารถใช้เพื่อการถดถอยได้อย่างไร
waspinator

คุณจะฝึก RBM ให้เป็นแบบจำลองความหนาแน่นของข้อต่อได้อย่างไร ด้วยการให้ทั้ง X และ Y เป็นอินพุตที่ไม่ได้ซ่อนไว้นั่นคือคุณฝึกให้เป็น P (X, Y | H) (H คือเลเยอร์ที่ซ่อนอยู่) หรือไม่
AkiRoss

ฉันตอบกลับความคิดเห็นของฉันด้วยตนเอง: ใช่ใน "คู่มือปฏิบัติเพื่อการฝึกอบรม RBM" (Hinton, 2010) ทั้ง 3 วิธีที่อธิบายไว้ข้างต้นอธิบายโดยละเอียดและในวิธีที่ 3 เขาพูดถึงการมี "มองเห็นสองชุด" units "ซึ่งนอกเหนือจากข้อมูลแล้วหน่วยฉลาก softmax จะถูกนำเสนอเพื่อเป็นตัวแทนของชั้นเรียน
AkiRoss

2

โปรดดูที่การดำเนินการhttp://code.google.com/p/matrbm/ มันมีฟังก์ชั่นการจัดหมวดหมู่หยวนมูลค่าการพิจารณา แจ้งให้เราทราบด้วยหากคุณพบว่าการใช้งาน DBN และ RMBs ที่ดีขึ้นสำหรับการจำแนกและการถดถอย


0

ฉันคิดว่าวิธีหนึ่งที่คุณสามารถทดสอบเครือข่ายประสาทเช่นเครื่อง จำกัด Boltzman (RBM) คือการใช้พวกเขากับชุดข้อมูลใหม่หรือโดยทั่วไปเป็นชุดย่อยของชุดข้อมูลทั้งหมดและดูวิธีการทำงาน นอกจากนี้คุณยังสามารถทดสอบรูปแบบด้วยการตรวจสอบข้าม ฉันใช้ชุดเครื่องมือซอฟต์แวร์โอเพ่นซอร์สการเรียนรู้เครื่อง (ML) ที่ง่ายต่อการติดตั้งและใช้งานและช่วยให้คุณทดสอบอัลกอริทึม ML หลายประเภทแยกกันได้อย่างง่ายดายด้วยสถิติการถดถอยของโมเดล ( http: // www) cs.waikato.ac.nz/ml/weka/ ) ที่อาจให้การวิเคราะห์ที่รวดเร็วโดยไม่มีการแทรกแซงมากยกเว้นพื้นฐานของการรันโปรแกรมแม้ว่ามันอาจจะไม่คุ้มค่าถ้ามันยากที่จะจัดรูปแบบข้อมูลของคุณ (แม้ว่าคุณจะสามารถ google "csv เป็น arff แปลงออนไลน์" ได้ก็ตาม สำหรับการจัดรูปแบบขั้นตอนเดียว)

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