Tải bản đầy đủ (.docx) (52 trang)

MẠNG NEURAL NHÂN TẠO VÀ MẠNG NEURAL NHÂNTẠO TRUYỀN THẲNG

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

LỜI NÓI ĐẦU
Chỉ số giá tiêu dùng để đo lường lạm phát được thể hiện thông qua
việc chi tiêu hằng ngày của người tiêu dùng. Sự gia tăng trong chỉ số CPI đồng
nghĩa với tỉ lệ lạm phát tăng. CPI được sự dụng bởi các thương nhân bán lẻ để
dự đoán giá trong tương lai, bởi các ông chủ để tính tiền lương, bởi ngân hàng
để điều chỉnh lãi suất và bởi chính phủ để xác định mức tăng cho quỹ
bảo trợ xã hội Với tầm quan trọng như vậy , chỉ số giá tiêu dùng cần được nhận
biết một cách chính xác càng sớm càng tốt. Dự báo chỉ số giá tiêu dùng là một
bài toán hết sức quan trọng, bởi nhờ nó mà toàn bộ hệ thống xã hội có
những điều chỉnh phù hợp nhằm đưa đất nước thoát khỏi tình trạng khủng hoảng
kinh tế và phát triển đất nước lên một tầm cao mới.
Có nhiều phương pháp để dự báo chỉ số giá tiêu dùng. Tuy nhiên, với
những ưu điểm về khả năng học và đưa ra quy ết định từ những điều đã học được
của mạng nơron thì việc ứng dụng mạng nơron để dự báo là một phương
pháp mới.
Trong khóa luận này em mạnh dạn áp dụng mạng nơ ron nhân tạo vào
trong dự báo ngắn hạn chỉ số giá tiêu dùng CPI tại việt nam. Và áp dụng một số
giải thuật vào tối ưu hóa trọng số mạng nơ ron nhân tạo như: Giải thuật di truyền
(GA). Ngoài ra còn có so sánh với một số phương pháp tối ưu khác như: giải
thuật bầy đầy (PSO), giải thuật vi khuẩn tìm kiếm thức ăn (BFO).
Trong bài báo cáo của mình em cũng đã cố gắng hết sức mình nhưng
không thể tránh khỏi những thiếu xót và kiến thức, kinh nghiệm.
Cuối cùng em xin chân thành cám ơn sâu sắc thầy: Nguyễn Văn Giáp đã
giúp đỡ em hoành thành bài khóa luận tốt nghiệp của mình. Cùng toàn thể thầy
cô khác trong khoa.

MỤC LỤC

1



DANH MỤC HÌNH VẼ

MẠNG NEURAL NHÂN TẠO VÀ MẠNG NEURAL NHÂN
TẠO TRUYỀN THẲNG.
1.1 Sơ lược về mạng neural nhân tạo.
1.1.1 Lịch sử phát triển.
Sự phát triển của mạng nơron trải qua cả quá trình đưa ra các khái niệm
mới lẫn thực thi những khái niệm này.
Dưới đây là các mốc đáng chú ý trong lịch sử phát triển của mạng nơron.
-

Cuối TK 19, đầu TK 20, sự phát triển chủ yếu chỉ là những công việc có
sự tham gia của cả ba ngành Vật lý học, Tâm lý học và Thần kinh học,
bởi các nhà khoa học như Hermann von Hemholtz, Ernst Mach, Ivan
Pavlov. Các công trình nghiên cứu của họ chủ yếu đi sâu vào các lý
thuyết tổng quát về HỌC (Learning), NHÌN (vision) và LẬP LUẬN
(conditioning),... và không hề đưa ra những mô hình toán học cụ thể mô

-

tả hoạt động của các nơron.
Mọi chuyện thực sự bắt đầu vào những năm 1940 với công trình của
Warren McCulloch và Walter Pitts. Họ chỉ ra rằng về nguyên tắc, mạng
của các 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.
2


-


Tiếp theo hai người là Donald Hebb, ông đã phát biểu rằng việc thuyết
lập luận cổ điển (classical conditioning) (như Pavlov đưa ra) là hiện thực
bởi do các thuộc tính của từng nơron riêng biệt. Ông cũng nêu ra một

-

phương pháp học của các nơron nhân tạo.
Ứng dụng thực nghiệm đầu tiên của các nơron nhân tạo có được vào cuối
những năm 50 cùng với phát minh của mạng nhận thức (perceptron
network) và luật học tương ứng 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
3


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.

1.1.2 Ứng dụng.
Trong quá trình phát triển, mạng nơron đã được ứng dụng thành công
trong rất nhiều lĩnh vực. Dưới đây liệt kê ra một số ứng dụng chính của mạng
nơron:


Aerospace: Phi công tự động, giả lập đường bay, các hệ thống

điều khiển lái máy bay, bộ phát hiện lỗi.
• Automotive: Các hệ thống dẫn đường tự động cho ô tô, các bộ



