Mạng Hopfield

**Mạng Hopfield** là một dạng mạng nơ-ron nhân tạo học định kỳ do John Hopfield sáng chế. Mạng Hopfield đóng vai trò như các hệ thống bộ nhớ có thể đánh địa chỉ nội dung với các nút ngưỡng dạng nhị phân. Chúng được bảo đảm sẽ hội tụ về một cực tiểu cục bộ, nhưng không đảm bảo sẽ hội tụ về một trong các mẫu được lưu trữ.

## Cấu trúc

Các nút trong mạng Hopfield là những nút ngưỡng có dạng nhị phân, tức là các nút này chỉ có hai giá trị khác nhau biểu hiện trạng thái và giá trị này được xác định nhờ vào một ngưỡng mà ngõ nhập của nút có vượt quá hay không. Các nút trong mạng Hopfield có thể có giá trị 1 hoặc -1, hoặc các giá trị 1 hoặc 0. Do đó, có thể có hai cách định nghĩa cho việc xác định phần tử *i*, a_i:

(1) a_i \leftarrow \left\{\begin{matrix} 1 & \mbox {neu }\sum_{j}{w_{ij}s_j}>\theta_i, \\
-1 & \mbox {neu nguo.c lai.}\end{matrix}\right.

(2) a_i \leftarrow \left\{\begin{matrix} 1 & \mbox {neu }\sum_{j}{w_{ij}s_j}>\theta_i, \\
0 & \mbox {neu nguo.c lai.}\end{matrix}\right.

Trong đó:
* w_{ij} là độ lớn trọng số kết nối từ nút j đến nút i (trọng số của liên kết).
* s_j là trạng thái của nút j.
* \theta_i là ngưỡng của nút i.

Các liên kết trong mạng Hopfield thường có các ràng buộc sau:
* w_{ii}=0, \forall i (không có nút nào liên kết với chính nó)
* w_{ij} = w_{ji} \forall i,j (các liên kết là đối xứng)

Ràng buộc rằng các trọng số phải đối xứng thường được sử dụng, vì nó đảm bảo rằng hàm năng lượng sẽ giảm một cách đơn điệu trong khi làm theo các luật kích hoạt, và mạng có thể xuất hiện hành vi tuần hoàn hoặc hỗn loạn nếu dùng các trọng số không đối xứng. Tuy nhiên, Hopfield nhận thấy rằng hành vi hỗn loạn này chỉ hạn chế ở những phần tương đối nhỏ của không gian pha, và không làm giảm đi khả năng thực hiện vai trò làm hệ thống bộ nhớ có thể đánh địa chỉ nội dung của mạng.

Mạng Hopfield có một giá trị vô hướng gắn liền với mỗi trạng thái của mạng được gọi là "năng lượng", E, của mạng, trong đó:
:E = -\frac12\sum_{i

Giá trị này được gọi là "năng lượng" vì định nghĩa đảm bảo rằng nếu các nút được chọn cập nhật hoạt tính một cách ngẫu nhiên, mạng sẽ hội tụ về trạng thái, là những cực tiểu cục bộ trong hàm năng lượng (hàm được xem là hàm Lyapunov). Do đó, nếu một trạng thái là một cực tiểu cục bộ trong hàm năng lượng, nó là một trạng thái ổn định của mạng. Chú ý rằng hàm năng lượng này phụ thuộc vào một nhóm các mô hình tổng quát trong vật lý, có tên là mô hình Ising.

## Tiến hành chạy
Tại mỗi bước, chọn ngẫu nhiên một nút. Hành vi của nút khi đó là tất định: nó di chuyển đến một trạng thái sao cho tối thiểu hóa năng lượng của chính nó và các nút lân cận. (Trái lại với điều này là máy Boltzmann có một luật cập nhật ngẫu nhiên.)

## Huấn luyện
Huấn luyện một mạng Hopfield là làm giảm năng lượng của các trạng thái mà mạng cần phải "ghi nhớ". Điều này cho phép mạng có thể đóng vai trò một hệ thống bộ nhớ có thể đánh địa chỉ nội dung, hay nói cách khác, mạng sẽ hội tụ về một trạng thái "được ghi nhớ" nếu nó chỉ được cung cấp một phần của trạng thái. Mạng có thể dùng để phục hồi từ một dữ liệu vào bị bóp méo thành một trạng thái đã được huấn luyện giống với dữ liệu vào nhất. Cái này gọi là bộ nhớ kết hợp vì nó phục hồi bộ nhớ dựa vào nền tảng tương tự. Ví dụ, nếu chúng ta huấn luyện một mạng Hopfield với năm nút sao cho trạng thái (1, 0, 1, 0, 1) là một cực tiểu năng lượng, và chúng ta đưa vào mạng trạng thái (1, 0, 0, 0, 1) nó sẽ hội tụ về (1, 0, 1, 0, 1). Do đó, một mạng sẽ được huấn luyện đúng đắn khi năng lượng của các trạng thái mà mạng sẽ ghi nhớ là các giá trị cực tiểu cục bộ.

## Tham khảo

J. J. Hopfield, "Neural networks and physical systems with emergent collective computational abilities", *Proceedings of the National Academy of Sciences of the USA*, vol. 79 no. 8 pp.&nbsp;2554–2558, tháng 4 năm 1982.

## Xem thêm
* Mô hình Ising
* Máy Boltzmann — giống như mạng Hopfield nhưng sử dụng phương pháp lấy mẫu Gibbs huấn luyện thay vì giảm theo gradient

## Liên kết ngoài
* Chapter 13 The Hopfield model of ''Neural Networks - A Systematic Introduction'' by Raul Rojas (ISBN 978-3-540-60505-8)
* A good introduction to associative memory and Hopfield networks 
* The Hopfield networks page  at PRIS, Singapore 
* Hopfield Neural Network Applet 
* The Travelling Salesman Problem  - Hopfield Neural Network JAVA Applet
* Neural Lab Graphical Interface  - Hopfield Neural Network graphical interface (Python & gtk)
* Chương trình mạng nơ ron đa lớp (Multi Layer Neural Network) và mạng nơ ron tự tổ chức (Self Organizing Maps) có giải thích bằng tiếng Việt.
* Sử dụng phần mềm mạng nơ ron 3 lớp Spice-MLP
* Sử dụng phần mềm mạng tự tổ chức Spice-SOM
* Hướng dẫn sử dụng mạng nơ ron trong các ứng dụng thực tế trong đó có minh họa phân loại ảnh khuôn mặt, ảnh người đi bộ, ảnh xe hơi, dự báo chứng khoán và một số ví dụ khác