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

Mạng nơ ron truyền thẳng huấn luyện bằng thuật toán lai GA BP và ứng dụng trong bài toán dự báo khí ga

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

i

MỤC LỤC
MỤC LỤC ................................................................................................... i
DANH MỤC CÁC TỪ VIẾT TẮT .............................................................. iii
DANH MỤC CÁC BẢNG .......................................................................... iv
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ ................................................ v
MỞ ĐẦU .................................................................................................... 1
CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN................................................... 4
1.1. Các khái niệm cơ bản về mạng nơron nhân tạo ..................................... 4
1.1.1. Lịch sử phát triển của mạng nơron nhân tạo ...................................... 4
1.1.2. Mạng nơron sinh học và mạng nơron nhân tạo .................................. 5
1.1.3. Các luật học ........................................................................................ 11
1.2.Các khái niệm cơ bản về thuật toán di truyền ......................................... 12
1.2.1. Ý tưởng chính của giải thuật di truyền ............................................... 13
1.2.2. Một số cách biểu diễn lời giải của giải thuật di truyền ....................... 15
1.2.3. Cấu trúc của giải thuật di truyền ......................................................... 17
CHƯƠNG II: MẠNG NƠ RON TRUYỀN THẲNG HUẤN LUYỆN BẰNG
THUẬT TOÁN LAI GA-BP ....................................................................... 22
2.1. Mạng nơron truyền thẳng nhiều lớp ....................................................... 22
2.1.1. Kiến trúc mạng nơron truyền thẳng nhiều lớp ..................................... 22
2.1.2. Khả năng thể hiện ............................................................................... 23
2.1.3. Vấn đề thiết kế cấu trúc mạng............................................................. 24
2.2. Thuật toán lan truyền ngược (Back-Propagation) ................................. 27
2.2.1. Mô tả thuật toán ................................................................................. 27
2.2.2. Sử dụng thuật toán lan truyền ngược ................................................ 32
2.2.3. Một số biến thể của thuật toán lan truyền ngược ................................. 34
2.2.4. Vấn đề tìm kiếm điểm cực tiểu .......................................................... 35


ii



2.3. Huấn luyện mạng nơ ron truyền thẳng nhiều lớp bằng thuật toán lai GABP ............................................................................................................... 37
2.3.1.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 ...................................................................................................... 37
2.3.2. Ghép nối với giải thật lan truyền ngược sai số .................................... 39
CHƯƠNG III : ỨNG DỤNG MẠNG NƠ RON TRUYỀN THẲNG TRONG
BÀI TOÁN DỰ BÁO KHÍ GA ................................................................... 41
3.1. Sơ lược về lĩnh vực dự báo dữ liệu ........................................................ 41
3.2. Mạng nơ ron truyền thẳng trong dự báo dữ liệu .................................... 42
3.3. Các bước chính trong việc thiết kế mô hình mạng nơ ron dự báo ......... 46
3.4. Ứng dụng mô hình trong bài toán dự báo khí ga ................................... 50
3.4.1. Phát biểu bài toán .............................................................................. 50
3.4.2. Mô hình dự báo ................................................................................. 52
3.4.3. Chương trình dự báo ........................................................................... 56
KẾT LUẬN.................................................................................................. 65
TÀI LIỆU THAM KHẢO ............................................................................ 66


iii

DANH MỤC CÁC TỪ VIẾT TẮT

STT

TỪ VIẾT
TẮT

NGHĨA TIẾNG VIỆT

Mạng nơron nhân tạo


TIẾNG ANH
Artificial

Neural

1

ANN

2

GA

3

MLFF

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

4

LMS

Bình phương lỗi nhỏ nhất

Least Means Square

5


BP

Thuật toán lan truyền ngược

Back-Propagation

6

MAPE

Giải thuật di truyền

Network
Genetic Algorithsm
Multi-layer
Forward

giá trị trung bình tuyệt đối Mean
phần trăm lỗi

Feed

absolute

percentage error


iv

DANH MỤC CÁC BẢNG

Bảng 1.1: Ví dụ dùng phép tái tạo ................................................................... 18

Bảng 1.2: Ví dụ dùng phép đột biến ............................................................. 20
Bảng 3.1: Dữ liệu đầu vào ........................................................................... 52
Bảng 3.2: Dữ liệu theo khuôn dạng được mã hóa ........................................ 54


v

DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1.1: Cấu trúc của một nơron sinh học điển hình .................................. 6
Hình 1.2: Mô hình của một nơron nhân tạo ................................................. 7
Hình 1.3: Một số hàm chuyển ...................................................................... 9
Hình 1.4: Mạng nơron truyền thẳng nhiều lớp ............................................ 10
Hình 1.5: Mô hình mạng hồi quy ................................................................. 10
Hình 1.6: Sơ đồ học có giám sát .................................................................. 11
Hình 1.7: Sơ đồ học tăng cường ................................................................... 12
Hình 1.8: Sơ đồ học không giám sát ............................................................ 12
Hình 1.9: Sự sinh sản đơn giản phân bố các chuỗi con cháu nhờ sử dụng bánh
xe Roulette với các khe hở tỷ lệ với độ thích nghi ....................................... 19
Hình 1.10: Sơ đồ giải thuật di truyền ........................................................... 21
Hình 2.1: Mạng nơron truyền thẳng nhiều lớp ............................................. 22
Hình 2.2: Xác định tần số ............................................................................ 36
Hình 2.3: Giảm kích thước của tần số của sự không chắc chắn..................... 36
Hình 2.4 : Sơ đồ khối tổng thể của thuật toán lai GA-BP ............................ 40
Hình 3.1: Xử lý dữ liệu ................................................................................ 44
Hình 3.2: Kiến trúc mạng nơ ron trong bài toán ứng dụng ............................ 45
Hình 3.3: Màn hình ban đầu của chương trình ............................................. 60
Hình 3.4: Tệp dữ liệu đã mã hóa ................................................................. 60
Hình 3.5: Nhập các tham số cấu trúc mạng .................................................. 61

Hình 3.6: Nhập các tham số của giải thuật di truyền .................................... 62
Hình 3.7: Tìm kiếm bằng giải thuật di truyền ............................................... 62
Hình 3.8a: Huấn luyện bằng giải thuật BP ................................................... 63
Hình 3.78: Huấn luyện bằng giải thuật BP ................................................... 64
Hình 3.9. Dự báo dữ liệu ............................................................................. 64


1

MỞ ĐẦU
Dự báo dữ liệu là một trong những bài toán quan trọng trong khai phá
dữ liệu và học các máy nhằm tìm ra quy luật của dữ liệu. Dự báo dữ liệu
mang lại nhiều lợi ích thiết thực phụ 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. Nguyên lý của dự báo dữ liệu là dựa vào dữ liệu lịch sử để xây dựng
mô hình nhằm dự báo các dữ liệu trong tương lai. Ngày nay, các kho dữ
liệu ngày càng lớn, ngày càng phức tạp và đa dạng. Để xây dựng các mô
hình dự báo hiệu quả trên những dữ liệu khổng lồ và phức tạp này, các
nhà khoa học đã và đang nỗ lực nghiên cứu các phương pháp mô phỏng tư
duy của bộ óc của con người nhằm xây dựng các mô hình dự báo hiệu quả
nhất, đặc biệt là các phương pháp “học có thầy”, trong đó mạng nơron
nhân tạo là công cụ điển hình.
Mạng nơ ron nhân tạo là một lớp các mô hình tính toán mô phỏng hoạt
động bộ não con người. Các mô hình đó đều sử dụng một cấu trúc mạng trong
đó các đỉnh được gọi là các nơ ron. Các nơ ron này xử lý tín hiệu số từ môi
trường bên ngoài hoặc các nơ ron khác trong mạng gửi tới qua các kết nối và
sau đó gửi tín hiệu đến các nơ ron khác hoặc ra môi trường [7, 8]. Mạng
nơron truyền thẳng là một lớp các mạng nơron nhân tạo được thực tiễn chứng
minh là khá mạnh và hiệu quả trong các bài toán dự báo, phân tích dữ liệu.
[12, 13, 16]. Các mạng nơ ron truyền thằng phải được huấn luyện trước khi sử

dụ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 chỉnh 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 thuật toán 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 thuật toán này phải có khả năng tìm kiếm hiệu quả


2

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.
Thuật toán di truyền (Genetic Algorithm), viết tắt là thuật toán GA, là
thuật toán 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.
Nền tảng toán học của thuật toán GA được tác giả J.H.Holland công bố trong
cuốn sách “Sự thích nghi trong các hệ thống tự nhiên và nhân tạo” [8]. Thuật
toán 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, thuật toán GA được sử dụng khá hiệu quả trong thủ tục huấn
luyện mạng nơ ron [4, 14, 15, 17]. Tuy nhiên, thuật toán GA gặp khó khăn về
sự hội tụ. Thuật toán 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 [3]. 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
thuật toán 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à thuật toán 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 [3].
Thuật toán huấn luyện kinh điển lan truyền ngược của sai số Back
Propagation, gọi tắt là thuật toán 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. Thuật toán 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 thuật toán 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 [9,
10,14, 15].
Do nhu cầu phải xây dựng một thuật toán 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 thuật toán GA với thuật toán BP, gọi tắt là thuật
toán lai GA-BP, trong việc huấn luyện mạng nơ ron truyền thẳng [11]. Trên


3

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 sử dụng
khí ga.
Nội dung chính của luận văn được tổ chức thành 3 chương có nội
dung được mô tả như dưới đây.
Chương I. Các khái niệm cơ bản
Chương này trình bày những lý thuyết cơ bản về mạng nơ-ron nhân tạo,
các khái niệm cơ bản và các cải tiến của thuật toán di truyền.
Chương II. Mạng nơ ron truyền thằng huấn luyện bằng thuật toán
lai GA-BP
Chương II nghiên cứu mạng nơ ron truyền thẳng và thuật toán lan
truyền ngược của sai số (thuật toán BP), một số vấn đề về sự hội tụ của thuật
toán BP. Đồng thời nghiên cứu giải pháp tích hợp thuật toán GA với thuật
toán BP thành thuật toán lai GA-BP và sử dụng thuật toán lai GA-BP để huấn
luyện mạng nơ ron truyền thẳng.

