Tôi đang cố gắng hiểu làm thế nào các máy Boltzmann hoạt động, nhưng tôi không chắc chắn làm thế nào để học được trọng lượng và không thể tìm thấy một mô tả rõ ràng. Điều sau đây có đúng không? (Ngoài ra, con trỏ đến bất kỳ giải thích tốt về máy Boltzmann cũng sẽ rất tuyệt.)
Chúng tôi có một bộ các đơn vị hiển thị (ví dụ: tương ứng với các pixel đen / trắng trong một hình ảnh) và một bộ các đơn vị ẩn. Các trọng số được khởi tạo bằng cách nào đó (ví dụ: thống nhất từ [-0,5, 0,5]), và sau đó chúng tôi luân phiên giữa hai giai đoạn sau cho đến khi đạt được một số quy tắc dừng:
Pha kẹp - Trong pha này, tất cả các giá trị của các đơn vị nhìn thấy được cố định, vì vậy chúng tôi chỉ cập nhật trạng thái của các đơn vị ẩn (theo quy tắc kích hoạt ngẫu nhiên Boltzmann). Chúng tôi cập nhật cho đến khi mạng đạt đến trạng thái cân bằng. Khi chúng ta đạt đến trạng thái cân bằng, chúng ta tiếp tục cập nhật nhiều lần hơn (đối với một số được xác định trước ), theo dõi trung bình của (trong đó là trạng thái của các nút vàj N ). Sau những cập nhật cân bằng đó , chúng tôi cập nhật , trong đólà một số tỷ lệ học tập. (Hoặc, thay vì thực hiện cập nhật hàng loạt vào cuối, chúng ta có cập nhật sau khi chúng ta cân bằng bước không?)
Giai đoạn miễn phí - Trong giai đoạn này, trạng thái của tất cả các đơn vị được cập nhật. Khi chúng tôi đạt đến trạng thái cân bằng, chúng tôi tương tự tiếp tục cập nhật N 'nhiều lần hơn, nhưng thay vì thêm các tương quan ở cuối, chúng tôi trừ: .
Vì vậy, câu hỏi chính của tôi là:
Bất cứ khi nào chúng ta ở trong giai đoạn bị kẹp, chúng ta sẽ đặt lại các đơn vị hiển thị thành một trong các mẫu mà chúng ta muốn tìm hiểu (với một số tần số thể hiện tầm quan trọng của mẫu đó) hoặc chúng ta để các đơn vị hiển thị ở trạng thái chúng ở vào cuối giai đoạn tự do?
Chúng ta có thực hiện cập nhật hàng loạt các trọng số ở cuối mỗi giai đoạn hay cập nhật các trọng số ở mỗi bước cân bằng trong pha không? (Hoặc, một trong hai là tốt?)