phân tích hoạt động của xe.
Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng.
Defense: Định vị - phát hiện vũ khí, dò mục tiêu, phát hiện đối
tượng, nhận dạng nét mặt, các bộ cảm biến thế hệ mới, xử lý ảnh

radar,...

Electronics: Dự đoán mã tuần tự, sơ đồ chip IC, điều khiển tiến
trình, phân tích nguyên nhân hỏng chip, nhận dạng tiếng nói, mô
hình phi tuyến.
• Entertainment: Hoạt hình, các hiệu ứng đặc biệt, dự báo thị trường.
• Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm
cố, đánh giá mức độ hợp tác, phân tích đường tín dụng, chương
trình thương mại qua giấy tờ, phân tích tài chính liên doanh, dự báo

tỷ giá tiền tệ.
• Insurance: Đánh giá việc áp dụng chính sách, tối ưu hóa sản phẩm.
• …
1.1.3 Căn nguyên sinh học.
Bộ não con người chứa khoảng 10 11 các phần tử liên kết chặt chẽ với
nhau (khoảng 104 liên kết đối với mỗi phần tử) gọi là các nơron. Dưới con mắt
của những người làm tin học, một nơron được cấu tạo bởi các thành phần: tế
4


bào hình cây (dendrite) - tế bào thân (cell body) - và sợi trục thần kinh (axon).
Tế bào hình cây có nhiệm vụ mang các tín hiệu điện tới tế bào thân, tế bào thân
sẽ thực hiện gộp (Sum) và phân ngưỡng (Thresholds) các tín hiệu đến. Sợi trục
thần kinh làm nhiệm vụ đưa tín hiệu từ tế bào thân ra ngoài.
Điểm tiếp xúc giữa một sợi trục thần kinh của nơron này và tế bào hình
cây của một nơron khác được gọi là khớp thần kinh (synapse). Sự sắp xếp của
các nơron và mức độ mạnh yếu 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

5


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ố wjk 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 nó;
5) Một hàm kích hoạt, hay hàm chuyển (activation function, transfer

function), xác định mức độ kích hoạt khác dựa trên mức độ kích
hoạt hiện tại;
6) Một đơn vị điều chỉnh (độ lệch) (bias, offset) của mỗi đơn vị;
7) Phương pháp thu thập thông tin (luật học - learning rule);

8) Môi trường hệ thống có thể hoạt động.

1.2 Đơn vị xử lý.
Một đơn vị xử lý (Hình 1), cũng được gọi là một nơron hay một nút
(node), thực hiện một công việc rất đơn giản: nó nhận tín hiệu vào từ các đơn vị
phía trước hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ được
lan truyền sang các đơn vị khác.

Hình 1.1: Đơn vị xử lý (Processing unit).
Trong đó:
: các đầu vào.
: các trọng số tương ứng với các đầu vào : độ lệch (bias).
: đầu vào mạng (net-input).
: đầu ra của nơron .
: hàm chuyển (hàm kích hoạt).
Trong một mạng nơron có ba kiểu đơn vị:
1) Các đơn vị đầu vào (Input units), nhận tín hiệu từ bên ngoài;

6


2) Các đơn vị đầu ra (Output units), gửi dữ liệu ra bên ngoài;

3)
3) Các đơn vị ẩn (Hidden units), tín hiệu vào (input) và ra (output) của

nó nằm trong mạng.
Mỗi đơn vị j có thể có một hoặc nhiều đầu vào: x 0, x1, x2, … xn, nhưng chỉ
có một đầu ra zj. Một đầu vào tới một đơn vị có thể là dữ liệu từ bên ngoài mạng,
hoặc đầu ra của một đơn vị khác, hoặc là đầu ra của chính nó.

1.3 Hàm xử lý.
1.3.1 Hàm kết hợp.
Mỗi một đơn vị trong một mạng kết hợp các giá trị đưa vào nó thông qua
các liên kết với các đơn vị khác, sinh ra một giá trị gọi là net input. Hàm thực
hiện nhiệm vụ này gọi là hàm kết hợp (combination function), được định nghĩa
bởi một luật lan truyền cụ thể. Trong phần lớn các mạng nơron, chúng ta giả sử
rằng mỗi một đơn vị cung cấp một bộ cộng như là đầu vào cho đơn vị mà nó có
liên kết. Tổng đầu vào đơn vị j đơn giản chỉ là tổng
trọng số của các đầu ra riêng
j
i

lẻ từ các đơn vị kết nối cộng thêm ngưỡng hay độ lệch (bias) :
Trường hợp , nơron được coi là đang ở trong trạng thái kích thích. Tương
tự, nếu như , nơron ở trạng thái kiềm chế. Chúng ta gọi các đơn vị với luật lan
truyền như trên là các sigma units.
Trong một vài trường hợp người ta cũng có thể sử dụng các luật lan truyền
phức tạp hơn. Một trong số đó là luật sigma-pi, có dạng như sau:
Rất nhiều hàm kết hợp sử dụng một "độ lệch" hay "ngưỡng" để tính net
input tới đơn vị. Đối với một đơn vị đầu ra tuyến tính, thông thường, được chọn
là hằng số và trong bài toán xấp xỉ đa thức .
1.3.2 Hàm kích hoạt (hàm chuyển).
Phần lớn các đơn vị trong mạng nơron chuyển net input bằng cách sử
dụng một hàm vô hướng (scalar-to-scalar function) gọi là hàm kích hoạt, kết quả