Chương III. Ứng dụng mạng nơ ron truyền thẳng trong bài toán
dự báo sử dụng khí ga

Cài đặt thuật toán lai GA-BP và thử nghiệm thuật toán để huấn luyện
mạng nơ ron truyền thẳng. Xây dựng mô hình mạng nơ ron dự báo và thử
nghiệm mô hình với bài toán dự báo sử dụng khí ga.
Phần kết luận:
Tổng kết những kết quả đã đạt được của luận văn và hướng phát
triển nghiên cứu tiếp theo.


4

CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN
1.1. Các khái niệm cơ bản về mạng nơron nhân tạo
1.1.1. Lịch sử phát triển của mạng nơron nhân tạo
Mạng nơron nhân tạo (Artificial Neural Network-ANN) là một hệ
thống xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơron
sinh học. Nó được tạo lên từ một số lượng lớn các phần tử (gọi là phần tử xử
lý hay nơron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết)
làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó. Các
phần tử này được liên kết với nhau và cùng hoạt động song song. Bởi vậy
mạng nơron nhân tạo có hành vi như bộ não người với các khả năng học
(learning) và tái tạo (recall) lại những gì đã được dạy; tổng hợp thông tin từ
sự luyện tập các mẫu dữ liệu. Đây chính là lý do khiến mạng nơron nhân tạo
phát triển rất mạnh mẽ và được ứng dụng nhiều trong thực tế, đặc biệt trong
lĩnh vực dự báo, nhận dạng, điều khiển...
Năm 1943, Warrem McCulloch và nhà toán học Walter Pitts đã chỉ ra
rằng: về nguyên tắc mạng nơron nhân tạo có thể tính toán bất kỳ một hàm số
học hay logic nào. Cuối thập kỷ này, Donald Hebb cũng đưa ra các luật thích
nghi trong mạng nơron.
Đầu thập kỷ những năm 1950, Friedrick Hayek là người đầu tiên khẳng
định về ý tưởng trật tự tự phát trong não xuất phát từ các mạng phân tán gồm

các nơron. Đến năm 1958, Rosenblatt đưa ra cấu trúc Percepton và đã có ứng
dụng thực nghiệm đầu tiên. Nhưng đến năm 1969, Minsky và Papert mới
phân tích được sự đúng đắn của cấu trúc này, chứng minh các tính chất đó rồi
chỉ rõ các giới hạn của một số mô hình.
Năm 1974 Paul Werbos đã phát triển và ứng dụng phương pháp học lan
truyền ngược BP ( back-propagation). Tuy nhiên phải mất một vài năm thì
phương pháp này mới trở lên phổ biến. Các mạng lan truyền ngược được biết
đến nhiều nhất và được áp dụng rộng dãi nhất nhất cho đến ngày nay.


5

Năm 1982 trong bài báo gửi tới viện khoa học quốc gia, John Hopfield
bằng sự phân tích toán học rõ ràng, mạch lạc, ông đã chỉ ra cách thức các
mạng nơron làm việc và những công việc chúng có thể thực hiện được. Cống
hiến của Hopfield không chỉ ở giá trị của những nghiên cứu khoa học mà còn
ở sự thúc đẩy trở lại các nghiên cứu về mạng neuron.
Cũng trong thời gian này, một hội nghị với sự tham gia của Hoa Kỳ và
Nhật Bản bàn về việc hợp tác/cạnh tranh trong lĩnh vực mạng nơron đã được
tổ chức tại Kyoto, Nhật Bản. Sau hội nghị, Nhật Bản đã công bố những nỗ lực
của họ trong việc tạo ra máy tính thế hệ thứ 5. Tiếp nhận điều đó, các tạp chí
định kỳ của Hoa Kỳ bày tỏ sự lo lắng rằng nước nhà có thể bị tụt hậu trong
lĩnh vực này. Vì thế, ngay sau đó, Hoa Kỳ nhanh chóng huy động quĩ tài trợ
cho các nghiên cứu và ứng dụng mạng neuron.
Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm
về mạng neuron ứng dụng trong tin học (Neural Networks for Computing).
Năm 1987, hội thảo quốc tế đầu tiên về mạng neuron của Viện các kỹ
sư điện và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã
thu hút hơn 1800 người tham gia.
Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên

cứu ứng dụng mạng nơron để giải quyết các bài toán thực tế được diễn ra ở
khắp mọi nơi. Các ứng dụng mạng nơron ra đời ngày càng nhiều và ngày
càng hoàn thiện hơn. Điển hình là các ứng dụng: xử lý ngôn ngữ (Language
Processing), nhận dạng kí tự (Character Recognition), nhận dạng tiếng nói
(Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu
(Signal Processing), Lọc dữ liệu (Data Filtering),…..
1.1.2. Mạng nơron sinh học và mạng nơron nhân tạo
1.1.2.1. Mạng nơron sinh học
Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con
người bao gồm khoảng 1011 nơron tham gia vào khoảng 1015 kết nối trên


6

các đường truyền. Mỗi đường truyền này dài khoảng hơn một mét. Các nơron
có nhiều đặc điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng còn
có những khả năng mà các tế bào khác không có được, đó là khả năng nhận,
xử lý và truyền các tín hiệu điện hóa trên các đường mòn nơron, các con
đường này tạo nên hệ thống giao tiếp của bộ não.

Hình 1.1: Cấu trúc của một nơron sinh học điển hình
Mỗi nơron sinh học có 3 thành phần cơ bản:
• Các nhánh vào hình cây ( dendrites)
• Thân tế bào (cell body)
• Sợi trục ra (axon)
Các nhánh hình cây truyền tín hiệu vào đến thân tế bào. Thân tế bào
tổng hợp và xử lý cho tín hiệu đi ra. Sợi trục truyền tín hiệu ra từ thân tế bào
này sang nơron khác. Điểm liên kết giữa sợi trục của nơron này với nhánh
hình cây của nơron khác gọi là synapse. Liên kết giữa các nơron và độ nhạy
của mỗi synapse được xác định bởi quá trình hóa học phức tạp. Một số cấu

trúc của nơron được xác định trước lúc sinh ra. Một số cấu trúc được phát
triển thông qua quá trình học. Trong cuộc đời cá thể, một số liên kết mới được
hình thành, một số khác bị hủy bỏ.
Như vậy nơron sinh học hoạt động theo cách thức sau: nhận tín hiệu
đầu vào, xử lý các tín hiệu này và cho ra một tín hiệu output. Tín hiệu output
này sau đó được truyền đi làm tín hiệu đầu vào cho các nơron khác [8].


7

Dựa trên những hiểu biết về nơron sinh học, con người xây dựng nơron
nhân tạo với hy vọng tạo nên một mô hình có sức mạnh như bộ não.
1.1.2.2. Mạng nơron nhân tạo
Mạng nơron nhân tạo (Artificial Neural Network) là một lớp các mô
hình tính toán mô phỏng theo các chức năng của một mạng nơron sinh học
nói chung. Các mô hình đó đều sử dụng một cấu trúc mạng trong đó các đỉnh
được gọi là các nơron. Các nơron này xử lý tín hiệu số từ môi trường bên
ngoài hoặc các nơron khác trong mạng gửi tới qua các kết nối và sau đó gửi
tín hiệu đến các nơron khác hoặc ra môi trường [6, 7].
a) Các phần tử xử lý
Cũng như nơron sinh học, mỗi nơron nhân tạo được nối với các nơron
khác và nhận tính hiệu từ chúng với các trọng số liên kết. Một nơron nhân tạo
phản ánh các tính chất cơ bản của nơron sinh học:
X1

Wk1

X2

Wk2


.
.

.
.
.

XN

WkN

.

Hàm truyền

yk

f(.)



Đầu ra
Hàm tổng

Hình 1.2: Mô hình của một nơron nhân tạo
Trong đó
• X 1 ... X N : các tín hiệu đầu vào (input signals) của nơron, các tín hiệu
này thường được đưa vào dưới dạng một vector N chiều.
• Wk1 ...WKN : Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số

liên kết – Synaptic weight). Trọng số liên kết giữa tín hiệu vào thứ j với nơron
k thường được kí hiệu là Wkj . Thông thường, các trọng số này được khởi tạo


8

một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục
trong quá trình học mạng. n: số đầu vào của nơron




: tổng các tích đầu vào với trọng số liên kết của mỗi nơron

• f . : Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơron.
Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho. Thông thường,
phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1, 1].
Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến.
• bk: Ngưỡng (còn gọi là một độ lệch: bias) này thường được đưa vào
như một thành phần của hàm truyền.
• yk: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là
một đầu ra.
Như vậy, mô hình toán học của nơron nhân tạo như sau:
n

fj 



n

i 1

wki xi   j

i 1

Việc xử lý thông tin tại mỗi nơron gồm 2 phần: xử lý tín hiệu vào
(input) và đưa tín hiệu ra (output). Thao tác tính giá trị đầu ra tương ứng với
giá trị đầu vào thông qua hàm kích hoạt hay còn gọi là hàm chuyển f x  . Một
số hàm chuyển thường dùng [7] :
• Hàm bước nhảy
1

f x   
0


y

nếu x  0
+1
0

nếu x  0

x

• Hàm dấu
1


f x   
 1


nếu x  0

y
+1

nếu x  0

0
-1

x


9

• Hàm singmoid
f x  

y

1
1  e  ax

+1
0


Hoặc
f x  

x

y
2
1
1  e  x

0

x

Hình 1.3: Một số hàm chuyển
b) Các mô hình mạng nơron nhân tạo
Trong mô hình mạng mạng nơron nhân tạo, các nơron được nối với
nhau bởi các liên kết nơron, mỗi liên kết có nột trọng số đặc trưng cho đặc
tính kích hoạt hay ức chế giữa các nơron. Đồng thời, các nơron được nhóm lại
với nhau theo cấu trúc phân lớp, bao gồm: lớp vào (input layer), lớp ra (output
layer), lớp ẩn (hidden layer).


