Tải bản đầy đủ (.pdf) (26 trang)

đồ án thực tập mạng noron hopfield và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (731.43 KB, 26 trang )

Mạng nơron Hopfield -Ứng dụng

ĐỒ ÁN TRÍ TUỆ NHÂN TẠO

TÊN ĐỀ TÀI:

MẠNG NƠRON HOPFIELD-ỨNG DỤNG

TÊN HỌC VIÊN: HỒ ĐẮC QUÁN
LỚP :CHKHMT – TPHCM23A11
NIÊN KHÓA:2011-2013
MÃ HỌC VIÊN:11870233
GVHD:TS. NGUYỄN HỮU PHÚC

Trang 1


Mạng nơron Hopfield -Ứng dụng

Lời cảm ơn
Nội dung của đồ án đi vào tìm hiểu và xây dựng các phần tử nơron cơ bản,
xem xét và nghiên cứu cấu trúc một mạng nơron, giới thiệu về mạng nơron nhiều
lớp. Trọng tâm của đồ án đi vào tìm hiểu về mạng nơron Hopfield . Ứng dụng
Đồ án gồm ba chương
Chương 1: Trình bày cấu trúc một phần tử nơron cơ bản, các cấu trúc mạng
nơron nhân tạo thường gặp, thuật toán học, phân tích ưu nhược điểm của chúng, và
giới thiệu về thuật tốn lan truyền ngược.
Chương 2: Tìm hiểu mạng nơron Hopfield.
Chương 3: Giải quyết bài toán người du lịch, sử dụng mạng nơron Hopfield.
Xin cảm ơn TS Nguyễn Hữu Phúc. Thầy đã cung cung cấp kiến thức cơ bản,
nền tảng một cách tận tình mơn Trí tuệ nhân tạo và tài liệu giúp em hoàn thành đồ


án này
Tp. Hồ Chí Minh, tháng 8 năm 2012

Trang 2


Mạng nơron Hopfield -Ứng dụng

Chương 1. Giới thiệu về mạng nơron nhân tạo
1.1 Cấu trúc và mơ hình mạng nơron
1.1.1 Mơ hình một nơron sinh học
Phần tử xử lý cơ bản của một mạng nơron sinh học là một nơron, phần tử
này có thể chia làm bốn thành phần cơ bản như sau: dendrites, soma, axon, và
synapses.
-

Dendrites: là phần nhận tín hiệu đầu vào.

-

Soma: là hạt nhân.

-

Axon: là phần dẫn ra tín hiệu xử lý.

-

Synapses: là đường tín hiệu điện hóa giao tiếp giữa các nơron.


Kiến trúc cơ sở này của bộ não con người có một vài đặc tính chung. Một
cách tổng quát, thì một nơron sinh học nhận đầu vào từ các nguồn khác nhau, kết
hợp chúng tại với nhau, thực thi tổ hợp phi tuyến chúng để cho ra kết quả cuối cùng
ở đầu ra. Hình 1.1 chỉ ra mối quan hệ giữa bốn phần tử của một nơron sinh học.

Hình 1.1 Một nơron sinh học
Một nơron sinh học chỉ có một số chức năng cơ bản như vậy, ta nhận
thấy khả năng xử lý thông tin của nó là rất yếu. Để có được khả năng xử lý thông tin

Trang 3


Mạng nơron Hopfield -Ứng dụng

hoàn hảo như bộ não con người, thì các nơron phải kết hợp và trao đổi thơng tin với
nhau. Ta hình dung sơ đồ liên kết, và trao đổi thơng tin giữa hai nơron như hình 1.2.

Hình 1.2. Sự liên kết các nơron
1.1.2 Cấu trúc và mơ hình của một nơron nhân tạo
Mơ hình tốn học của mạng nơron sinh học được đề xuất bởi McCulloch và
Pitts, thường được gọi là nơron M-P, ngồi ra nó còn được gọi là phần tử xử lý và
được ký hiệu là PE (Processing Element).
Mơ hình nơron có m đầu vào x1, x2, ..., xm, và một đầu ra yi như sau:

Hình 1.3 Mơ hình một nơron nhân tạo

Trang 4


Mạng nơron Hopfield -Ứng dụng


Giải thích các thành phần cơ bản:
-

Tập các đầu vào: Là các tín hiệu vào của nơron, các tín hiệu này thường
được đưa vào dưới dạng một vector m chiều.

-

Tập các liên kết (các trọng số): Mỗi liên kết được thể hiện bởi một trọng
số (thường được gọi là trọng số liên kết). Trọng số liên kết giữa tín hiệu
vào thứ j cho nơron i thường được ký hiệu là wij. Thông thường các trọng
số này được khởi tạo ngẫu nhiên ở thời điểm khởi tạo mạng và được cập
nhật liên tục trong quá trình học mạng.

