เครื่อง Boltzmann ที่ถูก จำกัด เทียบกับเครือข่ายประสาทหลายชั้น


22

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

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


3
พวกเขามีความแตกต่างจากเครือข่ายหลายฝึกฝนกับ backprop ต่อไปนี้เป็นแหล่งข้อมูลสำหรับอวนประสาททุกประเภท: stats.stackexchange.com/a/36257/13669
Stumpy Joe Pete

คำตอบ:


21

ก่อนอื่น RBM นั้นแตกต่างจาก Neural Nets ปกติและเมื่อใช้อย่างถูกต้องจะได้ประสิทธิภาพที่ดีกว่ามาก นอกจากนี้การฝึก RBM สองชั้นแล้วใช้น้ำหนักที่พบเป็นจุดเริ่มต้นสำหรับ Mulitlayer NN มักให้ผลลัพธ์ที่ดีกว่าการใช้ Multilayer NN

ตัวชี้ที่ดีที่สุดที่ฉันนึกได้คือหลักสูตรนี้ใน Coursera ซึ่งสอนโดย Geoffrey Hinton ซึ่งเป็นหนึ่งในผู้รับผิดชอบ RBM:

https://class.coursera.org/neuralnets-2012-001/class/index

วิดีโอเกี่ยวกับ RBM และ Denoising Autoencoders เป็นแหล่งการเรียนรู้ที่มีค่าสำหรับทุกคนที่สนใจในหัวข้อ

สำหรับการนำไปใช้ใน R ฉันไม่รู้อะไรเลย แต่ถ้าคุณต้องการที่จะใช้มันดีกว่าอย่าใช้ pure R (เว้นแต่ว่าข้อมูลของคุณจะไม่ใหญ่) การฝึก RBM นั้นใช้เวลาค่อนข้างนานและถ้าคุณใช้ R บริสุทธิ์แทน R กับ C มันจะเติบโตขึ้นอย่างมาก


1
ฉันสามารถพูดคุยกับปัญหาการปฏิบัติงานของ R ได้เพราะฉันได้เขียน RBM บางอย่างไว้ในนั้น เวลาในการคำนวณส่วนใหญ่นั้นใช้เวลากับการคูณเมทริกซ์ซึ่งมีแนวโน้มที่จะช้าใน R มากกว่าในภาษาอื่น (อาจเป็น 3 หรือ 5) การคอมไพล์ R ใหม่สำหรับระบบของคุณเองด้วย BLAS ที่กำหนดเอง (ไลบรารีพีชคณิตเชิงเส้น) สามารถช่วยได้มากเนื่องจากสามารถแปลส่วนที่ช้าเป็น C ++ ด้วย Rcpp การเขียน RBM แบบเลเยอร์ที่ซ่อนอยู่นั้นเร็วพอที่จะเขียนโค้ดเป็นภาษาใดก็ได้ที่คุณคุ้นเคยก่อนที่จะพยายามปรับให้เหมาะกับความเร็ว
David J. Harris

@David J. Harris คุณแบ่งปันการใช้งานของคุณใน R หรือไม่? ฉันชอบที่จะดูพวกเขา
Zach

1
@Zach ฉันค่อนข้างยุ่งในขณะนี้ แต่ฉันจะเห็นสิ่งที่ฉันสามารถทำได้เกี่ยวกับการเปิดแหล่งที่มาในอนาคต คุณสามารถส่งอีเมลถึงฉันตามที่อยู่ในโปรไฟล์ของฉันสำหรับสำเนาของสิ่งที่ฉันมีถ้าคุณไม่รังเกียจที่จะเรียงลำดับผ่านโครงการที่ไม่มีเอกสาร / เสร็จสิ้นครึ่ง
David J. Harris

8

ใน R คุณสามารถใช้neuralnetและRSNNS (ซึ่งให้ส่วนต่อประสานกับStuttgart Neural Network Simulator ) เพื่อให้เหมาะกับเครือข่ายประสาทหลายชั้นมาตรฐาน แต่มีความแตกต่างกับ RBM

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

แก้ไข:แอนดรู Landgraf อย่างมีนัยสำคัญจากการให้บางส่วนR รหัสสำหรับ RBM

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