10

• Mô hình mạng nơron truyền thẳng (feed – forward Neural Network)
xo
x1

bias


h0

bias

h1

y1

h.2

..

.. y2
.

hm
Hidden Layer

yn
Output Layer

x2

..
.
xi
Input Layer

Hình 1.4: Mạng nơron truyền thẳng nhiều lớp

Trong mạng nơron nhân tạo các lớp được phân chia như sau:
- Lớp vào (input layer): Là lớp đầu tiện nhận các tín hiệu vào xi của véc tơ
tín hiệu vào X . Mỗi tín hiệu xi của tín hiệu vào sẽ được đưa đến tất cả các nơron
của lớp nơron đầu tiên, chúng được phân phối trên các trọng số có số lượng đúng
bằng số nơron của lớp này. Thông thường , các nơron đầu vào không làm biến đổi
cac tín hiệu vào xi , tức là chúng không có các trọng số hoặc không có các loại
hàm chuyển đổi nào, chúng chỉ đóng vai trò sửa đổi chúng.
• Mạng hồi quy (Recurrent networks)
Là mạng có chứa các liên kết ngược nên cho phép các thông tin 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. Bởi vậy,
mạng quy hồi 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.
h0

x0

y0
x1
y1

h1





xi
hm
Input Layer



yn

Hidden Layer Output Layer

Hình 1.5: Mô hình mạng hồi quy


11

1.1.3. Các luật học
Một trong những chức năng quan trọng nhất của mạng nơron là học.
Học chính là quá trình giải bài toán tối ưu tham số. Quá trình này chỉ dừng lại
khi mạng thỏa mãn một tiêu chuẩn dừng nào đó [7]. Có hai kiểu học:
- Học tham số (Paramater Learning): Là việc thay đổi trọng số các liên
kết giữa các nơron trong một mạng.
- Học cấu trúc (Structure Learning): Trọng tâm là việc biến đổi cấu trúc
của mạng nơron gồm số lượng nut (node) và các mẫu liên kết.
Về phương pháp học, có thể chia ra làm 03 loại:
- Học có giám sát (Supervised Learning): Mạng cung cấp một tập mẫu
học  X s , Ys  với tín hiệu đầu vào là X s và đầu ra mong muốn là Ys . Ở mỗi lần
học, véc tơ tín hiệu vào X s được đưa vào mạng, sau đó so sánh sự khác lệch
giữa các kết quả ra đúng Ys với kết quả tính toán qua mạng out. Sai số này
dùng để hiệu chỉnh lại các trọng số liên kết trong mạng. Quá trính như vậy cứ
tiếp tục cho đến khi thỏa mãn một tiêu chuẩn nào đó.
Xs
Đầu vào

Đầu ra
thực tế


ANN
w

Sai số

Tính
sai số

Đầu ra mong muốn của Ys

Hình 1.6: Sơ đồ học có giám sát
- Học tăng cường (Reinforcement Learning): Trong kỹ thuật học có
giám sát, các véc tơ đầu ra được biết một cách chính xác, nhưng trong một số
trường hợp có ít thông tin, ví dụ chỉ có thể nói là mạng sinh Output quá lớn
hoặc chỉ đúng khoảng 40%. Khi đó chỉ có một tín hiệu đánh giá là “True”
hoặc “False” quay lại mạng, các thủ tục học đó gọi là thủ tục học tăng cường.


12

ANN
w

Xs
Đầu vào

Đầu ra
thực tế


Tín hiệu
đánh giá
Tạo tín hiệu
đánh giá

Tín hiệu tăng cường

Hình 1.7: Sơ đồ học tăng cường
- Học không có giám sát (Unsupervised Learning): Trong trường hợp
này, hoàn toàn không có tín hiệu ở bên ngoài. Giá trị mục tiêu điều khiển
không được cung cấp và không được tăng cường. Mạng phải khám phá các
mẫu, các nét đặc trưng, tính cân đố, tính tương quan... Trong khi khám phá
các đặc trưng khác, mạng nơron đã trải qua việc tự thay đổi thông số, vấn đề
này được gọi là tự tổ chức.
ANN
w

Xs
Đầu vào

Đầu ra
thực tế

Hình 1.8: Sơ đồ học không giám sát
1.2.Các khái niệm cơ bản về thuật toán di truyền
Giải thuật di truyền (Genetic Algorithsm - GA) là thuật toán 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 thuật toán được tác giả J.H.Holland đề xuất vào giữa
thập niên 70, thế kỷ XX trong luận án tiến sĩ “ Adaptation in natural and
Artificial Systems” [8]. Sau J.H.Holland còn có rất nhiều người nghiên cứu

về lý thuyết cũng như những ứng dụng của GA cổ điển trong các lĩnh vực
khác nhau của khoa học, công nghệ như: lập trình tự động, học máy, kinh
tế, sinh thái học, y học, ...


