Đ Ạ I HỌC QUỐC G IA H ÀNỘ I
KHOA CÔNG NGHỆ
NGUYẼN LONG GIANG
T ÍC H HỢP G IẢ I TH Ư Ậ T DI T R U Y È N V Ớ I G IẢ I T H U Ậ T
• • •
H U Ấ N LU Y Ệ N M Ạ N G NO RON T R U Y Ề N T H Ả N G N H ỈÈ U
LỚP V À ỪNG DỤ N G T R O N G DỤ B ÁO DỮ LIỆ U
• • •
C H U Y Ê N N G À N H : C Ô N G N G H Ệ T H Ô N G T IN
M Ả SỐ : 1.01.10
LUẬN VẢN THẠC sĩ
N G Ư Ờ I H Ư Ớ N G D Ả N K H O A H ỌC
PGS.TS. VŨ ĐỨC THI
H À NỘI - 2003
í
I TRlifil
I
i
____
I
Mục lục I
Mục lục từ viết tá t III
Mở đầu I
Những đóng góp chính của luận vãn 2
Câu trúc của luận văn 2
Chương 1 : Các khái niệm CƯ bán về mạng nơ rơn 4
1.1. Nơ ron sinh học và mạng nơ ron sinh học 4
1.2. Nơ ron nhân tạ o 4
1.3. Mạng nơ ron nhân tạo 6
1.4. Thủ tục học của mạng nơ ron 8
1.5. Phạm vi ứng dụng của mạng nơ ron 10
Chương 2 : Giải thuật di truyền 12
2.1. Tổng quan về giải thuật di truyền
12
2.2. Giải thuật di truyền đơn giản 14
2.3. Nền tảng toán học của giải thuật di truyền 20
2.4. Những cải tiến của giải thuật di truyền 21
Chưưng 3 : Tích hựp giai thuật di truvền với giái thuật huân luyện mạng nư
ron truvền thảng nhiều lứp 26
3.1. Mạng nơ ron truyền thẳng và thuật toán lan truyền ngược của sai số 26
3.1.1. Kiến trúc cơ bản 26
3.1.2. Cơ chế học của mạng nơ ron truyền thảng nhiều lớp
28
3.1.3. Giải thuật lan truyền ngược của sai s ố 29
M Ụ C LỤC
3. i .4. Một số cải tiến của giải thuật BP
40
II
3.2. Sử dụng giải thuật di truyền kết hợp với giải thuật lan truyền ngược
của sai số trong việc huấn luyện mạng nơ ron truyền thẳng nhiều
lớp 42
3.2.1 Đặt vấn đề 42
3.2.2. Giải thuật di truyền trong việc huấn luyện mạng nơ ron truyền
thẳng nhiều lớp 43
3.2.3. Ghép nối với giải thuật lan truyền ngược của sai s ố 45
Chương 4 : Cài đật chương trình 47
4.1. Cấu trúc dữ liệu và các khai báo cần thiết 47
4.2. Thiết kế giải thuật 48
Chưưng 5 : ứng dụng mạng nư ron truvền thảng nhiều lớp trong dự báo dữ
liệu 60
5.1. Sư lược về ứng dụng mạng nơ ron trong dự báo dữ liệu
60
5.2. Các bước chính trong việc thiết kế mô hình mạng nơ ron dự báo
61
5.3. Úng dụng mạng I1Ơ ron truyền thẳng nhiều lớp trong dự báo đinh lũ
sông Trà Khúc trạm Sơn Giang 65
5.4. Chương trình dự báo dữ liệu
68
Kết luận 74
Tài liệu tham k h ả o 76
Phụ lục i
Ill
M ỤC LỤC T Ừ VIẾT TẮT
Từ viết tắt Nghĩa tiếng Việt
GA Giải thuật di truyền
SGA Giải thuật di truyền đơn giản
BP Giải thuật lan truvền ngược
của sai sô
Tiếng Anh tưưng ứng
Genetic algorithm
Simple genetic algorithm
Back-Propagation of Error
M Ở ĐẦU
Dự báo dữ liệu là bài toán quan trọng mang lại nhiều lợi ích thiết thực phục
vụ con người, nó giúp con người nắm bắt được các quy luật vận động trong tự nhiên
và trong đời sông kinh tế xã hội. Trong những năm gần đây, các mạng nơ ron truyền
thẳng nhiều lớp được thực tiễn chứns minh là khá mạnh và hiệu quả trong các bài
toán dự báo và phân tích số liệu, đặc biệt trong các bài toán dự báo sử dụng năng
lượng, dự báo kinh tế. dự báo trong tự nhiên
Các mạng nơ ron truyền thằng phải được huấn luyện trước khi sử cỉụng đê
thực thi một bài toán dự báo trong thực tế. Với một cấu trúc mạng được chọn, quá
trình huấn luyện mạng là quá trình hiệu chinh các trọng số của mạng và thường
được phát biểu dưới dạng một bài toán tối thiểu hoá hàm sai số huấn luyện. Thú tục
huấn luyện cần một giải thuật tìm kiếm có khả năng tìm lời giải toàn cục, không phụ
thuộc vào quá trình khởi động các trong số ban đầu. Ngoài ra, các giải thuật này
phải có khả năng tìm kiếm hiệu quả trong không gian nhiều chiều do số lượng trọng
sô trong các mạng nơ ron là khá lớn.
Giải thuật GA là giải thuật tìm kiếm dựa trên quá trình chọn lọc tự nhiên, di
truyền và tiến hóa. Các nguyên lý cơ bản của giải thuật được tác giả J.H.Holland đề
xuất lần đầu vào năm 1962, nền tảng toán học của giải thuật GA được tác giả công
hố trong cuốn sách “Sự thích nghi trong các hệ thống tự nhiên và nhân tạo” xuất bản
năm 1975. Giải thuật GA được xem như một phương pháp tìm kiếm có bước chuyển
ngẫu nhiên mang tính tổng quát để giải các bài toán tối ưu hoá. Với những đặc thù
riêng của mình, giải thuật GA được sử dụng khá hiệu quả trong thú tục huấn luyện
mạng nơ ron. Tuy nhiên, giải thuật GA gặp khó khăn về sự hội tụ. Giải thuật GA
đơn giản do Holland đề xuất đã được chứng minh là không bảo đảm sự hội tụ hoặc
không hội tụ tới lời giải toàn cục. Ngoài ra, các giải pháp cải tiến chiến lược thay thế
hoặc toán tử đột biến tuy giúp cho giải thuật GA hội tụ, nhưng sự hội tụ này dễ dẫn
đến hiện tượng hội tụ sớm, nghĩa là giải thuật kết thúc tại một cực trị địa phương mà
không có khả năng tìm thấy cực trị toàn cục.
2
Giải thuật huấn luyện kinh điển lan truyền ngược của sai số (giải thuật BP)
được sử dụng rộng rãi nhất trong việc huân luyện mạng nơ ron truyền thảng. Giải
thuật này đám bảo sự hội tụ nhưng dễ hội tụ tại một cực trị địa phương mà không có
khả năng tìm kiếm cực trị toàn cục. Mặt khác, kết quá huấn luyện của giải thuật này
phụ thuộc vào nhiều yếu tố, đặc biệt là quá trình khởi động các trọng số ban đầu.
Do nhu cầu cấp thiết phải xây dựng một giải thuật vừa có khá năng tìm kiếm
lời giải toàn cục, vừa phải đảm báo sự hội tụ để huấn luyện cho mạng nơ ron truyền
thẳng thực thi một bài toán dự báo trong thực tế, luận văn tập trung nghiên cứu giải
pháp tích hợp giải thuật GA với giải thuật BP trong việc huấn luyện mạng nơ ron
truyền thẳng. Trên cơ sở đó, luận văn trình bày các bước chính để xây dụng mô hình
mạng nơ ron dự báo dữ liệu và ứng dựng mô hình đó trong bài toán dự báo đỉnh lũ
sông Trà Khúc tại trạm khí tượng Sơn Giang.
Những đóng góp chính cua luận văn
• Luận văn trình bày các vấn để lý thuyết về mạng nơ ron, mạng nơ ron truyền
thẳng nhiểu lớp và thuật toán BP dạng tổng quát để huấn luyện mạng, một số
vấn đề về sử dụng giải thuật BP đế huấn luyện mạng thực thi một bài toán
trong thực tế.
• Luận văn trình bày các vấn đề lý thuyết về giải thuật SGA và những cải tiến
của giải thuật SGA.
• Luận văn xây dựng giải pháp tích hợp giải thuật GA với giải thuật BP thành
một giải thuật lai GA - BP dể huấn luyện mạng nơ ron truyền thẳng nhiêu
lớp.
• Luận văn trình bày ứng dụng giải thuật lai GA - BP trong mô hình mạng nơ
ron dự báo. Giải thuật lai GA - BP đã được cài đặt và thử nghiệm để huân
luyện mạng nơ ron truyền thẳng trong bài toán dự báo khí tượng thuỷ văn.
Cấu trúc của luận vãn
Phấn mớ đầu của luận văn giới thiệu nội dung nghiên cứu, tính cấp thiết của
đề tài và những đóng góp chính của luận văn. Chương 1 giới thiệu các khái niệm cơ
bản và phạm vi ứng dụng cùa mạng nơ ron. Chương 2 giới thiệu về giải thuật SGA
3
và các cải tiến của giải thuật SGA. Chương 3 giới thiệu về mạng nơ ron truyền
thẳng nhiều lớp, giải thuật BP. các vấn đề về sử dụng giải thuật BP và xây dựng giải
pháp tích hợp giải thuật GA với giải thuật BP trong việc huấn luyện mạng nơ ron
truyền thảng nhiều lớp. Chương 4 trình bày mô hình thuật toán và cài đặt giải thuật
lai GA - BP. Chương 5 trình bày các bước xây dựng mô hình mạng nơ ron dự báo và
thứ nghiệm giải thuật GA - BP trong việc huấn luyện mạng nơ ron đê thực thi bài
toán dự báo đinh lũ sông Trà Khúc tại trạm Sơn Giang. Phđn kết luận nêu ra các kết
luận từ luận văn và các hướng nghiên cứu tiếp theo. Phần phụ lục đưa ra một số chức
năng của chương trình được viết bằng Visual Basic.
4
CÁC KHÁI NIỆM C ơ BẨN VỂ MẠNG N ơ RON
Chương này đề cập đến các vân đề sau:
1.1. Nơ ron sinh học và mạng nơ ron sinh học
1.2. Nơ ron nhân tạo
1.3. Mạng nơ ron nhân tạo
1.4. Thủ tục học của mạng nơ ron
1.5. Phạm vi ứng dụng của mạng nơ ron
Chương 1
1.1. Nơ ron sinh học và mạng nơ ron sinh học
Hệ thần kinh ở người có khoảng 10'° tế bào thần kinh được gọi là các nơ ron
[24]. Mỗi nơ ron gồm có ba phần: thân nơ ron với nhân ở bên trong, một đầu thần
kinh ra và một hệ thống hình cây các đầu thần kinh vào. Độ lớn của các tín hiệu vào
có thể bị thay đổi khi được truyền qua các khớp thần kinh có trên các nhánh thần
kinh vào. Tỷ lệ biến đổi tín hiệu ở khớp thần kinh được gọi là độ khuyếch đụi khớp
và được gọi là các trọng số trong các nơ ron nhân tạo. Theo các nghiên cứu về sinh
học, chức năng của hệ thần kinh không phụ thuộc nhiều vào vai trò của từng nơ ron
đơn lé mà phụ thuộc vào cách mà toàn bộ các nơ ron được nối với nhau, gọi là mạng
nơ von sinli học [24],
1.2. Nư ron nhân tạo
Nơ ron nhân tạo là mò hình toán học mô phỏng nơ ron sinh học. Mỗi nơ ron
nhân tạo được gọi là một đơn vị xử lý với chức nâng: nhận tín hiệu vào từ các đơn vị
phía trước (hay một nguồn bên ngoài), tính tín hiệu ra từ các tín hiệu vào và lan
truyền tín hiệu ra sang các đơn vị khác.
5
H’
Jl
a
^ g(at)
a,= Ỹ,w>‘x‘ + e' Zj = g(aj)
Hình 1.1: Đơn vị xử lý thứ j
Mồi tín hiệu đầu vào nơ ron thứ j được ký hiệu là Xị với trọng số tương ứng là
Wjị. Đại lượng đo tín hiệu tổng cộng đi vào nơ ron thứ j, ký hiệu là ơj, được xác định
một cách đơn giản như sau :
• dị là hàm của các tín hiệu X, và các trọng số Wjị, gọi là Hàm kết hợp
• Hàm kết hợp là tổng các tích của tín hiệu Xị và trọng số tương ứng Wj:
Trong đó 0 là một tham số được gọi là ngưỡng của nơ ron. Nếu Wjị>0, nơ ron
được coi là ở trong trạng thái kích thích. Nếu Wjị < 0, nơ ron ở trạng thái kiềm chế.
Quá trình biến đổi giá trị dj thành tín hiệu đầu ra Zj được thực hiện bới hàm
kích hoạt (hàm chuyên) phi tuyến Zj= g(dj). Hàm kích hoạt phải thoả mãn các điều
kiện sau:
Những hàm thỏa mãn điều kiện trên còn được gọi là các hàm nén theo nghĩa
chúng nén tín hiệu đầu ra vào một khoảns nhỏ. Có khá nhiều hàm thoả mãn các điều
kiện trên, song trong thực tế chi có một số hàm thường được sử dụng trong các
mạng nơ ron như sau
1) Hàm tuyến tính (Linear): g(.x) = X
2) Hàm ranh giới cứng (Hard-Limiter) : Hàm này chỉ có hai giá trị là 0 và 1,
n
a> = ^ WjiXi + 6j
• Tín hiệu đầu ra Zj là không âm với bất kể giá trị nào của dj
• g là hàm liên tục và bị chặn trong khoảng [0,1 ]
ngoài ra hàm còn có một giá trị ngưỡng 6. Tín hiệu đầu ra phụ thuộc tổng
tín hiệu đầu vào và giá trị ngưỡng.
ifịx>6 )
if(jc < e)
6
Vi hàm này rất thuận tiện khi đưa câu trả lời có hay không nên nó thường
xuyên được sử dụng cho các tín hiệu ra cuối cùng của mạng.
3) Hàm ngưỡng logic:
Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng được huấn luyện bằng
giái thuật BP. bởi vì nó dễ lấy đạo hàm, do đó có thể giảm đáng kể tính toán trong
quá trình huấn luyện. Mặt khác, hàm này được ứng dụng cho các bài toán mà đầu ra
mong muốn rơi vào khoang [0,1].
1.3. Mạng nư ron nhân tạo
Khái niệm
Mạng nơ ron nhân tạo là hệ thống bao gồm nhiều nơ ron nhân tạo kết hợp với
nhau. Hệ thống này có khả năng học số liệu và tổng quát hóa từ các số liệu được
Mạng nơ ron nhân tạo được biểu diễn bàng một đồ thị gồm một tập các nút
và các cung có hướng, mỗi nút tương ứng với một nơ ron, các cung biểu diễn các
liên kết giữa các nơ ron. Cấu trúc mans nơ ron gồm cơ cấu tổ chức và sơ đồ kết nối.
Cơ cấu tổ chức thường được xác định bởi số lớp mạng và số nơ ron trong mỗi
lớp:
• Lớp vào : Các nơ ron trong lớp vào gọi là các nơ ron vào, chúng không xử
lý thông tin mà chí mã hóa mẫu đưa vào mạng để xử lý. Thông thường, số
thuộc tính của mẫu đưa vào mạng bằng số nơ ron vào, chính là số đầu vào
của mạng.
• Lớp ẩn : Các nơ ron trong lớp này gọi là các nơ ron ẩn vì chúng không thể
if(.T > 9 )
if(jt < 0 )
4) Hàm sigmoid (Sigmoid function (logsig))
gW =
\ + e~x
Cáu trúc
7
quan sát trực tiếp được. Mạnơ có thê có một hay nhiều lớp ẩn. Chúng cung
cấp các mô hình toán học phi tuyến cho mạng.
• Lớp ra : Các nơ ron ở lớp này gọi là các nơ ron ra, các nơ ron này mã hoá
giá trị hay khái niệm của các mẫu đưa vào mạng. Ví dụ, trong bài toán
phân lớp. mỗi đầu ra là đại diện cho một lớp các đối tượng.
Sơ đồ kết nối xác định bởi phương thức kết nối giữa các nơ ron trong mạng
• Mạng truyền thẳng : Luồng dữ liệu đi từ các nơ ron vào đến các nơ ron ra
chí được truyền thẳng. Khống có các liên kết từ các nơ ron ra tới các nơ
ron vào trong cùng một lớp hay của các lớp trước đó.
Hình ỉ.2: Mạng nơron truyền thẳng nhiều lớp (Feed-Forward Neural Network)
• Mạng hồi quy: Có chứa các liên kết ngược, nghĩa là các liên kết từ nơ ron
lớp ra tới nơ ron lớp vào trong cùng một lớp hoặc các lớp trước đó.
[21]:
(1) "
w
Lớp vào 11 Lớp ân
(2)
wl
Lớp ra
h0
^ o
Lớp vào
Lớp ẩn Lớp ra
Hình 1.3: Mạng hồi quy (Recurrent Neural Network)
Dưới đây là các thông số cấu trúc của mạng nơ ron nhân tạo:
• Sơ đồ kết nối (mạng truyền thảng hay hồi quy)
• Sỏ tin hiệu vào và số tín hiệu ra
• Số lớp mạng
• Số nơ ron trên mỗi lớp
• Số lượng các trọng số của mỗi lớp
1.4. Thủ tục học của mạng nư ron
Thành phần quan trọng nhất và không thể thiếu của các mạng nơ ron là các
thủ tục học (giải thuật huấn luyện mạng). Có thể chia các thủ tục này thành hai
nhóm chính là học tha m số và học cấu trú c. Cả hai thủ tục học này có thể được thực
hiện đồng thời hoặc tách biệt. Các thủ tục học tham số lại có thể được chia thành ba
lớp nhỏ hơn là họ c có thầy [24], học tă ng cường [6] và học khô ng có th ầy [16].
Học tham sò
Với một cấu trúc mạng cho trước, các trọng số của mạng (gọi là các tham số
của mạng) phải được xác định trước khi sử dụng mạng để thực thi một nhiệm vụ cụ
thể. Ngoại trừ trường hợp các mạng nơ ron một lớp Hopfield (các trọng số được tính
toán một cách giải tích), thông thường, các trọng số của mạng được khởi tạo ngẫu
nhiên trong một khoáng nhất định. Học tham số là quá trình điểu chỉnh các trọng số
đế mạng nhận biết được mối quan hệ giữa đầu vào và đầu ra mong muốn. Rất nhiều
các thuật toán học được đề xuất để tìm tập trọng số tối ưu đối với mỗi bài toán, các
thuật toán đó có thể chia thành hai nhóm chính : H ọ c có th ầy (Supervised learning)
và H ọ c kh ông có th ầy (Unsupervised Learning).
• H ọ c có th ầ y
Mạng được học bằng cách cung cấp cho nó các cặp mẫu đầu vào và đầu ra
inonỉỉ muốn. Sai số giữa các đầu ra thực tế so với các đầu ra mong muốn được thuật
toán sử dụng để hiệu chính các trọng số tronạ mạng.
Các thông số cấu trúc của mạng
9
Tập mẫu là tập các cặp véc tơ vào - ra mong muốn M = {x¡,y¡)} được sử
dụng đê luyện mạng nơ ron. Đối với mỗi véc tơ tín hiệu vào Xị, mạng nơ ron tính
toán tín hiệu ra out và so sánh tín hiệu này với tín hiệu ra mong muốn y, để tạo ra tín
hiệu sai số. Tín hiệu sai số này xác định bể mặt sai số là hàm của các trọng số, có
thể dùng như hàm mục tiêu để hiệu chinh các trọng số. Các giải thuật tìm kiếm được
áp dụng trong thủ tục học đê hiệu chỉnh các trọng số sao cho mạng nơ ron có thê sản
sinh ra các tín hiệu ra out với một sai số chấp nhận được so với tín hiệu ra mong
muốn [13].
Hình 1.4. Sơ đồ học có thầy
• Học không có thầy
Với phương pháp học không có thầy, không có thông tin phản hồi từ môi
trường bên ngoài để chi ra rằng đầu ra out của mạng là đúng hay sai. Mạng nơ ron
phái tự khám phá các đặc trưng, các mối tương quan, tính cân xứng của các mẫu học
một cách tự động. Đối với phần lớn các biến thể của học không có thầy, các đích
trùng với đáu vào. Nói một cách khác, học không có thầy luôn thực hiện một công
việc tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu vào.
H ọ c càu trú c
Trong phần học tham số, giả định là đã có một cấu trúc mạng. Thú tục học
tham số tinh chinh các giá trị trọng số sao cho mạng hoạt động như mong muốn.
Thu tục học cấu trúc tìm kiếm các tham sô cấu trúc của mạng để tạo ra một mạng
hoạt động tốt nhất. Thực chất, học cấu trúc là việc tìm ra số lớp ẩn và số nơ ron trên
10
mỗi lớp ẩn vì số đầu vào và số đầu ra của mạng là xác định đối với một bài toán cụ
Kết quả học cấu trúc phụ thuộc nhiều vào kết quả học tham số. Do đó, việc
xây dựng một giải thuật tìm kiếm cho thú tục học tham số là cần thiết. Giải thuật tìm
kiếm này phải có khả năng tìm kiếm lời giải toàn cục, tìm kiếm hiệu quả trong
không gian nhiều chiều và có thể sử dụng cho nhiều cấu trúc mạng khác nhau.
Trong những nãm gần đây, một số giải thuật tối ưu toàn cục mang tính tất định và
một số giải thuật mang tính xác suất đã được đề xuất. Các giải thuật mang tính xác
suất hao gồm các giải thuật tiến hóa{3] mà giải thuật GA là một ví dụ điển hình.
Giải thuật GA sẽ được trình bày trong chương 2 của luận văn.
1.5. Phạm vỉ ứng dụng của mạng nơ ron
Mạng nơ ron thường được ứng dụng trong các lĩnh vực như phân loại
(classification), mô hình hóa (modeling), biến đổi (transformation and mapping) và
dự báo các sự kiện phụ thuộc thời gian.
Phan lo ạ i
Phân loại là cách sắp xếp các đối tượng vào các tập hoặc vào các lớp con của
các lứp lớn hơn. Việc phân loại thường được tiến hành nhiều mức giống như phép
toán ra quyết định, phân lớp đối tượng vào nhóm, nhóm con; vào chủng loại, chủng
loại con hoặc vào lớp, lớp con. Một đối tượng có thể đồng thời thuộc vào nhiều lớp
khác nhau, do đó kết quả của việc phân loại là tích của hai hay nhiều quyết định.
M ò hình hóa
Hệ thống phân loại thường đưa ra câu trả lời rời rạc như có, không hoặc một
số nguyên định danh đối tượng đầu vào thuộc lớp nào. Tuy nhiên, việc mô hình hóa
yêu cầu hệ thống phải sản sinh ra các câu trả lời mang tính liên tục. Một số lượng
nhỏ các số liệu thực nghiệm được sử dụng đê xây dựng mô hình, mô hình này có thể
đưa ra các dự báo cho tất cả các đối tượng đầu vào có thể. Việc tìm ra đường cong
phù hợp với các số liệu thực nghiệm là một ví dụ ứng dụng thuộc dạng này. Các ứng
dụng thuộc dạng này phần lớn là thủ tục của một biến vào và một biến ra như sau:
y = f (x, a, b p)
Hàm f chứa một tập các tham số a, b
p. Các tham số này phải được xác
định bàng việc tối thiểu hóa độ chênh lệch giữa số liệu thực nghiệm và giá trị tính
toán từ mô hình. Mô hình hóa cũng có thể mở rộng cho bài toán nhiều biến vào -
một biến ra hoặc nhiều biến vào - nhiều biến ra.
Việc mô hình hóa thường được sử dụng cho các đối tượng có ít biến, khoảng
từ 1 đến 10. Điều này có nghĩa là thường sử dụng các mạng nhỏ, thời gian tính cũng
như tài nguyên máy tính ít hơn so với các mạng dùng cho việc phân loại.
B iến đổi
Việc biến đổi nhằm mục đích nén các đối tượng từ không gian m chiều vào
không gian có số chiều nhỏ, khoáng hai hoặc ba. Qua việc nén các đối tượng này,
chúng sẽ bộc lộ những đặc điểm mà chúng ta không nhận thấy khi chứng ở trong
khỏng gian nhiều chiều. Việc biến đổi tương tự như việc nhóm các đối tượng hay
phân loại. Sự khác biệt không lớn làm nằm ở phương pháp biểu diễn các kết quả.
Những câu hỏi mà việc biến đổi có thể trá lời là bàn đồ của toàn bộ đối tượng như
thế nào, có bao nhiêu vùng trên bản đồ có thể phân biệt được, hình dáng các vùng
đó như thế nào
Một trong những ứng dụng của biến đổi là tiền xử lý số liệu. Thông qua tiền
xử lý, các đối tượng điển hình được chọn từ tập vô số các đối tượng ngẫu nhiên nhận
được, loại trừ được các đối tượng dư thừa hay trùne lặp. Điều này rất quan trọng khi
chọn các đối tượng làm mẫu học cho mạng truyền thầng huấn luyện bằng giải thuật
BP đề cập ở chương 3.
D ự báo các sự kiện ph ụ thuộc thời gian
Lĩnh vực nghiên cứu các quá trình phụ thuộc ihời gian là một trong những
lĩnh vực chính trong nghiên cứu điều khiển quá trình, ở đây, mô hình dự báo được
xây dựng dựa trên một chuỗi số liệu được ghi nhận theo thời gian. Trong mô hình
này, các biến của tín hiệu vào và tín hiệu ra về cơ bản là giống nhau. Chỉ một điều
khác biệt là, tín hiệu vào là các giá trị hiện tại và quá khứ của các biến quá trình, tín
hiệu ra là giá trị dự báo trong tương lai của các biến quá trình đó.
11
12
GIẢI THUẬT DI TRUYỂN
Chương này trình bày các vấn đề sau:
2.1. Tổng quan về giải thuật di truyền
2.2. Giải thuật di truyền đơn giản
2.3. Nền táng toán học của giải thuật di truyền
2.4. Những cải tiến tiếp theo của giải thuật di truyền
Chương 2
2.1. Tổng quan về giải thuật di truyền
Giải thuật GA thuộc lớp các giải thuật tìm kiếm tiến hóa. Khác với phần lớn
các giai thuật tìm kiếm theo điểm, giải thuật GA thực hiện tìm kiếm song song trên
một tập gọi là quần thể các lời giải có thể. Thống qua việc áp dụng các toán tử di
truyền, giải thuật GA trao đổi thông tin giữa các cực trị và do đó làm giám thiếu khá
năng kết thúc giải thuật tại một cực trị địa phương. Trong thực tế, giải thuật GA đã
được áp dụng thành công trong nhiều lĩnh vực bao gồm cả thú tục huấn luyện mạng
nơ ron [7, 11].
N ộ i dung g ia i thuậ t d i truyền
Giải thuật GA lần đầu tiên được tác giả J. H. Holland giới thiệu vào năn 1962
[12, 14]. Giải thuật GA mô phỏng quá trình tồn tại của các cá thể có độ phù hợp tốt
thông qua quá trình tiến hóa trong tự nhiên, sao cho khi thực thi giải thuật, quần thể
các lời giải ban đầu tiến hoá dần tới lời giải mong muôn.
Giải thuật GA duy trì một quần thể các lời giải có thể của bài toán tối ưu hóa.
Mỗi lời giải gọi là một cá thế hay một nhiễm sắc thể, thường được mã hóa dưới dạng
một chuỗi các gen, giá trị của các gen có trong chuỗi được lấy từ một báng các ký tự
được định nehĩa trước. Mỗi chuỗi gen được liên kết với một giá trị gọi là giá trị thích
nghi, còn gọi là độ phù hcrp của chuỗi. Độ phù hợp của mỗi chuỗi gen đánh giá độ
13
thích nehi của nó với môi trường (độ tốt xấu của lời giải) và được dùng trong quá
trình chọn lọc.
Quần thể mới được tạo ra bàng cách sử dụng các quá trình chọn lọ c, la i ghép
và đột biến. Ọuá trình chọn lọc sao chép các cá thẻ có độ phù hợp tốt vào một quần
thế tạm thời được gọi là quần thể bố mẹ. Các cá thê trong quần thể bố mẹ được ghép
đôi một cách ngẫu nhiên và tiến hành lai ghép tạo ra các cá thể con. Sau khi tiến
hành quá trình lai ghép, giải thuật GA mô phỏng một quá trình khác trong tự nhiên
là quá trình đột biến, trong đó các gen của các cá thể con tự thay đổi giá trị với một
xác xuất nhỏ.
Như vậy, giải thuật GA xuất phát với tập lời giải ban đầu, thông qua nhiều
hước trons quá trình tiến hoá hình thành các tập lời giải mới tốt hơn, và cuối cùng
tìm ra lời giải đủ tốt chấp nhận được (lời giải gần với lời giải tối ưu).
Dưới đây là sơ đồ khối của giải thuật di truvền
Ỉ-ÌHT Sinh quàn
ti Ifc* bdl IdU
♦
xar 1nh lo
th ú I IJII -ùđ
cac cá thế trorg
quan thế
Co Cd thê" nào
đạt đẽn ÒI gứí
tối ưu ớ ùa?
j
ìr rh \ray
lơ -? i-
:
T
Hh'
T
Xây dưhq quár
ttip’ mríi
ằỵ dư’nq thé hẻ t ẻ tiẽp
2.1. Sơ đổ khối của giải thuật di truyền
14
Để áp dụng giải thuật GA giải một bài toán trong thực tế, các bước sau đày
cần được thực hiện:
Bước l : Chọn tập lời giải ban đầu cho bài toán.
Bước 2 : Mã hoá các lời giải dưới dạng các chuỗi, thông thường các lời giải
được mã hóa thành các chuỗi nhị phân.
Bước 3 : Tìm hàm số thích nahi (hàm phù hợp) cho bài toán và tính giá trị
thích nahi cho mỗi lời giải, còn sọi là giá trị độ phù hợp.
Bước 4 : Dựa trên giá trị thích nshi của mỗi lời giải đê’ thực hiện chọn lọc
(selecttion) và tiến hóa các lời giải. Các phương pháp tiến hóa gồm la i ghép
(crossover) và đột biến (mutation).
Bước 5 : Tính các giá trị thích nghi cho các lời giải mới và loại bỏ các lời giải
kém nhất, chỉ giữ lại một số nhất định các lời giải
Bước 6 : Nếu chưa tìm được lời giải tối ưu hay chưa hết hạn chu kỳ xác định
thì trở lại Bước 4 để tìm lời giải mới.
Bước 7 : Tim được lời giải tối ưu chấp nhận được hoặc nếu chu kỳ cho phép
đã chấm dứt thì báo cáo kết quả tính được.
Có nhiều lựa chọn khác nhau cho từng vấn đề trên. Phần tiếp theo sẽ đưa ra
cách lựa chọn theo J.H.Holland khi thiết kế phiên bản giải thuật GA đầu tiên. Giải
thuật này được gọi là giải thuật di truyền đơn giản (SGA) [12,14]
2.2. Giải thuật di truyền đon giản
J. H. Holland sử dụng mã hóa nhị phân để biểu diễn các cá thể, lý do là phần
lớn các bài toán tối ưu hóa, lời giải đều có thể được mã hóa thành chuỗi nhị phân
khá đơn giản [14], Mỗi lời giải được mã hóa thành một chuỗi bít, mỗi chuỗi bít sau
dó được giải mã để lấy lại giá trị thực và giá trị hàm mục tiêu được tính theo giá trị
thực này. Tuỳ từnR bài toán cực tiểu hay cực đại, giá trị hàm mục tiêu được biến đổi
thành giá trị thích nghi cho từng chuỗi. Quần thể chuỗi ban đầu được khới động
ngẫu nhiên và sau đó được tiến hóa từ thê hệ này sang thế hệ khác bàng cách sử
dụng ba toán tử :
Các bước chính trong việc áp dụng giải thuật di truyền
15
Chọn lọc (selecttion)
L ai tạo (crossover)
Đột biến (m utation)
Chọn lọc
Chọn lọc là việc lựa chọn các cá thê để tham gia vào các pha tiếp theo của
quá trình tiến hóa, việc lựa chọn này phụ thuộc vào giá trị thích nghi của cá thê’ đó,
nghĩa là những cá thể nào có giá trị thích nghi cao hơn sẽ có khả năng có nhiéu con
cháu hơn trong các thế hệ tiếp theo. Giá trị thích nghi quyết định sự tồn tại hay diệt
vong của một cá thể. Giá trị thích nghi được tính từ hàm thích nghi, việc ánh xạ từ
hàm mục tiêu sang hàm thích nghi được trình bày ở phẩn sau.
Mô hình chọn lọc thường được dùng là bánh xe xổ số (roulette wheel
selection). Giải thuật GA sử dụng một vòng tròn trong đó mỏi cá thể chiếm một
phần tương với đ ộ rộng là xác suất chọn lọc của mỗi cá thể. Xác suất chọn lọc Pi
của cá thể Vị được tính theo công thức p,= eval(v;)/F, trong đó eval(vị) là giá trị thích
nghi của cá thể Vị, F là tổng giá trị thích nghi của toàn quần thể F =ịe valịvj).
Mỗi khi thực hiện một lần quay vòn tròn, một ứng cử viên được chọn cho
việc lai ghép. Việc quay vòng tròn được thực hiện qua những bước sau:
Bước I : Đánh số các cá thể trong quần thể. Tính tổng giá trị thích nghi của
toàn quần thể và gọi nó là tổng thích nghi (Total fitness).
Bước 2 : Sinh một số ngẫu nhiên n trong khoảng từ 0 đến tổng thích nghi.
Bước 3 : Trả lại cá thể đầu tiên trong quần thể có giá trị thích nghi của nó
cộng với giá trị thích nghi của các cá thể trước đấy lớn hơn hoặc bằng n.
L a i ghép
Toán tử chọn lọc nhằm tìm ra những cá thể tốt nhất nhưng không tạo ra cá
thê mới. Tuy vậy, trong tự nhiên, các con sẽ thừa hưởng di truyền những đặc tính tốt
từ cả cha và mẹ. Toán tử tác động trên các cá thể cha và mẹ để tạo ra các con lai tốt
được gọi là lai ghép. Chúng chỉ được áp dụng lên cặp cha mẹ được chọn với xác suất
lai ghép ký hiệu là PLT0SS [14], Xác xuất này cho chúng ta số lượng Pcross*pop_size cá
16
thể được dùng cho hoạt động lai ghép với pop_size là kích thước quần thế. Ngoài
các cá thế đó ra. các cá thể con là bản sao trực tiếp từ cha mẹ.
Toán tử lai ghép trong giải thuật SGA là toán tử lai ghép một điểm cắt. Giả sử
chuỗi cá thể có độ dài L (chuỏi có L bít), toán từ lai ghép được tiến hành qua hai
giai đoạn là :
• Phát sinh một số ngẫu nhiên r trong miền [0; 1 ]
• Nếu r < Pcross chọn cá thể đó đê lai ghép.
Sau đó. kết hợp các cá thể được chọn một cách ngẫu nhiên. Với mỗi cặp cá
thể, phát sinh một số ngẫu nhiên pos từ miền [1, L]. Số pos báo hiệu vị trí của điểm
lai ghép. Hai cá thể :
(b|b2 bp0SbpHS+| bL) và (ccc2
Cpos^pos+1 • • -CL)
dược thay thế bởi cặp con cháu :
(b,b2. bp<lscpos+1 ,CL) và (ct.c2. . . C p J ^ , ,bL)
Đ ột biên
Các toán tử đột biến nhầm tạo ra các thông tin mới trong quần thể thu được
sau khi lai ghép tại các vị trí bít nào đó (quần thể có pop_size cá thể, mỗi cá thể có
độ dài L bít). Đột biến được áp dụng với xác suất rất nhỏ pm, vì nếu xác suất pm lớn,
giải thuật GA trở thành giải thuật tìm kiếm ngẫu nhiên. Số lượng bít đột biến là
pm*L*pop_size bít. Mỗi bít có cơ hội đột biến như nhau và dược thay đổi từ 0 thành
1 và ngược lại. Có thể xử lý theo cách sau:
Với mỗi cá thể trong quần thể và mỗi bít trong cá thể:
• Phát sinh một số ngẫu nhiên r trong miền [0,1].
• Nếu r < pm, tiến hành đột biến tại bít đ ó .
Các thao tác này được áp dụng lặp lại cho tới khi các cá thể con cháu tâng
trưởng tới kích cỡ mong muốn của quần thể.
Tóm lạ i. ba toán tử nêu trên được tiến hành trong một vòng lặp cho đến khi
các chuồi con chiếm toàn bộ quần thể mới. Quần thê mới gồm các cá thể của ba
loại: bị đột biến sau khi lai ghép; lai ghép nhưng không bị đột biến; không lai ghép
và cũng không bị đột biến mà chi đơn giản là sao chép lại.
17
Vì hàm thích nghi phải nhận giá trị không âm nên cần phái xây dựng ánh xạ
từ hàm mục tiêu đang xét của bài toán sang hàm thích nghi thông qua một hoặc
nhiều lần ánh xạ.
Nếu bài toán tối ưu là cực tiểu một hàm giá g(x), việc chuyển từ hàm giá sang
hàm thích nghi đế sử dụng trong GA như sau:
f(x )= Cmax - g(x) khi g(x) < Cmax
f(x) = 0 trong các trường hợp còn lại
ở đây, Cmax là tham số đầu vào. Ví dụ, có thể lấy Cmax là giá trị lớn nhất trong
quần thể hiện tại, hoặc lớn nhất sau k vòng lặp.
Khi hàm mục tiêu tăng hoặc đang xét bài toán cực đại hóa một hàm hữu dụng
u(x), có thể chuyển sang hàm thích nghi như sau:
f(x) = u(x) + cmin khi u(x) + Cmjn> 0
f(x) = 0 trong các trường hợp còn lại
ớ đây, Cmin là tham số đầu vào, có thê là giá trị tuyệt đối bé nhất trong quán
thế hiện tại hoặc trong k vòng lặp cuối cùng
Tỷ lệ hóa giá tr ị thích nghi
Việc điều chinh số lượng con của mỗi cá thể trong những quần thể nhỏ là
điều rất quan trọng trong việc sử dụng giải thuật SGA để giải các bài toán tối ưu.
Vào lúc khởi động và một số thế hệ ban đầu, các quần thể thường có một số cá thể
siêu khóe so với đại đa số cá thê còn lại. Nếu đê nguyên mà áp dụng quy tắc chọn
lọc thì các cá thể siêu khỏe sẽ chiếm gần toàn bộ quần thể tiếp theo vì chúng có rất
nhiều con. Điều này dẫn đến việc hội tụ sớm không mong muốn. Vào giai đoạn
cuối, khi số thế hệ khá lớn, giá trị thích nghi trung bình của toàn quần thể có thể gần
với giá trị thích nghi của cá thể tốt nhất, nếu để tự nhiên thì các cá thể trung bình
cũng có số con tương đương với các cá thể tốt nhất trong thế hệ tiếp theo. Nếu điều
này xảy ra thì giải thuật SGA trở thành giải thuật tìm kiếm ngẫu nhiên giữa các cá
thê trung bình. Cả hai khó khăn lúc bắt đầu và giai đoạn kết thúc nêu trên có thể
vượt qua bằng việc tỷ lệ hóa giá trị thích nghi toàn quần thể.
Hàm thích nghi (fitness)
:Vv H' r o IO C GiA HA N Ô I Ị
RtiNC' rAM ỉìiÕ!!;">TIN.i HƯ v ộ i
V" ì-0ịt£ri a
18
Một trong những thủ tục tỷ lệ hóa đơn giản và hiệu quả là tỷ lệ hóa tuyến
tính. Nếu gọi giá trị thích nghi ban đđu (chưa tỷ lệ hóa) là f và giá trị thích nghi sau
khi tỷ lệ hóa là f thì phương trình tỷ lệ hóa tuyến tính là :
r = a .f+ b
Các hệ số a. b có thể được chọn theo một số cách.Tuy nhiên, trong mọi
trường hợp, mong muốn rằng giá trị thích nghi trung bình sau khi tỷ lệ hóa của toàn
quần thể f’avebằng giá trị thích nghi trung bình của toàn quẩn thê trước khi tỷ lệ hóa.
Điểu này đảm báo rằng, các cá thể trung bình sẽ đónu góp một con cho thế hệ tiếp
theo. Đê kiểm soát số con cho thành viên siêu khỏe, một phương trình khác được
chọn là f’max = Cmult*fave, ở đây Cmult là số con của cá thể có giá trị thích nghi tốt nhất
trong quần thể. Đối với các quần thể nhỏ (50<n<100), giá trị 1.2 < CmuU < 2 được
chứng minh bằng thực nghiệm là khá tốt.
Vào giai đoạn cuối khi giá trị thích nghi trung bình toàn quần thể gần với giá
trị thích nghi của cá thể tốt nhất, với chiến thuật tỷ lệ hóa nêu trên gây ra giá trị
thích nghi sau khi tý lệ hóa của các cá thể tồi sẽ bị âm. Để vượt qua khó khăn này,
giá trị thích nghi của các cá thể tồi nhất được tỷ lệ hóa sao cho không âm hay bằng
không (f’min= 0). Từ đây, chiến thuật tỷ lệ hóa cho giải thuật di truyền là:
• Tý lệ hóa tuyến tính với f’avc= fave
• Nếu có thể thì tỷ lệ hóa theo hệ thức f’max = CmuU*fave, nếu không thì tỷ lệ hóa
sao cho f min = 0.
Với chiến thuật tỷ lệ hóa đơn giản như trên thì ngăn ngừa được sự chi phối
của các cá thể siêu khóe ở giai đoạn đầu và sau đó tạo ra được sự cạnh tranh lành
mạnh giữa các cá thể gần bằng nhau ở giai đoạn cuối của giải thuật SGA.
G iả i th uật
Dưới đây là sơ đồ tổng thể của giải thuật SGA
Giải thuật SGA ( ) Ị
k = 0;
// K hởi động quần thể Po một cách ngẫu nhiên. Tính giá trị hàm mục tiêu cho
II từng cá thể.
khởi_động (Pk);
19
tính_hàm_rnục_tiêu (Pk);
// Đ ặ t lời giả i của giải thuật bằng cá thể có giá trị hàm mục tiêu tốt
II nhứt.
Xbest = Tốt nhất (Pk);
do { //
Chuyển
đổi giá trị hàm mục tiêu thành giá t rị
độ
phù
hợp
và tiến
II thành chọn lọc tạo ra quần thể b ố mẹ p parent
Pparem = chọn_lọc(Pk);
// Tiến hành la i ghép và
đột
biến tạo ra quần thể cá th ể con
II
p
chi Id
Pchild =
đột_biến (lai_ghép (Pparem));
// Thay thế quần thể hiện tụi bằng quần th ể cá thể con
k = k + 1;
- Pfhild’
tính_hàm_mục_tiêu (Pk);
// Nếu giá tr ị hàm mục tiêu ob j của cá th ể
tốt
nhất X trong
quần
thê’
p k
II lớn hơn giá trị hàm mục tiêu của Xf>esl thì thay th ế lời giải
X = tốt_nhất (Pk);
if (obj(X) > objcx^,))
■^bcst ^ ’
Ị while (k<G); l*T iên hành G th ể hệ* I
return (X hcsl); /*T rả vê lờ i giải của giải thuật G A */
}
Bộ bốn (N, pc, pm, G) gọi là các tham sô' điều khiển của giải thuật SGA, trong đó:
N : Số cá thể trong quần thể
pc : xác suất lai ghép
pnl: xác suất đột biến
G : số thế hệ cần tiến hoá
Cá thể có giá trị hàm mục tiêu tốt nhất của mọi thế hệ là lời giải cuối cùng
của giải thuật SGA. Quần thể đầu tiên được khới tạo một cách ngẫu nhiên.
20
2.3. Nền táng toán học của giai thuật di truvền
K h á i niệm
và ký
hiệu
Trong giải thuật SGA, mỗi chuỗi cá thể được biểu diễn một cách hình thức
như sau: a = aịa 2 aL, trong đó a, là gen thứ i trong chuỗi và có giá trị lấy từ tập ký
tự V = {0.1 Ị. J.H.Holland xây dựng tập ký tự mở rộng v+ = {1, 0 ,*Ị với ký tự *
được gọi là ký tự không quan tâm có thể nhận giá trị 1 hoặc 0.
Một gián đồ H là một chuỗi L gien lấy từ tập ký tự v+, mô tả một tập con các
chuồi với sự giống nhau tại một số vị trí trong chuỗi.Các giá trị 1 hoặc 0 có trong
gián đồ H gọi là các vị trí cố định của giản đồ. Một thể hiện của giản đồ H là một
chuỗi L gien lấy từ tập ký tự V có các gien trùng với các gien của giản đồ H tại các
vị trí cố định. V í dụ chuỗi 10000 là một thê hiện của giản đồ *0000. Dễ nhận thấy
có 3' gián đồ có độ dài L. Một cách tổng quát, với tập ký tự gồm c ký tự sẽ có
(C+I)L giản đồ. Mỗi cá thể độ dài L lấy từ tập ký tự V = {1,0) chứa 2L thê hiện của
các giản đồ khác nhau. Do đó, một quần thể gồm N cá thể chứa N.2L thể hiện của
các giản đồ.
Bậc của giản đồ H, ký hiệu là o(H), là số vị trí xác định có trong giản đồ H.
V í dụ giản đồ H = *1 * *0 ** có bậc là 2. Độ dài của giản đồ 5(H) là khoảng cách từ
vị trí xácđịnh đầu tiên tới vị trí xác định cuối cùng của giản đồ. Ví dụ giản đồ H =
* I **0 *0 có độ dài: 1 -2 = 5, giản đồ H = có độ dài bằng 0.
Đ ịn h lý gián đổ
Gọi m (H.t) là số thê hiện của giản đồ H có trong quần thể tại thế hệ t, f là
giá trị độ phù hợp trung bình của toàn quần thể v ầ f(H ) là giá trị độ phù hợp trung
bình của các thể hiện của giản đồ H. J.H.Holland đã ước lượng số thể hiện của giản
đồ H tại thể hệ tiếp theo ) dưới tác động của các toán tử của giải thuật GA.
Kết quả tính toán cuối cùng được mô tả bàng định lý 2.3. Đinh lý này được biết đến
như nền tảng toán học của giải thuật GA và được gọi là định lý giản đồ.
21
Đ ịn li lý [12, 14]: Trong giải thuật SGA, nếu số thể hiện của giản đồ H tại
thế hệ t là in(H.t) thì số thể hiện của giản đồ H tại thế hệ tiếp theo được ước lượng
như sau:
m{H,í + \)> m { H ,t \ ứ ỉìị \ - p p ) (2.1)
f y r c I _ Ị t'
G iả thuyết vê khói xây (lựng
Từ biều thức 2.1, dẻ thấy các giản đồ bộc nhỏ với độ dài ngắn và có giá trị độ
phù hợp trung bình lớn hơn giá trị độ phù hợp trung bình của toàn quần thể sẽ có số
thê hiện tăng và có vai trò quan trọng trong giải thuật GA. Các giản đồ như vậy được
gọi là các khối xây dựng. Như đã đề cập ở trên, mỗi chuỗi cá thể độ dài L đồng thời
chứa 2L thể hiện của các giản đồ khác nhau. Giải thuật SGA không xứ lý các giản đồ
này mộl cách rõ ràng mà 1'nay vào đó giải thuật SGA xử lý chúng một cách ngầm
định thông qua các toán tử chọn lọc, lai ghép và đột biến. Quá trình này được đặt tên
là sự song song ngầm định. J.H.Holland đã đưa ra giả thuyết về khối xây dựng như
sau : G iải thuật GA tối ưu hoá (tố i thiểu hoá) hàm mục tiêu bằng việc kết hợp các
khối xây dipig tạo ra các cá thể dần tốt hơn từ các phần tử tốt nhất của các điểm đã
thăm dò trước đấy [14].
2.4. Những cải tiến của giái thuật di truyền
Giải thuật SGA gặp phải một số hạn chế trong việc giải quyết các bài toán
thực tiễn như sau:
1 ) SGA biểu diễn cấu trúc nhiễm sắc thể dưới dạng chuỗi nhị phân nén trong
các bài toán phức tạp và có nhiều ràng buộc thì độ dài nhiễm sắc thể sẽ lớn, ảnh
hướng rất nhiều tới tốc độ thực hiện giải thuật.
2) Vấn đề hội tụ tới điểm tối ưu không đảm bảo là tối ưu toàn cục. Trong
trường hợp giá trị tối ưu của lời giải biến đổi theo thời gian thì SGA thường bị mắc
kẹt ớ tối ưu địa phương.
Trong nhữns năm gần đây, nhiều nghiên cứu nhàm cải tiến SGA đã được
công bố. Dưới đày là một số các nghiên cứu cải tiến SGA.