Máy Boltzmann hạn chế
Một phần của loạt bài về |
Học máy và khai phá dữ liệu |
---|
Diễn đàn/tạp chí |
Máy Boltzmann hạn chế (restricted Boltzmann machine, hoặc RBM) là một loại mô hình tạo sinh ngẫu nhiên của mạng thần kinh nhân tạo, nó có thể học các mẫu xác suất trên các dữ liệu đầu vào mà nó nhận được.[1]
RBM ban đầu được Paul Smolensky giới thiệu với tên Harmonium vào năm 1986.[2] Về sau, nó trở nên phổ biến khi Geoffrey Hinton và nhóm của ông phát triển cách học nhanh hơn cho RBM vào những năm 2000. RBM đã được sử dụng trong nhiều lĩnh vực khác nhau như giảm chiều dữ liệu,[3] phân loại,[4] lọc dữ liệu hợp tác,[5] học đặc trưng,[6] mô hình hóa chủ đề,[7] nghiên cứu miễn dịch học,[8] và thậm chí trong cơ học lượng tử.[9] [10] [11]
RBM có thể được huấn luyện theo cả hai cách có giám sát hoặc không có giám sát, tùy thuộc vào loại nhiệm vụ cần thực hiện.[cần dẫn nguồn]
RBM là một dạng của máy Boltzmann, nhưng có một điểm khác biệt quan trọng: các nơ-ron trong RBM phải sắp xếp thành một mạng lưới hai phía. Điều này có nghĩa là:
- một cặp nút từ mỗi nhóm trong hai nhóm đơn vị (thường được gọi là các đơn vị "nhìn thấy" và "ẩn" tương ứng) có thể có kết nối đối xứng giữa chúng; và
- không có kết nối nào giữa các nút trong cùng một nhóm.
Ngược lại, máy Boltzmann không bị hạn chế có thể có các kết nối giữa các đơn vị ẩn. Điều này giúp việc đào tạo hiệu quả hơn bằng các thuật toán so với lớp máy Boltzmann thông thường, đặc biệt là thuật toán phân kỳ đối nghịch dựa trên suy giảm độ dốc.[12]
Máy Boltzmann hạn chế cũng có thể được dùng trong các mạng học sâu. Cụ thể, mạng niềm tin sâu được tạo ra bằng cách "xếp chồng" các RBM, và có thể điều chỉnh lại mạng này bằng suy giảm độ dốc và truyền ngược.[13]
Cấu trúc
[sửa | sửa mã nguồn]Loại RBM chuẩn có các đơn vị ẩn và đơn vị nhìn thấy có giá trị nhị phân (Boolean), với một ma trận trọng số kích thước . Mỗi trọng số của ma trận kết nối đơn vị nhìn thấy (đầu vào) và đơn vị ẩn . Ngoài ra, còn có các trọng số bù cho và cho . Với các trọng số và bù, năng lượng của một cấu hình (cặp vector Boolean) (v,h) được định nghĩa như sau:
hoặc, theo dạng ma trận:
Hàm năng lượng này tương tự với của mạng Hopfield. Cũng giống các máy Boltzmann khác, phân phối xác suất đồng thời cho các vector nhìn thấy và ẩn được định nghĩa dựa trên hàm năng lượng:[14]
trong đó là một hằng số chuẩn hóa đảm bảo tổng tất cả xác suất là 1. Xác suất biên của một vector nhìn thấy là tổng của trên tất cả các cấu hình của lớp ẩn,[14]
- ,
và ngược lại. Vì RBM có cấu trúc đồ thị hai phía (không có kết nối trong cùng một lớp), các đơn vị ẩn hoạt động độc lập khi đã biết các đơn vị nhìn thấy, và ngược lại.[12] Điều này có nghĩa là, với m đơn vị nhìn thấy và n đơn vị ẩn, xác suất có điều kiện của các đơn vị nhìn thấy v, khi biết cấu hình của các đơn vị ẩn h, là:
- .
Ngược lại, xác suất có điều kiện của h khi biết v là:
- .
Xác suất kích hoạt của từng đơn vị được cho bởi:
- và
trong đó là hàm sigmoid logistic.
Các đơn vị nhìn thấy của Máy Boltzmann hạn chế có thể là đa thức, dù các đơn vị ẩn tuân theo phân phối Bernoulli.[cần giải thích] Khi đó, hàm logistic cho các đơn vị nhìn thấy được thay bằng hàm softmax:
trong đó K là số giá trị rời rạc mà các giá trị nhìn thấy có. Chúng được sử dụng trong mô hình chủ đề,[7] và hệ thống gợi ý.[5]
Quan hệ với các mô hình khác
[sửa | sửa mã nguồn]Máy Boltzmann Hạn chế là một dạng đặc biệt của máy Boltzmann và các trường ngẫu nhiên Markov.[15][16]
Mô hình đồ thị của RBM tương ứng với phân tích nhân tố.[17]
Thuật toán huấn luyện
[sửa | sửa mã nguồn]Máy Boltzmann hạn chế được huấn luyện để tối đa hóa các xác suất được gán cho một tập huấn luyện (một ma trận mà mỗi hàng là một vector nhìn thấy ),
hoặc tương đương, để tối đa hóa logarit kỳ vọng của một mẫu huấn luyện được chọn ngẫu nhiên từ :[15][16]
Thuật toán phổ biến nhất để huấn luyện RBM, tức là tối ưu hóa ma trận trọng số , là thuật toán phân kỳ đối nghịch (CD) do Hinton phát triển, ban đầu để huấn luyện các mô hình PoE (product of experts).[18][19] Thuật toán này sử dụng kỹ thuật lấy mẫu Gibbs và nằm trong quy trình suy giảm độ dốc (tương tự như cách truyền ngược hoạt động khi huấn luyện mạng thần kinh tiến thẳng) để tính toán cập nhật trọng số.
Quy trình cơ bản của phân kỳ đối nghịch một bước (CD-1) cho một mẫu đơn lẻ có thể được tóm tắt như sau:
- Lấy một mẫu huấn luyện v, tính toán xác suất của các đơn vị ẩn và lấy mẫu một vector kích hoạt ẩn h từ phân phối xác suất này.
- Tính tích ngoài của v và h, gọi đó là gradient dương.
- Từ h, lấy mẫu một bản dựng lại v' của các đơn vị nhìn thấy, sau đó lại lấy mẫu các kích hoạt ẩn h' từ đó. (Bước lấy mẫu Gibbs)
- Tính tích ngoài của v' và h' và gọi đó là gradient âm.
- Cập nhật ma trận trọng số bằng cách lấy gradient dương trừ đi gradient âm, nhân với một hệ số học: .
- Cập nhật các trọng số bù a và b tương tự: , .
A Practical Guide to Training RBMs (Hướng dẫn Thực hành để Huấn luyện Máy Boltzmann Hạn chế) được viết bởi Hinton có thể được tìm thấy trên trang chủ của ông.[14]
Máy Boltzmann Hạn chế Xếp chồng
[sửa | sửa mã nguồn]- Sự khác biệt giữa Máy Boltzmann Hạn chế Xếp chồng (Stacked Restricted Boltzmann Machines) và RBM là ở chỗ, trong RBM, các kết nối ngang giữa các nút trong cùng một lớp không được phép, điều này giúp dễ phân tích hơn. Còn Máy Boltzmann Xếp chồng thì kết hợp một mạng ba lớp, trong đó có lớp học tự động (không giám sát) với trọng số đối xứng, và một lớp trên được huấn luyện có giám sát để giúp nhận dạng tốt hơn ba lớp.
- Máy Boltzmann Xếp chồng được dùng để hiểu ngôn ngữ tự nhiên, tìm kiếm tài liệu, tạo ra hình ảnh và phân loại dữ liệu. Những chức năng này được học qua quá trình học không giám sát (học mà không có sự can thiệp của con người) và/hoặc được tinh chỉnh bằng cách học có giám sát (học với hướng dẫn). Khác với mạng có trọng số đối xứng ở lớp trên, RBM có một lớp hai chiều kết nối không đối xứng. Máy Boltzmann Hạn chế có ba lớp với trọng số không đối xứng và kết hợp hai mạng thành một.
- Máy Boltzmann Xếp chồng có một số điểm tương đồng với RBM, như các neuron trong Máy Boltzmann Xếp chồng cũng là các neuron nhị phân giống như trong Máy Boltzmann Hạn chế. Cả Máy Boltzmann Hạn chế và RBM đều dựa trên một hàm gọi là hàm xác suất Gibbs: . Quá trình huấn luyện của Máy Boltzmann Hạn chế tương tự như RBM, huấn luyện từng lớp một và dùng một quy trình ba bước để ước lượng trạng thái cân bằng, không dùng cách lan truyền ngược. Máy Boltzmann Hạn chế có thể dùng cả phương pháp giám sát và không giám sát để huấn luyện các RBM khác nhau, nhằm phân loại và nhận dạng. Quá trình huấn luyện sử dụng phân kỳ đối nghịch kết hợp với lấy mẫu Gibbs: Δwij = e*(pij - p'ij).
- Ưu điểm của Máy Boltzmann Hạn chế là nó có thể thực hiện biến đổi phi tuyến, dễ mở rộng và tạo ra các lớp đặc trưng theo tầng. Tuy nhiên, nhược điểm là nó tính toán phức tạp hơn khi sử dụng các neuron với giá trị là số nguyên hoặc số thực. Nó không tuân theo gradient của bất kỳ hàm nào, vì vậy cần ước lượng phân kỳ đối nghịch với xác suất cực đại để cải thiện.[14]
Văn học
[sửa | sửa mã nguồn]- Fischer, Asja; Igel, Christian (2012), “An Introduction to Restricted Boltzmann Machines”, Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications, Lecture Notes in Computer Science, Berlin, Heidelberg: Springer Berlin Heidelberg, 7441, tr. 14–36, doi:10.1007/978-3-642-33275-3_2, ISBN 978-3-642-33274-6
Xem thêm
[sửa | sửa mã nguồn]Tham khảo
[sửa | sửa mã nguồn]- ^ Sherrington, David; Kirkpatrick, Scott (1975), “Solvable Model of a Spin-Glass”, Physical Review Letters, 35 (35): 1792–1796, doi:10.1103/PhysRevLett.35.1792S
- ^ Smolensky, Paul (1986). “Chương 6: Information Processing in Dynamical Systems: Foundations of Harmony Theory” (PDF). Trong Rumelhart, David E.; McLelland, James L. (biên tập). Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations. MIT Press. tr. 194–281. ISBN 0-262-68053-X.
- ^ Hinton, G. E.; Salakhutdinov, R. R. (2006). “Reducing the Dimensionality of Data with Neural Networks” (PDF). Science. 313 (5786): 504–507. Bibcode:2006Sci...313..504H. doi:10.1126/science.1127647. PMID 16873662. S2CID 1658773. Bản gốc (PDF) lưu trữ ngày 23 tháng 12 năm 2015. Truy cập ngày 2 tháng 12 năm 2015.
- ^ Larochelle, H.; Bengio, Y. (2008). Classification using discriminative restricted Boltzmann machines (PDF). Proceedings of the 25th international conference on Machine learning - ICML '08. tr. 536. doi:10.1145/1390156.1390224. ISBN 978-1-60558-205-4.
- ^ a b Salakhutdinov, R.; Mnih, A.; Hinton, G. (2007). Restricted Boltzmann machines for collaborative filtering. Proceedings of the 24th international conference on Machine learning - ICML '07. tr. 791. doi:10.1145/1273496.1273596. ISBN 978-1-59593-793-3.
- ^ Coates, Adam; Lee, Honglak; Ng, Andrew Y. (2011). An analysis of single-layer networks in unsupervised feature learning (PDF). International Conference on Artificial Intelligence and Statistics (AISTATS). Bản gốc (PDF) lưu trữ ngày 20 tháng 12 năm 2014. Truy cập ngày 19 tháng 12 năm 2014.
- ^ a b Ruslan Salakhutdinov và Geoffrey Hinton (2010). Replicated softmax: an undirected topic model Lưu trữ 2012-05-25 tại Wayback Machine. Neural Information Processing Systems 23.
- ^ Bravi, Barbara; Di Gioacchino, Andrea; Fernandez-de-Cossio-Diaz, Jorge; Walczak, Aleksandra M; Mora, Thierry; Cocco, Simona; Monasson, Rémi (8 tháng 9 năm 2023). Bitbol, Anne-Florence; Eisen, Michael B (biên tập). “A transfer-learning approach to predict antigen immunogenicity and T-cell receptor specificity”. eLife. 12: e85126. doi:10.7554/eLife.85126. ISSN 2050-084X. PMC 10522340. PMID 37681658.
- ^ Carleo, Giuseppe; Troyer, Matthias (10 tháng 2 năm 2017). “Solving the quantum many-body problem with artificial neural networks”. Science (bằng tiếng Anh). 355 (6325): 602–606. arXiv:1606.02318. Bibcode:2017Sci...355..602C. doi:10.1126/science.aag2302. ISSN 0036-8075. PMID 28183973. S2CID 206651104.
- ^ Melko, Roger G.; Carleo, Giuseppe; Carrasquilla, Juan; Cirac, J. Ignacio (tháng 9 năm 2019). “Restricted Boltzmann machines in quantum physics”. Nature Physics (bằng tiếng Anh). 15 (9): 887–892. Bibcode:2019NatPh..15..887M. doi:10.1038/s41567-019-0545-1. ISSN 1745-2481. S2CID 256704838.
- ^ Pan, Ruizhi; Clark, Charles W. (2024). “Efficiency of neural-network state representations of one-dimensional quantum spin systems”. Physical Review Research. 6: 023193. doi:10.1103/PhysRevResearch.6.023193.
- ^ a b Miguel Á. Carreira-Perpiñán và Geoffrey Hinton (2005). On contrastive divergence learning. Artificial Intelligence and Statistics.
- ^ Hinton, G. (2009). “Deep belief networks”. Scholarpedia. 4 (5): 8637. Bibcode:2009SchpJ...4.8637H. doi:10.4249/scholarpedia.8637.
- ^ a b c d Geoffrey Hinton (2010). A Practical Guide to Training Restricted Boltzmann Machines. UTML TR 2010–003, Đại học Toronto.
- ^ a b Sutskever, Ilya; Tieleman, Tijmen (2010). “On the convergence properties of contrastive divergence” (PDF). Proc. 13th Int'l Conf. On AI and Statistics (AISTATS). Bản gốc (PDF) lưu trữ ngày 10 tháng 6 năm 2015.
- ^ a b Asja Fischer và Christian Igel. Training Restricted Boltzmann Machines: An Introduction Lưu trữ 2015-06-10 tại Wayback Machine. Pattern Recognition 47, pp. 25-39, 2014
- ^ María Angélica Cueto; Jason Morton; Bernd Sturmfels (2010). “Geometry of the restricted Boltzmann machine”. Algebraic Methods in Statistics and Probability. American Mathematical Society. 516. arXiv:0908.4425. Bibcode:2009arXiv0908.4425A.
- ^ Geoffrey Hinton (1999). Products of Experts. ICANN 1999.
- ^ Hinton, G. E. (2002). “Training Products of Experts by Minimizing Contrastive Divergence” (PDF). Neural Computation. 14 (8): 1771–1800. doi:10.1162/089976602760128018. PMID 12180402. S2CID 207596505.
Thư mục
[sửa | sửa mã nguồn]- Chen, Edwin (18 tháng 7 năm 2011). “Introduction to Restricted Boltzmann Machines”. Edwin Chen's blog.
- Nicholson, Chris; Gibson, Adam. “A Beginner's Tutorial for Restricted Boltzmann Machines”. Deeplearning4j Documentation. Lưu trữ bản gốc ngày 11 tháng 2 năm 2017. Truy cập ngày 15 tháng 11 năm 2018.Quản lý CS1: bot: trạng thái URL ban đầu không rõ (liên kết)
- Nicholson, Chris; Gibson, Adam. “Understanding RBMs”. Deeplearning4j Documentation. Bản gốc lưu trữ ngày 20 tháng 9 năm 2016. Truy cập ngày 29 tháng 12 năm 2014.
Liên kết ngoài
[sửa | sửa mã nguồn]- Python implementation của Bernoulli RBM và hướng dẫn
- SimpleRBM là một mã nguồn RBM nhỏ (24kB) hữu ích để học cách các RBM hoạt động và học hỏi.
- Triển khai Julia của máy Boltzmann hạn chế: https://github.com/cossio/RestrictedBoltzmannMachines.jl