13

Giải thuật di truyền về bản chất là thuật toán tìm kiếm dựa theo các
quy luật của quá trình tiến hóa tự nhiên. Giải thuật kết hợp sự sống sót của
cấu trúc khỏe nhất trong số các cấu trúc biểu diễn các nhiễm sắc thể với
một sự trao đổi thông tin lựa chọn nhẫu nhiên để tạo thành một thuật toán
tìm kiếm . Giải thuật di truyền nằm trong lĩnh vực tính toán tiến hóa, sử
dụng các biểu diễn nhị phân và các sơ đồ để mô hình hóa sự chọn lọc, lai
ghép và đột biến [1, 2].
1.2.1. Ý tưởng chính của giải thuật di truyền
Ý tưởng của giải thuật di truyền là mô phỏng theo cơ chế của quá trình
chọn lọc và di truyền trong tự nhiên. Từ tập các lời giải có thể ban đầu, thông
qua nhiều bước tiến hóa để hình thành các tập mới với những lời giải tốt hơn,
cuối cùng tìm được lời giải tối ưu nhất. Khi tìm kiếm lời giải tối ưu, GA cũng
thực hiện các bước tương ứng như quá trình đấu tranh sinh tồn của các loài
vật [4]. Bởi vậy, GA sử dụng các thuật ngữ lấy từ di truyền học:
- Một tập hợp các lời giải được gọi là một Lớp hay Quần thể
(population)
- Mỗi lời giải được biểu diến bởi một Nhiễm sắc thể hay Cá thể
(chromosome)
- Các nhiễm sắc thể được tạo thành từ các đơn vị - các gen – biểu diễn
trong một chuỗi tuyến tính.
Như vậy, tập lời giải phải trải qua nhiều bước tiến hóa, tại mỗi thế hệ,
một tập mới các cá thể được tạo ra có chứa các phần của những cá thể thích
nghi nhất trong thế hệ cũ. Đồng thời giải thuật di truyền khai thác một cách

hiệu quả thông tin trước đí để suy xét trên điểm tìm kiếm với mong muốn có
được sự cải thiện qua từng thế hệ. Qua qua trình này, các đặc trưng được đánh
giá tốt sẽ có cơ hội phát triển và các tính chất không thích nghi với môi
trường sẽ có xu hướng biến mất.
Giải thuật di truyền tổng quát được mô tả như sau:


14

Procedure GA
Begin
t=0;
Khởi tạo P(t);
Đánh giá P(t);
While not ( điều_kiện_kết_thúc) do
Begin
t:=t+1
Chọn lọc P(t) từ P(t-1);
Kết hợp các cá thể của P(t);
Đánh giá lớp P(t);
End;
End;
Trong đó:
- Tập các lời giải ban đầu được khởi tạo ngẫu nhiên
- Trong vòng lặp thứ t, GA xác định tập các nhiễm sắc thể
Pt   xt1 , xt 2 ,..., xtc  bằng cách chọn lựa các nhiễm sắc thể thích nghi hơn từ
Pt  1 . Mỗi nhiễm sắc thể xit được đánh giá để độ thích nghị của nó và một

số thành viên của Pt  lại được tái xuất nhờ các toán tử.
Khi áp dụng GA để giải quyết một bài toán cụ thể, phải làm rõ các vấn

đề sau:
1. Chọn cách biểu diễn di truyền nào đối với những lời giải có thể của
bài toán?
2. Tạo tập lời giải ban đầu như thế nào?
3. Xác định các hàm đánh giá để đánh giá mức độ thích nghi
của các cá thể.
4. Xác định các toán tử di truyền để sản sinh con cháu


15

5. Xác định các giá trị các tham số mà GA sử dụng như kích thước tập
lời giải, xác suất áp dụng các toán tử di truyền,...
Như vậy GA là một giải thuật nhằm giải quyết các bài toán tìm kiếm.
Bằng lý thuyết và thực nghiệm, nó đã chứng minh là giải thuật tìm kiếm toàn
cụa mạnh trong các không gian lời giải phức tạp.
1.2.2. Một số cách biểu diễn lời giải của giải thuật di truyền
Biểu diễn lời giải là vấn đề đầu tiên được quan tâm tới khi bắt tay vào
giải quyết một bài toán bằng GA. Việc lựa chọn các biểu diễn lời giải như thế
nào phụ thuộc vào từng lớp bài toán thậm chí vào từng bài toán cụ thể [5].
GA kinh điển dùng chuỗi nhị phân có chiều dài xác định để biểu diễn
lời giải. Tuy nhiên, thực tế cho thấy cách biểu diễn này khó áp dụng trực tiếp
cho các bài toán tối ưu cỡ lớn có nhiều ràng buộc. Vì lý do đó, GA cải tiến
hay còn gọi là Chương trình tiến hóa đã tìm kiếm các cách biểu diễn thích
nghi và tự nhiên hơn các bài toán thực tế như: Biểu diễn theo trật tự, biểu diễn
theo giá trị thực, biểu diễn bằng cách cấu trúc cây, ma trận,... Phần này sẽ
trình bày tổng quan về các cách biểu diễn đó..
1.2.2.1. Biểu diễn nhị phân (Binary encoding)
Trong biểu diễn nhị phân, mỗi nhiễm sắc thể là một chuỗi các bit 0 hoặc 1.
Chẳng hạn:

NST A: 101100101100101011100101
NST B: 111111100000110000011111
Biểu diễn mỗi lời giải của bài toán trên bằng một chuỗi nhị phân, ở đó
mỗi bit 0 hoặc 1 ứng với một đồ vật không được chọn hoặc được chọn.
Với cách biểu diễn đó, bài toán được phát biểu lại như sau: Cho một tập
các khối W

i 

, tập các giá trị Pi  và sức chứa C. Tìm một véc tơ nhị phân

x  x1 , x 2 ..., x n  thỏa mãn:
n

 xi  W i  C
i 1


16

n

Với Px  i 1 xi   W i  là cực đại
1.2.2.2. Biểu diễn hoán vị (Permutation encoding)
Sử dụng trong bài toán mà thứ tự các thành phần của lời giải quyết định
mức độ phù hợp của lời giải, điển hình như bài toán “Người du lịch”.
Với cách biểu diễn thứ tự, sắp xếp của các gen khác nhau cho ta các
nhiễm sắc thể khác nhau, mỗi nhiễm sắc thể là một chuỗi các số nguyên tố
diễn tả quan hệ nối tiếp. Lời giải được biểu diễn bằng một véc tơ số nguyên
v  i1 , i2 ,..., i n  với v là một hoán vị của thứ tự.


Ví dụ:
NST A: (1 5 3 2 6 4 7 9 8)
NST B: (8 5 6 7 2 3 1 4 9)
1.2.2.3. Biểu diễn giá trị (Value encoding)
Thường dùng trong các bài toán mà cách biểu diễn chuỗi nhị phân là
khó thực hiện như miền các định của các thành phần lời giải khá lớn với độ
chính xác yêu cầu cao, miền xác định không rõ ràng, hay các bài toán mà việc
biểu diễn nhị phân là “không tự nhiên.”
Trong biểu diễn giá trị, mỗi cá thể là một chuỗi các giá trị liên quan đến
bài toán, các giá trị có thể là số thực, số nguyên, ký tự hay các đối tượng phức
tạp khác.
Ví dụ:
NST A: (0.1229, 2.9234, 3.0012, 0.3567, 4.3828 )
NST B: (AJUHNEOLDOGSGLLIKUFSEJHJH)
1.2.2.4. Biểu diễn dạng cây (Tree encoding)
Cách biểu diễn lời giải dùng cấu trúc cây được dùng chủ yếu trong các
chương trình tiến hóa, trong biểu diễn tri thức, hay lập các chương trình
truyền học. Với cách biểu diễn này, mỗi cá thể là một cây đối tượng.


17

1.2.3. Cấu trúc của giải thuật di truyền
Các cá thể trong giải thuật di truyền đơn giản là một chuỗi các bit được
tạo bởi việc cắt dán các chuỗi bit con. Mỗi chuỗi bit đại diện cho một tập
thông số trong không gian tìm kiếm, nên được coi là lời giải tiềm năng của
bài toán tối ưu. Từ mỗi chuỗi bit ta giải mã để tính lại tập thông số, sau đó
tính được giá trị hàm mục tiêu. Từ đó, giá trị hàm mục tiêu được biến đổi
thành giá trị đo phù hợp của từng chuỗi.

Quần thể chuỗi ban đầu được khởi tạo ngẫu nhiên, sau đó tiến hóa từ
thế hệ này sang thế hệ khác bằng các toán tử di truyền (tổng số chuỗi trong
mỗi quần thể là không thay đổi). Có 3 toán tử di truyền đơn giản là:
- Tái tạo (Reproduction)
- Lai ghép (Crossover)
- Đột biến (Mutation)
1.2.3.1. Tái tạo
Tái tạo là một quá trình trong các chuỗi biểu diễn cá thể được sao chép
lại tùy theo giá trị của hàm mục tiêu f (hàm thích nghi). Toán tử này được
xem là quá trình chọn lọc tự nhiên. Hàm mục tiêu f(i) được gán cho mỗi cac
thể trong quần thể. Việc sao chép lại các chuỗi tùy theo giá trị thích nghi của
chũng có nghĩa là: Những chuỗi có giá trị thích nghi cao hơn sẽ có nhiều cơ
hội đóng góp các chuỗi con cho thế hệ tiếp theo.
Thao tác sinh sản hay còn gọi la thao tác chọn cha mẹ được điều khiển
bằng cách quay bánh xe Roulette. Trong vòng tròn Roulette mỗi chuỗi trong
quần thể chiếm một khe có kích thước tỉ lệ với độ thích nghi (fitness) của
chúng. Diện tích của cả vòng tròn tương ứng với 100% tổng mức thích nghi
của toàn quần thể.
Hàm thích nghi được xây dựng như sau:


18