-

Bộ tổng (Hàm tổng): Thường dùng để tính tổng của tích các đầu vào với
trọng số liên kết của nó.

-

Ngưỡng: Ngưỡng này thường được đưa vào như một thành phần của hàm
truyền.

-

Hàm truyền: Hàm này dùng để giới hạn phạm vi đầu ra của mỗi nơron.
Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho. Thông
thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1]

hoặc [-1,1]. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính
hoặc phi tuyến. Việc lựa chọn hàm truyền tùy thuộc vào từng bài toán và
kinh nghiệm của người thiết kế mạng.

-

Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa một
đầu ra.

Về mặt tốn học, cấu trúc của một nơron i được mô tả bằng cặp biểu thức
sau:
n

y i  f (neti   i ) và neti   wij x j
j 1

trong đó: x1, x2, …xm là các tín hiệu đầu vào, cịn wi1, wi2,…,wim là các
trọng số kết nối của nơron thứ i, neti là hàm tổng, f là hàm truyền,  i là một
ngưỡng, yi là tín hiệu đầu ra của nơron.

Trang 5


Mạng nơron Hopfield -Ứng dụng

Như vậy, tương tự như nơron sinh học, nơron nhân tạo cũng nhận các
tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các
tích thu được rồi gửi kết quả đến hàm truyền), và cho một tín hiệu đầu ra (là kết
quả của hàm truyền).
 Hàm truyền có thể có các dạng sau:


1 khi x  0
y
0 khi x  0

-

Hàm bước

-

Hàm giới hạn chặt (hay còn gọi là hàm bước)

(1.6)

 1 khi x  0
y  sgn( x)  
 1 khi x  0
-

Hàm bậc thang
x 1
1 khi

y  sgn( x )   x khi 0  x  1
0 khi
x0


-


(1.8)

Hàm ngưỡng đơn cực

y
-

(1.7)

1
1  e x

với λ>0

(1.9)

Hàm ngưỡng hai cực

y

2
1
1  e x

với λ>0

 Đồ thị các dạng hàm truyền được biểu diễn như sau:

Trang 6


(1.10)


Mạng nơron Hopfield -Ứng dụng

Hình 1.4 Đồ thị các dạng hàm truyền
1.2 Cấu tạo và phương thức làm việc của mạng nơron
Dựa trên những phương pháp xây dựng nơron đã trình bày ở mục trên, ta có thể
hình dung mạng nơron như là một hệ truyền đạt và xử lý tín hiệu. Đặc tính truyền
đạt của nơron phần lớn là đặc tính truyền đạt tĩnh.
Khi liên kết các đầu vào/ra của nhiều nơron với nhau, ta thu được một mạng
nơron, việc ghép nối các nơron trong mạng với nhau có thể là theo một nguyên tắc
bất kỳ. Vì mạng nơron là một hệ truyền đạt và xử lý tín hiệu, nên có thể phân biệt
các loại nơron khác nhau, các nơron có đầu vào nhận thơng tin từ mơi trường bên
ngồi khác với các nơron có đầu vào được nối với các nơron khác trong mạng,
chúng được phân biệt với nhau qua vector hàm trọng số ở đầu vào w.
Nguyên lý cấu tạo của mạng nơron bao gồm nhiều lớp, mỗi lớp bao gồm nhiều
nơron có cùng chức năng trong mạng. Hình 1.5 là mơ hình hoạt động của một mạng
nơron 3 lớp với 8 phần tử nơron. Mạng có ba đầu vào là x1, x2, x3 và hai đầu ra y1,
y2. Các tín hiệu đầu vào được đưa đến 3 nơron đầu vào, 3 nơron này làm thành lớp
đầu vào của mạng. Các nơron trong lớp này được gọi là nơron đầu vào. Đầu ra của
các nơron này được đưa đến đầu vào của 3 nơron tiếp theo, 3 nơron này không trực
Trang 7


Mạng nơron Hopfield -Ứng dụng

tiếp tiếp xúc với môi trường bên ngồi mà làm thành lớp ẩn, hay cịn gọi là lớp
trung gian. Các nơron trong lớp này có tên là nơron nội hay nơron ẩn. Đầu ra của

các nơron này được đưa đến 2 nơron đưa tín hiệu ra mơi trường bên ngồi. Các
nơron trong lớp đầu ra này được gọi là nơron đầu ra.

Hình 1.5 Mạng nơron ba lớp

