Trực giác đằng sau máy Boltzmann bị hạn chế (RBM)


15

Tôi đã trải qua khóa học Mạng thần kinh của Geoff Hinton trên Coursera và cũng thông qua giới thiệu về các máy Boltzmann bị hạn chế , tôi vẫn không hiểu được trực giác đằng sau RBM.

Tại sao chúng ta cần tính toán năng lượng trong máy này? Và việc sử dụng xác suất trong máy này là gì? Tôi cũng đã xem video này . Trong video, anh ta chỉ viết các phương trình xác suất và năng lượng trước các bước tính toán và dường như không sử dụng nó ở bất cứ đâu.

Thêm vào ở trên, tôi không chắc chức năng khả năng là gì?


Tôi đã cố gắng thu dọn câu hỏi, nhưng tôi nghĩ nó cần nhiều công việc hơn. Bạn cần phải giải thích những gì bạn làm hiểu, và đặc biệt hơn nơi bạn đang gặp khó khăn, nếu không thì câu hỏi là quá rộng.
Neil Slater

Điều duy nhất đi vào đầu là có ba bước, đầu tiên là giai đoạn tích cực, sau đó là giai đoạn tiêu cực tiếp theo là sự tái cấu trúc của trọng số. Nhưng, những gì về năng lượng và chức năng xác suất? sử dụng ở đây là gì? và bao nhiêu lần chúng ta phải thực hiện quá trình này (pha dương -> pha âm> tái cấu trúc trọng lượng)?
Sinh ra

Câu trả lời:


5

RBM là một con thú thú vị. Để trả lời câu hỏi của bạn và để kích thích trí nhớ của tôi về chúng, tôi sẽ lấy RBM và nói chuyện thông qua đạo hàm. Bạn đã đề cập rằng bạn đang nhầm lẫn về khả năng, do đó, sự xuất phát của tôi sẽ từ quan điểm cố gắng tối đa hóa khả năng. Vì vậy, hãy bắt đầu.

RBM chứa hai bộ nơ-ron khác nhau, có thể nhìn thấy và ẩn đi, tôi sẽ biểu thị chúng lần lượt là và . Cho một cấu hình cụ thể của và , chúng tôi ánh xạ không gian xác suất.h v hvhvh

p(v,h)= =e-E(v,h)Z

Có một vài điều nữa để xác định. Hàm thay thế mà chúng ta sử dụng để ánh xạ từ một cấu hình cụ thể đến không gian xác suất được gọi là hàm năng lượng . Các liên tục là một yếu tố bình thường để đảm bảo rằng chúng tôi thực sự ánh xạ không gian xác suất. Bây giờ hãy đến với những gì chúng ta thực sự tìm kiếm; xác suất của một tập hợp các tế bào thần kinh có thể nhìn thấy, nói cách khác, xác suất của dữ liệu của chúng tôi. Z Z = v V h H e - E ( v , h ) p ( v ) = h H p ( v , h ) = h H e - E ( v , h )E(v,h)Z

Z= =ΣvVΣhHe-E(v,h)
p(v)= =ΣhHp(v,h)= =ΣhHe-E(v,h)ΣvVΣhHe-E(v,h)

Mặc dù có rất nhiều thuật ngữ trong phương trình này, nó chỉ đơn giản là viết ra các phương trình xác suất chính xác. Hy vọng rằng, cho đến nay, điều này đã giúp bạn nhận ra lý do tại sao chúng ta cần chức năng năng lượng để tính toán xác suất, hoặc những gì được thực hiện thường hơn xác suất unnormalized . Xác suất không chuẩn hóa được sử dụng vì hàm phân vùng rất tốn kém để tính toán.Zp(v)*ZZ

Bây giờ chúng ta hãy đến giai đoạn học tập thực tế của RBM. Để tối đa hóa khả năng, đối với mọi điểm dữ liệu, chúng ta phải thực hiện một bước chuyển màu để tạo . Để có được các biểu thức gradient, phải mất một số nhào lộn toán học. Điều đầu tiên chúng ta làm là lấy nhật ký của . Chúng tôi sẽ hoạt động trong không gian xác suất đăng nhập từ bây giờ để làm cho tính toán khả thi.p ( v )p(v)= =1p(v)