7


của hàm này là một giá trị gọi là mức độ kích hoạt của đơn vị (unit's activation).
Loại trừ khả năng đơn vị đó thuộc lớp ra, giá trị kích hoạt được đưa vào một hay

nhiều đơn vị khác. Các hàm kích hoạt thường bị ép vào một khoảng giá trị xác
định, do đó thường được gọi là các hàm bẹp (squashing). Các hàm kích hoạt hay
được sử dụng là:
1) Hàm đồng nhất (Linear function, Identity function )

Nếu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này. Đôi khi
một hằng số được nhân với net-input để tạo ra một hàm đồng nhất.

Hình 1.2: Hàm đồng nhất (Identity function).
2) Hàm bước nhị phân (Binary step function, Hard limit function).

Hàm này cũng được biết đến với tên "Hàm ngưỡng" (Threshold
function hay Heaviside function). Đầu ra của hàm này được giới hạn vào một
trong hai giá trị:

Dạng hàm này được sử dụng trong các mạng chỉ có một lớp. Trong hình
vẽ sau, được chọn bằng 1.

8


Hình 1.3: Hàm bước nhị phân (Binary step function).
3) Hàm sigmoid (Sigmoid function (logsig)).

Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng được huấn luyện
(trained) bởi thuật toán Lan truyền ngược(back-propagation), bởi vì nó dễlấy đạo
hàm, do đó có thể giảm đáng kểtính toán trong quá trình huấn luyện. Hàm này
được ứng dụng cho các chương trình ứng dụng mà các đầu ra mong muốn rơi
vào khoảng [0,1].


Hình 1.4: Hàm Sigmoid.
4) Hàm sigmoid lưỡng cực (Bipolar sigmoid function (tansig))

Hàm này có các thuộc tính tương tự hàm sigmoid. Nó làm việc tốt đối với
các ứng dụng có đầu ra yêu cầu trong khoảng [-1,1].

Hình 1.5: Hàm sigmoid lưỡng cực.
Các hàm chuyển của các đơn vị ẩn (hidden units) là cần thiết để biểu diễn
sự phi tuyến vào trong mạng. Lý do là hợp thành của các hàm đồng nhất là một
hàm đồng nhất. Mặc dù vậy nhưng nó mang tính chất phi tuyến (nghĩa là, khả
năng biểu diễn các hàm phi tuyến) làm cho 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
9


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ột
hà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.

Hình 1.6: Mạng nơron truyền thẳng nhiều lớp (Feed-forward neural network).

10


1.4.2 Mạng hồi quy.
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.

Hình 1.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 hai nhó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",

11


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.

Hình 1.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ầy luôn thực hiện một
công việc tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu vào.
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 squares error

function),

12


trong đó:
p: số thứ tự mẫu trong tập huấn luyện i : số thứ tự của đơn vị đầu ra
tpi và ypi : tương ứng là đầu ra mong muốn và đầu ra thực tế của mạng cho
đơn vị đầu ra thứ i trên mẫu thứ p.
Trong các ứng dụng thực tế, nếu cần thiết có thể làm phức tạp hàm số với
một vài yếu tố khác để có thể kiểm soát được sự phức tạp của mô hình.
1.7 Mạng nơ-ron lan truyền thằng nhiều lớp.
1.7.1 Mạng perceptron một lớp.
Mạng perceptron một lớp do F.Rosenblatt đề xuất năm 1960 [15] là mạng
truyền thẳng chỉ một lớp vào và một lớp ra không có lớp ẩn. Trên mỗi lớp này có
thể có một hoặc nhiều nơ-ron. Mô hình mạng nơ-ron của Rosenblatt sử dụng hàm
ngưỡng đóng vai trò là hàm chuyển. Do đó, tổng của các tín hiệu vào lớn hơn giá
trị ngưỡng thì giá trị đầu ra của nơ-ron sẽ là 1, còn trái lại sẽ là 0.
với là tổng thông tin đầu vào của nơ-ron i.
Ngay từ khi mạng Perceptron một lớp được đề xuất nó đã được sử dụng
để giải quyết bài toán phân lớp. Một đối tượng sẽ được nơ-ron i phân vào lớp A
nếu
Tổng thông tin đầu vào :
Trong đó wij là trọng số liên kết từ nơ-ron j tới nơ-ron i , xj là đầu vào từ
nơ-ron j, và là ngưỡng của nơ-ron i. Trong trường hợp trái lại đối tượng sẽ được
phân vào lớp B.
Việc huấn luyện mạng dựa trên phương pháp học có giám sát với tập mẫu
học là {(x(k), d(k))}, k= 1,2, …, p .Trong đó d(k) = [d1(k), d2(k), …, dn(k)]T là đầu ra
quan sát được tương ứng với đầu vào x(k) = [x1(k), x2(k), …, xm(k)]T (với m là số đầu
vào, n là số đầu ra và p là cặp mẫu đầu vào - đầu ra dùng cho việc học). Như vậy