Xét lời giải P có n cac thể, với mỗi cá thể hi  P , tính độ thích nghi
Fitness( hi ).
Xác suất chọn cá thể hi để tái sản xuất được xác định bởi công thức:
Pr hi  

Fitness hi 
n


 Fitnessh 
j

j 1

Việc thực hiện lựa chọn chuỗi con trong tái tạo được thực hiện như sau:
- Đánh số các cá thể trong quần thể, tính tổng hộ thích nghi sumfitness
của toàn quần thể đồng thời ứng với mỗi cá thể, tính một tổng chạy bằng tổng
độ thích nghi của cá thể đó và các cá thể đứng trước đó.
- Sinh một số ngẫu nhiên n trong khoảng 0 đến tổng mức thích nghi
sumfitness.
Cá thể đầu tiên trong quần thể có tổng chạy lớn hơn hoặc bằng n sẽ
được chọn.
Bảng 1.1: Ví dụ dùng phép tái tạo
STT

Chuỗi

Độ thích nghi

Tỷ lệ %

Tổng chạy

1

1011001

86


24.5

86

2

0100001

58

16.6

144

3

1101001

176

50.3

320

4

1001010

30


8.6

350

350

100

Tổng

Bánh xe Roulette được đánh trọng số phù hợp cho sự tái tạo của thế hệ
này được thể hiện trên hình sau:


19

8,6
24,5
1
2
3
50,3

16,6

4

Hình 1.9: Sự sinh sản đơn giản phân bố các chuỗi con cháu nhờ sử
dụng bánh xe Roulette với các khe hở tỷ lệ với độ thích nghi

1.2.3.2. Lai ghép
Các cá thể trong quần thể sau khi đã tái tạo được chọn lai ghép với
nhau. Toán tử lai ghép được coi là toán tử di truyền quan trọng nhất, nó kết
hợp với đặc trưng của các cá thể bố mẹ để tạo ra hai cá thể con bằng cách tráo
đổi các đoạn gien tương ứng trên hai cá thể cha mẹ.
Phép lai ghép chọn nhẫu nhiên hai chuỗi bất kỳ trong quần thể sau khi
đã thực hiện tái tạo, đồng thời sinh một số ngẫu nhiên, nếu nhỏ hơn xác suất
lai ghép pc thì thực hiện lai ghép, ngược lại chỉ thực hiện sao chép đơn giản 2
chuỗi vào quần thể mới. Phép lai ghép 2 chuỗi thực hiện trao đổi 2 đoạn mã
cho nhau, rồi đưa hai chuỗi kết quả vào một quần thể mới. Vì lực lượng của
quẩn thể là không thay đổi, do đó ở mỗi thế hệ tiến hóa, chỉ tiến hành lai ghép
cho tới khi nào quần thể mới đủ số số chuỗi thì dừng. Vị trí trao đổi khi lai
ghép được chọn ngẫu nhiên trong khoảng [1, L-1], với L là độ dài của chuỗi.
Ví dụ: Giả sử chúng ta có hai chuỗi bố và mẹ
A1=0111001
B1=1110011
Với vị trí lai ghép là 4 thì 2 chuỗi con sinh ra sẽ là:
A’1=1110001
B’1=0111011


20

1.2.3.3. Đột biến
Là việc thay đổi trị số trong dãy số, ví dụ 0 thành 1 hoặc 1 thành 0 cho
trường hợp dùng dãy số theo hệ nhị phân. So với lai ghép, toán tử này ít xảy
ra hơn.
Nếu toán tử lai ghép dùng lại những tin tức có sẵn trong các thành phần
của thế hệ trước và truyền lại cho các thế hệ sau thì đột biến tạo ra những tin
tức hoàn toàn mới.

Các toán tử đột biến nhằm tạo ra những thông tin mới trong quần thể
đem lai tạo tại các vị trí bit (gen) nào đó (quần thể mà ta xem xét ở đây có
popsize cac thể, mỗi cá thể được biểu thị qua L bit/gen). Đột biến được áp
dụng với xác suất pmn. Số lượng bit đột biến là pmn * L* popsize bit. Mỗi bit
có cơ hội đột biến như nhau. Toán tử này có thể được xử lý như sau:
Với mỗi nhiễm sắc thể trong quần thể và mỗi bít trong nhiễm sắc thế:
- Phát sinh một số ngẫu nhiên r trong miền [0;1]
- Nếu rCá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ể.
Ví dụ: Hai bít thứ 1 va thứ 6 được đột biến.
Bảng 1.2: Ví dụ dùng phép đột biến
Cha 1

0

0

1

1

0

0

0

1


Con 0

0

0

1

1

0

0

0

1

1.2.3.4. Sơ đồ giải thuật di truyền
Giải thuật di truyền bao gồm những bước sau:
1. Khởi tạo quần thể ban đầu của các chuỗi nhiễm sắc thể
2. Xác định giá trị hàm mục tiêu cho mỗi một chuỗi nhiễm sắc thể
3. Tạo các chuỗi nhiễm sắc thể mới bằng sinh sản từ các
chuỗi nhiễm sắc thể


×