-1- MỤC LỤC MỞ ĐẦU ............................................................................................................................ 2 CHƯƠ NG I: CÁC KHÁI NIỆM CƠ B ẢN V Ề M ẠNG NƠ RON..................................................4 1.1. Sơ lược v ề mạng nơron .......................................................................................... 4 1.1.1. L ị ch sử phát triể n .......................... ............................ .............................................. 41.1.2. Ứ ng dụ ng...............................................................................................................61.1.3. Că n nguyên sinh họ c ........................... ....................................................................61.2. Đơn vị xử lý ............................................................................................................ 8 1.3. Hàm xử lý ............................................................................................................... 9 1.3.1. Hàm kế t hợ p...........................................................................................................91.3.2. Hàm kích hoạ t (hàm chuyể n) ..................................................... ............................ ..91.4. Các hình trạng của mạng ..................................................................................... 12 1.4.1. Mạ ng truyề n thẳ ng................................................................................................121.4.2. Mạ ng hồ i quy........................................................................................................131.5. Mạng học..............................................................................................................13 1.5.1. Họ c có thầ y .................................................................................. ........................ 131.5.2. Họ c không có thầ y ................................................................................................141.6. Hàm mục tiêu ....................................................................................................... 14 CHƯƠ NG II. M ẠNG NƠ RON TRUY ỀN TH ẲNG VÀ THU ẬT TOÁN LAN TRUY ỀN NGƯỢ C..162.1. Kiế n trúc cơ bản ................................................................................................... 16 2.1.1. Mạ ng truyề n thẳ ng................................................................................................162.1.2. Mạ ng hồ i quy........................................................................................................182.2. Khả năng thể hiện ................................................................................................19 2.3. Vấ n đề thiế t kế cấ u trúc mạng .............................................................................19 2.3.1. Số lớ pẩ n..............................................................................................................192.3.2. Số đơ n v ị trong lớ pẩ n ......................... .................................................................. 202.4. Thuật toán lan truy ền ngược (Back-Propagation).................................. ............. 21 2.4.1. Mô tả thuậ t toán ................................................................................................... 222.4.2. Sử dụ ng thuậ t toán lan truyề n ngượ c......................................................................272.4.3. Mộ t số biế n thể củ a thuậ t toán lan truyề n ngượ c .....................................................312.4.4. Nhậ n xét ..................................................................................... ......................... 362.5. Các thuật toán tố i ư u khác ................................................................................... 38 2.5.1. Thuậ t toán giả luyệ n kim (Simulated annealing).......................................................382.5.2. Thuậ t giả i di truyề n (Genetic Algorithm)..................................................................39CHƯƠ NG III. Ứ NG DỤNG M ẠNG NƠ RON TRUY ỀN TH ẲNG TRONG DỰ BÁO DỮ LIỆU...413.1. Sơ lược v ề l ĩ nh vự c dự báo dữ liệu.......................................................................41 3.2. Thu thập, phân tích và xử lý dữ liệu .................................................................... 42 3.2.1. Kiể u củ a các biế n ........................... ............................. .......................................... 433.2.2. Thu thậ p dữ liệ u ...................................................................................................443.2.3. Phân tích dữ liệ u ............................ ............................. .......................................... 453.2.4. Xử lý dữ liệ u ......................................................................................................... 463.2.5. Tổ ng hợ p .............................................................................................................483.3. Chương trình dự báo dữ liệu................................................................................48 3.3.1. Các bướ c chính trong quá trình thiế t kế và xây dự ng................................................483.3.2. Xây dự ng chươ ng trình .......................................................................................... 543.3.3. Chươ ng trình dự báo dữ liệ u ..................................................................................693.4. Một số nhận xét....................................................................................................75 KẾ T LU ẬN........................................................................................................................ 77 TÀI LIỆU THAM KH ẢO......................... ............................................................................79
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
MỞ ĐẦU ............................................................................................................................2
CHƯƠ NG I: CÁC KHÁI NIỆM CƠ B ẢN V Ề M ẠNG NƠ RON..................................................4 1.1. Sơ lược v ề mạng nơron ..........................................................................................4 1.1.1. L ị ch s ử phát tri ể n ....................................................................................................4 1.1.2. Ứ ng d ụ ng...............................................................................................................6 1.1.3. C ă n nguyên sinh h ọ c ...............................................................................................6
1.2. Đơn vị xử lý ............................................................................................................8 1.3. Hàm xử lý ...............................................................................................................9
1.3.1. Hàm k ế t h ợ p...........................................................................................................9 1.3.2. Hàm kích ho ạ t (hàm chuy ể n) ...................................................................................9
1.4. Các hình trạng của mạng .....................................................................................12 1.4.1. M ạ ng truy ề n th ẳ ng................................................................................................12 1.4.2. M ạ ng h ồ i quy........................................................................................................13
1.5. Mạng học..............................................................................................................13 1.5.1. H ọ c có th ầ y .......................................................................................................... 13 1.5.2. H ọ c không có th ầ y ................................................................................................14
1.6. Hàm mục tiêu .......................................................................................................14 CHƯƠ NG II. M ẠNG NƠ RON TRUY ỀN TH ẲNG VÀ THU ẬT TOÁN LAN TRUY ỀN NGƯỢ C..16
2.1. Kiế n trúc cơ bản ...................................................................................................16 2.1.1. M ạ ng truy ề n th ẳ ng................................................................................................16 2.1.2. M ạ ng h ồ i quy........................................................................................................18
2.2. Khả năng thể hiện ................................................................................................19 2.3. V ấ n đề thiế t k ế cấ u trúc mạng .............................................................................19
2.3.1. S ố l ớ p ẩ n..............................................................................................................19 2.3.2. S ố đơ n v ị trong l ớ p ẩ n ...........................................................................................20
2.4. Thuật toán lan truy ền ngược (Back-Propagation)...............................................21 2.4.1. Mô t ả thu ậ t toán ................................................................................................... 22 2.4.2. S ử d ụ ng thu ậ t toán lan truy ề n ng ượ c......................................................................27 2.4.3. M ộ t s ố bi ế n th ể c ủ a thu ậ t toán lan truy ề n ng ượ c .....................................................31 2.4.4. Nh ậ n xét .............................................................................................................. 36
2.5. Các thuật toán tố i ư u khác...................................................................................38 2.5.1. Thu ậ t toán gi ả luy ệ n kim (Simulated annealing).......................................................38 2.5.2. Thu ậ t gi ả i di truy ề n (Genetic Algorithm)..................................................................39
CHƯƠ NG III. Ứ NG DỤNG M ẠNG NƠ RON TRUY ỀN TH ẲNG TRONG DỰ BÁO DỮ LIỆU...41 3.1. Sơ lược v ề l ĩ nh vự c dự báo dữ liệu.......................................................................41 3.2. Thu thập, phân tích và xử lý dữ liệu ....................................................................42
3.2.1. Ki ể u c ủ a các bi ế n ..................................................................................................43 3.2.2. Thu th ậ p d ữ li ệ u ...................................................................................................44
3.2.3. Phân tích d ữ li ệ u ...................................................................................................45 3.2.4. X ử lý d ữ li ệ u ......................................................................................................... 46 3.2.5. T ổ ng h ợ p .............................................................................................................48
3.3. Chương trình dự báo dữ liệu................................................................................48 3.3.1. Các b ướ c chính trong quá trình thi ế t k ế và xây d ự ng................................................48 3.3.2. Xây d ự ng ch ươ ng trình ..........................................................................................54 3.3.3. Ch ươ ng trình d ự báo d ữ li ệ u ..................................................................................69
3.4. Một số nhận xét....................................................................................................75 K Ế T LU ẬN........................................................................................................................77 TÀI LIỆU THAM KH ẢO.....................................................................................................79
Cùng vớ i sự phát triển của mô hình kho dữ liệu (Dataware house), ở Việt nam ngày càng
có nhiều kho dữ liệu vớ i lượ ng dữ liệu r ất lớ n. Để khai thác có hiệu quả những dữ liệu
khổng lồ này, đã có nhiều công cụ đượ c xây dựng để thỏa mãn nhu cầu khai thác dữ liệu
mức cao, chẳng hạn như công cụ khai thác dữ liệu Oracle Discoverer của hãng Oracle.
Công cụ này đượ c sử dụng như một bộ phân tích dữ liệu đa năng theo nhiều chiều dữ liệu,
đặc biệt theo thờ i gian. Hay là việc xây dựng các hệ chuyên gia, các hệ thống dựa trên một
cơ sở tri thức của các chuyên gia, để có thể dự báo đượ c khuynh hướ ng phát triển của dữ
liệu, thực hiện các phân tích trên các dữ liệu của tổ chức. Mặc dù các công cụ, các hệ thống
trên hoàn toàn có thể thực hiện đượ c phần lớ n các công việc nêu trên, chúng vẫn yêu cầu
một độ chính xác, đầy đủ nhất định về mặt dữ liệu để có thể đưa ra đượ c các câu tr ả lờ i
chính xác.
Trong khi đó, các ứng dụng của mạng nơ ron truyền thẳng đượ c xây dựng dựa trên các
nhân tố ảnh hưở ng đến sự thay đổi của dữ liệu đã đượ 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. Chúng có thể đượ c huấn luyện vàánh xạ từ các dữ liệu vào tớ i các dữ liệu ra mà không yêu cầu các dữ liệu đó phải đầy đủ.
Trong số các loại mạng tươ ng đối phổ biến thì các mạng neuron truyền thẳng nhiều lớ p,
đượ c huấn luyện bằng thuật toán lan truyền ngượ c đượ c sử dụng nhiều nhất. Các mạng
nơ ron này có khả năng biểu diễn các ánh xạ phi tuyến giữa đầu vào và đầu ra, chúng đượ c
coi như là các “bộ xấ p xỉ đa năng”. Việc ứng dụng của loại mạng này chủ yếu là cho việc
phân tích, dự báo, phân loại các số liệu thực tế. Đặc biệt đối vớ i việc dự báo khuynh hướ ng
thay đổi của các dữ liệu tác nghiệ p trong các cơ quan, tổ chức kinh tế, xã hội,... Nếu có thể
dự báo đượ c khuynh hướ ng thay đổi của dữ liệu vớ i một độ tin cậy nhất định, các nhà lãnh
đạo có thể đưa ra đượ c các quyết sách đúng đắn cho cơ quan, tổ chức của mình.
Luận văn này đượ c thực hiện vớ i mục đích tìm hiểu và làm sáng tỏ một số khía cạnh về
mạng nơ ron truyền thẳng nhiều lớ p, thuật toán lan truyền ngượ c và ứng dụng chúng trong
giải quyết các bài toán trong l ĩ nh vực dự báo dữ liệu.
bở i Frank Rosenblatt. Mạng này có khả năng nhận dạng các mẫu. Điều này đã mở ra r ất
nhiều hy vọng cho việc nghiên cứu mạng nơ ron. Tuy nhiên nó có hạn chế là chỉ có thể
giải quyết một số lớ p hữu hạn các bài toán.
• Cùng thờ i gian đó, Bernard Widrow và Ted Hoff đã đưa ra một thuật toán học mớ i và
sử dụng nó để huấn luyện cho các mạng nơ ron tuyến tính thích nghi, mạng có cấu trúc
và chức năng tươ ng tự như mạng của Rosenblatt. Luật học Widrow-Hoff vẫn còn đượ c
sử dụng cho đến nay.
• Tuy nhiên cả Rosenblatt và Widrow-Hoff đều cùng vấ p phải một vấn đề do Marvin
Minsky và Seymour Papert phát hiện ra, đó là các mạng nhận thức chỉ có khả năng giải
quyết các bài toán khả phân tuyến tính. Họ cố gắng cải tiến luật học và mạng để có thể
vượ t qua đượ c hạn chế này nhưng họ đã không thành công trong việc cải tiến luật học
để có thể huấn luyện đượ c các mạng có cấu trúc phức tạ p hơ n.
• Do những k ết quả của Minsky-Papert nên việc nghiên cứu về mạng nơ ron gần như bị
đình lại trong suốt một thậ p k ỷ do nguyên nhân là không có đượ c các máy tính đủ mạnh
để có thể thực nghiệm.
• Mặc dù vậy, cũng có một vài phát kiến quan tr ọng vào những năm 70. Năm 1972,Teuvo Kohonen và James Anderson độc lậ p nhau phát triển một loại mạng mớ i có thể
hoạt động như một bộ nhớ . Stephen Grossberg cũng r ất tích cực trong việc khảo sát các
mạng tự tổ chức (Self organizing networks).
• Vào những năm 80, việc nghiên cứu mạng nơ ron phát triển r ất mạnh mẽ cùng vớ i sự ra
đờ i của PC. Có hai khái niệm mớ i liên quan đến sự hồi sinh này, đó là:
1. Việc sử dụng các phươ ng pháp thống kê để giải thích hoạt động của một lớ p
các mạng hồi quy (recurrent networks) có thể đượ c dùng như bộ nhớ liên hợ p
(associative memory) trong công trình của nhà vật lý học Johh Hopfield.
2. Sự ra đờ i của thuật toán lan truyền ngượ c (back-propagation) để luyện các
mạng nhiều lớ p đượ c một vài nhà nghiên cứu độc lậ p tìm ra như: David
Rumelhart, James McCelland,.... Đó cũng là câu tr ả lờ i cho Minsky-Papert.
của các khớ p thần kinh đượ c quyết định bở i các quá trình hóa học phức tạ p, sẽ thiết lậ p
chức năng của mạng nơ ron.
Một vài nơ ron có sẵn từ khi sinh ra, các phần khác đượ c phát triển thông qua việc học, ở
đó có sự thiết lậ p các liên k ết mớ i và loại bỏ các liên k ết cũ.
Cấu trúc của mạng nơ ron luôn luôn phát triển và thay đổi. Các thay đổi sau này có khuynh
hướ ng bao gồm chủ yếu là việc làm tăng hay giảm độ mạnh của các mối liên k ết thông qua
các khớ p thần kinh.
Mạng nơ ron nhân tạo không tiế p cận đến sự phức tạ p của bộ não. Mặc dù vậy, có hai sự
tươ ng quan cơ bản giữa mạng nơ ron nhân tạo và sinh học. Thứ nhất, cấu trúc khối tạo
thành chúng đều là các thiết bị tính toán đơ n giản (mạng nơ ron nhân tạo đơ n giản hơ n
nhiều) đượ c liên k ết chặt chẽ vớ i nhau. Thứ hai, các liên k ết giữa các nơ ron quyết định
chức năng của mạng.
Cần chú ý r ằng mặc dù mạng nơ ron sinh học hoạt động r ất chậm so vớ i các linh kiện điện
tử (10-3 giây so vớ i 10-9 giây), nhưng bộ não có khả năng thực hiện nhiều công việc nhanh
hơ n nhiều so vớ i các máy tính thông thườ ng. Đó một phần là do cấu trúc song song của
mạng nơ ron sinh học: toàn bộ các nơ ron hoạt động một cách đồng thờ i tại một thờ i điểm.Mạng nơ ron nhân tạo cũng chia sẻ đặc điểm này. Mặc dù hiện nay, các mạng nơ ron chủ
yếu đượ c thực nghiệm trên các máy tính số, nhưng cấu trúc song song của chúng khiến
chúng ta có thể thấy cấu trúc phù hợ p nhất là thực nghiệm chúng trên các vi mạch tích hợ p
lớ n (VLSI: Very Large Scale Integrated-circuit), các thiết bị quang và các bộ xử lý song
song.
Mạng nơ ron, đôi khi đượ c xem như là các mô hình liên k ết (connectionist models), là các
mô hình phân bố song song (parallel-distributed models) có các đặc tr ưng phân biệt sau:
1) Tậ p các đơ n vị xử lý;
2) Tr ạng thái kích hoạt hay là đầu ra của đơ n vị xử lý;
3) Liên k ết giữa các đơ n vị. Xét tổng quát, mỗi liên k ết đượ c định ngh ĩ a bở i một tr ọng
số w jk cho ta biết hiệu ứng mà tín hiệu của đơ n vị j có trên đơ n vị k;
4) Một luật lan truyền quyết định cách tính tín hiệu ra của từng đơ n vị từ đầu vào của
các mạng nhiều tầng có khả năng r ất tốt trong biểu diễn các ánh xạ phi tuyến. Tuy nhiên, đối
vớ i luật học lan truyền ngượ c, hàm phải khả vi (differentiable) và sẽ có ích nếu như hàm
đượ c gắn trong một khoảng nào đó. Do vậy, hàm sigmoid là lựa chọn thông dụng nhất.
Đối vớ i các đơ n vị đầu ra (output units), các hàm chuyển cần đượ c chọn sao cho phù hợ p
vớ i sự phân phối của các giá tr ị đích mong muốn. Chúng ta đã thấy r ằng đối vớ i các giá tr ị ra
trong khoảng [0,1], hàm sigmoid là có ích; đối vớ i các giá tr ị đích mong muốn là liên tục
trong khoảng đó thì hàm này cũng vẫn có ích, nó có thể cho ta các giá tr ị ra hay giá tr ị đích
đượ c căn trong một khoảng của hàm kích hoạt đầu ra. Nhưng nếu các giá tr ị đích không
đượ c biết tr ướ c khoảng xác định thì hàm hay đượ c sử dụng nhất là hàm đồng nhất (identity
function). Nếu giá tr ị mong muốn là dươ ng nhưng không biết cận trên thì nên sử dụng mộthàm kích hoạt dạng mũ (exponential output activation function).
1.4. Các hình trạng của mạng
Hình tr ạng của mạng đượ c định ngh ĩ a bở i: số lớ p (layers), số đơ n vị trên mỗi lớ p, và sự liên
k ết giữa các lớ p như thế nào. Các mạng về tổng thể đượ c chia thành hai loại dựa trên cách
thức liên k ết các đơ n vị:
1.4.1. M ạng truyề n thẳ ng
Dòng dữ liệu từ đơ n vị đầu vào đến đơ n vị đầu ra chỉ đượ c truyền thẳng. Việc xử lý dữ liệu
có thể mở r ộng ra nhiều lớ p, nhưng không có các liên k ết phản hồi. Ngh ĩ a là, các liên k ết mở
r ộng từ các đơ n vị đầu ra tớ i các đơ n vị đầu vào trong cùng một lớ p hay các lớ p tr ướ c đó là
không cho phép.
x 1
x 2h2
x l
h1
hm
y1
y2
yn
… … …
x 0 h0
Input Layer Hidden Layer Output Layer
bias bias
)1( jiw
)2(kjw
Hình 6: M ạng nơ ron truyề n thẳ ng nhiề u l ớ p (Feed-forward neural network)
Có chứa các liên k ết ngượ c. Khác vớ i mạng truyền thẳng, các thuộc tính động của mạng mớ i
quan tr ọng. Trong một số tr ườ ng hợ p, các giá tr ị kích hoạt của các đơ n vị tr ải qua quá trình
nớ i lỏng (tăng giảm số đơ n vị và thay đổi các liên k ết) cho đến khi mạng đạt đến một tr ạng
thái ổn định và các giá tr ị kích hoạt không thay đổi nữa. Trong các ứng dụng khác mà cách
chạy động tạo thành đầu ra của mạng thì những sự thay đổi các giá tr ị kích hoạt là đáng quan
tâm.
0
1 h1
l
h0
0
1
n
… … …
0
1 h1
l
h0
hm
0
1
n
… … …
Input Layer Hidden Layer Output Layer
Hình 7: M ạng nơ ron hồi quy (Recurrent neural network)
1.5. Mạng học
Chức năng của một mạng nơ ron đượ c quyết định bở i các nhân tố như: hình tr ạng mạng (số
lớ p, số đơ n vị trên mỗi tầng, và cách mà các lớ p đượ c liên k ết vớ i nhau) và các tr ọng số của
các liên k ết bên trong mạng. Hình tr ạng của mạng thườ ng là cố định, và các tr ọng số đượ c
quyết định bở i một thuật toán huấn luyện (training algorithm). Tiến trình điều chỉnh các
tr ọng số để mạng “nhận biết” đượ c quan hệ giữa đầu vào và đích mong muốn đượ c gọi là
học (learning) hay huấn luyện (training). R ất nhiều thuật toán học đã đượ c phát minh để tìm
ra tậ p tr ọng số tối ưu làm giải pháp cho các bài toán. Các thuật toán đó có thể chia làm hainhóm chính: Học có thầy (Supervised learning) và Học không có thầy (Unsupervised
Learning).
1.5.1. H ọc có thầ y
Mạng đượ c huấn luyện bằng cách cung cấ p cho nó các cặ p mẫu đầu vào và các đầu ra mong
muốn (target values). Các cặ p đượ c cung cấ p bở i "thầy giáo", hay bở i hệ thống trên đó mạng
hoạt động. Sự khác biệt giữa các đầu ra thực tế so vớ i các đầu ra mong muốn đượ c thuật
toán sử dụng để thích ứng các tr ọng số trong mạng. Điều này thườ ng đượ c đưa ra như một
bài toán xấ p xỉ hàm số - cho dữ liệu huấn luyện bao gồm các cặ p mẫu đầu vào x, và một
đích tươ ng ứng t, mục đích là tìm ra hàm f(x) thoả mãn tất cả các mẫu học đầu vào.
Training Data
Network
Training Algorithm
(optimization method)
ObjectiveFunction
Input Desired output
in out
Weightchanges
target
error +-
Hình 8: Mô hình H ọc có thầ y (Supervised learning model)
1.5.2. H ọc không có thầ y
Vớ i cách học không có thầy, không có phản hồi từ môi tr ườ ng để chỉ ra r ằng đầu ra của
mạng là đúng. Mạng sẽ phải khám phá các đặc tr ưng, các điều chỉnh, các mối tươ ng quan,
hay các lớ p trong dữ liệu vào một cách tự động. Trong thực tế, đối vớ i phần lớ n các biến thể
của học không có thầy, các đích trùng vớ i đầu vào. Nói một cách khác, học không có thầyluôn thực hiện một công việc tươ ng tự như một mạng tự liên hợ p, cô đọng thông tin từ dữ
liệu vào.
1.6. Hàm mục tiêu
Để huấn luyện một mạng và xét xem nó thực hiện tốt đến đâu, ta cần xây dựng một hàm
mục tiêu (hay hàm giá) để cung cấ p cách thức đánh giá khả năng hệ thống một cách không
nhậ p nhằng. Việc chọn hàm mục tiêu là r ất quan tr ọng bở i vì hàm này thể hiện các mục tiêu
thiết k ế và quyết định thuật toán huấn luyện nào có thể đượ c áp dụng. Để phát triển một hàm
mục tiêu đo đượ c chính xác cái chúng ta muốn không phải là việc dễ dàng. Một vài hàm cơ
bản đượ c sử dụng r ất r ộng rãi. Một trong số chúng là hàm tổng bình phươ ng lỗi (sum of
2.4. Thuật toán lan truyền ngượ c (Back-Propagation)
2.5. Các thuật toán tối ưu khác
2.1. Kiến trúc cơ bản
Để đơ n giản và tránh hiểu nhầm, mạng truyền thẳng xét trong chươ ng này là các mạng
truyền thẳng có nhiều lớ p. Kiến trúc mạng truyền thẳng nhiều lớ p (Multi-layer Feed
Forward - MLFF) là kiến trúc chủ đạo của các mạng nơ ron hiện tại. Mặc dù có khá nhiều
biến thể nhưng đặc tr ưng của kiến trúc này là cấu trúc và thuật toán học là đơ n giản và
nhanh (Masters 1993).
2.1.1. M ạng truyề n thẳ ng
Một mạng truyền thẳng nhiều lớ p bao gồm một lớ p vào, một lớ p ra và một hoặc nhiều lớ p
ẩn. Các nơ ron đầu vào thực chất không phải các nơ ron theo đúng ngh ĩ a, bở i lẽ chúng
không thực hiện bất k ỳ một tính toán nào trên dữ liệu vào, đơ n giản nó chỉ tiế p nhận các dữ
liệu vào và chuyển cho các lớ p k ế tiế p. Các nơ ron ở lớ p ẩn và lớ p ra mớ i thực sự thực hiện
các tính toán, k ết quả đượ c định dạng bở i hàm đầu ra (hàm chuyển). Cụm từ “truyềnthẳng” (feed forward) (không phải là trái ngh ĩ a của lan truyền ngượ c) liên quan đến một
thực tế là tất cả các nơ ron chỉ có thể đượ c k ết nối vớ i nhau theo một hướ ng: tớ i một hay
nhiều các nơ ron khác trong lớ p k ế tiế p (loại tr ừ các nơ ron ở lớ p ra).
Hình sau ở dạng tóm tắt biểu diễn mạng nơ ron một cách cô đọng và tránh gây ra sự hiểu
P: Vector đầu vào (vector cột)Wi: Ma tr ận tr ọng số của các nơ ron lớ p thứ i.
(SixR i: S hàng (nơ ron) - R cột (số đầu vào))
bi: Vector độ lệch (bias) của lớ p thứ i (Six1: cho S nơ ron)
ni: net input (Six1)
f i: Hàm chuyển (hàm kích hoạt)
ai: net output (Six1)
⊕: Hàm tổng thông thườ ng.
Mỗi liên k ết gắn vớ i một tr ọng số, tr ọng số này đượ c thêm vào trong quá trình tín hiệu đi
qua liên k ết đó. Các tr ọng số có thể dươ ng, thể hiện tr ạng thái kích thích, hay âm, thể hiện
tr ạng thái kiềm chế. Mỗi nơ ron tính toán mức kích hoạt của chúng bằng cách cộng tổng các
đầu vào và đưa ra hàm chuyển. Một khi đầu ra của tất cả các nơ ron trong một lớ p mạng cụ
thể đã thực hiện xong tính toán thì lớ p k ế tiế p có thể bắt đầu thực hiện tính toán của mình bở i vì đầu ra của lớ p hiện tại tạo ra đầu vào của lớ p k ế tiế p. Khi tất cả các nơ ron đã thực
hiện tính toán thì k ết quả đượ c tr ả lại bở i các nơ ron đầu ra. Tuy nhiên, có thể là chưa đúng
yêu cầu, khi đó một thuật toán huấn luyện cần đượ c áp dụng để điều chỉnh các tham số của
mạng.
Trong hình 9, số nơ ron ở lớ p thứ nhất, và lớ p thứ hai tươ ng ứng là S1 và S2. Ma tr ận tr ọng
số đối vớ i các lớ p tươ ng ứng là W1 và W2. Có thể thấy sự liên k ết giữa các lớ p mạng thể
hiện trong hình vẽ 9: ở lớ p thứ 2, vector đầu vào chính là net output của lớ p thứ nhất.
Các mạng truyền thẳng cho ta một kiến trúc tổng quát thể hiện khả năng ánh xạ hàm phi
tuyến tính giữa một tậ p các biến đầu vào và tậ p các đầu ra. Khả năng thể hiện của một mạng
có thể đượ c định ngh ĩ a là khoảng mà nó có thể thực hiện ánh xạ khi các tr ọng số biến thiên.
Theo [15]:
1) Các mạng một lớ p chỉ có khả năng thể hiện các hàm khả phân tuyến tính hay các miền
phân chia đượ c (ví dụ như hàm logic AND có miền giá tr ị có thể phân chia đượ c bằng một
đườ ng thẳng trong khi miền giá tr ị của hàm XOR thì không).
2) Các mạng có hai lớ p ẩn có khả năng thể hiện một đườ ng biên phân chia tùy ý vớ i một độ
chính xác bất k ỳ vớ i các hàm chuyển phân ngưỡ ng và có thể xấ p xỉ bất k ỳ ánh xạ mịn nào
vớ i độ chính xác bất k ỳ vớ i các hàm chuyển có dạng sigmoid.
3) Một mạng có một lớ p ẩn có thể xấ p xỉ tốt bất k ỳ một ánh xạ liên tục nào từ một không
gian hữu hạn sang một không gian hữu hạn khác, chỉ cần cung cấ p số nơ ron đủ lớ n cho lớ p
ẩn. Chính xác hơ n, các mạng truyền thẳng vớ i một lớ p ẩn đượ c luyện bở i các phươ ng pháp
bình phươ ng tối thiểu (least-squares) là các bộ xấ p xỉ chính xác cho các hàm hồi quy nếu
như các giả thiết về mẫu, độ nhiễu, số đơ n vị trong lớ p ẩn và các nhân tố khác thỏa mãn. Cácmạng nơ ron truyền thẳng vớ i một lớ p ẩn sử dụng các hàm chuyển hay hàm phân ngưỡ ng là
các bộ xấ p xỉ đa năng cho bài toán phân lớ p nhị phân vớ i các giả thiết tươ ng tự.
2.3. Vấn đề thiết k ế cấu trúc mạng
Mặc dù, về mặt lý thuyết, có tồn tại một mạng có thể mô phỏng một bài toán vớ i độ chính
xác bất k ỳ. Tuy nhiên, để có thể tìm ra mạng này không phải là điều đơ n giản. Để định ngh ĩ a
chính xác một kiến trúc mạng như: cần sử dụng bao nhiêu lớ p ẩn, mỗi lớ p ẩn cần có bao
nhiêu đơ n vị xử lý cho một bài toán cụ thể là một công việc hết sức khó khăn.
Dướ i đây trình bày một số vấn đề cần quan tâm khi ta thiết k ế một mạng.
2.3.1. S ố l ớ p ẩ n
Vì các mạng có hai lớ p ẩn có thể thể hiện các hàm vớ i dáng điệu bất k ỳ, nên, về lý thuyết,
không có lý do nào sử dụng các mạng có nhiều hơ n hai lớ p ẩn. Ngườ i ta đã xác định r ằng
đối vớ i phần lớ n các bài toán cụ thể, chỉ cần sử dụng một lớ p ẩn cho mạng là đủ. Các bài
toán sử dụng hai lớ p ẩn hiếm khi xảy ra trong thực tế. Thậm chí đối vớ i các bài toán cần sử
dụng nhiều hơ n một lớ p ẩn thì trong phần lớ n các tr ườ ng hợ p trong thực tế, sử dụng chỉ một
lớ p ẩn cho ta hiệu năng tốt hơ n là sử dụng nhiều hơ n một lớ p. Việc huấn luyện mạng thườ ng
r ất chậm khi mà số lớ p ẩn sử dụng càng nhiều. Lý do sau đây giải thích cho việc sử dụngcàng ít các lớ p ẩn càng tốt là:
1) Phần lớ n các thuật toán luyện mạng cho các mạng nơ ron truyền thẳng đều dựa trên
phươ ng pháp gradient. Các lớ p thêm vào sẽ thêm việc phải lan truyền các lỗi làm cho vector
gradient r ất không ổn định. Sự thành công của bất k ỳ một thuật toán tối ưu theo gradient phụ
thuộc vào độ không thay đổi của hướ ng khi mà các tham số thay đổi.
2) Số các cực tr ị địa phươ ng tăng lên r ất lớ n khi có nhiều lớ p ẩn. Phần lớ n các thuật toán tối
ưu dựa trên gradient chỉ có thể tìm ra các cực tr ị địa phươ ng, do vậy chúng có thể không tìm
ra cực tr ị toàn cục. Mặc dù thuật toán luyện mạng có thể tìm ra cực tr ị toàn cục, nhưng xác
suất khá cao là chúng ta sẽ bị tắc trong một cực tr ị địa phươ ng sau r ất nhiều thờ i gian lặ p và
khi đó, ta phải bắt đầu lại.
3) D ĩ nhiên, có thể đối vớ i một bài toán cụ thể, sử dụng nhiều hơ n một lớ p ẩn vớ i chỉ một
vài đơ n vị thì tốt hơ n là sử dụng ít lớ p ẩn vớ i số đơ n vị là lớ n, đặc biệt đối vớ i các mạng cần
phải học các hàm không liên tục. Về tổng thể, ngườ i ta cho r ằng việc đầu tiên là nên xem xét
khả năng sử dụng mạng chỉ có một lớ p ẩn. Nếu dùng một lớ p ẩn vớ i một số lượ ng lớ n các
đơ n vị mà không có hiệu quả thì nên sử dụng thêm một lớ p ẩn nữa vớ i một số ít các đơ n vị.
2.3.2. S ố đơ n v ị trong l ớ p ẩ n
Một vấn đề quan tr ọng trong việc thiết k ế một mạng là cần có bao nhiêu đơ n vị trong mỗi
lớ p. Sử dụng quá ít đơ n vị có thể dẫn đến việc không thể nhận dạng đượ c các tín hiệu đầy đủ
trong một tậ p dữ liệu phức tạ p, hay thiếu ăn khớ p (underfitting ). Sử dụng quá nhiều đơ n vị
sẽ tăng thờ i gian luyện mạng, có lẽ là quá nhiều để luyện khi mà không thể luyện mạngtrong một khoảng thờ i gian hợ p lý. Số lượ ng lớ n các đơ n vị có thể dẫn đến tình tr ạng thừa ăn
khớ p (overfitting ) , trong tr ườ ng hợ p này mạng có quá nhiều thông tin, hoặc lượ ng thông tin
trong tậ p dữ liệu mẫu (training set) không đủ các dữ liệu đặc tr ưng để huấn luyện mạng.
Số lượ ng tốt nhất của các đơ n vị ẩn phụ thuộc vào r ất nhiều yếu tố - số đầu vào, đầu ra của
mạng, số tr ườ ng hợ p trong tậ p mẫu, độ nhiễu của dữ liệu đích, độ phức tạ p của hàm lỗi, kiến
trúc mạng và thuật toán luyện mạng.
Có r ất nhiều “luật” để lựa chọn số đơ n vị trong các lớ p ẩn (xem [6]), chẳng hạn:
Như đã nêu, về cơ bản có hai dạng thuật toán để luyện mạng: học có thầy và học không có
thầy. Các mạng nơ ron truyền thẳng nhiều lớ p đượ c luyện bằng phươ ng pháp học có thầy.
Phươ ng pháp này căn bản dựa trên việc yêu cầu mạng thực hiện chức năng của nó và sauđó tr ả lại k ết quả, k ết hợ p k ết quả này vớ i các đầu ra mong muốn để điều chỉnh các tham số
của mạng, ngh ĩ a là mạng sẽ học thông qua những sai sót của nó.
Về cơ bản, thuật toán lan truyền ngượ c là dạng tổng quát của thuật toán trung bình bình
phươ ng tối thiểu (Least Means Square-LMS). Thuật toán này thuộc dạng thuật toán xấ p xỉ
để tìm các điểm mà tại đó hiệu năng của mạng là tối ưu. Chỉ số tối ưu (performance index)
thườ ng đượ c xác định bở i một hàm số của ma tr ận tr ọng số và các đầu vào nào đó mà trong
quá trình tìm hiểu bài toán đặt ra.
2.4.1. Mô t ả thuật toán
Ta sẽ sử dụng dạng tổng quát của mạng nơ ron truyền thẳng nhiều lớ p như trong hình vẽ 9
của phần tr ướ c. Khi đó, đầu ra của một lớ p tr ở thành đầu vào của lớ p k ế tiế p. Phươ ng trình
thể hiện hoạt động này như sau:
am+1 = f m+1 (Wm+1am + bm+1) vớ i m = 0, 1, ..., M – 1,
trong đó M là số lớ p trong mạng. Các nơ ron trong lớ p thứ nhất nhận các tín hiệu từ bênngoài:
a0 = p,
chính là điểm bắt đầu của phươ ng trình phía trên. Đầu ra của lớ p cuối cùng đượ c xem là
đầu ra của mạng:
a = aM .
2.4.1.1. Chỉ số hiệu nă ng (performance index)
Cũng tươ ng tự như thuật toán LMS, thuật toán lan truyền ngượ c sử dụng chỉ số hiệu năng
là trung bình bình phươ ng lỗi của đầu ra so vớ i giá tr ị đích. Đầu vào của thuật toán chính là
tậ p các cặ p mô tả hoạt động đúng của mạng:
{(p1, t1), (p2, t2), ..., (pQ, tQ)},
trong đó pi là một đầu vào và ti là đầu ra mong muốn tươ ng ứng, vớ i i = 1..Q. Mỗi đầu vào
đưa vào mạng, đầu ra của mạng đối vớ i nó đượ c đem so sánh vớ i đầu ra mong muốn.
Như ta đã biết, thuật toán lan truyền ngượ c có thể đượ c sử dụng để xấ p xỉ bất k ỳ một hàm
số học nào nếu như ta có đủ số nơ ron trong các lớ p ẩn. Mặc dù vậy, phát biểu trên chưa
cho ta đượ c một số cụ thể các lớ p và số nơ ron trong mỗi lớ p cần sử dụng. Ta sẽ dùng một
ví dụ để có đượ c cái nhìn chi tiết hơ n về vấn đề này.
Ví dụ, ta muốn xấ p xỉ hàm số sau:
+= xi
x f 4
sin1)(π
vớ i –2 ≤ x ≤ 2,
trong đó i nhận các giá tr ị 1, 2, 4 và 8. Khi i tăng thì hàm số cần xét sẽ tr ở nên phức tạ phơ n do ta sẽ nhận đượ c nhiều chu k ỳ của hình sin trong phạm vi [-2, 2]. Khi đó, mạng
nơ ron vớ i một số nơ ron cố định sẽ khó có thể xấ p xỉ đượ c hàm nếu i tăng. Trong phần sau,
ta sẽ sử dụng ví dụ Function Approximation trong thư viện của bộ Matlab 5.3 (file
nnd11fa.m). Ở đây, mạng sử dụng có 1 lớ p ẩn, 1 lớ p ra; đươ ng nhiên, mạng có 1 đầu vào
và một đầu ra. Lớ p ẩn sử dụng hàm sigmoid, lớ p ra dùng hàm đồng nhất:
x
e
x sigmoid −
−
=
1
1)( và g(x) = x
Số nơ ron trong lớ p ẩn là 4, k ết quả xấ p xỉ của mạng trong các tr ườ ng hợ p i = 1, 2, 4, 8 như
trong các hình vẽ dướ i đây. Các đườ ng màu đen là tr ả lờ i của mạng, còn các đườ ng mờ
đó là do khả năng của mạng bị giớ i hạn bở i số nơ ron trong lớ p ẩn. Tuy nhiên, cũng có
tr ườ ng hợ p mà thuật toán lan truyền ngượ c không cho ta các tham số có thể dẫn đến k ết
quả chính xác nhưng mạng vẫn có thể xấ p xỉ đượ c hàm số. Điều này xảy ra là do tr ạng tháikhở i đầu của mạng, sau khi luyện, mạng có thể r ơ i vào điểm cực tiểu toàn cục hoặc r ơ i vào
điểm cực tiểu địa phươ ng.
Cần chú ý r ằng trong thuật toán trung bình bình phươ ng tối thiểu, điểm cực tr ị toàn cục là
luôn tồn tại bở i lẽ hàm trung bình bình phươ ng lỗi của thuật toán trung bình bình phươ ng
tối thiểu là một hàm bậc hai, hơ n nữa, do là hàm bậc hai nên đạo hàm bậc hai của hàm lỗi
sẽ là hằng số, do vậy mà độ cong của hàm theo một hướ ng cho tr ướ c là không thay đổi.
Trong khi đó, thuật toán lan truyền ngượ c áp dụng cho các mạng nhiều lớ p sử dụng cáchàm chuyển phi tuyến sẽ có nhiều điểm cực tr ị địa phươ ng và độ cong của hàm lỗi có thể
không cố định theo một hướ ng cho tr ướ c.
2.4.2.3. S ự t ổ ng quát hóa (Generalization):
Trong phần lớ n các tr ườ ng hợ p, mạng nơ ron truyền thẳng nhiều lớ p đượ c luyện bở i một số
cố định các mẫu xác định sự hoạt động đúng của mạng:
{(p1, t1), (p2, t2), ..., (pQ, tQ)},trong đó, pi là các đầu vào, tươ ng ứng vớ i nó là các đầu ra mong muốn ti. Tậ p huấn luyện
này thông thườ ng là thể hiện của số lớ n nhất các lớ p có thể các cặ p. Một điều r ất quan
tr ọng là mạng nơ ron có khả năng tổng quát hóa đượ c từ những cái nó đã học. Nếu có đượ c
điều đó, mặc dù dữ liệu có nhiễu thì mạng vẫn có khả năng hoạt động tốt (tr ả lại k ết quả
gần vớ i đích mong muốn).
“Để một mạng có khả năng tổng quát hóa tốt, nó cần có số tham số ít hơ n số dữ liệu có
trong tậ p huấn luyện” ([4]). Trong các mạng nơ ron, cũng như các bài toán mô hình hóa, ta
thườ ng mong muốn sử dụng một mạng đơ n giản nhất có thể cho k ết quả tốt trên tậ p huấn
luyện.
Một cách khác đó là dừng luyện mạng tr ướ c khi mạng xảy ra tình tr ạng thừa ăn khớ p. K ỹ
thuật này liên quan đến việc chia tậ p dữ liệu thu đượ c thành ba tậ p: tậ p huấn luyện sử dụng
để tính toán gradient và cậ p nhật các tr ọng số của mạng, tậ p kiểm định đượ c dùng để kiểm
tra điều kiện dừng của mạng và tậ p kiểm tra đượ c sử dụng để so sánh khả năng tổng quát
hóa của mạng đối vớ i các bộ tham số của mạng sau các lần huấn luyện.
Ta cần có một thuật toán tổng quát để tìm điểm cực tiểu của một hàm số theo một hướ ng
cụ thể nào đó. Việc này liên quan đến hai thao tác: một là xác định tần số (interval
location) và giảm tần số. Mục đích của bướ c xác định tần số là tìm kiếm tần số khở i đầu có
chứa điểm cực tiểu. Bướ c giảm tần số sau đó giảm kích thướ c của tần số cho đến khi tìm ra
điểm cực tiểu vớ i một độ chính xác nào đó.
Ta sẽ sử dụng phươ ng pháp so sánh hàm để thực hiện bướ c xác định tần số. Thủ tục này
đượ c mô tả trong hình vẽ 13. Ta bắt đầu bằng cách tính chỉ số hiệu năng tại một điểm khở i
đầu nào đó (điểm a1 trong hình vẽ), điểm này chính là giá tr ị của chỉ số hiệu năng vớ i các
tham số hiện tại của mạng.
Bướ c tiế p theo là tính giá tr ị hàm chỉ số hiệu năng tại điểm thứ 2, thể hiện bở i điểm b1
trong hình vẽ cách điểm khở i đầu một đoạn là ε theo hướ ng tìm kiếm p0.
Hình 13: Xác định t ần số .
Sau đó, ta tiế p tục tính giá tr ị của hàm hiệu năng tại các điểm bi có khoảng cách đến điểmkhở i đầu gấ p đôi điểm tr ướ c. Quá trình này sẽ dừng lại nếu như giá tr ị của hàm tăng lên so
vớ i điểm tr ướ c đó (trong hình vẽ là điểm b3 và b4). Đến đây, ta biết r ằng điểm cực tiểu sẽ
r ơ i vào khoảng giữa [a5, b5]. Ta không thể thu hẹ p thêm tần số nữa bở i lẽ điểm cực tiểu có
thể r ơ i vào vùng [a3, b3] hoặc [a4, b4].
Bây giờ ta tiế p tục bướ c thực hiện giảm tần số, ta sẽ lấy ít nhất là hai điểm c, d trong
khoảng [a5, b5] để có thể thực hiện việc này (nếu chỉ lấy 1 điểm thì ta khó có thể xác định
đượ c liệu điểm cực tiểu sẽ nằm trong vùng nào!). Có nhiều cách để chọn các điểm trên, ở
Trong đó tol là độ chính xác chấ p nhận đượ c do ngườ i sử dụng đưa vào.
Thiết lập lại thuật toán
Thuật toán gradient k ết hợ p còn cần phải sửa đổi thêm một chút nữa tr ướ c khi áp dụng để
luyện cho mạng nơ ron. Đối vớ i hàm bậc 2, thuật toán sẽ hội tụ đến điểm cực tiểu sau nhiều
nhất n bướ c, trong đó n là số các tham số cần tối thiểu hóa. Chỉ số hiệu năng trung bình
bình phươ ng lỗi của mạng nơ ron truyền thẳng nhiều lớ p không phải ở dạng bậc 2, do vậy
thuật toán sẽ không hội tụ sau n bướ c lặ p. Những phát triển ở phía trên không chỉ ra hướ ng
tìm kiếm tiế p theo sau khi n bướ c lặ p hoàn thành. Có nhiều cách để thực hiện, nhưng ta chỉ
cần áp dụng một cách đơ n giản nhất đó là đặt lại hướ ng tìm kiếm tr ở lại hướ ng ban đầu của
thuật toán giảm nhanh nhất sau khi n bướ c lặ p đã hoàn thành.
2.4.4. Nhận xét
Thuật ngữ “lan truyền ngượ c” đượ c sử dụng có vẻ như không phù hợ p lắm đối vớ i thuật
ngữ truyền thẳng và thườ ng gây hiểu nhầm. Lan truyền ngượ c thực chất là là một k ỹ thuật
toán học sử dụng để tính toán lỗi trong các hệ thống toán học phức tạ p, chẳng hạn như một
mạng nơ ron. Nó là một trong các thuật toán gradient tươ ng tự như là các thuật toán theo
gradient theo các cách tiế p cận của Trí tuệ nhân tạo. Các thuật toán đó ánh xạ hàm vào bề mặt ba chiều, vớ i các mặt lồi, lõm. Phụ thuộc vào bài toán cụ thể, điểm lõm (cực tiểu) của
một bề mặt thể hiện hiệu năng tốt hơ n cho đầu ra.
Việc luyện mạng theo phươ ng pháp học có thầy liên quan đến cách thức đưa các mẫu học
từ miền của bài toán vào mạng, các mẫu này sẽ đượ c phân chia thành các tậ p huấn luyện
và tậ p kiểm định. Mạng đượ c khở i tạo các tr ọng số là các số ngẫu nhiên, sau đó, các tr ọng
số này sẽ đượ c điều chỉnh cho phù hợ p vớ i tậ p huấn luyện. Tậ p kiểm định sẽ đượ c dùng để
xác định xem liệu mạng có thành công trong việc xác định đầu ra từ đầu vào mà nó chưađượ c luyện. Mạng sẽ đượ c đưa vào một tậ p con các mẫu, mỗi mẫu một lần, sau khi nó đã
đượ c “nhìn” tất cả các mẫu, nó sẽ phải thực hiện điều chỉnh các tr ọng số bằng cách tính
toán các lỗi xảy ra. Quá trình này đượ c lặ p lại cho đến khi mạng đượ c luyện đủ. Kích
thướ c của tậ p con đượ c giớ i hạn bở i số lần lặ p, có thể là trùng vớ i kích thướ c của tậ p mẫu
học, nếu không như vậy thì cần phải xác định thứ tự đưa các mẫu vào cho mạng học một
Giá tr ị của lỗi đượ c tính bở i phươ ng pháp trung bình bình phươ ng của giá tr ị kích hoạt;
ngh ĩ a là nó đượ c tính bằng cách bình phươ ng hiệu của giá tr ị đầu ra mong muốn và đầu ra
thực sự, sau đó tính trung bình trong tất cả các nơ ron đầu ra. Có thể xác định cách điềuchỉnh các tr ọng số để có thể giảm đượ c lỗi bằng cách tính các đạo hàm từng phần (đạo hàm
theo hướ ng) của lỗi. Số các bướ c cần thực hiện theo hướ ng đó đượ c gọi là mức độ học
(tham số học-learning rate), nếu quá lớ n, giá tr ị cực tr ị có thể bị bỏ qua, nếu quá nhỏ thì
phải mất nhiều thờ i gian để đạt tớ i điểm cực tr ị.
Nhượ c điểm lớ n nhất của thuật toán lan truyền ngượ c truyền thống đó là nó bị ảnh hưở ng
r ất lớ n của gradient địa phươ ng, không cần thiết phải đi đườ ng thẳng. Ví dụ, nếu như cực
tr ị toàn cục nằm ở cuối vùng lõm và điểm hiện tại là bên cạnh, phía trên điểm lõm, khi đóthuật toán lan truyền ngượ c sẽ thực hiện một bướ c theo hướ ng mà gradient lớ n nhất, vượ t
qua vùng lõm. Một khi nó phát hiện các cạnh khác của của vùng lõm, nó sẽ chạy theo
đườ ng zic zắc tiến, lùi tạo ra các bướ c nhỏ tớ i đích. Đườ ng này sẽ lớ n gấ p hàng nghìn lần
so vớ i đườ ng ngắn nhất, và do đó, thờ i gian học cũng sẽ lớ n gấ p r ất nhiều lần. Thuật toán
lan truyền ngượ c chuẩn có thể đượ c tăng cườ ng bằng cách thêm tham số bướ c đà
(momentum) vào phươ ng trình. Hiệu ứng này sẽ lọc ra ngoài các cực tr ị địa phươ ng và cho
phép khả năng tìm ra cực tr ị toàn cục lớ n lên.
Khoảng bướ c, hay mức độ học, của thuật toán lan truyền ngượ c chuẩn là cố định, điều này
dẫn đến việc thuật toán tìm xung quanh điểm cực tiểu trong khi đó, thuật toán không thể
tìm chính xác điểm thấ p nhất trong hai gradient. Ngh ĩ a là nó đi xuống một bướ c, vượ t qua
điểm cực tiểu và đứng ở nửa trên phía bên kia. Phươ ng pháp gradient k ết hợ p (Conjugate
Gradient) cho phép thuật toán học thực hiện các bướ c nhỏ tăng dần khi nó tiế p cận điểm
cực tiểu, như vậy, nó có thể đạt tớ i điểm gần vớ i điểm cực tiểu thực sự r ất nhanh chóng.
Mặc dù phươ ng pháp tối ưu gradient giảm (gradient descent) dùng trong thuật toán lan
truyền ngượ c chuẩn đượ c sử dụng r ộng rãi và đượ c thực tế chứng minh là thành công trong
r ất nhiều ứng dụng, nó cũng còn tồn tại các nhượ c điểm:
1) Hội tụ r ất chậm
2) Không đảm bảo là sẽ hội tụ tại điểm cực tr ị toàn cục
R ất nhiều các nhà nghiên cứu [3][9][11][12][20] đã đưa ra các cải tiến cho phươ ng pháp
gradient như là: sửa đổi động các tham số học hay điều chỉnh độ dốc của hàm sigmoid,...
Ý tưở ng này đượ c áp dụng vào các thuật toán huấn luyện cho mạng nơ ron. Nhiệt độ đượ c
coi như là hệ số học đượ c giảm dần. Ý tưở ng ở đây là nếu mạng gặ p phải một điểm cực tr ị
địa phươ ng thì nó sẽ đượ c “rung” (shake) để có thể thoát khỏi cực tr ị địa phươ ng. Nếu như “nhiệt độ” đượ c giữ không đổi thì hệ sẽ chỉ chuyển từ một điểm cực tr ị địa phươ ng này
sang một điểm cực tr ị địa phươ ng khác và khó có thể ổn định. Nếu khả năng nhảy đượ c
giảm đều thì mạng sẽ có xu hướ ng đạt đến đượ c điểm cực tr ị toàn cục. Và một khi mạng
đạt đến điểm cực tr ị toàn cục thì mức rung sẽ không đủ để có thể khiến cho mạng bỏ qua
nó.
Rõ ràng thuật toán giả luyện kim có dáng dấ p của một thuật toán huấn luyện vớ i hệ số học
biến đổi, tuy nhiên, hệ số học trong thuật toán này đượ c giảm dần trong khi, thuật toánhuấn luyện sử dụng hệ số học biến đổi sẽ làm tăng hay giảm hệ số học tùy thuộc vào tình
huống cụ thể khi sai số khi học là tăng hay giảm.
2.5.2. Thuật gi ải di truyề n (Genetic Algorithm)
Đây thực chất là một thuật toán tìm kiếm điểm tối ưu trong không gian của các tham số.
Thuật toán di truyền là k ỹ thuật bắt chướ c sự chọn lọc tự nhiên và di truyền. Trong tự
nhiên, các cá thể khỏe, có khả năng thích nghi tốt vớ i môi tr ườ ng sẽ đượ c tái sinh và nhân
bản trong các thế hệ sau.
Trong giải thuật di truyền, mỗi cá thể đượ c mã hóa bở i một cấu trúc dữ liệu mô tả cấu trúc
gien của mỗi cá thể đó, gọi là nhiễ m sắ c thể . Mỗi nhiễm sắc thể đượ c tạo thành từ các đơ n
vị gọi là gien. Chẳng hạn như là một chuỗi nhị phân, tức là mỗi cá thể đượ c biểu diễn bở i
một chuỗi nhị phân.
Giải thuật di truyền sẽ làm việc trên các quần thể gồm nhiều cá thể. Một quần thể ứng vớ i
một giai đoạn phát triển đượ c gọi là một thế hệ. Từ thế hệ đầu đượ c tạo ra, giải thuật ditruyền bắt chướ c chọn lọc tự nhiên và di truyền để biến đổi các thế hệ. Giải thuật di truyền
sử dụng các toán tử: tái sinh (reproduction): các cá thể tốt đượ c đưa vào thế hệ sau dựa
vào độ thích nghi đối vớ i môi tr ườ ng của mỗi cá thể (xác định bở i hàm thích nghi-fitness
function); toán tử lai ghép (crossover): hai cá thể cha, mẹ trao đổi các gien để tạo ra hai
cá thể con; toán tử đột biến (mutation): một cá thể thay đổi một số gien để tạo thành cá
thể mớ i. Việc áp dụng các toán tử trên đối vớ i các quần thể là ngẫu nhiên.
Thuật toán di truyền bắt đầu bằng việc khở i tạo quần thể ban đầu, sau đó thực hiện lặ p lại
các bướ c: sinh ra thế hệ mớ i từ thế hệ ban đầu bằng cách áp dụng các toán tử lai ghép, đột
biến, tái sinh; đánh giá thế hệ mớ i sinh ra; cho đến khi điều kiện k ết thúc đượ c thỏa mãn.Khi thuật toán dừng, cá thể tốt nhất đượ c lựa chọn làm nghiệm cần tìm.
Có thể thấy, thuật toán di truyền có liên quan đến k ỹ thuật tìm kiếm điểm tối ưu. Thực
chất, nó có thể coi như là một k ỹ thuật khác để huấn luyện mạng nơ ron để giải quyết các
bài toán. Nó liên quan đến việc mã hóa các tham số của mạng nơ ron bằng các nhiễm sắc
thể. Các tham số ban đầu đượ c khở i tạo ngẫu nhiên nhiều lần tạo ra quần thể ban đầu. Khi
đó, hàm thích nghi của các cá thể (tậ p các tr ọng số) đượ c xác định bằng cách tính toán lỗi
đầu ra của mạng. Nếu điều kiện dừng thỏa mãn thì quá trình huấn luyện dừng lại, nếukhông, sẽ thực hiện các toán tử chọn lọc, lai ghép, đột biến trên các cá thể để tạo ra quần
thể mớ i [1] [20]. Các nghiên cứu cho thấy r ằng thuật toán di truyền có thể đượ c xem như
trong các l ĩ nh vực: nhận dạng, phân lớ p, dự báo… đã đượ c thực tế chứng tỏ là một công cụ
tốt áp dụng cho các bài toán trong l ĩ nh vực dự báo dữ liệu.
Do đặc tr ưng về độ phức tạ p dữ liệu, các dữ liệu đầu ra thườ ng là các con số (mảng các số)
dấu phảy động cho nên việc lựa chọn cấu trúc mạng phù hợ p thườ ng là sử dụng phươ ng
pháp thử-sai (trial and errors). Đồng thờ i cần phải chuẩn hóa (loại bỏ các dữ liệu sai, thừa,
đưa chúng về đoạn [0,1] hoặc [-1,1],...) các dữ liệu đầu vào và đầu ra để mạng có khả năng
học tốt hơ n từ các dữ liệu đượ c cung cấ p.
Trong việc dự báo dữ liệu, nếu dữ liệu ở nhiều khoảng thờ i gian khác nhau đượ c đưa vào
mạng để huấn luyện thì việc dự báo chính xác là r ất khó nếu như mục đích là dự báo chính
xác 100% dữ liệu trong tươ ng lai. Ta chỉ có thể có đượ c k ết quả dự báo vớ i một mức độ
chính xác nào đó chấ p nhận đượ c.
3.2. Thu thập, phân tích và xử lý dữ liệu
Dữ liệu đóng một vai trò r ất quan tr ọng trong các giải pháp sử dụng mạng nơ ron. Chất
lượ ng, độ tin cậy, tính sẵn có và phù hợ p của dữ liệu đượ c sử dụng để phát triển hệ thống
giúp cho các giải pháp thành công. Các mô hình đơ n giản cũng có thể đạt đượ c những k ết
quả nhất định nếu như dữ liệu đượ c xử lý tốt, bộc lộ đượ c các thông tin quan tr ọng. Bêncạnh đó, các mô hình tốt có thể sẽ không cho ta các k ết quả mong muốn nếu dữ liệu đưa
vào quá phức tạ p và r ắc r ối.
Việc xử lý dữ liệu bắt đầu bằng việc thu thậ p và phân tích dữ liệu, sau đó là bướ c tiền xử
lý. Dữ liệu sau khi qua bướ c tiền xử lý đượ c đưa vào mạng nơ ron. Cuối cùng, dữ liệu đầu
ra của mạng nơ ron qua bướ c hậu xử lý, bướ c này sẽ thực hiện biến đổi k ết quả tr ả về của
mạng nơ ron sang dạng hiểu đượ c theo yêu cầu của bài toán (Hình 15). Sau đây, trong các
mục tiế p theo, ta sẽ đi vào xem xét từng bướ c trong quá trình xử lý dữ liệu.
Khi những dữ liệu thô đã đượ c thu thậ p, chúng cần phải đượ c chuyển đổi sang các khuôn
dạng phù hợ p để có thể đưa vào luyện mạng. Ở bướ c này, ta cần thực hiện các công việc
sau:
Kiể m tra tính hợ p l ệ d ữ liệu (Data validity checks)
Việc kiểm tra tính hợ p lệ sẽ phát hiện ra các dữ liệu không thể chấ p nhận đượ c mà nếu sử
dụng chúng thì sẽ cho ra các k ết quả không tốt. Ví dụ, ta có thể kiểm tra khoảng hợ p lệ của
dữ liệu về nhiệt độ không khí của một vùng nhiệt đớ i chẳng hạn. Ta mong muốn các giá tr ị trong khoảng từ 5oC đến 40oC, do đó, các giá tr ị nằm ngoài khoảng này rõ ràng là không
thể chấ p nhận đượ c.
Nếu có một mẫu cho một phân bố sai của dữ liệu (ví dụ, nếu phần lớ n dữ liệu đượ c thu
thậ p ở một ngày trong tuần) ta cần xem xét nguyên nhân của nó. Dựa trên bản chất của
nguyên nhân dẫn đến sai lầm, ta có thể hoặc phải loại bỏ các dữ liệu này, hoặc cho phép
những thiếu sót đó. Nếu có các thành phần quyết định không mong muốn như là các xu
hướ ng hay các biến thiên có tính chất mùa vụ, chúng cần đượ c loại bỏ ngay.
Phân hoạch d ữ liệu (Partitioning data)
Phân hoạch là quá trình chia dữ liệu thành các tậ p kiểm định, huấn luyện, và kiểm tra.
Theo định ngh ĩ a, tậ p kiể m định đượ c sử dụng để xác định kiến trúc của mạng; các tậ p huấ n
luyện đượ c dùng để cậ p nhật các tr ọng số của mạng; các tậ p kiể m tra đượ c dùng để kiểm
tra hiệu năng của mạng sau khi luyện. Ta cần phải đảm bảo r ằng:
a)
Tậ p huấn luyện chứa đủ dữ liệu, các dữ liệu đó phân bố phù hợ p sao cho có thể biểu diễn các thuộc tính mà ta muốn mạng sẽ học đượ c.
b) Không có dữ liệu trùng nhau hay tươ ng tự nhau của các dữ liệu trong các tậ p dữ
liệu khác nhau.
3.2.4.2. Tiề n xử lý
Về mặt lý thuyết, một mạng nơ ron có thể dùng để ánh xạ các dữ liệu thô đầu vào tr ực tiế p
thành các dữ liệu đầu ra. Nhưng trong thực tế, việc sử dụng quá trình tiền xử lý cho dữ liệu
thườ ng mang lại những hiệu quả nhất định tr ướ c khi những dữ liệu này đượ c đưa vào
mạng. Có r ất nhiều k ỹ thuật liên quan đến tiền xử lý dữ liệu. Tiền xử lý dữ liệu có thể là
thực hiện lọc dữ liệu (trong dữ liệu biến thiên theo thờ i gian time-series) hay các phươ ng pháp phức tạ p hơ n như là các phươ ng pháp k ết xuất, trích chọn các đặc tr ưng từ dữ liệu
ảnh t ĩ nh (image data). Bở i lẽ việc chọn thuật toán dùng trong tiền xử lý dữ liệu là phụ
thuộc vào ứng dụng và bản chất của dữ liệu, cho nên, các khả năng lựa chọn là r ất lớ n. Tuy
nhiên, mục đích của các thuật toán tiền xử lý dữ liệu thườ ng tươ ng tự nhau, như sau (Xem
chẳng hạn [6]):
1) Chuyển đổi dữ liệu về khuôn dạng phù hợ p đối vớ i đầu vào mạng nơ ron - điều này
thườ ng đơ n giản hóa quá trình xử lý của mạng phải thực hiện trong thờ i gian ngắn hơ n.Các chuyển đổi này có thể bao gồm:
• Áp dụng một hàm toán học (hàm logarit hay bình phươ ng) cho đầu vào;
• Mã hóa các dữ liệu văn bản trong cơ sở dữ liệu;
• Chuyển đổi dữ liệu sao cho nó có giá tr ị nằm trong khoảng [0, 1].
• Lấy biến đổi Fourier cho các dữ liệu thờ i gian.
2) Lựa chọn các dữ liệu xác đáng nhất - việc lựa chọn này có thể bao gồm các thao tác đơ n
giản như lọc hay lấy tổ hợ p của các đầu vào để tối ưu hóa nội dung của dữ liệu. Điều này
đặc biệt quan tr ọng khi mà dữ liệu có nhiễu hoặc chứa các thông tin thừa. Việc lựa chọn
cẩn thận các dữ liệu phù hợ p sẽ làm cho mạng dễ xây dựng và tăng cườ ng hiệu năng của
chúng đối vớ i các dữ liệu nhiễu.
3) Tối thiểu hóa số các đầu vào mạng - giảm số chiều của dữ liệu đầu vào và tối thiểu số
các mẫu đưa vào có thể đơ n giản hóa đượ c bài toán. Trong một số tr ườ ng hợ p - chẳng hạn
trong xử lý ảnh – ta không thể nào đưa tất cả các dữ liệu vào mạng. Ví dụ như trong ứng
dụng nhận dạng ảnh, mỗi một ảnh có thể chứa hàng triệu điểm ảnh, khi đó rõ ràng là không
khả thi nếu sử dụng nhiều đầu vào như vậy. Trong tr ườ ng hợ p này, việc tiền xử lý cần thực
hiện giảm số đầu vào của dữ liệu bằng cách sử dụng các tham số đơ n giản hơ n chẳng hạn
như sử dụng các tham số vùng ảnh và tỷ lệ chiều dài/chiều cao. Quá trình này còn gọi là
Hậu xử lý bao gồm các xử lý áp dụng cho đầu ra của mạng. Cũng như đối vớ i tiền xử lý,
hậu xử lý hoàn toàn phụ thuộc vào các ứng dụng cụ thể và có thể bao gồm cả việc phát
hiện các tham số có giá tr ị vượ t quá khoảng cho phép hoặc sử dụng đầu ra của mạng như
một đầu vào của một hệ khác, chẳng hạn như một bộ xử lý dựa trên luật. Đôi khi, hậu xử lý
chỉ đơ n giản là quá trình ngượ c lại đối vớ i quá trình tiền xử lý.
3.2.5. T ổ ng hợ p
Trong thực tế khi xây dựng các mạng nơ ron ứng dụng trong l ĩ nh vực dự báo dữ liệu, việc
áp dụng các phươ ng pháp tiền xử lý dữ liệu đầu vào (và sau đó áp dụng phươ ng pháp hậu
xử lý để biến đổi đầu ra về dạng phù hợ p) giúp ích r ất nhiều trong các ứng dụng. Như đã
nêu ở trên, có r ất nhiều các phươ ng pháp có thể áp dụng cho dữ liệu ở quá trình tiền xử lý
cũng như hậu xử lý. Các phươ ng pháp này thực sự hiệu quả cho các bài toán cụ thể bở i lẽ
chúng làm giảm bớ t đi độ phức tạ p của dữ liệu đầu vào, từ đó làm giảm thờ i gian học của
mạng nơ ron.
Các phươ ng pháp xử lý dữ liệu còn phụ thuộc vào công việc thu thậ p, phân tích và lựa
chọn dữ liệu đầu vào cho mạng. Đây cũng là yếu tố quyết định cho sự thành công của cácứng dụng mạng nơ ron. Việc dữ liệu đượ c chuẩn hóa tr ướ c khi đưa vào mạng huấn luyện có
thể làm giảm bớ t thờ i gian mạng học, làm tăng độ chính xác cho dữ liệu dự báo. Điều này
r ất có ý ngh ĩ a bở i lẽ thuật toán lan truyền ngượ c khi thực thi r ất tốn thờ i gian!
3.3. Chươ ng trình dự báo dữ liệu
3.3.1. Các bướ c chính trong quá trình thi ế t k ế và xây d ự ng
Tr ướ c hết, dướ i đây nêu ra các bướ c chính trong quá trình thiết k ế và xây dựng một ứng
dụng dựa trên mạng nơ ron. Có r ất nhiều vấn đề cần phải xem xét khi xây dựng mạng nơ ron
nhiều lớ p sử dụng thuật toán lan truyền ngượ c:
Tiề n xử lý d ữ liệu
Tần số của dữ liệu: hàng ngày, hàng tuần, hàng tháng hay hàng quý.
Kiểu dữ liệu: các chỉ số k ỹ thuật hay các chỉ số căn bản.
MIN_VAL: Giá tr ị nhỏ nhất của dữ liệuTFmax: Giá tr ị lớ n nhất của hàm chuyển
TFmin: Giá tr ị nhỏ nhất của hàm chuyển
OV: Giá tr ị ban đầu
Bướ c 4: Phân chia t ậ p d ữ liệu
Trong thực tế, khi huấn luyện, ngườ i ta thườ ng chia tậ p dữ liệu thành các tậ p: Huấn luyện,
kiểm tra và kiểm định (ngoài các mẫu). Tậ p huấn luyện thườ ng là tậ p lớ n nhất đượ c sử dụng để huấn luyện cho mạng. Tậ p kiểm tra thườ ng chứa khoảng 10% đến 30% tậ p dữ liệu
huấn luyện, đượ c sử dụng để kiểm tra mức độ tổng quát hóa của mạng sau khi huấn luyện.
Kích thướ c của tậ p kiểm định cần đượ c cân bằng giữa việc cần có đủ số mẫu để có thể
kiểm tra mạng đã đượ c huấn luyện và việc cần có đủ các mẫu còn lại cho cả pha huấn
luyện và kiểm tra.
Có hai cách thực hiện xác định tậ p kiểm tra. Một là lấy ngẫu nhiên các mẫu từ tậ p huấn
luyện ban đầu. Lợ i điểm của cách này là có thể tránh đượ c nguy hiểm khi mà đoạn dữ liệu
đượ c chọn có thể chỉ điển hình cho một tính chất của dữ liệu (đang tăng hoặc đang giảm).
Hai là chỉ lấy các dữ liệu ở phần sau của tậ p huấn luyện, trong tr ườ ng hợ p các dữ liệu gần
vớ i hiện tại là quan tr ọng hơ n các dữ liệu quá khứ.
Bướ c 5: Xác định cấ u trúc mạng
Phươ ng pháp thực hiện xây dựng mạng nơ ron bao gồm việc xác định sự liên k ết giữa các
nơ ron, đồng thờ i xác định cấu trúc của mạng bao gồm số lớ p ẩn, số nơ ron trong từng lớ p.
Tuy nhiên, các thực nghiệm cho thấy r ằng, số lớ p ẩn sử dụng trong mạng không nên vượ t
quá 4 lớ p. Ngoài ra, không có phươ ng pháp nào có thể chọn đượ c số tối ưu các nơ ron sử
dụng trong lớ p ẩn. Mặc dù vậy cũng có một số phươ ng pháp cho ta lựa chọn ban đầu. Nhưng để có đượ c số tối ưu các nơ ron trong các lớ p ẩn thì ngườ i phát triển mô hình cần
phải thực hiện nhiều thí nghiệm để có đượ c nó. Bên cạnh đó, việc chọn lựa số các đầu vào
mạng cũng mang một tính chất quyết định đến cấu trúc của mạng để có đượ c khả năng
tổng quát hóa tốt.
Ta có thể thực hiện lựa chọn số nơ ron trong các lớ p ẩn bằng cách bắt đầu bằng một số nào
đó dựa trên các luật. Sau khi thực hiện huấn luyện, kiểm tra lỗi tổng quát hóa của từng cấu
trúc, có thể tăng hoặc giảm số các nơ ron.
Bất k ể phươ ng pháp nào thì luật tổng quát nhất là thực hiện chọn cấu trúc mạng cho ta lỗi
tổng quát hóa trên tậ p dữ liệu huấn luyện là nhỏ nhất. Khi thực hiện điều chỉnh, nên giữ
các tham số còn lại không thay đổi để tránh tạo ra các cấu trúc khác có khả năng đưa lại
các phức tạ p không cần thiết trong quá trình lựa chọn số tối ưu các nơ ron trong lớ p ẩn.
Bướ c 6: Xác định tiêu chuẩ n đ ánh giá
Hàm đượ c sử dụng để đánh giá mạng thườ ng là hàm trung bình bình phươ ng lỗi. Các hàmkhác có thể là hàm độ lệch nhỏ nhất (least absolute deviation), hiệu phần tr ăm (percentage
differences), bình phươ ng nhỏ nhất bất đối xứng (asymetric least squares),... Tuy nhiên,
các hàm này có thể không phải là hàm đánh giá chất lượ ng cuối cùng cho mạng. Phươ ng
pháp đánh giá các giá tr ị dự báo hay đượ c sử dụng là giá tr ị trung bình tuyệt đối phần tr ăm
lỗi (mean absolute percentage error - MAPE).
Chẳng hạn trong các hệ thống bán hàng, các giá tr ị dự báo của mạng nơ ron sẽ đượ c chuyển
sang tín hiệu mua hoặc bán tùy thuộc vào một tiêu chuẩn xác định tr ướ c đó.
Bướ c 7: Huấ n luyện mạng
Huấn luyện mạng học các dữ liệu bằng cách lần lượ t đưa các mẫu vào cùng vớ i những giá
tr ị mong muốn. Mục tiêu của việc huấn luyện mạng đó là tìm ra tậ p các tr ọng số cho ta giá
tr ị nhỏ nhất toàn cục của chỉ số hiệu năng hay hàm lỗi.
Vấn đề đặt ra là khi nào thì ngừng huấn luyện. Có hai quan điểm trong vấn đề này. Quan
điểm thứ nhất cho r ằng chỉ nên ngừng huấn luyện chừng nào không có tiến triển nào của
muốn theo thờ i gian. Tần số thực hiện huấn luyện lại mạng cần hợ p lý sao cho mạng có thể
đạt đượ c tr ạng thái hoạt động tốt nhất.
3.3.2. Xây d ự ng chươ ng trình
Về tổng thể, chươ ng trình dự báo dữ liệu đượ c xây dựng dựa trên các cơ sở lý thuyết đã
nêu trên. Mạng sử dụng trong bài toán dự báo dữ liệu là mạng truyền thẳng nhiều lớ p, đượ c
huấn luyện bở i thuật toán lan truyền ngượ c sửa đổi (có sử dụng tham số bướ c đà) để tăng
khả năng tổng quát hóa và thờ i gian hội tụ. Về tổng thể, các mạng nơ ron truyền thẳng
nhiều lớ p đượ c huấn luyện bở i thuật toán lan truyền ngượ c cần có khả năng linh hoạt đáp
ứng đượ c nhiều bài toán. (Chú ý r ằng điều này có thể thực hiện đượ c bằng cách xây dựng
cấu trúc chươ ng trình phù hợ p). Điều quan tr ọng là xác định đượ c các biến chi phối trong
bài toán, khả năng sẵn có của dữ liệu (hàng ngày, hàng tháng hay quý, năm),...
Ở đây nêu ra một ví dụ của bài toán dự báo dữ liệu: Bài toán dự báo khả năng sử dụng
khí ga
“Trong ngành công nghiệ p ga, việc dự báo khả năng sử dụng hàng ngày hay hàng giờ là r ất
cần thiết đối vớ i các công ty, giúp họ tối ưu đượ c sự phân phối phục vụ của họ đối vớ i
khách hàng. Đối vớ i các công ty đườ ng ống, việc dự báo khả năng tiêu thụ có thể giúp xácđịnh các ảnh hưở ng đến hoạt động của hệ thống đườ ng ống, từ đó có thể đáp ứng đượ c nhu
cầu và dự báo khả năng tiêu thụ trong tươ ng lai. Nó cũng có thể giúp họ tìm ra cách tốt
nhất để tối thiểu hóa chi phí điều hành, đáp ứng đượ c nhu cầu. Một quyết định cần phải
tăng thêm hay rút bớ t lượ ng ga để có thể phù hợ p vớ i yêu cầu phải đượ c đưa ra bất k ể tình
tr ạng lưu tr ữ hiện tại. Một lý do khác là lượ ng ga chảy trong hệ thống là không đượ c xác
định chính xác. Nói một cách khác, khác hàng có quyền để lại một lượ ng ga lưu tr ữ tại nhà
mà không phải thông báo. Do vậy, khả năng này cũng cần phải đượ c xem xét. ”
Rõ ràng là từ các nguyên nhân trên, cần phải xây dựng một hệ dự báo tin cậy dựa trên các
yếu tố lậ p k ế hoạch hoạt động.
Dự đoán khả năng sử dụng ga mượ n ý tưở ng từ bài toán dự báo lượ ng tiêu thụ điện, bài
toán đã áp dụng mạng nơ ron thành công cho việc dự báo lượ ng tiêu thụ trong 1 cho đến 24
giờ (Xem chẳng hạn [6][18]). Việc dự báo lượ ng tiêu thụ ga có một sự tươ ng tự nhất định
đối vớ i các bài toán khác như: điện, nướ c, đồng thờ i cũng có những đặc điểm riêng: nó
chứa đựng các dự báo cho các khoảng thờ i gian trùng vớ i các chu k ỳ k ế lậ p hoạch cho việc
Một vấn đề nữa đối vớ i mạng nơ ron đó là khả năng r ơ i vào các điểm cực tr ị địa phươ ng.
Như chúng ta đã biết, thuật toán Lan truyền ngượ c lỗi không đảm bảo sẽ cho ta điểm cực
tr ị toàn cục. Nếu r ơ i vào điểm cực tr ị địa phươ ng, ta sẽ phải bắt đầu huấn luyện lại, điềunày sẽ khiến cho mạng nơ ron sẽ không thể áp dụng đượ c trong thực tế đối vớ i các bài toán
yêu cầu độ chính xác cao trong thờ i gian tối thiểu. Do đó, giải pháp sử dụng hệ số học biến
đổi là một trong các hướ ng để có thể vượ t qua đượ c nhượ c điểm trên. Ngoài ra, nếu dữ liệu
phân bố không đều trên từng mẫu thì khả năng tổng quát hóa cũng không tốt.
Một điều nữa, là mạng có khả năng sẽ không thể đạt đượ c đến tr ạng thái mong muốn,
mà có thể nó sẽ bỏ qua điểm cực tr ị. Để có thể tránh điều này, không nên đặt hệ số học quá
lớ n (cỡ 0.1 chẳng hạn), cũng như hệ số bướ c đà quá lớ n (chẳng hạn = 0.5) (do đặc tr ưngcủa thuật toán lan truyền ngượ c sử dụng tham số bướ c đà).
Như đã nêu trên, để đảm bảo khả năng có thể đạt đến điểm cực tiểu, số các đơ n vị trong
lớ p ẩn cần đủ lớ n. Tuy nhiên, nếu số các đơ n vị trong lớ p ẩn vượ t quá một ngưỡ ng nào đó
thì khả năng tổng quát hóa của mạng sẽ kém, bở i lẽ sau khi huấn luyện mạng có xu hướ ng
ghi nhớ tất cả các mẫu đã đượ c học. Khi đó, nên xem xét đến khả năng sử dụng thêm một
lớ p ẩn nữa vớ i số nơ ron nhỏ (vài nơ ron) và giảm bớ t số nơ ron ở lớ p ẩn thứ nhất.
Mạng nơ ron có thể đượ c huấn luyện để xấ p xỉ các hàm bất k ỳ mà không cần biết tr ướ c sự
liên hệ của các đầu vào đối vớ i đầu ra. Chúng có thể hoạt động như một bộ nhớ tự liên hợ p
bằng cách sử dụng các dữ liệu đặc thù cho các ứng dụng, bài toán trong các l ĩ nh vực cụ
thể. Đó là đặc tr ưng đem lại cho mạng nơ ron lợ i thế đối vớ i các mô hình khác, đặc tr ưng
thứ lỗi.
Trong luận văn này, chúng tôi xem xét các thuộc tính của mạng nơ ron truyền thẳng và quátrình xác định các đầu vào, kiến trúc của mạng phục vụ cho một bài toán cụ thể. Chúng tôi
cũng đã xây dựng một hệ chươ ng trình dự báo dữ liệu nhằm áp dụng các vấn đề lý thuyết
đã tìm hiểu. Các thí nghiệm cho thấy, nếu như đượ c huấn luyện tốt trên tậ p các dữ liệu đầy
đủ và hoàn thiện vớ i các tham số đượ c lựa chọn cẩn thận thì k ết quả dự báo có thể chính
xác đến 90%. Chươ ng trình cũng cung cấ p khả năng lưu lại tậ p các tham số, tr ọng số và
các độ lệch sau những lần huấn luyện thành công và nạ p lại các tham số này để sử dụng
khi dự báo dữ liệu.
Tuy nhiên, luận văn này mớ i chỉ xem xét đến các khía cạnh tổng thể về mạng nơ ron truyền
thẳng nhiều lớ p và vấn đề dự báo dữ liệu trong khoảng thờ i gian ngắn (short-term
forecasting) và trung bình (mid-term forecasting). Tuy nhiên, ứng dụng của các vấn đề lý
thuyết thể hiện trong hệ chươ ng trình đượ c xây dựng hoàn toàn có thể áp dụng cho các bài
toán dự báo trong thờ i gian dài (long-term forecasting) vớ i một số sửa đổi trong thuật toán
huấn luyện.
Cần nhấn mạnh r ằng, để có thể dự báo đượ c dữ liệu, ta cần sử dụng các dữ liệu lịch sử để
huấn luyện và có thể cả các dữ liệu dự báo của các đầu vào (Ví dụ như: dự báo nhiệt độ
ngày hôm sau,...). Ngườ i ta cũng đã chỉ ra r ằng mạng nơ ron truyền thẳng nhiều lớ p có khả
năng tốt nhất trong dự báo trong khoảng thờ i gian ngắn.
Mạng nơ ron truyền thẳng nhiều lớ p có thể sử dụng trong r ất nhiều bài toán dự báo trong
các l ĩ nh vực khác: dự báo lượ ng sử dụng điện, nướ c, thị tr ườ ng chứng khoán, lưu lượ ng
giao thông và lượ ng sản phẩm bán ra chừng nào các mối quan hệ giữa các đầu vào và đầu
ra có thể thấy đượ c và đưa vào trong mô hình. Tuy vậy, không tồn tại một mô hình chung
thích hợ p cho tất cả các bài toán dự báo trong thực tế. Đối vớ i mỗi một bài toán, cần thực
hiện phân tích cặn k ẽ, cụ thể các dữ liệu trong phạm vi và sử dụng các tri thức thu thậ pđượ c để có thể xây dựng đượ c một mô hình thích hợ p. Các phân tích và các tri thức thu
thậ p đượ c luôn có ích trong việc lựa chọn các đầu vào, mã hóa các đầu vào này hoặc quyết
định cấu trúc của mạng, đặc biệt khi mà dữ liệu trong l ĩ nh vực đó chỉ có giớ i hạn.
Thuật toán lan truyền ngượ c chuẩn đượ c sử dụng trong việc huấn luyện mạng nơ ron truyền
thẳng nhiều lớ p đã chứng tỏ khả năng r ất tốt thậm chí đối vớ i cả các bài toán hết sức phức
tạ p. Mặc dù vậy, để có đượ c khả năng như vậy, ta cần mất r ất nhiều thờ i gian để huấn
luyện, điều chỉnh các tham số của mạng (thậm chí cả đối vớ i các bài toán có cấu trúc hếtsức đơ n giản). Điều này luôn là tr ở ngại đối vớ i các bài toán trong thực tế, do vậy, các
thuật toán cải tiến cần đượ c áp dụng để tăng khả năng hội tụ của mạng khi huấn luyện.
Luận văn này đượ c thực hiện nhằm làm sáng tỏ những vấn đề lý thuyết về mạng nơ ron
truyền thẳng nhiều lớ p, thuật toán lan truyền ngượ c, các bướ c cần thực hiện khi phân tích,
thiết k ế và xây dựng ứng dụng cho bài toán dự báo dữ liệu, đồng thờ i xây dựng một
chươ ng trình ứng dụng nhằm mục đích thể hiện các vấn đề lý thuyết đã nêu. Chắc chắn
luận văn này vẫn còn những thiếu sót, chúng tôi r ất mong nhận đượ c những ý kiến đóng