chúng ta mong rằng sau quá trình học, đầu ra tính toán được y (k) = [y1(k), y2(k), …,
yn(k)]T sẽ bằng với đầu ra của mẫu học d(k)

13


Hình 1.9 Mạng perceptron một lớp.
Để bắt đầu quá trình luyện mạng, các trọng số được gán giá trị ngẫu nhiên
trong khoảng [-3, 3]. Sau đó hiệu chỉnh các trọng số cho phù hợp với mẫu học để
làm giảm sai số giữa y(k) và d(k)
Các bước tiến hành:



Xác định ngẫu nhiên bộ trọng số.
Với mỗi mẫu học (x(k), d(k)) , k=1,2, …, p thực hiện các.

Bước:
o
o

Tính giá trị y(k) theo công thức.
Xác định sai số δi tại nơ-ron i: δi = di - yi , trong đó di là giá trị
đầu ra quan sát được và yi là giá trị đầu ra tính toán tại nơ-ron

thứ i.
o Tính ∆wij là số gia của trọng số wij (trọng số liên kết giữa đầu
vào j tới nơ-ron i) theo công thức: ∆wij =ηδixj trong đó η là tốc
độ học (0<η<1).
o Hiệu chỉnh wij(t+1) = wij(t) + ∆wij =wij(t) +ηδi(t)xj(t) trong đó wij(t+1) là

trọng số sau khi điều chỉnh ở lần học tại thời điểm t.
Rosenblatt đã chứng minh rằng quá trình học của mạng Perceptron sẽ hội
tụ tới bộ trọng số W, biểu diễn đúng các mẫu học với điều kiện là các mẫu này
biểu thị các điểm rời rạc của một hàm khả tách tuyến tính nào đó (f: R n → R

14


được gọi là khả tách tuyến tính nếu các tập {F -1(xk)}, với xk thuộc miền trị của f,
có thể tách được với nhau bởi các siêu phẳng trong không gian Rn ).
Năm 1969, Minsky và Papert đã chứng minh một cách chặt chẽ rằng lớp
hàm thể hiện sự phụ thuộc giữa đầu vào và đầu ra có thể học bởi mạng
Perceptron một lớp là lớp hàm khả tách tuyến tính. Khả tách tuyến tính là trường
hợp tồn tại một mặt siêu phẳng để phân cách tất cả các đối tượng của một lớp này
với một lớp khác, ví dụ một mặt phẳng sẽ phân chia không gian ba chiều thành
hai vùng riêng biệt. Mở rộng ra, nếu có n đầu vào, n>2 thì công thức tạo nên một
siêu phẳng có n-1 chiều trong không gian n chiều, nó chia không gian đó thành
hai nửa. Trong nhiều bài toán thực tế đòi hỏi chia các vùng của các điểm trong
một siêu không gian thành các lớp riêng biệt. Loại bài toán này gọi là bài toán
phân lớp. Bài toán phân lớp có thể giải quyết bằng cách tìm các tham số thích
hợp cho một siêu phẳng để nó có thể chia không gian n chiều thành các vùng
riêng biệt.
Với tính chất của như đã nêu trên, mạng perceptron một lớp có thể mô tả
các hàm logic như AND, OR và NOT. Tuy nhiên nó không thể hiện được hàm
XOR. Như vậy chứng tỏ mô hình perceptron một lớp không thể giải quyết bài
toán này. Vấn đề này sẽ được giải quyết bằng mô hình mạng nơ-ron perceptron
nhiều lớp (Multilayer Perceptron - MLP).
1.7.2 Mạng perceptron nhiều lớp.
Mạng perceptron nhiều lớp (Multilayer Perceptron -MLP) còn được gọi là
mạng truyền thẳng nhiều lớp là sự mở rộng của mô hình mạng perceptron với sự

bổ sung thêm những lớp ẩn và các nơ-ron trong các lớp ẩn này có hàm chuyển
(hàm kích hoạt) dạng phi tuyến. Mạng MLP có một lớp ẩn là mạng nơ-ron nhân
tạo được sử dụng phổ biến nhất, nó có thể xấp xỉ các hàm liên tục được định
nghĩa trên một miền có giới hạn cũng như những hàm là tập hợp hữu hạn của các
điểm rời rạc.
a. Giải quyết bài toán XOR với mạng MLP.

15


Ta thấy có thể dùng hai đường thẳng để phân tách với trường hợp hàm
XOR.

Hay ta giải hệ phương trình.

