ฉันพยายามเข้าใจวิธีการทำงานของเครื่องจักร Boltzmann แต่ฉันไม่แน่ใจว่าจะเรียนรู้น้ำหนักได้อย่างไรและไม่สามารถหาคำอธิบายที่ชัดเจนได้ ถูกต้องหรือไม่? (เช่นกันตัวชี้ไปที่คำอธิบายเครื่อง Boltzmann ที่ดีก็จะดีเช่นกัน)
เรามีชุดของหน่วยที่มองเห็นได้ (เช่นตรงกับพิกเซลดำ / ขาวในรูปภาพ) และชุดของหน่วยที่ซ่อนอยู่ น้ำหนักถูกเริ่มต้นอย่างใด (เช่นสม่ำเสมอจาก [-0.5, 0.5]) จากนั้นเราสลับกันระหว่างสองเฟสต่อไปนี้จนกว่าจะถึงกฎการหยุดบางอย่าง:
Clamped phase - ในระยะนี้ค่าทั้งหมดของหน่วยที่มองเห็นได้จะได้รับการแก้ไขดังนั้นเราจะอัปเดตสถานะของหน่วยที่ซ่อนอยู่เท่านั้น (ตามกฎการเปิดใช้งานสุ่มของ Boltzmann) เราอัปเดตจนกว่าเครือข่ายจะมาถึงจุดสมดุล เมื่อเราไปถึงจุดสมดุลเราจะทำการปรับปรุงครั้งต่อไป (สำหรับบางN ที่กำหนดไว้ล่วงหน้า) ติดตามค่าเฉลี่ยของx i x j (โดยที่x i , x jเป็นสถานะของโหนดiและj ) หลังจากการอัพเดทสมดุลของNเหล่านั้นแล้วเราจะอัปเดตw ฉัน j = w ฉัน j +โดยที่Cคืออัตราการเรียนรู้ (หรือแทนที่จะทำการอัปเดตเป็นชุดในตอนท้ายเราจะอัปเดตหลังจากเราดำเนินการตามขั้นตอนสมดุล)
Free phase - ในระยะนี้สถานะของทุกหน่วยจะได้รับการอัพเดต เมื่อเราไปถึงจุดสมดุลเราก็ทำการปรับปรุง N 'อีกครั้งเหมือนกัน แต่แทนที่จะเพิ่มความสัมพันธ์ในตอนท้ายเราจะลบออก: )
ดังนั้นคำถามหลักของฉันคือ:
เมื่อใดก็ตามที่เราอยู่ในช่วงแคลมป์เราจะรีเซ็ตหน่วยที่มองเห็นเป็นรูปแบบที่เราต้องการเรียนรู้ (ด้วยความถี่ที่แสดงถึงความสำคัญของรูปแบบนั้น) หรือไม่หรือเราปล่อยให้หน่วยที่มองเห็นอยู่ในสภาพที่พวกเขาอยู่ ในตอนท้ายของเฟสฟรี
เราทำการปรับปรุงแบบชุดของน้ำหนักในตอนท้ายของแต่ละเฟสหรือทำการปรับปรุงน้ำหนักในแต่ละขั้นตอนของสมดุลในเฟสหรือไม่? (หรือเป็นหนึ่งเดียวที่ดี?)