Mạng nơron được xây dựng như trên là mạng gồm 3 lớp mắc nối tiếp nhau đi từ
đầu vào đến đầu ra. Trong mạng không tồn tại bất kỳ một mạch hồi tiếp nào. Một
mạng nơron có cấu trúc như vậy gọi là mạng một hướng hay mạng truyền thẳng một
hướng (Feed forward network), và có cấu trúc mạng ghép nối hồn tồn (vì bất cứ
một nơron nào trong mạng cũng được nối với một hoặc vài nơron khác). Mạng
nơron bao gồm một hay nhiều lớp trung gian được gọi là mạng Multilayer
Perceptrons) (MLP-Network).
Mạng nơron khi mới được hình thành thì chưa có tri thức, tri thức của mạng sẽ
được hình thành dần dần sau một quá trình học. Mạng nơron được học bằng cách
đưa vào những kích thích, và mạng hình thành những đáp ứng tương ứng, những
đáp ứng tương ứng phù hợp với từng loại kích thích sẽ được lưu trữ. Giai đoạn này
được gọi là giai đoạn học của mạng. Khi đã hình thành tri thức mạng, mạng có thể
giải quyết các vấn đề một cách đúng đắn. Đó có thể là vấn đề ứng dụng rất khác

Trang 8


Mạng nơron Hopfield -Ứng dụng

nhau, được giải quyết chủ yếu dựa trên sự tổ chức hợp nhất giữa các thông tin đầu
vào của mạng và các đáp ứng đầu ra.
 Nếu nhiệm vụ của một mạng là hoàn chỉnh hoặc hiệu chỉnh các thông tin thu
được không đầy đủ hoặc bị tác động của nhiễu. Mạng nơron kiểu này được
ứng dụng trong lĩnh vực hồn thiện mẫu, trong đó có một ứng dụng cụ thể là
nhận dạng chữ viết.

 Nhiệm vụ tổng quát của một mạng nơron là lưu giữ động các thơng tin. Dạng
thơng tin lưu giữ này chính là quan hệ giữa các thông tin đầu vào và các đáp
ứng đầu ra tương ứng, để khi có một kích thích bất kỳ tác động vào mạng,
mạng có khả năng suy diễn và đưa ra một đáp ứng phù hợp. Đây chính là
chức năng nhận dạng theo mẫu của mạng nơron. Để thực hiện chức năng
này, mạng nơron đóng vai trị như một bộ phận tổ chức các nhóm thơng tin
đầu vào, và tương ứng với mỗi nhóm là một đáp ứng đầu ra phù hợp. Như
vậy, một nhóm bao gồm một loại thông tin đầu vào và một đáp ứng đầu ra.
Các nhóm có thể được hình thành trong q trình học, và cũng có thể khơng
hình thành trong quá trình học.
Hình 1.6 là một số liên kết đặc thù của mạng nơron. Nơron được vẽ là các
vòng trịn xem như một tế bào thần kinh, chúng có các mối liên hệ đến các nơron
khác nhờ các trọng số liên kết. Tập hợp các trọng số liên kết này sẽ lập thành các
ma trận trọng số tương ứng.
1.2.1 Mạng nơron một lớp
Mỗi một nơron có thể phối hợp với các nơron khác tạo thành một lớp các
trọng số. Mạng một lớp truyền thẳng như hình 1.6a. Một lớp nơron là một nhóm các
nơron mà chúng đều có cùng trọng số, nhận cùng một tín hiệu đầu vào đồng thời.
Trong ma trận trọng số, các hàng là thể hiện nơron, hàng thứ j có thể đặt
nhãn như một vector wj của nơron thứ j gồm m trọng số wji. Các trọng số trong cùng
một cột thứ j (j=1,2,...,n) đồng thời cùng nhận một tín hiệu đầu vào xj.
Trang 9


Mạng nơron Hopfield -Ứng dụng

wj = [wj1, wj2, ..., wjm]
Tại cùng một thời điểm, vector đầu vào x = [x1, x2,..., xn] có thể là một nguồn
bên ngồi là cảm biến hoặc thiết bị đo lường đưa tới mạng.


(a) Mạng truyền thẳng một lớp

(b) Mạng hồi tiếp một lớp

(c) Mạng truyền thẳng nhiều lớp

Trang 10


Mạng nơron Hopfield -Ứng dụng

(d) Mạng nơron hồi quy

Hình 1.6 Một số dạng mạng nơron
1.2.2 Mạng nơron truyền thẳng nhiều lớp
Mạng nơron nhiều lớp (Hình 1.6.c) có các lớp được phân chia thành 3 loại sau
đây:
 Lớp vào là lớp nơron đầu tiên nhận tín hiệu vào xi (i = 1, 2, ..., n). Mỗi tín