Dễ thấy mỗi bất phương trình ở trên có thể được thực hiện bằng một
nơron và đầu ra của hai nơ-ron này (2 bất phương trình) là đầu vào của một hàm
AND. Do vậy có thể sử dụng mạng MLP sau để thực hiện chức năng của hàm
XOR như sau:

Hình 1.10 Thực hiện hàm XOR bằng mạng MLP.
b. Thuật toán học theo phương pháp lan truyền ngược sai số.

Thuật toán học theo phương pháp lan truyền ngược sai số do Rumelhart
và các cộng sự đề xuất [20] là một trong số những kết quả nghiên cứu quan trọng
nhất đối với sự phát triển của mạng nơ-ron nhân tạo. Thuật toán này được áp
dụng cho mạng truyền thẳng nhiều lớp trong đó các nơ-ron có thể sử dụng các
hàm chuyển là các hàm liên tục có các dạng khác nhau.
Thuật toán sử dụng một tập các mẫu gồm các cặp đầu vào - đầu ra để
luyện mạng. Với mỗi cặp đầu vào - đầu ra (x (k),d(k)) thuật toán lan truyền ngược

sai số thực hiện hai giai đoạn sau:
16




Giai đoạn thứ nhất, mẫu đầu vào x(k) được truyền từ lớp vào tới lớp ra, và

ta có kết quả đầu ra tính toán được là y(k).
• Giai đoạn tiếp theo, tín hiệu lỗi được tính toán từ sự khác nhau giữa đầu ra
quan sát được d(k) với đầu ra tính toán y(k) sẽ được lan truyền ngược lại từ
lớp ra đến các lớp trước để điều chỉnh các trọng số của mạng. Để làm ví
dụ ta xét mạng truyền thẳng có một lớp ẩn dưới đây, đối với các mạng có
kích thước lớn hơn thì thao tác cũng tương tự.
Mạng nơ-ron được xét có m nơ-ron ở lớp vào, l nơ-ron trong lớp ẩn và n
nơ-ron ở lớp ra. Đường kẻ liền thể hiện luồng tín hiệu được truyền từ đầu vào tới
đầu ra còn các đường kẻ nét đứt thể hiện luồng tín hiệu lỗi được truyền ngược trở
lại từ đầu ra.

Hình 1.11 Lan truyền tín hiệu trong quá trình học theo phương pháp lan truyền
ngược sai số.
Chúng ta xét một cặp đầu vào - đầu ra để luyện mạng (x,d), để đơn giản
chúng ta bỏ ký hiệu mũ k thể hiện số thứ tự của cặp mẫu này trong bộ mẫu dùng
để luyện mạng. Khi đưa vào đầu vào x, nơ-ron thứ q trong lớp ẩn sẽ nhận tín hiệu
vào của mạng là:
Nơ-ron q ở lớp ẩn sẽ tính toán và tạo kết quả ở đầu ra của nó là:
Do đó tín hiệu vào của nơ-ron thứ i trên lớp ra sẽ là:
17



Và cuối cùng, đầu ra của nơ-ron i trên lớp ra sẽ là:
Công thức trên cho biết quá trình lan truyền tín hiệu từ đầu vào qua lớp ẩn
tới đầu ra. Tiếp theo chúng ta xét tín hiệu lỗi được lan truyền ngược lại từ lớp ra.
Trước hết, đối với mỗi cặp giá trị vào-ra chúng ta xây dựng một hàm giá như sau:

Như vậy với một tập gồm p mẫu học, chúng ta lần lượt xây dựng được p
hàm giá như vậy. Việc học của mạng hay nhiệm vụ của giải thuật thực chất là tìm
kiếm tập trọng số W trong không gian RM (M là số trọng số có trong mạng) để
lần lượt tối thiểu hoá các hàm giá như vậy. Điều đáng chú ý là việc tối thiểu hoá
được tiến hành liên tiếp nhau và theo chu kỳ đối với các hàm giá.
Để tối thiểu hoá các hàm giá như vậy, giải thuật lan truyền ngược sai số sử
dụng phương pháp giảm gradient để điều chỉnh các trọng số liên kết giữa các nơron. Bản chất của phương pháp này là khi sai số E được vẽ như hàm của tham số
gây ra sai số sẽ phải có một cực tiểu tại bộ giá trị nào đó của tham số. Khi quan
sát độ dốc của đường cong, chúng ta quyết định phải thay đổi tham số thế nào để
có thể tiến gần đến cực tiểu cần tìm kiếm hơn. Trong hình vẽ dưới đây, giá trị của
trọng số phải giảm nếu đạo hàm dE/dW là dương.

Hình 1.12 Sai số E được xét là hàm của trọng số W.

18