p ( v )

đăng nhập(p(v))= =đăng nhập[ΣhHe-E(v,h)]-đăng nhập[ΣvVΣhHe-E(v,h)]
Chúng ta hãy lấy độ dốc đối với các giá trị trongp(v)

log(p(v))θ=1hHeE(v,h)hHeE(v,h)E(v,h)θ+1vVhHeE(v,h)vVhHeE(v,h)E(v,h)θ

Bây giờ tôi đã làm điều này trên giấy và viết phương trình bán kết xuống để không lãng phí nhiều không gian trên trang web này. Tôi khuyên bạn nên rút ra các phương trình này cho mình. Bây giờ tôi sẽ viết một số phương trình xuống sẽ giúp tiếp tục dẫn xuất của chúng tôi. Lưu ý rằng: , và p ( v ) = h H p ( v , h ) p ( h | v ) = p ( v , h )Zp(v,h)= =e-E(v,h')p(v)=hHp(v,h)p(h|v)=p(v,h)p(h)

tôiog(p(v))θ= =-1p(v)Σh'Hp(v,h')E(v,h')θ+Σv'VΣh'Hp(v',h')E(v',h')θtôiog(p(v))θ= =-Σh'Hp(h'|v)E(v,h')θ+Σv'VΣh'Hp(v',h')E(v',h')θ

Và ở đó, chúng tôi đã ước tính khả năng tối đa cho RBM, nếu bạn muốn bạn có thể viết hai thuật ngữ cuối cùng thông qua kỳ vọng về các điều khoản tương ứng của chúng (có điều kiện và xác suất chung).

Lưu ý về chức năng năng lượng và tính ngẫu nhiên của tế bào thần kinh.

Như bạn có thể thấy ở trên trong đạo hàm của mình, tôi để lại định nghĩa về hàm năng lượng khá mơ hồ. Và lý do để làm điều đó là nhiều phiên bản khác nhau của RBM thực hiện các chức năng năng lượng khác nhau. Cái mà Hinton mô tả trong bài giảng được liên kết ở trên, và được hiển thị bởi @ Laurens-Meeus là:

E(v,h)= =-mộtTv-bTh-vTWh.

Có thể dễ dàng hơn để lý giải về các điều khoản độ dốc ở trên thông qua biểu mẫu kỳ vọng.

đăng nhập(p(v))θ= =-Ep(h'|v)E(v,h')θ+Ep(v',h')E(v',h')θ

Kỳ vọng của thuật ngữ đầu tiên thực sự rất dễ tính toán, và đó là thiên tài đằng sau RBM. Bằng cách hạn chế kết nối, kỳ vọng có điều kiện chỉ đơn giản trở thành sự lan truyền về phía trước của RBM với các đơn vị hữu hình được kẹp. Đây được gọi là giai đoạn đánh thức trong các máy Boltzmann. Bây giờ việc tính toán thuật ngữ thứ hai khó hơn nhiều và thông thường các phương pháp Monte Carlo được sử dụng để làm như vậy. Viết độ dốc thông qua mức trung bình của Monte Carlo chạy:

đăng nhập(p(v))θ-E(v,h')θp(h'|v)+E(v',h')θp(v',h')

Tính toán thuật ngữ đầu tiên không khó, như đã nêu ở trên, do đó Monte-Carlo được thực hiện trong nhiệm kỳ thứ hai. Các phương pháp Monte Carlo sử dụng lấy mẫu ngẫu nhiên liên tiếp của phân phối, để tính toán kỳ vọng (tổng hoặc tích phân). Bây giờ việc lấy mẫu ngẫu nhiên này trong RBM cổ điển được định nghĩa là đặt đơn vị thành 0 hoặc 1 dựa trên xác suất ngẫu nhiên, nói cách khác, lấy số thống nhất ngẫu nhiên, nếu nó nhỏ hơn xác suất nơ-ron đặt thành 1, nếu nó lớn hơn đặt nó thành 0.


Làm thế nào để chúng ta làm cho lớp nhị phân ẩn quá? Bcoz sau khi hoạt động chức năng kích hoạt, chúng ta sẽ nhận được các giá trị trong phạm vi từ 0 đến 1.
Sinh ra

Điều này thường được thực hiện bằng cách ngưỡng kích hoạt. Bất cứ điều gì trên 0,5, sẽ trở thành 1, bất cứ điều gì dưới đây sẽ bằng không.
Armen Aghajanyan

Nhưng trong liên kết này , trong phần 3.1: Hinton đã tuyên bố "đơn vị ẩn bật nếu xác suất này lớn hơn một số ngẫu nhiên được phân phối đồng đều giữa 0 và 1". Điều này thực sự có ý nghĩa gì? Và cũng trong liên kết này , họ nói "Sau đó, đơn vị thứ j sẽ bật nếu khi chọn số ngẫu nhiên được phân phối đồng đều giữa 0 và 1, chúng tôi thấy rằng giá trị của nó nhỏ hơn sig [j]. Nếu không thì nó sẽ tắt." Tôi đã không nhận được điều này.
Sinh

????? Làm thế nào để nói liệu đơn vị cụ thể được bật hay tắt?
Sinh ra

Tôi đã thêm một chỉnh sửa. Tôi đề nghị đọc lên các phương pháp Monte Carlo vì tính ngẫu nhiên của thuật toán này bắt nguồn từ đó.
Armen Aghajanyan

5

Ngoài các câu trả lời hiện có, tôi muốn nói về chức năng năng lượng này và trực giác đằng sau đó một chút. Xin lỗi nếu điều này là một chút dài và vật lý.

Hàm năng lượng mô tả một mô hình được gọi là mô hình Ising , là mô hình của ferromagnetism về mặt cơ học thống kê / cơ học lượng tử. Trong cơ học thống kê, chúng tôi sử dụng một toán tử Hamilton được gọi là mô tả năng lượng của một hệ cơ học lượng tử. Và một hệ thống luôn cố gắng ở trạng thái có năng lượng thấp nhất.

Bây giờ, mô hình Ising về cơ bản mô tả sự tương tác giữa các electron với spin là +1 hoặc -1, với sự có mặt của từ trường bên ngoài . Sự tương tác giữa hai electron và được mô tả bởi một hệ số . Hamiltonian (hoặc hàm năng lượng) này là trong đó biểu thị cho Hamilton. Một quy trình chuẩn để có được từ một hàm năng lượng đến xác suất, rằng một hệ thống đang ở trạng thái nhất định (ví dụ: ở đây: cấu hình của các spin, ví dụσkhTôijJTôij

H^= =ΣTôi,jJTôijσTôiσj-μΣjhjσj
H^σ1= =+1,σ2= =-1,...) là sử dụng phân phối Boltzmann, nói rằng ở nhiệt độ , xác suất của hệ thống ở trạng thái có năng lượng được đưa ra bởi Tại thời điểm này, bạn nên nhận ra rằng hai phương trình này là phương trình chính xác giống như trong video của Hinton và câu trả lời của Armen Aghajanyan . Điều này dẫn chúng ta đến câu hỏi:TpTôiTôiETôi
pTôi= =điểm kinh nghiệm(-ETôi/kT)ΣTôiđiểm kinh nghiệm(-ETôi/kt)

RBM phải làm gì với mô hình cơ học lượng tử này của ferromagnetism?

Chúng ta cần sử dụng một đại lượng vật lý cuối cùng: entropy. Như chúng ta đã biết từ nhiệt động lực học, một hệ thống sẽ ổn định ở trạng thái với năng lượng tối thiểu, cũng tương ứng với trạng thái với entropy tối đa.

Như Shanon đã giới thiệu vào năm 1946, trong lý thuyết thông tin, entropy cũng có thể được coi là thước đo nội dung thông tin trong , được tính bằng tổng sau đây trên tất cả các trạng thái có thể có của : Bây giờ, cách hiệu quả nhất để mã hóa nội dung thông tin trong , là sử dụng một cách tối đa hóa entropy .HXX

H(X)= =-ΣTôiP(xTôi)đăng nhậpP(xTôi)
XH

Cuối cùng , đây là nơi chúng tôi quay lại RBM: Về cơ bản, chúng tôi muốn RBM này mã hóa càng nhiều thông tin càng tốt. Vì vậy, khi chúng ta phải tối đa hóa entropy (lý thuyết thông tin) trong Hệ thống RBM của chúng ta. Theo đề xuất của Hopfield vào năm 1982, chúng ta có thể tối đa hóa entropy thông tin chính xác giống như entropy vật lý: bằng cách mô hình hóa RBM giống như mô hình Ising ở trên và sử dụng các phương pháp tương tự để giảm thiểu năng lượng. Và đó là lý do tại sao chúng ta cần chức năng năng lượng kỳ lạ này trong một RBM!

Đạo hàm toán học hay trong câu trả lời của Armen Aghajanyan cho thấy mọi thứ chúng ta cần làm, để giảm thiểu năng lượng, do đó tối đa hóa entropy và lưu trữ / lưu trữ càng nhiều thông tin càng tốt trong RBM của chúng ta.

Tái bút: Xin các nhà vật lý thân mến, hãy tha thứ cho bất kỳ sự thiếu chính xác nào trong công cụ phái sinh này. Hãy bình luận hoặc sửa chữa những điểm không chính xác (hoặc thậm chí sai lầm).


Tôi đã xem video này , Chỉ cần xem video từ thời điểm đó. Làm thế nào để bạn có được số mẫu đó? cho dù chúng ta vừa chạy rand () trong matlab và có được nó? và sau đó nó sẽ khác nhau cho mỗi h (i). Ôi không! Tôi không nghĩ máy sẽ học đúng.
Sinh ra

@ Sinh2Code đây là một câu hỏi khác. Bạn có thể gửi nó như một câu hỏi mới cho trang web này? Vui lòng thử thêm các phương trình bạn đang nói đến câu hỏi mới và giải thích những phần bạn không hiểu.
hbaderts


0

Câu trả lời của @Armen đã cho tôi rất nhiều hiểu biết. Tuy nhiên, một câu hỏi chưa được trả lời.

Mục tiêu là để tối đa hóa xác suất (hoặc khả năng) của . Điều này có liên quan đến việc giảm thiểu hàm năng lượng liên quan đến và :vvh

E(v,h)= =-mộtTv-bTh-vTWh

Các biến của chúng tôi là , và , phải được đào tạo. Tôi khá chắc chắn rằng khóa đào tạo này sẽ là mục tiêu cuối cùng của RBM.mộtbW


Làm thế nào để chúng ta làm cho lớp nhị phân ẩn quá? Bcoz sau khi hoạt động chức năng kích hoạt, chúng tôi sẽ nhận được các giá trị trong phạm vi từ 0 đến 1.
Sinh ra

hvh_bin = (rand() < h_val) ? 1 : 0

@NeilSlater: nhưng tại sao một số ngẫu nhiên? Ngoài ra, liệu có nên tạo ngẫu nhiên cho mỗi lần lặp hoặc cùng một số cho tất cả các lần lặp không? Một nghi ngờ nghiêm trọng hơn, có bao nhiêu lần lặp lại phải được thực hiện? Tôi có một tập huấn luyện V, chỉ có một vectơ, tức là v1. Với v1, tôi phải lặp đi lặp lại bao nhiêu lần?
Sinh ra

@NeilSlater: Một nghi ngờ nữa là, liệu cùng một số ngẫu nhiên có được so sánh với tất cả các giá trị của lớp ẩn không? Tôi biết đây là một câu hỏi ngu ngốc như vậy nhưng vẫn vậy
Sinh ra

1
Đó là một số ngẫu nhiên vì đó là cách bạn giải quyết xác suất thành giá trị nhị phân. Đó là một số lượng nhỏ cho mỗi nơ ron bên trong hhoặc v- bạn đang lấy mẫu một vectơ giá trị nhị phân cho hhoặc v, để tạo ra một ví dụ mà mạng "tin" tồn tại - tức là một ví dụ có cơ hội thống kê cao là đại diện cho tập huấn luyện. Trong quá trình đào tạo, bạn xác định mức độ phù hợp với ví dụ đào tạo hiện có và điều chỉnh trọng lượng phù hợp.
Neil Slater
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.