Luận án này sẽ nghiên cứu một phương pháp mới là giải thuật di truyền, sử dụng nó trong việc tìm kiếm tập trọng số tối ưu cho mạng nơ ron, đặc biệt là mạng lan truyền, một mạng được sử d
Trang 1-oOo -
NGUYỄN ĐỨC CHÍ
ĐỀ TÀI
GIẢI THUẬT DI TRUYỀN ĐỂ XÁC ĐỊNH TRỌNG SỐ
TỐI ƯU CHO MẠNG NƠ RON TRONG KỸ THUẬT XỬ LÝ ẢNH
Chuyên ngành: KỸ THUẬT VÔ TUYẾN ĐIỆN TỬ Mã số ngành: 2.07.01/07
LUẬN ÁN THẠC SỸ
TP HỒ CHÍ MINH, tháng 10 năm 2003
Trang 2-oOo -
Giải thuật di truyền (GA) là phương thức giải quyết vấn đề bắt chước hành vi của con người để sinh tồn và phát triển, nó giúp tìm ra giải pháp tối ưu hay tốt nhất trong điều kiện thời gian và không gian nhất định, nhưng không có nghĩa là luôn tìm ra giải pháp tuyệt đối cho vấn đề, đôi khi có thể chỉ là tương đối trong điều kiện cho phép Khác với các phương pháp cổ điển dựa trên các công thức toán hay phương pháp suy luận dựa trên kinh nghiệm của các chuyên gia chỉ để ý đến một số giới hạn giải pháp,
GA giải quyết vấn đề bằng cách xét đến toàn bộ các giải pháp, mà trước tiên là một số giải pháp tiêu biểu, sau đó loại bỏ từ từ những thành phần không thích hợp, kém thích nghi để chọn những thành phần thích nghi để sinh sản và biến hóa
Cùng với giải thuật di truyền, trong những năm 70, mạng nơ ron nhân tạo và logic mờ được nghiên cứu và áp dụng thành công trong việc giải quyết các trường hợp phức tạp Khái niệm tính toán được hiểu theo nhiều cách khác nhau Về lịch sử, việc tính toán thường gắn liền với chương trình trong đó giải thuật được thiết kế và được cài đặt lên máy tính bằng cách sử dụng các cấu trúc lệnh hiện hành Từ đó một quan niệm khác được nảy sinh khi chúng ta xem xét tính toán trong các hệ sinh học, như sự tính toán trong bộ não con người khác rất nhiều so với mô hình trên ở chỗ: sự tính toán được phân bố cực đại và song song, việc học thay thế sự phát triển chương trình ưu thế hơn Nhờ nắm bắt cách cư xử này từ tự nhiên, một mô hình tính toán mới xuất phát từ ý niệm sinh học là mạng nơ ron nhân tạo (ANN) đã ra đời
Mạng nơ ron nhân tạo là một cấu trúc mạng gồm các nơ ron kết nối với nhau, mỗi
nơ ron có những đặc tính nhập xuất và cài đặt một tính toán hay một chức năng cục bộ Đầu ra của mỗi nơ ron được xác định bởi các đặc tính nhập xuất của nó, các mối liên kết (trọng số) của nó với những nơ ron khác Có nhiều loại mạng nơ ron nhưng dù chọn loại mạng nào để giải quyết một vấn đề ta cũng cần mạng mô phỏng càng gần vấn đề càng tốt Điều này phụ thuộc vào phương pháp tìm tập trọng số tốt nhất cho bài toán
Luận án này sẽ nghiên cứu một phương pháp mới là giải thuật di truyền, sử dụng nó trong việc tìm kiếm tập trọng số tối ưu cho mạng nơ ron, đặc biệt là mạng lan truyền, một mạng được sử dụng khá rộng rãi trong việc giải các bài toán phức tạp Luận án cũng nghiên cứu về việc ứng dụng mạng nơ ron trong lĩnh vực xử lý ảnh, cụ thể là các vấn đề về nhận dạng, như nhận dạng chữ trong văn bản, để từ đó xây dựng một mạng, dùng giải thuật di truyền để xác định tập trọng số tối ưu cho mạng, mà có thể nhận dạng hoàn toàn một văn bản lưu trữ trong một file ảnh
Sau cùng em xin chân thành cảm ơn thầy Lê Tiến Thường đã hướng dẫn, giúp đỡ
em hoàn thành luận án này
Nguyễn Đức Chí
Trang 3-oOo -
Giải thuật di truyền được ứng dụng trong nhiều lĩnh vực khác nhau, từ khoa học tự nhiên đến khoa học nhân văn, từ kỹ thuật sang thương mại lẫn kinh tế tài chính, giải thuật di truyền là một hình thức tìm kiếm có tính ngẫu nhiên nhưng được hướng dẫn bởi hàm số thích nghi Giải thuật di truyền không phải lúc nào cũng tìm ra giải pháp tối ưu, nhưng chắc chắn nó sẽ cung cấp những giải pháp tương đối tốt trên nền tảng vững chắc và trong thời gian nhanh nhất Trong luận án này sẽ nghiên cứu về giải thuật di truyền, mạng nơ ron nhân tạo, các phương pháp nhận dạng, để từ đó dùng giải thuật di truyền để xác định tập trọng số tối ưu cho mạng nơ ron, và ứng dụng giải thuật để tìm tập trọng số tối ưu cho bài toán nhận dạng chữ trong văn bản dùng mạng
nơ ron Luận án được chia thành 4 chương, nội dung cụ thể của từng chương như sau:
Chương 1: GIẢI THUẬT DI TRUYỀN
Nội dung của chương là trình bày các vấn đề liên quan đến giải thuật di truyền bao gồm: lịch sử quá trình tính toán tiến hóa, các thuật ngữ sinh học, các bước quan trọng để thực hiện của giải thuật, cơ chế thực hiện của giải thuật di truyền, sau cùng ứng dụng giải thuật vào bài toán tối ưu hàm nhiều biến
Chương 2: MẠNG NƠ RON NHÂN TẠO
Nội dung của chương là trình bày về các vấn đề cơ bản của mạng nơ ron như: lịch sử nghiên cứu và ứng dụng, định nghĩa, phân loại, mô hình, các mạng nơ ron một lớp và các giải thuật huấn luyện mạng, đặc biệt là trình bày về mạng lan truyền và giải thuật huấn luyện mạng nổi tiếng lan truyền ngược
Chương 3: GIẢI THUẬT DI TRUYỀN XÁC ĐỊNH TRỌNG SỐ TỐI ƯU CHO MẠNG NƠ RON
Nội dung của chương là dùng giải thuật di truyền được trình bày trong chương 1 để xác định trọng số tối ưu cho mạng lan truyền, bao gồm xây dựng sơ đồ giải thuật, viết chương trình, và ứng dụng cụ thể vào bài toán XOR
Chương 4: MẠNG NƠ RON TRONG NHẬN DẠNG
Chương này sẽ trình bày về các vấn đề nhận dạng như: các phương pháp nhận dạng, nhận dạng ký tự dùng mạng nơ ron, và sau cùng sẽ xây dựng một mạng nơ ron hoàn chỉnh để nhận dạng một phông chữ cụ thể trên văn bản, dùng giải thuật di truyền để xác định tập trọng số tối ưu cho mạng này Tập trọng số tìm được được trình bày trong phần phụ lục
Trang 4MỤC LỤC
Chương 1: GIẢI THUẬT DI TRUYỀN
1 Tóm tắt lịch sử tính toán tiến hóa 1
2 Thuật ngữ sinh học 2
3 Giải thuật di truyền đơn giản 3
4 Các tính chất quan trọng của giải thuật di truyền 5
5 Các bước quan trọng trong việc áp dụng giải thuật di truyền 6
6 Cơ chế thực hiện của giải thuật di truyền 6
6.1 Biểu diễn các biến nhờ các vectơ nhị phân 6
6.2 Toán tử chọn cá thể 7
6.3 Toán tử lai ghép 7
6.4 Toán tử đột biến 8
6.5 Hàm thích nghi 8
Chương 2: MẠNG NƠ RON NHÂN TẠO 1 Lịch sử nghiên cứu và ứng dụng mạng nơ ron 18
1.1 Lịch sử nghiên cứu 18
1.2 Các ứng dụng mẫu của mạng nơ ron nhân tạo 18
2 Bộ não và nơ ron sinh học 19
3 Định nghĩa mạng nơ ron nhân tạo 21
3.1 Phân loại các mạng nơ ron 21
3.1.1 Theo kiểu liên kết nơ ron 21
3.1.2 Theo số lớp 22
3.2 Hai cách nhìn về mạng nơ ron 22
3.2.1 Mạng nơ ron như một công cụ tính toán 22
3.2.2 Mạng nơ ron như một hệ thống thích nghi 23
3.3 Khả năng tính toán và biểu diễn phụ thuộc dữ liệu của mạng nơ ron 24
3.4 Xác định cấu trúc mạng tối ưu 24
3.5 Các vấn đề thường gặp khi sử dụng mạng nơ ron nhân tạo 25
3.5.1 Kích thước mẫu 25
3.5.2 Biểu diễn biến 25
3.5.3 Tổng quát hóa 26
4 Mô hình mạng nơ ron nhân tạo 27
4.1 Mô hình nơ ron 27
4.2 Hàm truyền 28
4.3 Nơ ron với vectơ nhập 28
4.4 Cấu trúc mạng 29
4.4.1 Lớp nơ ron 29
Trang 54.4.2 Mạng nơ ron nhiều lớp 30
4.4.3 Cấu trúc dữ liệu 30
4.4.4 Kiểu huấn luyện 31
5 Các mạng nơ ron một lớp 31
5.1 Mạng Hopfield 31
5.1.1 Cấu trúc mạng 31
5.1.2 Huấn luyện mạng 32
5.1.3 Sử dụng mạng 32
5.2 Mạng kiểu bộ nhớ hai chiều kết hợp thích nghi 33
5.2.1 Cấu trúc mạng 33
5.2.2 Huấn luyện mạng 34
5.2.3 Sử dụng mạng 34
5.3 Mạng Kohonen 34
5.3.1 Cấu trúc mạng 35
5.3.2 Huấn luyện mạng 36
5.3.3 Sử dụng mạng 37
5.4 Mạng Perceptron 37
5.4.1 Cấu trúc mạng 37
5.4.2 Huấn luyện mạng 38
6 Mạng lan truyền 38
6.1 Cấu trúc mạng 38
6.2 Máy học 40
6.2.1 Mặt lỗi 40
6.2.2 Phương pháp giảm gradient 41
6.2.3 Cực tiểu cục bộ 41
6.3 Ánh xạ 42
6.4 Đạo hàm hàm lỗi 43
6.4.1 Quy tắc chuỗi 43
6.4.2 Trọng số nút xuất 44
6.4.3 Trọng số nút ẩn 45
6.5 Huấn luyện mạng 46
6.5.1 Quy tắc giảm dốc nhất 46
6.5.2 Quy tắc mô men 49
6.5.3 Quy tắc học thích nghi 49
CHƯƠNG 3: GIẢI THUẬT DI TRUYỀN XÁC ĐỊNH TRỌNG SỐ TỐI ƯU CHO MẠNG NƠ RON 1 Khởi tạo trọng 51
2 Mã hóa mạng nơ ron trên nhiễm sắc thể 53
3 Xác định số lớp ẩn và số nút ẩn trong các tầng 53
4 Sơ đồ giải thuật và chương trình 55
Trang 6CHƯƠNG 4: MẠNG NƠ RON TRONG NHẬN DẠNG
1 Tổng quan về nhận dạng 63
1.1 Không gian biểu diễn đối tượng 63
1.2 Không gian diễn dịch 63
1.3 Mô hình nhận dạng 63
1.4 Bản chất qúa trình nhận dạng 65
2 Nhận dạng theo cấu trúc 65
2.1 Biểu diễn định tính 65
2.2 Phương pháp ra quyết định dựa vào cấu trúc 66
2.2.1 Khái niệm 66
2.2.2 Ngôn ngữ PLD 66
2.2.3 Phương pháp nhận dạng 67
3 Nhận dạng dựa trên phân hoạch không gian 67
3.1 Phân hoạch không gian 67
3.2 Hàm phân lớp 67
3.3 Một số phương pháp nhận dạng tiêu biểu 68
3.3.1 Nhận dạng thống kê 68
3.3.2 Một số thuật toán nhận dạng trong tự học tiêu biểu 69
4 Nhận dạng ký tự dùng mạng nơ ron 70
4.1 Xử lý sơ bộ 71
4.2 Tách chữ 72
4.3 Nhận dạng chữ 72
4.3.1 Kỹ thuật nhận dạng chữ in 72
4.3.2 Thuật toán nhận dạng chữ viết tay 73
4.3.3 Thuật toán nhận dạng chữ tổng quát 74
4.4 Phục hồi chữ (văn bản) 75
5 Phông chữ .76
5.1 Cỡ phông chữ 76
5.2 Kiểu chữ và độ đậm nhạt 77
5.3 Phông chữ có chân và không chân 77
5.4 Các phông chữ đơn cách và theo tỷ lệ 77
5.5 Các phông chữ cố định và chỉnh cỡ được 78
6 Nhận dạng chữ viết trong văn bản dùng mạng nơ ron 79
7 Chạy chương trình và kết quả 94
8 Kết luận 98
Phụ lục 99
Tài liệu tham khảo 107 Tóm tắt lý lịch trích ngang
Trang 7
Chương 1: GIẢI THUẬT DI TRUYỀN
1 Tóm tắt lịch sử tính toán tiến hóa
Trong thập niên 1950 và 1960 một vài nhà khoa học máy tính đã nghiên cứu độc
lập các hệ tiến hóa với ý tưởng là sự tiến hóa có thể được sử dụng như một công cụ
tối ưu cho các bài toán kỹ thuật Tư tưởng trong những hệ này là phát triển một tập
các giải pháp hiện hữu, bằng cách dùng các toán tử lấy ý tưởng từ sự biến đổi di
truyền và chọn lọc trong tự nhiên
Trong thập niên 1960, Rechenberg (1965, 1973) đã giới thiệu phương pháp “chiến
lược tiến hóa”, một phương pháp ông đã sử dụng để tối ưu các tham số giá trị thực
của các thiết bị như cánh máy bay chẳng hạn Ý tưởng này sau đó được phát triển
thêm nữa bởi Schwefel (1975, 1977) Lĩnh vực nghiên cứu các chiến lược tiến hóa đã
để lại một phạm vi nghiên cứu thiết thực, gần như phát triển độc lập với lĩnh vực
nghiên cứu các giải thuật di truyền (mặc dù gần đây hai trường phái này đã bắt đầu
tác động qua lại lẫn nhau) Fogel, Owens, and Walsh (1966) đã phát triển “lập trình
tiến hóa”, một kỹ thuật trình bày các giải pháp như các máy có hữu hạn trạng thái,
chúng được phát triển thông qua việc thay đổi ngẫu nhiên các sơ đồ chuyển trạng thái
và lựa chọn sơ đồ tốt nhất Sự phát triển lập trình tiến hóa cũng để lại một phạm vi
nghiên cứu thiết thực Chiến lược tiến hóa, lập trình tiến hóa, và các giải thuật di
truyền tạo thành nền tảng cho lĩnh vực tính toán tiến hóa
Giải thuật di truyền (GA) đã được phát minh bởi John Holland trong thập niên 1960
và được phát triển bởi Holland cùng với những sinh viên lẫn đồng nghiệp của ông tại
đại học Michigan trong thập niên 1960 và 1970 Trái với chiến lược tiến hóa và lập
trình tiến hóa, mục tiêu ban đầu của Holland không phải thiết kế giải thuật để giải
quyết các bài toán đặc biệt, mà là để nghiên cứu hiện tượng thích nghi xuất hiện
trong tự nhiên và phát triển theo nhiều cách để cơ chế thích nghi trong tự nhiên có thể
được đưa vào trong hệ thống máy tính Cuốn sách của Holland (1975) với tiêu đề
“Adaptation in Natural and Artificial Systems” đã giới thiệu giải thuật di truyền như sự
trừu tượng hóa về sự tiến hóa sinh học và đã đưa ra một cơ sở lý thuyết về sự thích
nghi dưới dạng GA GA của Holland là một phương pháp để chuyển từ một tập nhiễm
sắc thể (chuỗi các bit 0 hoặc 1) đến một tập mới bằng cách sử dụng cái gọi là “chọn
lọc tự nhiên” cùng với các toán tử di truyền là lai ghép (crossover), đột biến
(mutation), và phép nghịch đảo (inversion) Mỗi nhiễm sắc thể bao gồm các “gen”,
mỗi gen là một trường hợp đặc biệt của Alen Toán tử chọn lọc (selection) chọn các
nhiễm sắc thể trong tập nhiễm sắc thể mà sau đó sẽ được dùng để tạo sinh, thường
những nhiễm sắc thể thích nghi hơn sẽ tạo ra nhiều con cháu hơn những nhiễm sắc thể
kém thích nghi Lai ghép (crossover) sẽ hoán chuyển các thành phần của hai nhiễm
sắc thể, đại để là bắt chước sự tái tổ hợp sinh học giữa hai nhiễm sắc thể đơn; đột
biến thay đổi ngẫu nhiên các giá trị Alen ở một vài vị trí trong nhiễm sắc thể; và phép
nghịch đảo (inversion) đảo ngược thứ tự phần kề nhau của nhiễm sắc thể, sau đó xếp
Trang 8lại theo thứ tự mà các gen đã được sắp xếp
Giới thiệu của Holland về giải thuật dựa trên quần thể cùng với lai ghép, phép
nghịch đảo, và đột biến là một sự đột phá lớn (Chiến lược di truyền của Rechenberg
đã bắt đầu với một tập hai cá thể, một là cha và một là con, con là một phiên bản đột
biến của cha; các tập nhiều cá thể đã không được kết hợp chặt chẽ cho đến sau này
Lập trình tiến hóa của Fogel, Owens, và Walsh cũng vậy chỉ sử dụng phương thức đột
biến để tạo ra sự thay đổi) Hơn nữa, Holland đã là người đầu tiên cố gắng đặt sự tiến
hóa sử dụng máy tính trên một cơ sở lý thuyết chắc chắn Cho đến gần đây nền tảng
lý thuyết này, dựa trên khái niệm “sơ đồ”, đã là cơ sở của hầu hết các lý thuyết sau
này về giải thuật di truyền
Trong một vài năm qua đã có một sự ảnh hưởng lan rộng giữa các nhà nghiên cứu
các phương pháp tính toán tiến hóa khác nhau, và các gianh giới giữa GA, chiến lược
tiến hóa, lập trình tiến hóa, và các phương pháp tiếp cận tiến hóa khác đã bị đạp đổ
trong chừng mực nào đó Ngày nay, các nhà nghiên cứu thường dùng “giải thuật di
truyền” để mô tả một cái gì đó rất xa với khái niệm ban đầu của Holland
2 Thuật ngữ sinh học
Vào thời điểm này thật hữu ích để giới thiệu chính thức một vài thuật ngữ sinh học
sẽ được sử dụng Trong ngữ cảnh giải thuật di truyền, các thuật ngữ sinh học này sẽ
được sử dụng theo tinh thần tương tự với sinh vật học thực, thông qua các thực thể mà
chúng ta tham khảo đến thì đơn giản hơn nhiều các thực thể thực
Tất cả các sinh vật sống bao gồm các tế bào, mà mỗi tế bào chứa cùng một tập
gồm một hoặc nhiều nhiễm sắc thể (chromosome)-gọi là các chuỗi DNA Về mặt nhận
thức một nhiễm sắc thể có thể được chia thành các gen (gene)-gọi là các khối chức
năng của DNA, mỗi gen mã hóa một protein đặc biệt Đại để, chúng ta có thể nghĩ
rằng một gen mã hóa một đặc điểm (trait) nào đó, như màu của mắt chẳng hạn Các
sắp đặt có thể khác nhau đối với một đặc điểm (như xanh, nâu, nâu lục) được gọi là
alen Mỗi gen được đặt tại một vị trí xác định trên nhiểm sắc thể
Nhiều sinh vật có nhiều nhiễm sắc thể trên mỗi tế bào Tập đầy đủ chất liệu di
truyền được gọi là bộ gen (genome) của sinh vật Thuật ngữ kiểu di truyền (genotype)
tham khảo đến một tập gen đặc biệt chứa trong bộ gen Hai cá thể có bộ gen giống
nhau được gọi là có cùng kiểu di truyền Kiểu di truyền gây ra kiểu hình (phenotype)
của sinh vật-gọi là các đặc tính vật lý và trí tuệ của sinh vật
Các sinh vật mà các nhiễm sắc thể của chúng được xếp theo cặp gọi là lưỡng bội
(diploid); các sinh vật mà các nhiễm sắc thể của chúng không được xếp theo cặp gọi
là đơn bội (haploid) Trong tự nhiên, phần lớn các loài sinh sản có giới tính là lưỡng
bội, bao gồm con người, mà mỗi người có 23 cặp nhiễm sắc thể trong mỗi tế bào
xôma trong cơ thể Trong sinh sản có giới tính, sự tái tổ hợp (recombination hoặc
crossover) xuất hiện: trong mỗi cha hoặc mẹ, các gen được trao đổi giữa mỗi cặp
nhiễm sắc thể để tạo thành một giao tử (gamete: một nhiễm sắc thể đơn), và sau đó
các giao tử từ hai cha mẹ kết đôi với nhau để tạo thành một tập nhiễm sắc thể lưỡng
Trang 9bội đầy đủ Trong sinh sản giới tính đơn bội, các gen được trao đổi giữa các nhiễm sắc
thể đơn dải của hai cha mẹ Con cái bị đột biến có các nucleotide (các bit cơ bản của
DNA) bị thay đổi từ cha hoặc mẹ sang con, các thay đổi thường xảy ra do các lỗi trong
quá trình sao chép Sự thích nghi (fitness) của một sinh vật xác định khả năng mà sinh
vật sẽ sống để sinh sản hoặc xác định chức năng của một số con cháu mà sinh vật có
Trong giải thuật di truyền, thuật ngữ nhiễm sắc thể (chromosome) tham khảo đến
một giải pháp giải quyết cho một vấn đề, thường được mã hóa thành một chuỗi bit
“Gen” hoặc là các bit đơn hoặc là những khối ngắn các bit kề nhau mã hóa một thành
phần riêng biệt của giải pháp (ví dụ, trong ngữ cảnh tối ưu hóa hàm nhiều tham số,
các bit mã hóa một tham số riêng biệt có thể được xem như là một gen) Một alen
trong chuỗi bit hoặc là 0 hoặc là 1; đối với các bảng ký tự lớn hơn có thể có nhiều
alen tại mỗi vị trí Lai ghép bao gồm việc trao đổi chất liệu di truyền giữa cha và mẹ
đơn bội đơn nhiễm sắc thể Đột biến là sự thay đổi một bit tại một vị trí được chọn
ngẫu nhiên (đối với các bảng ký tự lớn hơn là thay thế một ký hiệu tại một vị trí được
chọn ngẫu nhiên với một ký hiệu mới cũng được chọn ngẫu nhiên)
Phần lớn các ứng dụng của các giải thuật di truyền đều ứng dụng các cá thể đơn
bội, đặc biệt các cá thể đơn nhiễm sắc thể Kiểu di truyền của một cá thể trong GA
dùng chuỗi bit, đơn giản là hình dạng các bit trong nhiễm sắc thể đó Thường không
có khái niệm kiểu hình trong ngữ cảnh của GA, mặc dù gần đây nhiều nhà nghiên
cứu đã thử nghiệm GA ở cả mức kiểu di truyền lẫn mức kiểu hình
3 Giải thuật di truyền đơn giản
Dựa vào vấn đề được định nghĩa rõ ràng phải giải quyết và chuỗi bit biểu diễn cho
các giải pháp tiêu biểu, một GA đơn giản làm việc như sau:
1 Bắt đầu với một tập n nhiễm sắc thể chiều dài l bit được tạo ra một cách ngẫu
nhiên (các giải pháp tiêu biểu cho vấn đề)
2 Tính độ thích nghi f(x) của mỗi nhiễm sắc thể x trong quần thể
3 Lặp lại các bước sau cho đến khi n con cháu được tạo ra:
a Lựa chọn một cặp nhiễm sắc thể cha mẹ từ quần thể hiện tại, xác suất lựa chọn là
một hàm tăng của độ thích nghi Lựa chọn được làm “với sự thay thế”, có nghĩa là
cùng nhiễm sắc thể có thể được chọn nhiều hơn một lần để trở thành cha mẹ
b Với xác suất p c (“xác suất lai ghép” hoặc “tỷ lệ lai ghép”), lai ghép cặp nhiễm sắc
thể này tại điểm được chọn ngẫu nhiên để tạo thành hai nhiễm sắc thể con Nếu
không có sự lai ghép nào xảy ra, hãy tạo ra hai nhiễm sắc thể con mà là sự sao chép
chính xác cha mẹ tương ứng của chúng (Chú ý rằng ở đây tỷ lệ lai ghép được định
nghĩa là xác suất mà cha mẹ sẽ lai ghép tại một điểm xác định Cũng có các kiểu lai
ghép đa điểm trong GA mà tỷ lệ lai ghép đối với một cặp cha mẹ là số điểm mà lai
ghép xảy ra)
c Đột biến hai nhiễm sắc thể con tại mỗi chỗ với xác suất p m (xác suất đột biến hay
tỷ lệ đột biến), và đặt các nhiễm sắc thể kết quả trong quần thể mới Nếu n là lẻ, một
thành viên trong quần thể mới có thể bị loại bỏ một cách ngẫu nhiên
Trang 104 Thay thế quần thể hiện tại bằng quần thể mới
5 Trở lại bước 2
Mỗi bước lặp trong quá trình này được gọi là “sự tạo sinh” Một GA tiêu biểu được
lặp từ 50 đến 500 lần tạo sinh hoặc hơn nữa Toàn bộ tập tạo sinh được gọi là “một
hành trình” Khi kết thúc hành trình thường có một hoặc nhiều nhiễm sắc thể có mức
độ thích nghi cao trong quần thể Vì tính ngẫu nhiên đóng một vai trò lớn trong mỗi
hành trình, hai hành trình có số hậu thế ngẫu nhiên khác nhau sẽ tạo ra các cách tác
động khác nhau Các nhà nghiên cứu GA thường báo cáo thống kê (như độ thích nghi
tốt nhất đã tìm thấy trong một hành trình và lần tạo sinh mà cá thể có độ thích nghi tốt
nhất đã được khám phá) trung bình qua nhiều hành trình khác nhau của GA trên cùng
vấn đề
Thủ tục đơn giản vừa mới được mô tả ở trên là nền tảng cho phần lớn các ứng dụng
của GA Có một số chi tiết phải được thêm vào, như kích thước của quần thể và xác
suất lai ghép và đột biến, sự thành công của giải thuật thường rất phụ thuộc vào các
chi tiết này Cũng có nhiều kiểu GA phức tạp hơn (ví dụ, GA làm việc trên các biểu
diễn khác chuỗi hoặc GA có các loại toán tử lai ghép và đột biến khác)
Một ví dụ chi tiết hơn của giải thuật GA đơn giản, giả sử l (chiều dài chuỗi) là 8,
f(x) là số bit 1 trong chuỗi bit x (một hàm thích nghi rất đơn giản, được sử dụng ở đây
chỉ dành cho mục đích minh họa), n (kích thước của quần thể) là 4, p c = 0.7, và p m =
0.001 (giống như hàm thích nghi, các giá trị của l và n thường nằm trong khoảng từ 50
đến 1000 Các giá trị đã cho đối với p c và p m là khá tiêu biểu)
Quần thể ban đầu (được tạo ngẫu nhiên) như sau:
Nhãn nhiễm sắc thể Chuỗi biểu diễn nhiễm sắc thể Độ thích nghi
A 00000110 2
B 11101110 6
Một phương pháp lựa chọn phổ biến trong GA là lựa chọn theo tỷ lệ thích nghi,
trong đó số lần một cá thể được chọn để tạo sinh bằng với độ thích nghi của nó chia
cho giá trị trung bình thích nghi trong quần thể (Điều này tương đương với cái mà các
nhà sinh vật gọi là “lựa chọn khả năng tồn tại”)
Một phương pháp đơn giản thực hiện lựa chọn theo tỷ lệ thích nghi là “lấy mẫu
trên bánh xe ru lét” (roulette-wheel sampling), đó là khái niệm tương đương với việc
cho mỗi cá thể một phần của vòng tròn quay bằng với độ thích nghi của cá thể Khi
bánh xe ru lét được quay, quả bóng sẽ ngừng lại trên một hình nêm, và cá thể tương
ứng được chọn Trong ví dụ ở trên n = 4, vòng tròn quay sẽ được quay 4 lần, hai lần
quay đầu tiên chọn các nhiễm sắc thể B và D là cha mẹ, hai lần quay thứ hai chọn các
nhiễm sắc thể B và C là cha mẹ
Một khi một cặp cha mẹ được chọn, với xác suất p c chúng lai ghép để tạo thành hai
Trang 11con cháu Nếu chúng không lai ghép, thì các nhiễm sắc thể con là các bản sao chính
xác của mỗi cặp cha mẹ Giả sử rằng, trong ví dụ trên, cha mẹ B và D lai ghép sau vị
trí bit đầu tiên để tạo thành con cháu E = 10110100 và F = 01101110, cha mẹ B và C
không lai ghép Tiếp theo, mỗi con cháu phải chịu đột biến tại mỗi vị trí với xác suất
p m Ví dụ, giả sử con cháu E bị đột biến tại vị trí thứ sáu để tạo thành E’ =10110000,
con cháu F và C không bị đột biến, con cháu B bị đột biến tại vị trí đầu tiên để tạo
thành B’ = 01101110 Quần thể mới sẽ như sau:
Nhãn nhiễm sắc thể Chuỗi biểu diễn nhiễm sắc thể Độ thích nghi
C 00100000 1
Chú ý rằng, trong quần thể mới, mặc dù chuỗi tốt nhất (có độ thích nghi là 6) bị
mất, độ thích nghi trung bình tăng từ 12/4 thành 14/4 Quá trình lặp lại thủ tục này sau
cùng sẽ đưa đến một chuỗi tốt nhất
4 Các tính chất quan trọng của giải thuật di truyền
a GA lập luận có tính chất ngẫu nhiên để tìm giải pháp tối ưu cho những vấn đề phức
tạp Tuy nhiên đây là hình thức ngẫu nhiên có hướng dẫn bởi trị số thích nghi Chính
hàm số thích nghi là vật chỉ đường cho GA tìm giải pháp tối ưu trong rất nhiều giải
pháp có thể có
b Vấn đề thích hợp nhất cho GA là tìm điều kiện tối ưu Tối ưu đây không nhất thiết
phải là tuyệt đối, nhưng có thể chỉ là tương đối trong hoàn cảnh và thời gian cho phép
c Một đặc điểm khác của GA là lý thuyết này thích hợp cho những trường hợp phải
tìm kiếm Nếu chúng ta phải tìm giải pháp trong trăm hay nghìn đáp số thì GA là kỹ
thuật phải được chọn trước nhất Trước đây phương thức “leo đồi” (hill climbing) rất
thích hợp cho trường hợp này, tuy nhiên thường cung cấp giải pháp có tính địa phương
thay vì toàn diện như GA
d Một trong những bước quan trọng và khó khăn nhất là tìm hàm số thích nghi
(fitness function) Hàm số thích nghi phải có liên hệ trực tiếp đến vấn đề cần giải
quyết
e GA và mạng nơ ron nhận tạo đều thuộc nhóm khoa học trí tuệ nhân tạo, tuy nhiên
GA lập luận theo sự tiến hóa và xét vấn đề ở tầm mức của gen và nhiễm sắc thể,
khác với mạng nơ ron nhân tạo dựa trên các kinh nghiệm và cách giải quyết vấn đề
mà bộ óc con người thường dùng
Muốn giải quyết vấn đề, ANN phải tạo ra một mạng lưới gồm các nơ ron chứa
trong các lớp nhận tin, lớp cho kết quả và lớp trung gian Muốn có kết quả chính xác,
ANN phải có một mạng lưới tối ưu Làm thế nào để chọn một cách tối ưu số lớp, số
nơ ron trong mỗi lớp, hệ số huấn luyện và các chi tiết khác? GA giúp thực hiện việc
Trang 12này
5 Các bước quan trọng trong việc áp dụng giải thuật di truyền
Để giải quyết vấn đề bằng giải thuật di truyền, chúng ta cần thực hiện bảy bước
sau đây:
Bước 1: Chọn mô hình cho giải pháp của vấn đề: chọn một số tượng trưng cho toàn
bộ giải pháp có thể có cho vấn đề
Bước 2: Chỉ định cho mỗi giải pháp một ký hiệu Ký hiệu có thể là dãy của những
số 0 và 1 thuộc hệ nhị phân, hay dãy số thập phân, dãy của chữ hay hỗn hợp của chữ
và số Trong giai đoạn mới làm quen với GA, chỉ nên dùng hệ nhị phân để làm ký
hiệu cho giải pháp
Bước 3: Tìm hàm số thích nghi cho vấn đề và tính hệ số thích nghi cho từng giải
pháp
Bước 4: Dựa trên hệ số thích nghi của giải pháp để thực hiện sự tạo sinh và biến
hóa các giải pháp Các phương thức biến hóa gồm: lai ghép (crossover), đột biến
(mutation)
Bước 5: Tính các hệ số thích nghi cho các giải pháp mới và loại bỏ những giải pháp
kém nhất để chỉ còn giữ lại một số nhất định các giải pháp
Bước 6: Nếu chưa tìm được giải pháp tối ưu hay tương đối khá nhất hay chưa hết
hạn kỳ ấn định, trở lại bước thứ tư để tìm giải pháp mới
Bước 7: Tìm được giải pháp tối ưu hoặc nếu thời gian cho phép đã chấm dứt thì báo
cáo kết quả tính được
6 Cơ chế thực hiện của giải thuật di truyền
Tối ưu hóa là một nội dung quan trọng của tin học ứng dụng có liên quan đến mọi
lĩnh vực của tự nhiên và xã hội
Cho đến nay tuy đã có khá nhiều phương pháp giải quyết bài toán tối ưu hàm số,
nhưng nhìn chung các phương pháp chỉ dừng lại ở những bài toán với thông tin rõ ràng
hoặc với các thông tin bổ trợ khác Do đó việc tìm một phương pháp mới để giải
quyết bài toán tối ưu hàm nhiều biến tổng quát là cần thiết và có ý nghĩa thực tế
Trong phần này chúng ta sẽ đề cập chi tiết việc áp dụng giải thuật di truyền cho
bài toán tối ưu hàm n biến f(x1, x2,…, xn) Biết rằng mỗi biến xi có thể lấy giá trị từ
miền Di = [ai, bi] là tập con của tập số thực R và yêu cầu độ chính xác là k chữ số
thập phân đối với các giá trị biến
6.1 Biểu diễn các biến nhờ các vectơ nhị phân
Bước đầu tiên trong giải thuật di truyền là mã hóa, ánh xạ một xâu với chiều dài
hữu hạn sang các tham biến của bài toán tối ưu Ta muốn tối ưu hàm f với k chữ số
thập phân, để đạt được độ chính xác như vậy miền [ai, bi] được phân cắt thành (bi –
ai)×10k miền con bằng nhau Gọi mi là số nguyên nhỏ nhất sao cho:
(bi – ai)×10k ≤ m i – 1 (1.1)
2
Trang 13Như vậy biến xi thuộc [ai, bi] sẽ được biểu diễn bởi chuỗi nhị phân có chiều dài m i
L bit mã hóa x ứng với giá trị trong miền [0; ] sẽ được ánh xạ lên các giá trị thuộc
miền xác định [a
i m2
i, bi] Theo cách này chúng ta có thể kiểm soát miền giá trị của các biến và tính chính xác của chúng Tỷ lệ co dãn của ánh xạ này được cho bởi:
1 2
g
i
m −
= b i - a i (1.2)
Ta thấy giá trị xi tương ứng với mã string2 sẽ được xác định theo công thức:
x = xmin + decimal(string2) *g (1.3)
trong đó decimal(string2) biểu diễn giá trị thập phân của chuỗi nhị phân string2
Bây giờ mỗi nhiễm sắc thể (là một lời giải) được biểu diễn bằng chuỗi nhị phân có
=
= n
1 i i
m
m 1 bit đầu tiên biểu diễn các giá trị trong khoảng [a1, b1], m 2 bit
kế tiếp biểu diễn giá trị trong khoảng [a2, b2]…nhóm mn bit cuối cùng biểu diễn giá trị
trong khoảng [an, bn]
6.2 Toán tử chọn cá thể
Toán tử chọn lọc là thao tác xử lý trong đó mỗi cá thể được bảo lưu cho vòng tạo
sinh tiếp theo tùy thuộc vào giá trị thích nghi của nó Toán tử này là một phiên bản
mô phỏng của quá trình tự nhiên Giá trị thích nghi eval(vi) được xác định đối với mỗi
cá thể trong quần thể Giá trị này càng lớn thì cá thể được coi là hợp lý Hàm thích
nghi có thể là hàm không liên tục, hàm dương hay phi tuyến Đối với tiến trình chọn
lọc, ta dùng bánh xe ru lét với các rãnh được định kích thước theo độ thích nghi Ta
xây dựng bánh xe ru lét như sau (giả sử rằng, các độ thích nghi đều dương, trong
trường hợp ngược lại thì ta có thể dùng một vài phép biến đổi tương ứng để định lại tỷ
lệ sao cho các độ thích nghi đều dương):
• Tính độ thích nghi eval(vi) của mỗi nhiễm sắc thể vi (i=1…pop_size),
• Tìm tổng giá trị thích nghi toàn quần thể ∑− ,
=
=pop size
1 i
i ) v ( eval F
• Tính xác suất chọn pi cho mỗi nhiễm sắc thể vi (i=1…pop_size) pi = eval(vi)/F,
• Tính vị trí xác suất qi của mỗi nhiễm sắc thể vi (i=1…pop_size) ∑
=
1 j j
q
Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe ru lét pop_size lần, mỗi
lần chọn một nhiễm sắc thể từ quần thể hiện hành vào quần thể mới theo cách sau:
• Phát sinh ngẫu nhiên một số r trong khoảng [0…1],
• Nếu r < q1 thì chọn nhiễm sắc thể đầu tiên v1, ngược lại chọn nhiễm sắc thể thứ i,
vi (2 ≤ i ≤ pop_size) sao cho qi-1 < r ≤ qi
6.3 Toán tử lai ghép
Toán tử chọn lọc nhằm chọn ra những cá thể tồn tại tốt nhất nhưng nó không tạo ra
Trang 14những 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ả hai: cha và mẹ Toán tử tác động trên các cá thể cha mẹ để tạo ra những
con lai tốt được gọi là lai ghép Chúng được áp dụng lên cặp cha mẹ được chọn lựa
với xác suất lai ghép ký hiệu bởi pc Xác suất này cho chúng ta số lượng pc*pop_size
nhiễm sắc thể được dùng cho hoạt động lai ghép, ở đây pop_size là kích thước của
quần thể được lai tạo
Với mỗi nhiễm sắc thể trong quần thể:
• Phát sinh một số ngẫu nhiên r trong miền [0, 1],
• Nếu r < pc, chọn nhiễm sắc thể đó để lai ghép
Sau đó ta kết hợp các nhiễm sắc thể được chọn một cách ngẫu nhiên
Mỗi cặp nhiễm sắc thể, chúng ta có thể phát sinh một số ngẫu nhiên pos trong
khoảng [1, m] (m là tổng số bit trong một nhiễm sắc thể) Số pos báo hiệu vị trí điểm
lai ghép Hai nhiễm sắc thể:
(b1b2… bposbpos+1…bm)
và (c1c2… cposcpos+1….cm)
được thay thế bằng cặp con cháu:
(b1b2… bposcpos+1….cm)
(c1c2… cposbpos+1…bm)
Như vậy sản xuất ra hai chuỗi mới, mỗi chuỗi đều được thừa hưởng những đặc tính
lấy từ cha và mẹ của chúng Chọn lựa cá thể và lai ghép cho phép giải thuật di truyền
sử dụng những thông tin đã có để tìm kiếm trực tiếp trên những vùng tốt hơn
6.4 Toán tử đột biến
Các toán tử đột biến nhằm tạo ra những thông tin mới trong quần thể lai tạo tại các
vị trí bit nào đó (quần thể được xem xét có pop_size cá thể, mỗi cá thể được biểu thị
qua L bit/gen) Đột biến được áp dụmg với xác xuất pm Số lượng bit đột biến là
pm*m*pop_size bit Mỗi bit có cơ hội đột biến như nhau và được thay đổi từ 0 thành 1
hay ngược lại Có thể xử lý như sau:
Với mỗi nhiễm sắc thể trong quần thể và mỗi bit trong nhiễm sắc thể:
• Phát sinh một số ngẫu nhiên r trong khoảng [0, 1],
• Nếu r < pm, tiến hành đột biến bit đó
Các thao tác xử lý này được áp dụng lặp lại cho tới khi các cá thể con cháu của
chúng tăng trưởng tới kích cỡ mong muốn của quần thể
6 5 Hàm thích nghi
Vì hàm thích nghi phải nhận giá trị không âm, do đó cần phải xây dựng ánh xạ
hàm mục tiêu đang xét trong 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 đánh giá g(x), việc chuyển từ
hàm đánh giá sang hàm thích nghi để sử dụng với GA như sau:
− <
C g
khi g
⎩
⎨
⎧
= 0
) x ( )
x ( C
) x
Trang 15
Ở đây Cmax là một tham số đầu vào Ví dụ, có thể lấy Cmax là giá trị g lớn nhất
trong quần thể hiện tại, hoặc lớn nhất sau k vòng lặp Nói chung Cmax khác nhau tùy
thuộc vào giá trị các biến của quần thể
Khi hàm mục tiêu gốc tăng hoặc đang xét bài toán cực đại của hàm u(x), chúng ta
có thể chuyển sang hàm thích nghi như sau:
⎩
⎨
⎧ + + >
= 0
0 C ) x ( u khi C
) x ( u ) x
hiện tại hoặc trong k vòng lặp cuối cùng hoặc là một hàm của biến quần thể
Ví dụ: Ta cần cực đại hóa hàm sau đây:
f(x1, x2) = 21.5 + x1×sin(4πx1) + x2×sin(20πx2)
với -3 ≤ x1 ≤ 12.1 và 4.1 ≤ x2 ≤ 5.8
Giả sử ta cần tính chính xác đến 4 số lẻ đối với mỗi biến, miền của biến x1 có
chiều dài 15.1, điều kiện chính xác đòi hỏi đoạn [-3, 12.1] cần được chia thành các
khoảng có kích thước bằng nhau, ít nhất là 15.1×10000 khoảng Điều này nghĩa là cần
18 bit làm phần đầu tiên của nhiễm sắc thể:
217 ≤ 151000 ≤ 218
Miền của biến x2 có chiều dài 1.7, điều kiện chính xác đòi hỏi đoạn [4.1, 5.8] cần
được chia thành các khoảng có kích thước bằng nhau, ít nhất là 1.7×10000 khoảng
Điều này nghĩa là cần 15 bit làm phần thứ hai của nhiễm sắc thể:
214 ≤ 17000 ≤ 215
Chiều dài toàn bộ nhiễm sắc thể lúc này là m = 18+15 = 33 bit; 18 bit đầu tiên mã
hóa x1, và 15 bit còn lại (từ 19 đến 33) mã hóa x2
Ta hãy xét một nhiễm sắc thể làm thí dụ:
010001001011010000111110010100010
18 bit đầu tiên 010001001011010000 biểu diễn
x1=-3 + decimal(0100010010110100002)×
1 2
) 3 ( 1 12
15 bit kế tiếp 111110010100010, biểu diễn:
x2 = 4.1 + decimal(1111100101000102)×
1 2
1 4 8 5
15 −
32767
7
1 =5.755330 Như vậy, nhiễm sắc thể 010001001011010000111110010100010 tương ứng với
<x1, x2> = <1.052426, 5.755330>
Độ thích nghi của nhiễm sắc thể này là:
f(1.052426, 5.755330) = 20.252640
Để cực đại hóa hàm f bằng giải thuật di truyền, ta tạo một quần thể pop_size = 20
nhiễm sắc thể Cả 33 bit trong tất cả các nhiễm sắc thể đều được khởi tạo ngẫu nhiên
Giả sử rằng sau tiến trình khởi tạo, ta có quần thể sau đây:
Trang 16
Trong giai đoạn lượng giá ta giải mã từng nhiễm sắc thể và tính các giá trị hàm
thích nghi từ các giá trị (x1, x2) mới giải mã Ta có:
Trang 17eval(v20) = f(7.935998, 4.757338) = 13.666916
Rõ ràng nhiễm sắc thể v15 mạnh nhất và nhiễm sắc thể v2 yếu nhất Bây giờ ta xây
dựng hệ thống cấu trúc bánh xe ru lét cho tiến trình chọn lọc Tổng độ thích nghi của
quần thể là:
i ) 387 776822 v
( eval F
Xác suất chọn lọc pi của mỗi nhiễm sắc thể vi (i=1…20) là:
Bây giờ ta quay bánh xe ru lét 20 lần; mỗi lần chọn một nhiễm sắc thể cho quần
thể mới Giả sử thứ tự (ngẫu nhiên) của 20 số trong khoảng [0, 1] được phát sinh là:
0.513870 0.175741 0.308652 0.534534 0.947628
0.171736 0.702231 0.226431 0.494773 0.424720
0.703899 0.389647 0.277226 0.368071 0.983437
0.005398 0.765682 0.646473 0.767139 0.780237
Số đầu tiên r = 0.513870 lớn hơn q10 và nhỏ hơn q11, nghĩa là nhiễm sắc thể v11
được chọn vào quần thể mới; số thứ hai 0.175741 lớn hơn q3 nhỏ hơn q4, nghĩa là v4
được chọn cho quần thể mới
Như vậy quần thể mới gồm có các nhiễm sắc thể sau:
Trang 18Bây giờ ta sẽ áp dụng phép toán kết hợp, lai cho những cá thể trong quần thể mới
(các vectơ ) Xác suất lai p,
i
v c = 0.25 vì thế ta hy vọng (trung bình) 25% nhiễm sắc thể
(nghĩa là 5/20) sẽ tham gia lai tạo Ta tiến hành theo cách sau: đối với mỗi nhiễm sắc
thể trong quần thể mới ta phát sinh ngẫu nhiên một số r trong khoảng [0, 1], nếu r <
0.25, ta chọn một nhiễm sắc thể cho trước để lai tạo
Giả sử thứ tự các số ngẫu nhiên là:
Điều này có nghĩa là các nhiễm sắc thể , , , đã được chọn để lai tạo (ở
đây ta thấy số nhiễm sắc thể được chọn là chẵn, vậy có thể ghép thành cặp một cách
dễ dàng Trường hợp là số lẻ, chúng ta sẽ cộng thêm một nhiễm sắc thể ngoại hoặc
lấy bớt một nhiểm sắc thể một cách ngẫu nhiên Bây giờ ta cho phối hợp một cách
ngẫu nhiên, nghĩa là, hai nhiễm sắc thể đầu tiên (ví dụ , ) và cặp kế tiếp
( , ) được kết cặp Đối với mỗi cặp trong hai cặp này, ta phát sinh một số nguyên
ngẫu nhiên pos thuộc khoảng {1,…,32} (32+1 là tổng chiều dài-số bit-trong một nhiễm
sắc thể) Số pos cho biết vị trí của điểm lai tạo Cặp nhiễm sắc thể đầu tiên là:
, 2
v v11, v13, v18,
, 2
11v,
Trang 19và giả sử số phát sinh là pos = 9 Các nhiễm sắc thể này bị cắt sau bit thứ 9 và được
thay bằng cặp con của chúng:
Phép toán kế tiếp, đột biến, được thực hiện trên cơ sở từng bit một Xác suất đột
biến pm = 0.01, vì thế ta hy vọng (trung bình) 1/100 số bit sẽ qua đột biến Có 660 bit
(m×pop_size=33×20) trong toàn quần thể, chúng ta hy vọng (trung bình) 6.6 bit đột
biến trong mỗi thế hệ Mỗi bit có cơ hội đột biến ngang nhau, vì thế, đối với mỗi bit
trong quần thể, ta phát sinh ngẫu nhiên một số r trong khoảng [0, 1], nếu r < 0.01, ta
Trang 20đột biến bit này
Điều này có nghĩa là ta phải phát sinh 660 số ngẫu nhiên Giả sử có 5 trong số 660
số này nhỏ hơn 0.01, vị trí bit và số ngẫu nhiên được trình bày dưới đây:
Vị trí bit Số ngẫu nhiên
Điều này có nghĩa là 4 nhiễm sắc thể chịu ảnh hưởng của phép toán đột biến: một
trong số này là nhiễm sắc thể thứ 13, có hai bit bị thay đổi
Quần thể cuối cùng được liệt kê ở dưới; các bit đột biến được tô đậm và gạch dưới
Trang 21Ta vừa hoàn thành một bước lặp (nghĩa là một thế hệ) của thủ tục di truyền Ta
xem xét một chút các kết quả của tiến trình tiến hóa quần thể mới Trong thời kỳ tiến
hóa, ta giải mã từng nhiễm sắc thể và tính các giá trị của hàm thích nghi từ giá trị (x1,
x2) vừa được giải mã Ta được:
Chú ý rằng tổng độ thích nghi F của quần thể mới là 447.049688 cao hơn tổng độ
thích nghi của quần thể trước nhiều (387.776.882) Cũng thế, nhiễm sắc thể tốt nhất
hiện nay v11 có độ thích nghi 33.351874 tốt hơn nhiễm sắc thể tốt nhất v15 của quần
thể trước 30.060205
Tiến trình lặp lại lần nữa và các phép toán di truyền được áp dụng, lượng giá thế
hệ kế tiếp…Giả sử sau 1000 thế hệ ta được quần thể:
Trang 23Tuy nhiên, nếu ta khảo sát tiến trình trong khi chạy, ta có thể khám phá ra rằng
trong những thế hệ đầu, các giá trị thích nghi của một số nhiễm sắc thể tốt hơn giá trị
35.477938 của nhiễm sắc thể tốt nhất sau 1000 thế hệ, điều này là do các lỗi tạo mẫu
hỗn loạn
Không khó để theo dõi cá thể tốt nhất trong tiến trình tiến hóa Thông thường
(trong cài đặt giải thuật di truyền) cá thể tốt “trội hơn cả” được lưu trữ tại một vị trí
riêng biệt; bằng cách đó giải thuật có thể duy trì cá thể tốt nhất tìm được trong suốt
quá trình (cá thể tốt nhất trong quần thể cuối cùng chưa hẳn là cá thể tốt nhất)
Trang 24Chương 2: MẠNG NƠ RON NHÂN TẠO
1 Lịch sử ngiên cứu và ứng dụng mạng nơ ron
1.1 Lịch sử nghiên cứu
Những năm 1940 có thể xem là mốc khởi đầu của các nghiên cứu về mạng nơ ron với đề xuất mô hình xử lý thông tin tại các nơ ron và mạng nơ ron của Mc Culloch-Pitts và giải thuật huấn luyện mạng của Hebb
Những năm 50 và 60 là thời kỳ hưng thịnh của mạng nơ ron với các công trình của Rosenblatt (1960) về mạng Perceptron, giải thuật huấn luyện mạng ADALINE và bài báo bình giải của Minsky và Papert về mạng Perceptron
Những năm 70 mạng nơ ron rơi vào trạng thái im lặng cả về nghiên cứu và ứng dụng Tuy vậy có thể kể đến các nghiên cứu về quá trình học của mạng nhiều lớp, mạng tự tổ chức của Kohonen, mạng kiểu bộ nhớ kết hợp (BAM) của Anderson, mạng ART (Adaptive Resonance Theory NN) của Capenter
Những năm 80 là thời kỳ phục hưng của các nghiên cứu và ứng dụng mạnh mẽ của các mạng nơ ron với các nghiên cứu về giải thuật học dựa trên lan truyền ngược sai số (backpropagation of errors), mạng một lớp của Hopfield, mạng theo kiểu máy Boltzmann và mạng Neocognitron của Fukushima
Từ đầu những năm 90 đến nay, mạng nơ ron đã tìm được và khẳng định được vị trí của mình trong khá nhiều ứng dụng khác nhau trong công nghệ nhờ kết hợp chúng với các kỹ thuật của trí tuệ nhân tạo: giải thuật di truyền, logic mờ và suy diễn xấp xỉ, hệ chuyên gia để phân tích dữ liệu và thu thập tri thức phục vụ cho các hệ thống thông minh lai
Trong lĩnh vực công nghệ sử dụng khá hiệu quả các mạng nơ ron và hệ thống thông minh lai là: hóa học, vật liệu, điều khiển, kinh tế, môi trường…
1.2 Các ứng dụng mẫu của mạng nơ ron nhân tạo
Một cái nhìn toàn diện về tất cả những ứng dụng của mạng nơ ron nhân tạo (thử nghiệm đã thành công hoặc đang mường tượng) là không thực tế Tuy vậy, trong các tạp chí, sách chuyên ngành và các tập kỷ yếu trong các hội nghị sẽ thấy những ví dụ minh họa Các ứng dụng gồm:
• Xử lý ảnh và nhìn bằng máy tính: gồm trùng khớp ảnh, tiền xử lý ảnh, phân
đoạn và phân tích, nhìn bằng máy tính (ví dụ kiểm tra các mạch), nén ảnh, nhìn nổi, xử lý và hiểu các hình ảnh thay đổi theo thời gian
• Xử lý tín hiệu: gồm phân tích tín hiệu địa chấn và hình thái học
• Nhận dạng mẫu: gồm việc tách ra các nét đặc biệt của mẫu, phân loại và phân
tích tín hiệu rada, nhận dạng và hiểu tiếng nói, nhận dạng vân tay, nhận dạng ký tự, và phân tích chữ viết
• Y học: gồm phân tích và hiểu các tín hiệu điện tâm đồ, chẩn đoán bệnh, và xử lý
ảnh y học
Trang 25• Các hệ thống trong quân sự: gồm phát hiện thủy lôi, phân loại luồng rađa, và
nhận dạng người nói một cách tài tình
• Các hệ thống tài chính: gồm phân tích thị trường chứng khoán, định giá bất động
sản, cấp phép thẻ tín dụng và thương mại an toàn
• Quy hoạch, kiểm tra và tìm kiếm: gồm cài đặt song song các bài toán thỏa mãn
cá ràng buộc, tìm nghiệm của bài toán người du lịch đi buôn, điều khiển và robot
• Trí tuệ nhân tạo: gồm các hệ abductive và cài đặt hệ chuyên gia
• Các hệ điện lực: gồm dự đoán trạng thái hệ thống, kiểm tra và phân loại nhất thời, kiểm tra và khôi phục lỗi, dự đoán sức tải và thẩm định an toàn
• Các nhân tố con người (giao diện)
2 Bộ não và nơ ron sinh học
Từ lâu, hàng ngàn năm trước đây con người đã đổ công nghiên cứu phương cách làm cho bộ não có khả năng tư duy Ngay từ năm 335 trước công nguyên, nhà triết học Arixtốt đã viết:” trong số các động vật cao cấp, con người có bộ não lớn nhất so với kích thước của mình” Tuy vậy, phải tới giữa thế kỷ 18 người ta mới xác nhận được rằng bộ não thực sự đóng vai trò quan trọng bậc nhất trong nhận thức Cuối thế kỷ thứ 19, các nhà khoa học còn khẳng định rằng hoạt động nhận thức của con người còn gắn liền với hoạt động của các bộ phận cơ thể khác như: tim, lá lách, tuyến tùng và tủy sống
Các nhà nghiên cứu sinh học về bộ não cho ta biết rằng các nơ ron (tế bào thần kinh) là đơn vị cơ sở đảm nhiệm những chức năng xử lý nhất định trong hệ thần kinh, bao gồm não, tủy sống và các dây thần kinh Mỗi nơ ron có phần thân với nhân bên trong (gọi là xoma), một đầu dây thần kinh ra (gọi là sợi trục axon) và một hệ thống dạng cây các dây thần kinh vào (gọi là dendrite) Các dây thần kinh vào tạo thành một lưới dày đặc xung quanh thân tế bào, chiếm diện tích khoảng 0.25 mm2, còn dây thần kinh ra tạo thành trục dài có thể từ 1 cm cho đến hàng mét Đường kính của nhân tế bào thường chỉ là 10-4 m Trục dây thần kinh ra cũng có thể phân nhánh theo dạng cây để nối với các dây thần kinh vào hoặc trực tiếp với nhân tế bào các nơ ron khác thông qua các khớp nối (gọi là synapse) Thông thường, mỗi nơ ron có thể gồm vài chục cho tới hàng trăm ngàn khớp nối để nối với các nơ ron khác Người ta ước lượng rằng lưới các dây thần kinh ra cùng với các khớp nối bao phủ diện tích khoảng 90% bề mặt nơ ron Các tín hiệu truyền trong các dây thần kinh vào và dây thần kinh ra của các nơ ron là tín hiệu điện và được thực hiện thông qua các quá trình phản ứng và giải phóng các chất hữu cơ Các chất này được phát ra từ các khớp nối dẫn tới các dây thần kinh vào sẽ làm tăng hay giảm điện thế của nhân tế bào Khi điện thế này đạt tới một ngưỡng nào đó, sẽ tạo ra một xung điện dẫn tới trục dây thần kinh ra Xung này được truyền theo trục, tới các nhánh rẽ khi chạm tới các khớp nối với các nơ ron khác sẽ giải phóng các chất truyền điện Người ta chia làm hai loại khớp nối: khớp nối kích thích (exitatory) hoặc khớp nối ức chế (inhibitory)
Trang 26Phát hiện quan trọng nhất trong ngành nghiên cứu về bộ não là các liên kết khớp thần kinh khá mềm dẻo có thể biến động và chỉnh đổi theo thời gian tùy thuộc vào các dạng kích thích Hơn nữa, các nơ ron có thể sản sinh các liên kết mới với các nơ ron khác và đôi khi, lưới các nơ ron có thể di trú từ vùng này sang vùng khác trong bộ não Các nhà khoa học cho rằng đây chính là cơ sở quan trọng để giải thích cơ chế học của bộ não con người
Phần lớn các quá trình xử lý thông tin đều xảy ra trên vỏ não Toàn bộ vỏ não được bao phủ bởi mạng các tổ chức cơ sở có dạng hình thùng tròn với đường kính khoảng 0.5 mm, độ cao 4 mm Mỗi đơn vị cơ sở này chứa khoảng 2000 nơ ron Người ta chỉ ra rằng mỗi vùng não có những chức năng nhất định Năm 1861, Pierre Paul Broca đã chỉ ra rằng phần vỏ não phía trước bên trái điều khiển khả năng và sự phát triển ngôn ngữ Bán cầu đại não trái chịu trách nhiệm các xử lý thông tin nhận thức theo những quy trình giải thuật nhất định, còn bán cầu đại não phải gắn với các xử lý thông tin tiềm thức phi giải thuật như linh cảm, linh tính…Các nghiên cứu thực nghiệm còn chứng tỏ rằng các liên kết giữa các vùng não với các bộ phận cơ thể có thể thay đổi và đối với một số động vật cao cấp các liên kết kiểu này có thể ở dạng kép Tuy vậy, các chuyên gia nghiên cứu cho đến nay vẫn chưa hiểu cặn kẽ cơ chế thay thế chức năng của các vùng cho nhau khi có một vùng nào đó bị tổn thương
Điều rất đáng ngạc nhiên chính là các nơ ron rất đơn giản trong cơ chế làm việc, nhưng mạng các nơ ron liên kết với nhau lại có khả năng tính toán, suy nghĩ, ghi nhớ và điều khiển Có thể điểm qua những chức năng cơ bản của bộ não như sau:
• Bộ não được tổ chức theo các bó thông tin và truy nhập theo nội dung
• Bộ bão có khả năng tổng quát hóa, có thể truy xuất các tri thức hay các mối liên kết chung của các đối tượng tương ứng với một khái niệm chung nào đó
• Bộ não có khả năng dung thứ lỗi theo nghĩa có thể điều chỉnh hoặc tiếp tục thực hiện ngay khi có những sai lệch do thông tin bị thiếu hoặc không chính xác Ngoài ra, bộ não còn có thể phát hiện và phục hồi các thông tin bị mất dựa trên sự tương tự giữa các đối tượng
• Bộ não có khả năng xuống cấp và thay thế dần dần Khi có những trục trặc tại các vùng não (bệnh, chấn thương) hoặc bắt gặp những thông tin hoàn toàn mới lạ, bộ não vẫn có thể tiếp tục làm việc
• Bộ não có khả năng học
So sánh khả năng làm việc của bộ não và máy tính:
Trang 27Dễ dàng thấy rằng bộ não con người có thể lưu trữ nhiều thông tin hơn các máy tính hiện đại Tuy rằng điều này không phải đúng mãi mãi, bởi lẽ bộ não tiến hóa chậm, trong khi đó nhờ những tiến bộ trong công nghệ vi điện tử, bộ nhớ máy tính được nâng cấp rất nhanh Hơn nữa, sự hơn kém về bộ nhớ trở nên hoàn toàn thứ yếu
so với sự khác biệt về tốc độ tính toán và khả năng xử lý song song Các bộ vi xử lý có thể tính đến 108 lệnh trong một giây, trong khi đó mạng nơ ron xử lý chậm hơn, cần khoảng vài miligiây để kích hoạt Tuy nhiên, bộ não có thể kích hoạt hầu như cùng một lúc tại rất nhiều nơ ron và khớp nối, trong khi đó ngay cả máy tính hiện đại cũng chỉ có một số hạn chế các bộ vi xử lý song song Nếu chạy một mạng nơ ron nhân tạo trên máy tính, phải tốn hàng trăm lệnh máy để kiểm tra một nơ ron có được kích hoạt hay không (tiêu phí khoảng 10-8×102 giây/nơ ron) Do đó dầu bộ vi xử lý có thể tính toán nhanh hơn hàng triệu lần so với các nơ ron bộ não, nhưng xét tổng thể bộ não lại tính toán nhanh hơn hàng tỷ lần
Cách tiếp cận mạng nơ ron nhân tạo có ý nghĩa thực tiễn rất lớn cho phép tạo ra các thiết bị có thể kết hợp khả năng song song cao của bộ não với tốc độ tính toán cao của máy tính Tuy vậy, cần phải có một khoảng thời gian dài nữa để các mạng nơ ron nhân tạo có thể mô phỏng được các hành vi sáng tạo của bộ não con người Chẳng hạn, bộ não có thể thực hiện một nhiệm vụ khá phức tạp như nhận ra khuôn mặt người quen sau không quá 1 giây, trong khi đó một máy tính tuần tự phải thực hiện hàng tỷ phép tính (khoảng 10 giây) để thực hiện cùng thao tác đó, nhưng với chất lượng kém hơn nhiều, đặc biệt trong trường hợp thông tin không chính xác, không đầy đủ
3 Định nghĩa mạng nơ ron nhân tạo
Mạng nơ ron là hệ thống bao gồm nhiều phần tử xử lý đơn giản (nơ ron) kết nối với nhau, hoạt động song song Mỗi phần tử có những đặc tính nhập/xuất (I/O) và cài đặt một tính toán hay chức năng cục bộ Đầu ra của một phần tử được xác định bởi các đặc tính nhập/xuất của nó, các mối liên hệ của nó với những phần tử khác (các trọng số liên kết nơ ron), và (có thể) đầu vào bên ngoài Mạng nơ ron có thể học từ dữ liệu mẫu và tổng quát hóa dựa trên các dữ liệu mẫu học
3.1 Phân loại các mạng nơ ron
3.1.1 Theo kiểu liên kết nơ ron
Ta có mạng nơ ron truyền thẳng (Feed-Forward Neural Network) và mạng nơ ron
hồi quy (recurrent Neural Network) Trong mạng nơ ron truyền thẳng các liên kết nơ ron đi theo một hướng nhất định, không tạo thành chu trình (Directed Acyclic Graph) với các đỉnh là các nơ ron, các cung là các liên kết giữa chúng Ngược lại, các mạng hồi quy cho phép các liên kết nơ ron tạo thành chu trình Vì các thông tin ra của các
nơ ron được truyền lại cho các nơ ron đã góp phần kích hoạt chúng, nên mạng hồi quy có khả năng lưu trữ trạng thái trong của nó dưới dạng các ngưỡng kích hoạt ngoài các trọng số liên kết nơ ron
Trang 283.1.2 Theo số lớp
Các nơ ron có thể tổ chức lại thành các lớp sao cho mỗi nơ ron của lớp này chỉ được nối với các nơ ron ở lớp tiếp theo, không cho phép các liên kết giữa các nơ ron trong cùng một lớp, hoặc từ nơ ron lớp dưới lên nơ ron lớp trên, ở đây cũng không cho phép các liên kết nơ ron nhảy qua một lớp
Hình 1: Mạng nơ ron truyền thẳng nhiều lớp
Hình 2: Mạng nơ ron hồi quy
nơ ron ở hình 2 có hai lớp: một lớp ẩn và một lớp ra
3.2 Hai cách nhìn về mạng nơ ron
3.2.1 Mạng nơ ron như một công cụ tính toán
Giả sử mạng nơ ron NN có I nơ ron vào và K nơ ron ra Khi đó mỗi vectơ các tín
hiệu vào x = (x1, x2,…, xI), sau quá trình tính toán tại các nơ ron ẩn, ta nhận được kết quả ra y = (y1, y2,…,yK) Theo nghĩa nào đó mạng nơ ron làm việc với tư cách một bảng tra, mà không cần biết dạng phụ thuộc hàm tường minh giữa y và x Khi đó ta viết:
y = Tinh(x, NN) (2.1) Cần lưu ý thêm rằng các nơ ron trên cùng một lớp có thể tính toán đồng thời, do vậy độ phức tạp tính toán nói chung sẽ phụ thuộc vào số lớp mạng Các thông số cấu trúc mạng nơ ron bao gồm:
Trang 29• Số tín hiệu vào, số tín hiệu ra,
• Số lớp nơ ron,
• Số nơ ron trên mỗi lớp,
• Số lượng liên kết của mỗi nơ ron (liên kết đầy đủ, liên kết bô phận và liên kết ngẫu nhiên),
• Các trọng số liên kết nơ ron
3.2.2 Mạng nơ ron như một hệ thống thích nghi
Có khả năng học (huấn luyện) để tinh chỉnh các trọng số liên kết cũng như cấu trúc của mình sao cho phù hợp với các mẫu học (samples) Người ta phân biệt ba loại kỹ thuật học:
i Học có giám sát (supervised learning)
ii Học không có giám sát (unsupervised learning)
iii Học tăng cường
Trong học có giám sát: mạng được cung cấp một tập mẫu học {(xs, ys)} theo nghĩa
xs là các tín hiệu vào, thì kết quả ra đúng của hệ phải là ys Ở mỗi lần học, vectơ tín hiệu vào xs được đưa vào mạng, sau đó so sánh sự sai khác giữa các kết quả ra đúng
ys với kết quả tính toán outs Sai số này sẽ được dùng để hiệu chỉnh lại các trọng số liên kết trong mạng Quá trình cứ tiếp tục cho đến khi thỏa mãn một tiêu chuẩn nào đó Có hai cách sử dụng tập mẫu học: hoặc dùng các mẫu lần lượt, hết mẫu này đến mẫu khác, hoặc sử dụng đồng thời tất cả các mẫu cùng một lúc
Các mạng với cơ chế học không giám sát được gọi là các mạng tự tổ chức Các kỹ thuật học trong mạng nơ ron có thể nhằm vào hiệu chỉnh các trọng số liên kết (gọi là học tham số) hoặc điều chỉnh, sửa đổi cấu trúc của mạng bao gồm số lớp, số nơron, kiểu và trọng số các liên kết (gọi là học cấu trúc) Cả hai mục đích học này có thể thực hiện đồng thời hoặc tách biệt
Học tham số: giả sử có m nơ ron trong mạng và mỗi nơ ron có đúng n liên kết vào
với các nơ ron khác Khi đó ma trận trọng số liên kết a sẽ có kích thước m×n Các thủ tục học tham số nhằm mục đích tìm kiếm ma trận a sao cho:
yk = Tinh(xk, a) đối với mọi mẫu học s = (xk, yk) (2.2)
Mạng nơ ron N
outk
yk
xk
Hình 3: Học tham số có giám sát
Học cấu trúc: với học tham số ta giả định rằng mạng có một cấu trúc nhất định
Việc học cấu trúc của mạng truyền thẳng gắn với yêu cầu tìm ra số lớp của mạng L và số nơ ron trên mỗi lớp nj Tuy nhiên, với các mạng hồi quy còn phải xác định thêm
Trang 30các tham số ngưỡng θ của các nơ ron trong mạng Một cách tổng quát phải xác định bộ tham số P = (L, n1,…, nl, θ1,…, θk)
Ở đây: m = Σnj sao cho yk = Tinh(xk, P) đối với mọi mẫu học s = (xk, yk) (2.3) Về thực chất việc điều chỉnh các vectơ tham số a trong (2.2) và (2.3) đều quy về bài toán tìm kiếm tối ưu trong không gian tham số Do vậy, có thể áp dụng cơ chế tìm kiếm kinh điển theo gradient hay các giải thuật di truyền, lập trình tiến hóa
3.3 Khả năng tính toán và biểu diễn phụ thuộc dữ liệu của mạng nơ ron
Mạng nơ ron truyền thẳng chỉ đơn thuần tính toán các tín hiệu ra dựa trên các tín hiệu vào và các trọng số liên kết nơ ron đã xác định sẵn ở trong mạng Do đó chúng không có trạng thái bên trong nào khác ngoài vectơ trọng số a Đối với mạng hồi quy, trạng thái trong của mạng được lưu giữ tại các ngưỡng của các nơ ron Điều này có nghĩa là quá trình tính toán trên mạng truyền thẳng có lớp lớn hơn trong mạng hồi quy Nói chung, các mạng hồi quy có thể không ổn định, thậm chí rối loạn theo nghĩa: khi cho vectơ giá trị đầu vào x nào đó, mạng cần phải tính toán rất lâu, thậm chí có thể bị lặp vô hạn trước khi đưa ra được kết quả mong muốn Quá trình học của mạng hồi quy cũng phức tạp hơn rất nhiều Tuy vậy, các mạng hồi quy có thể cho phép mô phỏng các hệ thống tương đối phức tạp trong thực tế
3.4 Xác định cấu trúc mạng tối ưu
Như đã nói ở trên, lựa chọn sai cấu trúc mạng có thể dẫn tới hoạt động của mạng trở nên kém hiệu quả Nếu ta chọn mạng quá nhỏ có thể chúng không biểu diễn được sự phụ thuộc dữ liệu mong muốn Nếu chọn mạng quá lớn để có thể nhớ được tất cảc các mẫu học đưới dạng bảng tra, nhưng hoàn toàn không thể tổng quát hóa được cho những tín hiệu vào chưa biết trước Nói cách khác, cũng giống như trong mô hình thống kê, các mạng nơ ron có thể đưa tới tình trạng quá thừa tham số
Bài toán xác định cấu trúc mạng tốt có thể xem như bài toán tìm kiếm trong không gian tham số Một cách làm là sử dụng giải thuật di truyền Tuy vậy không gian tham số có thể rất lớn và để xác định một trạng thái a trong không gian đòi hỏi phải huấn luyện mạng, do vậy rất tốn thời gian Có thể áp dụng tư tưởng tìm kiếm leo đồi (hill-climbing) nhằm sửa đổi một cách có lựa chọn, mang tính địa phương cấu trúc mạng hiện có Có hai cách làm:
• Hoặc bắt đầu bằng mạng lớn, sau đó giảm nhỏ xuống,
• Hoặc bắt đầu bằng một mạng nhỏ sau đó tăng dần lên
Một kỹ thuật có thể áp dụng gọi là “tổn thương tối ưu” nhằm loại bỏ một số liên kết trọng số trong mạng dựa trên cách tiếp cận lý thuyết thông tin Đơn giản nhất là các liên kết có trọng số bằng 0 Quá trình cứ tiếp tục như vậy Thực nghiệm chỉ ra rằng, kỹ thuật này có thể loại trừ đến 3/4 các liên kết, do đó nâng cao đáng kể hiệu quả của mạng
Ngoài việc lựa chọn các liên kết nơ ron dư thừa, người ta có thể vứt bỏ những nơ ron không đóng góp nhiều vào quá trình thực hiện của mạng
Trang 31Giải thuật “Lợp ngói” là một biến thể của kỹ thuật tăng trưởng mạng xuất phát từ cấu hình ban đầu tương đối nhỏ Ý tưởng ở đây là xác định một cấu hình mạng cho phép tính đúng các mẫu học đã biết Sau đó mỗi khi thêm dần mẫu học mới, mạng được phép thêm một số nơ ron cho phép đoán đúng kết quả học hiện tại và quá trình cứ tiếp tục như vậy
3.5 Các vấn đề thường gặp khi sử dụng mạng nơ ron nhân tạo
3.5.1 Kích thước mẫu
Không có nguyên tắc nào hướng dẫn kích thước mẫu phải là bao nhiêu đối với một bài toán được cho Việc chọn kỹ thuật mô hình hóa sẽ là nhân tố ảnh hưởng đến mối liên hệ giữa kích thước mẫu và độ chính xác của mô hình Hai nhân tố khác cũng rất quan trọng là:
• Dạng của hàm đích: khi hàm đích càng phực tạp thì kích thước mẫu cần tăng
• Nhiễu: khi dữ liệu bị nhiễu (thông tin sai hoặc thiếu thông tin) kích thước mẫu
cần tăng
Cho hàm đích có độ phức tạp nhất định, kèm một lượng nhiễu nhất định, và kỹ thuật mô hình hóa cụ thể thì độ chính xác của mô hình luôn có một giới hạn nhất định Có thể cần một tập mẫu vô hạn để đạt giới hạn chính xác Nói cách khác độ chính xác của mô hình là hàm theo kích thước tập mẫu Khi kích thước tăng độ chính xác sẽ được cải thiện-lúc đầu nhanh, nhưng chậm dần khi tiến đến giới hạn
3.5.2 Biểu diễn biến
Cách biểu diễn các biến có tác động chính trong giai đoạn huấn luyện mạng cũng như khi sử dụng mô hình kết quả Khả năng của mạng trong việc phân biệt, hiệu quả của nó trong việc tổng quát hóa, và thời gian luyện đều chịu ảnh hưởng mạnh bởi hình thức biểu diễn được dùng
Các biến sử dụng trong mô hình-độc lập hay phụ thuộc-thuộc một trong hai kiểu:
biến định lượng và biến lớp Các biến định lượng có thể khá quen thuộc, nhưng biến
lớp cần một chút giải thích Biến lớp có thể chỉ thị một nhóm, một kiểu hay một loại mà một cá nhân hay một vật là thành viên của nhóm đó Mặt khác, một biến lớp có thể chỉ thị một đặc trưng, tính chất mà một vật sở hữu hay chỉ thị một hành động cần chọn
Các biến lớp thường được biểu diễn bằng một chuỗi bit nhị phân, thuật ngữ gọi là
biểu diễn bitstring Trong biểu diễn này mỗi lớp tương ứng một nút trong chuỗi Mỗi
nút chỉ nhận một trong hai trị 0, 1 và toàn bộ chuỗi chỉ có một giá trị 1 Giá trị 1 ở vị trí nào cho biết đối tượng thuộc lớp đó
Phương thức tốt nhất để biểu diễn biến định lượng tùy thuộc vào biến thuộc loại
định lượng nào: biến có trị liên tục, biến tuần hoàn hay biến thứ tự Một ý kiến chung
là không nhất thiết các biến nhập phải nằm trong giới hạn của các hàm truyền của mạng, cũng như không nhất thiết phải định tỷ lệ hay chuẩn hóa các giá trị nhập Có
Trang 32thể chấp nhận việc định tỷ lệ của các biến định lượng theo một khoảng nào đó, nhưng nhớ là các trọng số vẫn không định tỷ lệ
3.5.3 Tổng quát hóa
a Nhiễu
Khi sử dụng mạng, ta muốn mạng dự đoán càng chính xác càng tốt Vì ta không biết trước được mạng sẽ tiên đoán từ dữ liệu cụ thể nào, nên chiến lược của ta là thiết kế để mạng thực hiện một cách tốt nhất nói chung-nghĩa là, đối với toàn bộ số mẫu có được, trích ra một số mẫu trong tập này và dùng để luyện mạng sao cho sai số là nhỏ nhất trên toàn bộ tập mẫu ta có: cả mẫu được dùng để luyện mạng cũng như các mẫu không được dùng Nói cách khác cực tiểu hóa sai số trong quá trình luyện không phải là mối quan tâm hàng đầu Nguyên nhân của cực tiểu hóa sai số trên tập học không phải là cực tiểu hóa sai số trên toàn bộ số liệu là do nhiễu Thông tin thiếu hay
sai gọi là nhiễu
b Quá khớp
Quá khớp là hiện tượng mạng được luyện quá khớp với dữ liệu học (kể cả nhiễu), nên nó sẽ trả lời chính xác những gì nó được học còn những gì nó không được học nó không quan tâm Nghĩa là mạng không có khả năng tổng quát hóa, điều mà ta cần khi sử dụng mạng
Làm sao ta bảo đảm rằng mô hình được xây dựng thi hành tốt khi nó được dùng với dữ liệu mới? Nghĩa là làm sao đánh giá được tính tổng quát hóa của mạng Cách tiếp cận thứ nhất là tăng kích thước mẫu Bất chấp hàm phức tạp cỡ nào, mạng cũng có khả năng tổng quát hóa Có thể ngăn mạng không bị quá khớp bằng cách tạo mẫu luyện đủ lớn để bù cho mức nhiễu trong dữ liệu
c Kiểm tra chéo
Mạng vướng phải vấn đề quá khớp vì nó có năng lực quá lớn Như vậy giải pháp đơn giản nhất là hạn chế bớt năng lực của mạng Ta muốn mạng có năng lực bảo đảm khớp với dữ liệu, nhưng không cần phải quá khớp Có ba cách để hạn chế năng lực
của mạng: hạn chế số nút ẩn; ngăn không cho mạng sử dụng các trọng số lớn; và giới
hạn số bước luyện
Về lý thuyết dù cả ba cách tiếp cận đều tốt, nhưng có vẻ cách giới hạn số bước luyện mạng là phương pháp thích hợp hơn, vì thời gian tính toán sẽ ít hơn những cách kia một cách đáng kể Hạn chế số nút ẩn, dù đây không phải là cách bảo đảm tốt việc tổng quát hóa, nhưng có nhiều lý do để chúng ta quan tâm đến nó Vì khi thiết kế mạng ta phải quyết định số nút ẩn cụ thể của mạng, bao nhiêu nút ẩn là vấn đề cần quan tâm
Kiểm tra chéo là cách xác định tính tổng quát hoá của một mạng qua thực nghiệm, bằng cách kiểm tra mạng trên những mẫu không được học Kiểm tra chéo bằng cách ngừng luyện khi việc quá khớp xảy ra đòi hỏi ít thời gian máy tính hơn so với cách tìm
Trang 33số nút ẩn đúng Kiểm tra chéo bằng cách giới hạn số nút ẩn, ta có thể phải thử nhiều mạng với những số nút ẩn khác nhau, và phải huấn luyện từng mạng cho đến khi nó hội tụ
4 Mô hình mạng nơ ron nhân tạo
Mô hình mạng nơ ron tổng quát có dạng như sau:
trọng số giữa các nơ ron
Đích
Điều chỉnh trọng số
So sánh
Hình 4: Mô hình mạng nơ ron nhân tạo
Ngày nay mạng nơ ron có thể giải quyết nhiều vấn đề phức tạp đối với con người, áp dụng trong nhiều lĩnh vực như nhận dạng, định dạng, phân loại, xử lý tín hiệu, hình ảnh…
4.1 Mô hình nơ ron
Ngõ vào một nơ ron có thể là đại lượng vô hướng hoặc có hướng, đại lượng này được nhân với trọng số tương ứng để đưa vào nơ ron, hoặc có thể cộng thêm trọng ngưỡng (bias), thường bằng 1 Dưới đây là mô hình một nơ ron với ngõ vào vô hướng
x1 không có trọng ngưỡng a0 (hình bên trái) và có trọng ngưỡng a0 (hình bên phải) Ngõ vào vô hướng x1 được nhân với trọng số vô hướng a1 tạo thành a1x1, đối số a1x1(hình bên trái) qua hàm truyền g cho kết quả đầu ra là vô hướng y = g(a1x1) Hình bên phải là nơ ron có trọng ngưỡng a0, giá trị a0 được cộng với a1x1 rồi qua hàm truyền g cho kết quả đầu ra là vô hướng y = g(a1x1 + a0) Có thể điều chỉnh những thông số của
nơ ron như trọng số và trọng ngưỡng (a1 và a0) để đạt được yêu cầu mong muốn nghĩa là “huấn luyện” mạng
Trang 344.2 Hàm truyền
Về mặt hình học, đồ thị của hàm truyền có dạng chữ S-nên ta còn gọi là hàm dạng
S
Một hàm s(u) là một hàm truyền dạng S nếu nó thỏa:
• s(u) là hàm bị chặn,
• s(u) là hàm đơn điệu tăng,
• s(u) là hàm liên tục và trơn Vì hàm s(u) là hàm liên tục nên nó không có khe và
góc cạnh Do tính liên tục và trơn, hàm có đạo hàm và độ dốc của nó rõ ràng và phân biệt tại từng điểm
Mọi hàm thỏa mãn ba tính chất trên đều có thể sử dụng làm hàm truyền trong mạng Tuy nhiên trong thực tế có 3 dạng hàm thường được sử dụng rộng rãi là:
e 1
1 ) u (
1)x(
Hàm dạng bước: step nếu x ≥ 0
nếu x < 0
1 nếu x ≥ 0-1 nếu x < 0
⎩
⎨
⎧
=)x(
Hàm dấu: sign
Khi muốn đầu ra của nơ ron trong khoảng [-1, 1] ta có thể sử dụng một trong hai hàm sau:
e1
e1)u(
−+
−
=
ee
ee)u
−+
−
=
Tổng quát với một hàm truyền có đầu vào là một hoặc một vectơ thì đầu ra là:
y = g (a * x + a0) (2.4) Với y: đầu ra; x: vectơ đầu vào; a: vectơ trọng số; a0: trọng ngưỡng; g: hàm truyền.Vậy một ngõ vào với các hàm truyền khác nhau sẽ cho các kết quả khác nhau Để có giải pháp tối ưu thì cần phải có kinh nghiệm sử dụng các hàm truyền hoặc phải tốn một khoảng thời gian để thử nghiệm hàm truyền
4.3 Nơ ron với vectơ nhập
Một nơ ron được cho trên hình vẽ sau với vectơ nhập x = [x1, x2,…, xI ], trọng số a = [a1, a2,…, aI], trọng ngưỡng a0 và hàm truyền g Tổng đối số và trọng ngưỡng tạo ở ngõ
ra u là:
u = a1x1 + a2x2 +…+ aI xI + a0 (2.6)
Trang 35Hình 6: Nơ ron với vectơ nhập
4.4 Cấu trúc mạng
Hai hay nhiều nơ ron kết hợp thành một lớp, và một mạng riêng biệt có thể chứa một hay nhiều lớp nơ ron
4.4.1 Lớp nơ ron
Trong hình dưới mô tả một lớp nơ ron với I: số phần tử của vectơ đầu vào; J: số nơ ron trong lớp; y: vectơ ngõ ra của lớp nơ ron
Hình 7: Lớp nơ ron
Ma trận trọng số a:
I 1 I
J 2 22
21
J 1 12
11
a
aa
a
aa
a
aaa
Trang 36Một lớp mạng được vẽ gọn như sau:
J×1
x I×1
I
I×J
Hình 8: Lớp nơ ron vẽ gọn
4.4.2 Mạng nơ ron nhiều lớp
Lớp thứ hai Lớp thứ ba
Hình 9: Mạng nơ ron nhiều lớp
Mạng có nhiều lớp, mỗi lớp có một ma trận trọng số a, một trọng ngưỡng a0 và một vectơ ngõ ra y Thông thường giá trị ra của một lớp là giá trị vào của lớp tiếp theo Mỗi lớp trong mạng đảm nhiệm vai trò khác nhau, lớp cho kết quả ở đầu ra của mạng được gọi là lớp xuất (output layer), tất cả các lớp còn lại được gọi là lớp ẩn (hidden layer) Mạng nhiều lớp có khả năng xử lý rất lớn Chẳng hạn như một mạng có hai lớp, lớp thứ nhất là sigmoid, lớp thứ hai là linear có thể được huấn luyện đến một hàm gần đúng với một số kết nối cố định
4.4.3 Cấu trúc dữ liệu
Cấu trúc định dạng của dữ liệu vào ảnh hưởng đến việc mô phỏng của mạng Có hai loại là mạng tĩnh (static network) và mạng động (dynamic network) Hai kiểu vectơ đầu vào cơ bản là kiểu xảy ra đồng thời (concurrently) và kiểu xảy ra liên tục theo thời gian (sequentially)
Kiểu đầu vào xảy ra đồng thời được mô phỏng trong mạng tĩnh (không có hồi tiếp hoặc trễ), thứ tự của các vectơ đầu vào không quan trọng và chúng không ảnh hưởng lẫn nhau Kiểu đầu vào xảy ra liên tục được mô phỏng trong mạng động Thứ tự các giá trị đầu vào rất quan trọng Trong trường hợp này, giá trị đầu ra thu được là do giá
Trang 37trị vào hiện tại và giá trị vào trước đó Nếu thay đổi thứ tự của dữ liệu vào thì sẽ làm thay đổi dữ liệu ra
4.4.4 Kiểu huấn luyện
Trong phần này mô tả hai kiểu huấn luyện khác nhau:
• Incremental training: trọng số và trọng ngưỡng của mạng được cập nhập mỗi khi
có dữ liệu vào mạng Kiểu này ứng dụng trong cả hai mạng tĩnh và động, tuy nhiên thường dùng trong mạng động nhiều hơn, như là những bộ lọc thích ứng
• Batch training: trọng số và trọng ngưỡng của mạng chỉ được cập nhập sau khi tất
cả dữ liệu đã vào mạng, dùng trong cả hai mạng tĩnh và động
5 Các mạng nơ ron một lớp
5.1 Mạng Hopfield
Năm 1982 nhà vật lý người Mỹ J.J Hopfield đã đề xuất mô hình mạng nơ ron một lớp cho phép tạo ánh xạ dữ liệu từ tín hiệu vào sang tín hiệu ra theo kiểu tự kết hợp tức là (auto-association) nếu tín hiệu vào là X thuộc miền giá trị D nào đó thì kết quả
ra y = Tinh(x, NN) cũng thuộc vào miền D đó
Nhờ vậy, một vectơ tín hiệu vào x bị thiếu thông tin hoặc bị biến dạng có thể được phục hồi dạng nguyên bản của mình
Trong ứng dụng, mạng Hopfield đã mô phỏng được khả năng tự kết hợp (hồi tưởng) của bộ não người, nhận ra người quen sau khi nhận thấy những nét quen thuộc trên khuôn mặt Ngoài ra, với một số cải biên mạng Hopfield còn được dùng để giải quyết các bài toán tối ưu, bài toán xử lý dữ liệu trong điều khiển tự động
5.1.1 Cấu trúc mạng
Mạng Hopfield có một lớp ra, với số nơ ron bằng tín hiệu vào Các liên kết nơ ron là đầy đủ
Mạng nơ ron Hopfield yêu cầu các tín hiệu vào có giá trị lưỡng cực -1 và 1 Trường
Trang 38hợp đầu vào x nhị phân có thể dùng hàm biến đổi x’=2x –1 Hàm kích hoạt được dùng tại các nơ ron là hàm dấu
=
= I
1 i
i ji
j sign ( w x ) out
5.1.2 Huấn luyện mạng
Mạng Hopfield học dựa trên nguyên tắc có giám sát Giả sử có M mẫu học tương ứng với các vectơ tín hiệu vào xk, k=1…M Mạng sẽ xác định bộ trọng số a sao cho:
xk = Tinh(xk, a) với mọi k=1…M (2.9)
Ta xây dựng ma trận trọng số W như sau: a = (aij) với
xxM 1 k si
Có thể chứng minh được với ma trận a được xác định như trong (3), ta sẽ có được (4) Nói cách khác, mạng đã học thuộc các ví dụ mẫu {xk}
i Mạng không hội tụ
ii Mạng hội tụ và x(t) = x
iii Mạng hội tụ và x(t) = xk với xk là mẫu nào đó đã học
iv Mạng hội tụ và x(t) ≠ xk với mọi mẫu học xk
v Mạng hội tụ với x(t) nào đó như trong ii, iii, iv nhưng là ảnh ngược (1 thành 1, -1 thành 1)
vi Mạng có thể đưa ra luân phiên một vài mẫu học (hoặc ảnh ngược của chúng) Trường hợp ii có nghĩa rằng vectơ x đã được đoán nhận đúng dựa trên mẫu học {xk}, hay nói cách khác, x có thể suy ra từ mẫu học
Trường hợp iii chứng tỏ rằng mạng đã phục hồi dạng nguyên bản xk của x
Trang 39Trường hợp iv chỉ ra một vectơ mới, có thể xem là mẫu học và sẽ được dùng để cập nhật ma trận trọng số
5.2 Mạng kiểu bộ nhớ hai chiều kết hợp thích nghi (Adaptive Bidirectional Associative Memory Neural Network)
Có chữ hai chiều trong tên gọi của mạng là vì có thể dùng mạng để biến đổi tín hiệu vào thành tín hiệu ra và ngược lại nghĩa là:
y = Tinh (x, aT) (2.11)
và x = Tinh (y, a) ở đây aT là ma trận chuyển vị của a (2.12) Từ “thích nghi” có nghĩa là mạng có thể điều chỉnh ma trận trọng số cho phù hợp với dáng điểu của môi trường Theo một nghĩa nào đó mạng ABAM có những nét giống mạng Hopfield:
• Chúng cùng mạng một lớp,
• Tín hiệu vào có thể là nhị phân hoặc lưỡng cực,
• Việc xác định ma trận trọng số ban đầu là giống nhau
Điểm khác giữa hai loại mạng chính là ở phạm vi bài toán có thể giải quyết và cách xác định các trọng số cho phù hợp với các bài toán đó
Mạng Hopfield được xác định đúng một lần và được dùng cho tất cả các bước tính toán Kích thước của ảnh (số điểm ảnh trong mỗi mẫu) sẽ xác định số nơ ron và số trọng số liên kết, trong khi đó số mẫu học và hình dạng của chúng sẽ xác định các giá trị các trọng số
Với mạng ABAM, ma trận trọng số không bắt buộc phải vuông Thông thường, số
nơ ron ra ít hơn nhiều số nơ ron vào Ban đầu, ma trận trọng số được xác định dựa trên các tập mẫu {(xk, yk)} giống như đối với mạng Hopfield nghĩa là:
=
= M
1 k
kj ki )
0 (
ji x y a
Ở các bước tiếp theo trong quá trình học, ma trận trọng số a(t) được thay đổi cho phù hợp sao cho tạo ra sự kết hợp thực sự hai chiều giữa tín hiệu vào và tín hiệu ra trong tập mẫu học
5.2.1 Cấu trúc mạng
Hình 12: a) Cấu trúc mạng kiểu bộ nhớ hai chiều kết hợp thích nghi b) Biểu diễn ma trận
Mạng ABAM có một lớp với số nơ ron ra có thể có ít hơn nhiều so với số tín hiệu vào
Trang 405.2.2 Huấn luyện mạng
Giả sử có tập mẫu học {(xk, yk)} Sơ đồ quá trình học được thể hiện như sau:
{(xk, yk)}→ ma trận a(0)
xk a(0)T→ ( 1 )
ky
yk a(0) → ( 1 )
kx
{(x(k1),y(k1))}→ ma trận a(1)
xka(1)T→ ( 2 )
ky
yka(1)→ ( 2 )
kx
Một số tình huống có thể xảy ra:
i Quá trình học không hội tụ
ii Quá trình học hội tụ {(x(kt),y(kt))} = ({(xk, yk}) đồng thời xka(t)T = yk và yka(t) = xkvới mọi k
iii Quá trình học dừng tại thời điểm t ứng với: và nhưng có một mẫu k sao cho x
}x}
k k, yk}) ở đây ta hiểu 8 là vectơ đảo của x (thay 1 thành -1 và ngược lại)
5.2.3 Sử dụng mạng
Giả sử đã luyện tập mạng với tập mẫu {(xk, yk)} và quá trình hội tụ đến ma trận
Khi đó ta có thể sử dụng mạng như bảng tra hai chiều:
• Biết tín hiệu vào x ta có thể xác định kết quả ra tương ứng y = xa(t)T
• Biết tín hiệu ra y ta có thể xác định tín hiệu vào tương ứng x = ya(t)
Độ phức tạp bộ nhớ và độ phức tạp thời gian của mạng ABAM cỡ khoảng 0(m×n)
5.3 Mạng Kohonen
Cách xử lý thông tin trong các mạng ở trên thường chỉ quan tâm tới giá trị và dấu của các thông tin đầu vào, mà chưa quan tâm khai thác các mối liên hệ có tính chất cấu trúc trong lân cận của các vùng dữ liệu mẫu hay toàn thể không gian mẫu
Chẳng hạn, với hai thành phần 1 tam giác, 1 hình chữ nhật Ta có thể tạo hình ngôi nhà khi chúng được phân bố kế giáp với nhau theo một trật tự nhất định