Ở đây η là hằng số dương xác định tốc độ giảm giá trị của w, còn dấu âm
chỉ chiều giảm gradient.
Áp dụng phương pháp giảm gradient đối với các trọng số liên kết giữa các
nơron trong lớp ẩn tới các nơ-ron của lớp ra ta có:
Do hàm sai số E là một hàm phức tạp và là hàm gián tiếp của trọng số wiq
(công thức 1.13). Sử dụng nguyên tắc tính đạo hàm của hàm gián tiếp cho

ta


có:
Trong đó δoi là tín hiệu sai số và chỉ số oi có nghĩa là nút thứ i trong trên
lớp ra. Tín hiệu sai số được tính như sau:
Trong đó neti là tín hiệu vào của nơ-ron thứ i trên lớp ra và
g’(neti)=∂g(neti)/∂net. Kết quả này tương tự luật học delta áp dụng cho mạng
perceptron một lớp với đầu vào bây giờ là đầu ra zq của lớp ẩn.
Để điều chỉnh trọng số của các liên kết giữa lớp vào tới lớp ẩn ta cũng sử
dụng phương pháp giảm gradient và lấy đạo hàm theo các biến trung gian như
đã áp ở trên. Xét liên kết giữa nơ-ron thứ j ở lớp vào và nơ-ron thứ q trên lớp ra:

Từ công thức (1.13) mỗi thành phần lỗi [di-yi] , i=1, 2,…, n, là hàm của zq
do vậy công thức trên có thể tiếp tục biến đổi:
Sử dụng công thức (1.13) chúng ta viết lại biểu thức (1.15) như sau:
Trong đó là tín hiệu lỗi của nơ-ron thứ q trong lớp ẩn và được định nghĩa
như sau:
Với là tín hiệu vào của nơ-ron thứ q, như vậy tín hiệu lỗi của nơ-ron trên
lớp ẩn khác với tín hiệu lỗi của nơ-ron trên lớp ra (xem công thức 1.17 và 1.21).

19


Vì sự khác nhau này, thủ tục điều chỉnh trọng số được gọi là luật học delta mở
rộng. Nhìn lại công thức (1.21) tín hiệu lỗi của nơ-ron thứ q trong lớp ẩn được
xác định từ các tín hiệu lỗi , của các nơ-ron trên lớp ra.
Tổng quát đối với lớp bất kỳ, luật lan truyền ngược có dạng.
Trong đó “output_i ” là đầu ra của nơ-ron i và “ input_j ” là đầu vào của
nơ-ron j, δi là tín hiệu học được định nghĩa trong công thức (4.10).
Từ các phân tích trên, thuật toán lan truyền ngược sai số được xây
dựng như sau:

Xét một mạng nơ-ron truyền thẳng có Q lớp, q = 1, 2, …, Q, và gọi net i và
yi là tín hiệu vào và ra của nơ-ron thứ i trong lớp q. Mạng này có m đầu vào và n
đầu ra. Đặt qwij là trọng số của liên kết từ nơ-ron thứ j trong lớp q-1 tới nơ-ron
thứ i trong lớp q.
Đầu vào : Một tập các cặp mẫu học {(x (k),d(k)) | k= 1, 2, …, p } và véc tơ
đầu vào được bổ sung thêm x(k)m+1 = - 1 .
Bước 0 (khởi tạo)
Chọn một hằng số η > 0 và Emax (dung sai cho phép). Khởi tạo ngẫu nhiên
các trọng số trong khoảng giá trị nhỏ. Đặt E =0 và k = 1.
Bước 1(thực hiện một quá trình lặp cho việc huấn luyện mạng)
Sử dụng mẫu học thứ k :
Tại lớp vào (q =1), với mọi i ta có : qyi = 1yi = x(k)i
Bước 2 (Lan truyền tín hiệu từ lớp vào tới lớp ra)
Bước 3 (Xác định tín hiệu lỗi tại lớp ra).

Bước 4 (Lan truyền ngược sai số)
Lan truyền ngược sai số để điều chỉnh các trọng số và tính toán tín hiệu lỗi
cho các lớp trước:

20


Bước 5 (Kiểm tra điều kiện lặp)
Kiểm tra:
if ( k < p )
then
Begin
k=k+1;
Goto bước1;
End.

Bước 6 (Kiểm tra lỗi tổng cộng hiện thời đã chấp nhận được chưa)
If (E < Emax) then
{kết thúc quá trình học và đưa ra bộ trọng số cuối cùng}
Else
Begin
E=0;
K=1;
Goto bước1 {để bắt đầu một lần học tiếp theo };
End;
Mỗi lần toàn bộ tập mẫu học được lan truyền qua mạng được gọi là một
epoch. Số epoch phụ thuộc vào từng trường hợp cụ thể và sự khởi tạo ban đầu.
Có trường hợp thuật toán phải sau hàng chục nghìn epoch mới hội tụ tới lời giải.
Nếu tham số khởi tạo không phù hợp có thể làm cho quá trình học không đạt kết
quả mong muốn. Đối với mỗi epoch ta tính sai số trung bình của mạng theo công
thức sau:
Trong đó p là số mẫu được dùng để luyện mạng, n là số biến của véc-tơ
đầu ra. Sai số RMS thường được dùng để đánh giá kết quả học của mạng nơ-ron.