hiệu xi được đưa đến tất cả các nơron của lớp đầu vào. Thông thường, các
nơron đầu vào khơng làm biến đổi các tín hiệu vào xi, tức là chúng khơng có
các trọng số hoặc khơng có các loại hàm chuyển đổi nào, chúng chỉ đóng vai
trị phân phối các tín hiệu.
 Lớp ẩn là lớp nơron sau lớp vào, chúng không trực tiếp liên hệ với thế giới
bên ngoài như các lớp nơron vào/ra.
 Lớp ra là lớp nơron tạo ra các tín hiệu ra cuối cùng.
1.2.3 Mạng nơron phản hồi
Mạng nơron phản hồi là mạng mà đầu ra của mỗi nơron được quay trở lại
nối với đầu vào của các nơron cùng lớp được gọi là mạng Laeral như hình 1.6b
1.2.4 Mạng nơron hồi quy
Mạng nơron phản hồi có thể thực hiện đóng vịng được gọi là mạng nơron

hồi quy như hình 1.6d. Mạng nơron hồi quy có trọng số liên kết đối xứng như mạng
Hopfield, mạng luôn hội tụ về trạng thái ổn định (Hình 1.6.b). Mạng BAM thuộc
nhóm mạng nơron hồi quy, gồm 2 lớp liên kết 2 chiều, không được gắn với tín hiệu
vào/ra. Nghiên cứu mạng nơron hồi quy mà có trọng số liên kết khơng đối xứng, thì
sẽ gặp phải vấn đề phức tạp nhiều hơn so với mạng truyền thẳng và mạng hồi quy
có trọng số liên kết đối xứng.
Trang 11


Mạng nơron Hopfield -Ứng dụng

1.2.5 Mạng Perceptron
Perceptron là mạng nơron đơn giản nhất, nó chỉ gồm một nơron, nhận đầu
vào là vector có các thành phần là các số thực và đầu ra là một trong hai giá
trị
+1
hoặc
-

1.
Hình 1. 1: Perceptron
Đầu ra của mạng được xác định như sau: mạng lấy tổng có trọng số các thành
phần của vector đầu vào, kết quả này cùng ngưỡng b được đưa vào hàm truyền
(Perceptron dùng hàm Hard-limit làm hàm truyền) và kết quả của hàm truyền sẽ
là đầu ra của mạng.
Hoạt động của Perceptron có thể được mơ tả bởi cặp cơng thức sau:
[Cong thuc]
và y = f(u - b) = Hardlimit(u - b); y nhận giá trị +1 nếu u - b>0, ngược lại y nhận
giá trị -1.
Perceptron cho phép phân loại chính xác trong trường hợp dữ liệu có thể phân

chia tuyến tính (các mẫu nằm trên hai mặt đối diện của một siêu phẳng). Nó
cũng phân loại đúng đầu ra các hàm AND, OR và các hàm có dạng đúng khi n
trong m đầu vào của nó đúng (n ≤ m). Nó khơng thể phân loại được đầu ra của
hàm XOR.

Trang 12


Mạng nơron Hopfield -Ứng dụng

Chương 2: Tìm hiểu mạng nơron Hopfield.
2. Mơ hình mạng Hopfield
2.1.

Mạng Hopfield nhị phân (rời rạc)

Hình 1.1 minh họa một mạng Hopfield hồi quy đơn lớp. Mặc dù về cơ bản là
một mạng đơn lớp nhưng nhờ cơ cấu phản hồi mà nó hoạt động hiệu quả như một
mạng đa lớp. Trong mạng này độ trễ trong q trình phản hồi được đưa ra nhằm
đóng vai trò ổn định mạng, điều này mang bản chất tự nhiên giống như độ trễ của
các neuron sinh học ghi nhận khoảng cách của các khớp nối và tỉ lệ giới hạn của
vịng thần kinh. Mạng trong hình 1.1 thỏa mãn:
z j =  w ij yi (n) + I j ; n=0,1,1….(1.1)
i j

y j (n+1)= 1 với  z j  Th j
y j (n+1)= 0 với  z j < Th j

Hoặc


(1.2)

y j (n+1)= 1 với  z j > Th j
y j (n+1)= y j (n) với  z j = Th j
y j (n+1)= 0 với  z j < Th j

Trọng Wii trong công thức (1.1) bằng 0 cho biết khơng có sự tự phản hồi.
Trạng thái 0 của đầu ra y là -1 trong trường hợp lưỡng cực

Trang 13


Mạng nơron Hopfield -Ứng dụng

Hình 2.1 Cấu trúc của một mạng Hopfield
N i : neuron thứ i

D: Nút phân phối
F: Hàm kích hoạt
I j : Đầu vào bias
w ij : Trọng