21


a. Một sốyếu tố ảnh hưởng đến quá trình học theo phương pháp lan

truyền ngược sai số
Khởi tạo các trọng số
Các giá trị được khởi tạo ban đầu cho các trọng số trong mạng lan truyền
ngược sai số ảnh hưởng rất lớn đến kết quả học cuối cùng của mạng. Các giá trị
này thường được khởi tạo ngẫu nhiên trong phạm vi giá trị tương đối nhỏ. Thông
thường hàm chuyển sử dụng cho mạng MLP là hàm sigmoid, do vậy nếu ta chọn
các giá trị trọng số khởi tạo lớn thì các hàm này có thể bão hoà ngay từ đầu và

dẫn tới hệ thống có thể bị tắc ngay tại một cực tiểu địa phương hoặc tại một vùng
bằng phẳng nào đó gần điểm xuất phát. Theo nghiên cứu của Wessels và
Barnard, năm 1992 [18], thì việc khởi tạo các trọng số liên kết wij nên trong
phạm vi với là số liên kết các nơ- ron j với nơ- ron i.
Hằng sốhọc η
Hằng số học η cũng là một yếu tố quan trọng ảnh hưởng đến hiệu quả và
độ hội tụ của giải thuật lan truyền ngược sai số. Không có hằng số η phù hợp
cho tất cả các bài toán khác nhau. Hằng số học này thường được chọn bằng thực
nghiệm cho mỗi bài toán ứng dụng cụ thể bằng phương pháp thử sai. Trong
nhiều ứng dụng thực tế cho thấy một hằng số học có thể phù hợp ở thời điểm bắt
đầu của quá trình học nhưng lại không phù hợp với giai đoạn sau của quá trình
học. Do đó, có một phương pháp hiệu quả hơn đó là sử dụng hằng số học thích
nghi. Một cách xử lý đơn giản cho vấn đề này đó là kiểm tra xem các trọng số
mới có làm giảm hàm giá hay không, nếu không thì có thể các trọng số đã vượt
quá xa vùng cực tiểu và như vậy hằng số η cần phải giảm. Trái lại, nếu sau vài
vòng lặp hàm giá liên tục giảm thì ta có thể thử tăng hằng số η để đẩy nhanh hơn
tốc độ hội tụ đến giá trị cực tiểu. Năm 1991, trong nghiên cứu của mình Hertz và
các cộng sự [9] đã đề xuất luật điều chỉnh hằng số học như sau:
trong đó ∆E là thay đổi của hàm giá, a và b là các hằng số dương, việc ∆E
luôn nhỏ hơn 0 được đánh giá dựa trên k bước lặp liên tiếp.
Hằng số quán tính

22


Tốc độ học của giải thuật lan truyền ngược sai số có thể rất chậm nếu
hằng số học nhỏ, nhưng nếu hằng số học lớn thì nó lại có thể gây ra sự dao động
lớn trong quá trình tìm giá trị cực tiểu theo phương pháp giảm gradient. Để giải
quyết vấn đề này người ta thường thêm thành phần quán tính vào các phương
trình hiệu chỉnh trọng số như sau:

w(t) = -η∇E(t) + α w( t-1) (α là hằng số quán tính, α∈[ 0, 1] )
Nhờ thành phần này, quá trình học có thể vượt qua điểm cực tiểu địa
phương để tìm đến điểm cực tiểu toàn cục, đồng thời thành phần quán tính cũng
ngăn cản sự thay đổi đột ngột của các trọng số theo hướng khác với hướng mà lời
giải đang di chuyển đến.

Hình 1.13 Minh họa về ý nghĩa của quán tính trong thực tế.
Hàm giá:
Trong phần nghiên cứu trên hàm giá được chọn là hàm bình phương sai số
. Tuy nhiên, nó có thể được thay thế bằng một hàm
bất kỳ có đạo hàm và đạt cực tiểu khi hai đối số và bằng nhau. Thông
thường hàm giá được chọn có dạng :
Như vậy khi chọn p = 2 ta có hàm giá là hàm bình phương sai số như đã
xét ở trên.
1.7.3 Một số vấn đề cần chú ý khi sử dụng mạng MLP.
Mạng nơ-ron perceptron nhiều lớp là loại mạng nơ-ron được sử dụng
trong nhiều ứng dụng thực tế. Tuy nhiên, để mạng có thể đưa ra kết quả tốt,
chúng ta cần quan tâm đến một số vấn đề có ảnh hưởng khá quan trọng đến hiệu
23


quả làm việc của nó bao gồm: vấn đề chuẩn hoá số liệu đầu vào, vấn đề học chưa
đủ và học quá của mạng, vấn đề lựa chọn một cấu trúc mạng phù hợp với bài
toán.
a. Vấn đề chuẩn hoá số liệu đầu vào.

Mạng MLP thường sử dụng hàm chuyển là hàm sigmoid có dạng như sau:

Hình 1.14 Hàm sigmoid .
Với dạng hàm này, giá trị ở đầu ra của mỗi nơ-ron nằm trong phạm vi

khoảng (0,1) và nó đạt các giá trị bão hoà ( xấp xỉ 0 hay 1 ) khi ⎢x ⎢ lớn. Do đó,
khi đầu vào của mạng có giá trị tuyệt đối lớn thì ta cần chuẩn hoá nó về khoảng
có giá trị nhỏ, nếu không thì các nơ-ron tại các lớp ẩn ngay ban đầu đã có thể đạt
giá trị bão hoà và quá trình học của mạng không đạt kết quả mong muốn. Với
dạng hàm như trên thì giá trị đầu vào của mạng thường được chuẩn hoá về
khoảng thuộc đoạn [-3, 3] . Mặt khác, do tín hiệu đầu ra của nơ-ron nằm trong
khoảng giá trị (0,1) nên các giá trị đầu ra thực tế trong các mẫu học cũng cần
chuẩn hoá về khoảng giá trị này để có thể dùng cho quá trình luyện mạng. Do
vậy trong quá trình tính toán, để có các giá trị thực tế ở đầu ra của mạng chúng ta
cần phải chuyển các giá trị trong khoảng (0,1) về miền các giá trị thực tế.
b. Vấn đề học chưa đủ và học quá thuộc của mạng.

Vấn đề mấu chốt khi xây dựng một mạng nơ-ron nhân tạo là làm thế nào
mạng có khả năng tổng quát hoá cao để đưa ra kết quả tốt cả với những trường
hợp đầu vào của mạng không nằm trong tập mẫu đã dùng để luyện mạng. Giống
như các mô hình hồi quy phi tuyến khác, đối với mạng nơ-ron nhân tạo ta cũng
phải giải quyết hai vấn đề là ANN học chưa đủ (underfitting) và học quá
(overfitting). Khi mạng có cấu trúc (số nút ẩn và liên kết) cũng như số lần học

24


chưa đủ so với nhu cầu của bài toán thì sẽ dẫn tới tình trạng mạng không đủ khả
năng mô tả gần đúng mối quan hệ tương quan giữa đầu vào và đầu ra của quá
trình cần dự báo và dẫn tới học chưa đủ. Trái lại, nếu mạng quá phức tạp (quá
nhiều nút ẩn và quá nhiều tham số) và được học “quá khít” đối với các mẫu dùng
để luyện mạng thì có thể dẫn tới tình trạng mạng học cả thành phần nhiễu lẫn
trong các mẫu đó, đây là tình trạng “học quá thuộc” của mạng. Vấn đề nêu trên
có thể làm cho nhiều loại mạng nơ-ron, đặc biệt là mạng MLP có thể có những
trường hợp cho kết quả dự đoán rất sai lệch với thực tế.

Một số giải pháp cho vấn đề học quá của mạng:


Sử dụng tập số liệu có tính đại diện tốt để luyện mạng: Đây được xem là
một cách khá tốt để tránh hiện tượng overfitting. Khi tập mẫu dùng để
luyện mạng thể hiện được nhiều trạng thái có thể xẩy ra của quá trình cần
nghiên cứu thì sau khi học mạng sẽ có khả năng tổng quát hoá tương đối
tốt từ tập dữ liệu đó và sẽ không chịu ảnh hưởng nhiều của hiện tượng
overfitting. Ngoài ra một số biện pháp dưới đây cũng có thể góp phần

quan trọng giúp khắc phục hiện tượng overfitting của mạng.
• Lựa chọn cấu trúc mô hình phù hợp: Việc lựa chọn mô hình của mạng
(số lớp ẩn, số nơ-ron trên mỗi lớp ẩn) có ảnh hưởng quan trọng đến hiện
tượng học chưa đủ (underfitting) và học quá (overfitting) của mạng.
Nghiên cứu của Steve Lawrence và C.Lee Giles [11] về bài toán nội suy
hàm y = sin(x/3) + v, 0≤ x ≤20 với v là biến ngẫu nhiên nằm trong khoảng
(- 0.25 , 0.25) cho thấy nếu mạng chỉ gồm một nút ẩn thì mạng không thể
học được hàm này. Mạng có hai nút ẩn có khả năng tổng quát hoá tốt nhất
(tuy không chính xác hoàn toàn với các mẫu nhưng nó tạo nên giáng điệu
gần với hàm cần xấp xỉ nhất và nó đã không quá khít với nhiễu của mẫu
học). Các mạng có độ phức tạp hơn (10 nút ẩn, 50 nút ẩn) tuy nó có thể
học khá chính xác các mẫu được sử dụng nhưng chính điều này lại làm
cho nó học quá nhiều cả thành phần nhiễu nên khả năng tổng quát hoá
giảm và dẫn tới hiện tượng học quá (overfitting).

25


×