Trong công thức (1.1) và (1.2) mạng Hopfield sử dụng cấu trúc cơ bản của
các neuron riêng lẻ như trong Percepton hoặc Adaline [9]. Tuy nhiên như trong
Hình 1.1 mạng khởi đầu từ các mẫu thiết kế trước đó trong các cấu trúc thơng tin
phản hồi của nó. Một mạng Hopfield nhị phân 2 neuron có thể được coi như một hệ
thống 2n trạng thái với các kết quả đầu ra thuộc tập 4 trạng thái {00,01,10,11}. Khi
đầu vào được cho bởi một vector, mạng sẽ ổn định tại một trong các trạng thái ở
trên và được xác định bởi sự cấu hình trọng của nó.


Trang 14


Mạng nơron Hopfield -Ứng dụng

2.2.

Thiết lập trọng trong mạng Hopfield, nguyên tắc bộ nhớ kết hợp hai
chiều (BAM)

Mạng Hopfield sử dụng các nguyên tắc của BAM (Bộ nhớ kết hợp hai
chiều), nghĩa là các trọng của mạng được thiết lập để đáp ứng các nguyên tắc kết
hợp bộ nhớ 2 chiều như sau:
Giả sử X i  Rm, yi  Rn

i=1,2….L

Và giả sử: W=  yi X iT

(1.3)
(1.4)

i

Trong đó W là ma trận trọng của các kết nối giữa vector x và vector y. Kết
nối này được gọi là một mạng lưới liên kết. Đặc biệt khi yi = xi kết nối được gọi là tự
L

động liên kết, tức là W=  X i X iT trên L các vector


(1.5)

i 1

Như vậy nếu đầu vào xi là trực giao, tức là nếu X iT X j =  ij (1.6)
thì WX = X i

(1.7)

i

Thiết lập này được gọi là BAM khi tất cả các xi liên kết với các trọng W
được phục hồi. Có thể thấy W phục vụ như một bộ nhớ cho phép mạng ghi nhớ các
vector đầu vào giống nhau, giống như được hợp nhất trong W. Cấu trúc trên có thể
được sử dụng để tái tạo lại thông tin, đặc biệt là loại thông tin không đầy đủ hoặc
thông tin sai. Cụ thể nếu xem xét một mạng đơn lớp thì:
L

W=  X i X iT

(1.8)

Với w ij = w ji  i,j

(1.9)

i 1

Tuy nhiên để đáp ứng các yêu cầu về sự ổn định của mạng (sẽ được thảo
luận sau) ta đặt: w ii =0


với  i

(1.10)

thì ta được cấu trúc của một mạng Hopfield như hình 1.1 ở trên.
Trang 15


Mạng nơron Hopfield -Ứng dụng

Để chuyển đổi đầu vào nhị phân x(0,1) sang dạng lưỡng cực(  1) ta phải đặt:
W=  (2 X i 1)(2 X i  1)T

(1.11)

i

1 là vector đồng nhất, tức là :

(1.12)
Nếu tất cả các yếu tố đầu vào khơng phải là trực giao thì trước tiên ta phải
biến đổi chúng về dạng trực giao hoặc gần trực giao thông qua một hàm biến đổi
Walsh [3].
2.3.

Sự ổn định mạng

Điều chỉnh trọng trong một mạng thông tin phản hồi phải đảm bảo sự ổn
định của mạng. Cohen và Grossberg [4] đã chỉ ra rằng các mạng hồi quy có thể đảm

bảo được sự ổn định nếu ma trận W của trọng là đối xứng và các phần tử trên đường
chéo của nó bằng 0, tức là: w ij = w ji  i,j
và w ii =0

(1.21)

với  i

(1.22)

Yêu cầu trên được phát biểu thông qua định lý ổn định Lyapunov. Trạng thái
một mạng là ổn định nếu có thể định nghĩa được một hàm năng lượng của mạng
(hàm Lyapunov của nó) ln ln giảm theo thời gian [7] (Lyapunov 1907). Trạng
thái của mạng là ổn định nếu xây dựng được một hàm E của các trạng thái y thỏa
mãn định lý ổn định Lyapunov theo các điều kiện sau đây:
Điều kiện A: Bất kỳ sự thay đổi hữu hạn ở các trạng thái y của mạng sẽ dẫn
đến sự giảm hữu hạn trong E
Điều kiện B: E là hàm bị chặn dưới
Do đó ta định nghĩa hàm năng lượng E như sau:
E=  Th j y j   I j y j 
j

j

1
 w ij y j yi
2 i i 1

Trang 16


(1.23)


Mạng nơron Hopfield -Ứng dụng

i: neuron thứ i
j: neuron thứ j
I j : Đầu vào bias tới neuron j

Th j : ngưỡng của neuron j
w ij là một phần tử của ma trận trọng W biểu thị trọng từ đầu ra của neuron i

đến đầu vào của neuron j.
Tham khảo chứng minh sự ổn định mạng bằng định lý Lyapunov tại [9]
2.4.

Mạng Hopfield liên tục

Mạng Hopfield liên tục được mở rộng từ mạng Hofield rời rạc như sau:
Giả sử zi là tổng các đầu ra của mạng, khi đó đầu ra yi của mạng thỏa mãn:
1
yi = fi ( zi ) = [1+tanh( zi )]
2

(1.36)

Như trong hình 2.2

Hình 2.2 Hàm kích hoạt với biến 
Trong đó  là biến xác định độ dốc của f. Ngồi ra một phương trình vi phân

có thể thay thế các mối quan hệ thời gian trễ giữa đầu vào và tổng trọng đầu ra của
mạng.

Trang 17


Mạng nơron Hopfield -Ứng dụng

Chương 3: Giải quyết bài toán TSP, sử dụng mạng
nơron Hopfield.

3. Khả năng ứng dụng giải quyết bài tốn người du lịch
Sau cơng trình của Hopfield và Tank [6] mạng Hopfield đã được sử dụng
nhiều vào việc giải bài toán tối ưu tổ hợp.
Ta đã biết mạng Hopfield sẽ đạt tới trạng thái cân bằng khi hàm năng lượng
của nó đạt tới giá trị cực tiểu. Vì vậy, từ bài tốn cho trước, ta xây dựng một hàm
mục tiêu F nào đó (đã được xử lý các ràng buộc) và đặt F = E (E là hàm năng
lượng), sau đó tìm mối liên hệ giữa các biến của chúng. Chính vì vậy mà mạng
Hopfield rất phù hợp với các bài toán tối ưu tổ hợp, đặc biệt là đối với một số bài
toán thuộc lớp bài tốn NP-đầy đủ như: bài tốn người bán hàng, tìm đường đi tối
ưu cho tuyến đường xe bus trường học, bài toán người đưa thư,...
3.1.

Phát biểu bài toán người du lịch (TSP)

Cho một mạng lưới gồm n thành phố, một người muốn đi du lịch khắp các
thành phố mỗi thành phố đi qua đúng một lần và sau đó quay lại thành phố xuất
phát. Giả sử biết khoảng cách giữa các thành phố. Tìm phương án để người đó đi
với tổng khoảng cách ngắn nhất.


3.2.

Giải quyết bài toán với mạng Hopfield

Để giải quyết bài toán người du lịch, một chiến lược đơn giản được đưa ra là
liệt kê tất cả các đường đi khả thi để tính tốn tổng khoảng cách cho mỗi đường đi
và chọn đường đi với tổng khoảng cách nhỏ nhất. Tuy nhiên nếu có n thành phố thì
số đường đi khả thi sẽ là (n-1)!. Vì vậy chiến lược này trở nên đơn giản và không
khả thi khi số lượng thành phố lớn. Ví dụ nếu có 11 thành phố thì sẽ có
Trang 18


Mạng nơron Hopfield -Ứng dụng

10!=3.628.800 đường đi (bao gồm cả đường đi với cùng một tuyến đường nhưng
khác hướng). Con số này tăng lên hơn 6.2 triệu với 13 thành phố.
Đối với n thành phố được viếng thăm , đặt X ij là biến có giá trị 1 nếu người
du lịch đi từ thành phố i đến thành phố j và 0 nếu ngược lại. Dij là khoảng cách từ i
đến j. Khi đó bài tốn người du lịch có thể được phát biểu lại như sau:

n
Cực tiểu hóa hàm mục tiêu tuyến tính:

n

X D
ij

ij


i  j j 1

3.2.1. Thiết kế mạng
Mạng Hopfield là một mạng năng động với số lần lặp cho sự hội tụ từ một
trạng thái đầu vào tùy ý như trong hình 3.1

Hình 3.1: Kiến trúc mạng Hopfield cho bài toán TSP n thành phố
Sử dụng n2 neuron trong mạng, trong đó n là tổng số thành phố được viếng
thăm. Các neuron ở đây có 1 ngưỡng và có hàm bước. Các đầu vào được gán các
trọng. Nhiệm vụ chính là tìm trọng kết nối thích hợp để từ đó đường đi hợp lệ được
chọn và đường đi không hợp lệ được ngăn chặn.
Trang 19


Mạng nơron Hopfield -Ứng dụng

3.2.2. Hàm năng lượng
Một mẫu đầu vào bất kì đại diện cho một điểm năng lượng cụ thể, và mẫu
được lặp theo cách của mình để tìm ra một giải pháp. Sự lặp đi lặp lại cho đến khi
trạng thái đạt đến sự khác biệt năng lượng giữa 2 lần lặp kế tiếp dưới ngưỡng một
giá trị rất nhỏ (khoảng 0.000001).
Hàm năng lượng được sử dụng phải thỏa mãn các tiêu chí sau:
-

Hàm năng lượng có thể dẫn ra một ma trận kết hợp ổn định

-

Hàm năng lượng có thể đưa ra một đường đi ngắn nhất


Hàm năng lượng được sử dụng trong mạng:
E= A   X ik X ij  B   X ki X ji  C[  X ik  n]2+D   dkj X ki ( X j ,i 1  X j ,i 1 )
i
k
i
k
i
k
k
i
jk

j k

j k

(2.1)
Trong đó: A,B,C,D là các số nguyên dương
X ij là biến để biểu thị đường đi thực tế được viếng thăm từ thành phố i đến thành

phố j. Vì vậy X ij là đầu ra của neuron thứ j trong mảng của các neuron tương ứng
với thành phố thứ i. Ta có n2 biến như vậy và giá trị cuối cùng của chúng là 0 hoặc
1 hay rất gần đến 0 hoặc 1.
Hàm năng lượng có thể được phân tích như sau:
-

Ràng buộc hàng( A i

 X
k


ik

X ij ): Trong hàm năng lượng bộ ba tổng

jk

đầu tiên sẽ bằng 0 khi và chỉ khi có duy nhất số 1 trong mỗi cột theo thứ tự.
Điều này đảm bảo cho khơng có 2 thành phố được viếng thăm đồng thời.
-

Ràng buộc cột( B i

 
k

jk

X ki X ji ):Trong hàm năng lượng bộ ba tổng

đầu tiên sẽ bằng 0 khi và chỉ khi có duy nhất một thành phố xuất hiện trong

Trang 20


Mạng nơron Hopfield -Ứng dụng

mỗi cột theo thứ tự. Điều này đảm bảo mỗi thành phố chỉ được viếng thăm
đúng một lần.
-


Ràng buộc tổng số số 1( C[( i



k

X ik )  n]2 ): Tổng bộ ba số thứ 3 bằng 0

khi và chỉ khi có duy nhất N số 1 xuất hiện trong toàn bộ ma trận nxn. Điều
này đảm bảo rằng n thành phố đều được viếng thăm.
-

Ràng buộc về khoảng cách ngắn nhất(D  k

 d
i

kj

X ki ( X j ,i 1  X j ,i 1 ) ): Giá

jk

trị của điều kiện này là cực tiểu khi tổng khoảng cách đường đi là ngắn nhất.
Giá trị của D rất quan trọng quyết định giữa thời gian để hội tụ và tính tối ưu
của giải pháp. Nếu giá trị của D thấp phải mất nhiều thời gian để mạng hội tụ
nhưng nó mang lại giải pháp gần với giải pháp tối ưu, nếu giá trị của D cao
mạng hội tụ nhanh nhưng giải pháp thu được có thể sẽ không tối ưu.
3.2.3. Thiết lập ma trận trọng

Mạng ở đây hồn tồn được kết nối với thơng tin phản hồi và có n2 neuron.
Do đó ma trận trọng sẽ là một ma trận vuông gồm n2xn2 phần tử. Theo hàm năng
lượng ma trận trọng có thể được thiết lập như sau:
Wik ,lj =  A il (1   kj )  B (1   jl )  C  Dd jl ( j , k 1   j ,k 1 )

(2.2)

Trong đó: các hằng số A,B,C,D cũng giống như trong hàm năng lượng. Các
trọng cũng được cập nhật để thỏa mãn các ràng buộc khác nhau để cung cấp một
đường đi hợp lệ với tổng khoảng cách ngắn nhất.
Hàm trọng có thể được phân tích như sau:
-

Các neuron có trọng được cập nhật sử dụng 2 chỉ số một cho thành phố nó
đến và một cho thứ tự của thành phố trong đường đi. Vì vậy một phần tử của
ma trận trọng cho một kết nối giữa 2 neuron cần 4 chỉ số.

-

Hàm delta có hai đối số và được định nghĩa
 ik = 1 nếu i=k

Trang 21


Mạng nơron Hopfield -Ứng dụng

 ik =0 nếu i  k

-


Ràng buộc đầu tiên cung cấp cho các dòng đảm bảo khơng có hai thành phố
được cập nhật đồng thời.

-

Ràng buộc thứ 2 được cung cấp cho các cột, vì thế đảm bảo rằng khơng có
thành phố nào được viếng thăm nhiều hơn 1 lần

-

Ràng buộc thứ 3 đảm bảo cho sự hội tụ toàn cục

-

Ràng buộc thứ 4 đảm bảo tổng khoảng cách là ngắn nhất.

3.2.4. Xây dựng hàm kích hoạt
Hàm kích hoạt cũng phải tuân theo các ràng buộc khác nhau để đưa ra một
đường đi hợp lệ. Nó có thể được định nghĩa như sau:

(2.3)
Biểu diễn neuron kích hoạt trong dịng thứ i và cột thứ j bởi aij và đầu ra kí
hiệu là X ij .
Sử dụng một hằng thời gian  với giá trị 1.0
Một thông số khác cũng được sử dụng là m với giá trị 15
Điều kiện đầu tiên trong hàm kích hoạt là giảm sau mỗi lần lặp
Điều kiện 2,3,4,5 là giữ cho các ràng buộc để được đường đi hợp lệ
Chức năng kích hoạt được cập nhật như sau:
Trang 22



Mạng nơron Hopfield -Ứng dụng

aij (moi)= aij (cu)+  aij

3.2.5. Lựa chọn đầu vào
Các đầu vào của mạng được lựa chọn tùy ý. Trạng thái ban đầu của mạng
không cố định, không chống lại hoặc nghiêng về những tuyến đường cụ thể. Một
vấn đề có thể phát sinh khi mạng có thể bị kẹt ở một cực tiểu cục bộ. Để tránh xảy
ra tình trạng này một nhiễu ngẫu nhiên được tạo ra và thêm vào đầu vào ban đầu.
Cũng có những yếu tố đầu vào được cho từ người sử dụng. Ví dụ như khi người sử
dụng yêu cầu số lượng các thành phố đầu vào hay khoảng cách giữa các thành phố.
3.2.6. Kết quả và thảo luận
Sau khi cài đặt thuật toán, sử dụng phần mềm Matlab tiến hành cho mạng
chạy lần lượt với số thành phố đầu vào là 5,10,15,20,25 ta được bảng kết quả dưới
đây:
Số thành phố

Số lần lặp Thời gian

Kết quả

(Giây)
5

152

0.4652


Tốt

10

581

1.8075

Tốt

15

1021

3.2873

Tốt

20

2433

7.6458

Tốt

25

5292


16.2264

Chấp nhận
được

-

Kết quả trên cho thấy số thành phố tăng thì số lần lặp tăng mạnh. Số lần lặp
tăng nhưng không phải là tăng tuyến tính

Trang 23


Mạng nơron Hopfield -Ứng dụng

-

Số lần lặp cần thiết để hội tụ khơng duy trì giống nhau với bất kỳ thành phố
cụ thể nào. Ví dụ với 5 thành phố, mạng thường đạt được sự hội tụ với 120170 lần lặp. Trong vài trường hợp mạng chỉ cần 80 lần lặp để hội tụ, cũng có
vài trường hợp cần đến 250 lần. Điều này có thể lý giải được là do trạng thái
ban đầu được khởi tạo ngẫu nhiên của mạng.

-

Nhiều trường hợp khi năng lượng của hệ thống đã được tính tốn nó lại tăng
thay vì giảm. Vì vậy thuật tốn khơng thành cơng trong một vài trường hợp.

-

Trong q trình test thử các mẫu có 93% là hội tụ, 7% thất bại và đôi khi

năng lượng của hệ thống tăng lên thay vì giảm trong khi mạng lặp theo
hướng hội tụ.

4. Kết luận
-

Mạng được phát triển không phải luôn luôn đưa ra được các giải pháp tối ưu,
tuy nhiên trong phần lớn các trường hợp nó rất gần đến sự tối ưu. Cách tiếp
cận này là rất nhanh so với các phương pháp lập trình được sử dụng cho bài
toán người du lịch

-

Vài sự thay đổi hoặc cải tiến có thể được thực hiện đối với hàm năng lượng
cùng với những hàm khác như hàm cập nhật trọng, hàm kích hoạt có thể cho
giải pháp tốt hơn.

-

Trong nhiều trường hợp thuật toán hội tụ tới giá trị cực tiểu cục bộ thay vì
cực tiểu tồn cục. Vấn đề này có thể được giải quyết bằng cách thêm một
nhiễu ngẫu nhiên vào đầu vào ban đầu của hệ thống.

-

Vấn đề khó giải quyết và chất lượng kém của các giải pháp có thể được loại
bỏ bằng hình thức thích hợp của hàm năng lượng và sửa đổi tính năng động
nội bộ của mạng. Bằng việc thể hiện tất cả các ràng buộc của bài toán trong
những điều kiện đơn tổng số các điều kiện và tham số trong hàm năng lượng
có thể giảm


Trang 24


Mạng nơron Hopfield -Ứng dụng

-

Các thiết lập cho các tham số khác nhau như A,B,C,D,m…. vẫn có thể được
cải thiện bằng cách thử và kiểm soát lỗi

Trang 25


×