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

Mạng nơ ron và ứng dụng nhận dạng chữ ký số

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 (1.16 MB, 43 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
_______________________________________________________________________________

TIỂU LUẬN MÔN HỌC
Đề tài:
TÌM HIỂU Ý TƯỞNG, THUẬT TOÁN VÀ ỨNG DỤNG CỦA MẠNG NEURAL.
ÁP DỤNG VÀO BÀI TOÁN NHẬN DẠNG CHỮ SỐ VIẾT TAY

- Giảng viên hướng dẫn

:

TS. Lê Thanh Hương

- Học viên thực hiện

- Môn học

: :

- Mã học phần

:

IT6050

- Chuyên ngành

:


Công nghệ thông tin

Phạm Việt Hưng (CA150110)
Đoàn Vũ Giang (CA150108)
Võ Thị Hường(CA150111)
Hồ Thị Lợi (CA150114)
Trí tuệ nhân tạo nâng cao

- Hà Nội: 8/2016 -

MỤC LỤC


- IT6050: Trí tuệ nhân tạo nâng cao -

2


- IT6050: Trí tuệ nhân tạo nâng cao -

DANH MỤC HÌNH ẢNH

3


- IT6050: Trí tuệ nhân tạo nâng cao -

BẢNG PHÂN CÔNG CÔNG VIỆC

STT


Công việc

Thực hiện

1 Tìm hiểu chung yêu cầu, định hướng tiểu luận

Cả nhóm

2 Leader - Phân công nhiệm vụ

Phạm Việt Hưng

3 Tìm hiểu tổng quan về ý tưởng, thuật toán và ứng Võ Thị Hường
dụng của mạng Neural vào nhận dạng chữ số viết Đoàn Vũ Giang
tay
Hồ Thị Lợi
4 Tìm hiểu tổng quan về mạng Neural, mô hình Đoàn Vũ Giang
mạng Neural nhiều lớp học có giám sát
5 Tìm hiểu về ứng dụng mạng Neural nhận dạng chữ Võ Thị Hường
số viết
-Bài toán mạng Neural
5 Tìm hiểu về ứng dụng mạng Neural nhận dạng chữ Hồ Thị Lợi
số viết
-Thuật toán lan truyền ngược sai số
6 Cài đặt thử nghiệm

Phạm Việt Hưng

7 Tổng hợp báo cáo (.doc)


Cả nhóm

8 Báo cáo + Nộp tiểu luận

Cả nhóm

4


- IT6050: Trí tuệ nhân tạo nâng cao LỜI NÓI ĐẦU
Chúng ta đều biết rằng, bộ não con người là một sản phẩm hoàn hảo của tạo
hóa, nó có khả năng tư duy và sáng tạo. Hiện nay, con người đang nghiên cứu
phương thức hoạt động của bộ não, sau đó áp dụng cho những công nghệ hiện đại.
Để tiếp cận khả năng học, người ta đưa ra mô hình mạng Neural gồm các Neural
liên kết với nhau thành mạng phỏng theo cấu trúc mạng thần kinh của con người.
Mỗi Neural riêng lẻ có khả năng xử lý thông tin yếu, nhưng khi chúng được
ghép với nhau thành mạng, thì khả năng xử lý thông tin sẽ mạnh hơn rất nhiều. Mỗi
cấu trúc mạng đều có một ưu điểm đặc thù, chúng cho ta một công cụ mạnh trong
các lĩnh vực kỹ thuật điều khiển và kỹ thuật thông tin. Một mạng Neural nhân tạo là
tập hợp một số lớn các phần tử xử lý (các nút hay các khối), thường được tổ chức
song song và được cấu hình theo kiến trúc đệ quy. Cách ứng sử trên mạng Neural
nhân tạo giống như bộ não con người, nó chứng tỏ khả năng học, nhớ lại, và tổng
quát hóa từ dữ liệu huấn luyện.
Mạng Neural nhân tạo là công cụ tốt trong việc giải quyết các bài toán như: hợp
và phân lớp đối tượng, xấp xỉ hàm, tối ưu hóa, định lượng vector, phân cụm dữ
liệu,...Nó thay thế hiệu quả các công cụ tính toán truyền thống để giải quyết các bài
toán này.
Nhận dạng là một lĩnh vực đóng vai trò quan trọng trong khoa học kỹ thuật.
Trong hầu hết các vấn đề kỹ thuật ngày nay, ta đều phải xác định, nhận dạng được

các mô hình và đối tượng liên quan, để từ đó tìm ra giải pháp. Để giải quyết các bài
toán nhận dạng, người ta đã đưa vào các cách tiếp cận khác nhau, mỗi phương pháp
tiếp cận trong những bài toán cụ thể đều có những ưu, nhược điểm riêng. Phương
pháp ứng dụng mạng Neural (trí tuệ nhân tạo) trong nhận dạng là một cách tiếp cận
mới và hiện đại. Nó có thể là công cụ rất mạnh để giải quyết các bài toán trong lĩnh
vực này.
Nhóm thực hiện bài tập lớn chúng em cũng xin mạnh dạn lựa chọn đề tài “Tìm
hiểu ý tưởng, thuật toán và ứng dụng của mạng Neural; áp dụng bài toán nhận
dạng chữ số viết tay” với mong muốn được tìm hiểu sâu hơn về lĩnh vực trí tuệ
nhân tạo này.

5


- IT6050: Trí tuệ nhân tạo nâng cao I.

TỔNG QUAN VỀ MẠNG NEURAL

I.1.

Lịch sử phát triển mạng Neural

Các nghiên cứu về bộ não con người đã được tiến hành từ hàng nghìn năm nay.
Cùng với sự phát triển của khoa học kĩ thuật đặc biệt là những tiến bộ trong ngành
điện tử hiện đại, việc con người bắt đầu nghiên cứu các Neural nhân tạo là hoàn
toàn tự nhiên.Có thể tính từ nghiên cứu của William (1890) về tâm lý học với sự
liên kết các noron thần kinh. Sự kiện đầu tiên đánh dấu sự ra đời của mạng Neural
nhân tạo diễn ra vào năm 1943 khi nhà thần kinh học Warren McCulloch và nhà
toán học Walter Pitts viết bài báo mô tả cách thức các Neural hoạt động. Họ cũng
đã tiến hành xây dựng một mạng Neural đơn giản bằng các mạch điện. Các Neural

của họ được xem như là các thiết bị nhị phân với ngưỡng cố định. Kết quả của các
mô hình này là các hàm logic đơn giản chẳng hạn như “ a OR b” hay “a AND b” [6]
Tiếp bước các nghiên cứu này, năm 1949 Donald Hebb cho xuất bản cuốn sách
Organization of Behavior. Cuốn sách đã chỉ ra rằng các Neural nhân tạo sẽ trở lên
hiệu quả hơn sau mỗi lần chúng được sử dụng.
Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô hình hóa
các nguyên lý của những lý thuyết liên quan tới cách thức con người suy nghĩ đã trở
thành hiện thực. Nathanial Rochester sau nhiều năm làm việc tại các phòng thí
nghiệm nghiên cứu của IBM đã có những nỗ lực đầu tiên để mô phỏng một mạng
Neural. Trong thời kì này tính toán truyền thống đã đạt được những thành công rực
rỡ trong khi đó những nghiên cứu về Neural còn ở giai đoạn sơ khai. Mặc dù vậy
những người ủng hộ triết lý “thinking machines” (các máy biết suy nghĩ) vẫn tiếp
tục bảo vệ cho lập trường của mình.
Năm 1956 dự án Dartmouth nghiên cứu về trí tuệ nhân tạo (Artificial
Intelligence) đã mở ra thời kỳ phát triển mới cả trong lĩnh vực trí tuệ nhân tạo lẫn
mạng Neural. Tác động tích cực của nó là thúc đẩy hơn nữa sự quan tâm của các
nhà khoa học về trí tuệ nhân tạo và quá trình xử lý ở mức đơn giản của mạng Neural
trong bộ não con người.
Những năm tiếp theo của dự án Dartmouth, John von Neumann đã đề xuất việc
mô phỏng các Neural đơn giản bằng cách sử dụng rơle điện áp hoặc đèn chân
không. Nhà sinh học chuyên nghiên cứu về Neural Frank Rosenblatt cũng bắt đầu
nghiên cứu về Perceptron năm 1958. Sau thời gian nghiên cứu này Perceptron đã
được cài đặt trong phần cứng máy tính và được xem như là mạng Neural lâu đời
nhất còn được sử dụng đến ngày nay. Perceptron một tầng rất hữu ích trong việc
6


- IT6050: Trí tuệ nhân tạo nâng cao phân loại một tập các đầu vào có giá trị liên tục vào một trong hai lớp. Perceptron
tính tổng có trọng số các đầu vào, rồi trừ tổng này cho một ngưỡng và cho ra một
trong hai giá trị mong muốn có thể. Tuy nhiên Perceptron còn rất nhiều hạn chế,

những hạn chế này đã được chỉ ra trong cuốn sách về Perceptron của Marvin
Minsky và Seymour Papert của MIT (Massachurehs Insritute of Technology) viết
năm 1969 đã chứng minh nó không dùng được cho các hàm logic phức.
Năm 1959, Bernard Widrow và Marcian Hoff thuộc trường đại học Stanford đã
xây dựng mô hình ADALINE ( ADAptive LINear Elements) và MADALINE.
(Multiple ADAptive LINear Elements). Các mô hình này sử dụng quy tắc học
Least-Mean-Squares ( LMS : Tối thiểu bình phương trung bình). MADALINE là
mạng Neural đầu tiên được áp dụng để giải quyết một bài toán thực tế. Nó là một bộ
lọc thích ứng có khả năng loại bỏ tín hiệu dội lại trên đường dây điện thoại. Ngày
nay mạng Neural này vẫn được sử dụng trong các ứng dụng thương mại.
Năm 1973 Von der Marlsburg: đưa ra quá trình học cạnh tranh và self –
organization. Năm 1974 Paul Werbos đã phát triển và ứng dụng phương pháp học
lan truyền ngược ( back-propagation). Tuy nhiên phải mất một vài năm thì phương
pháp này mới trở lên phổ biến. Các mạng lan truyền ngược được biết đến nhiều nhất
và được áp dụng rộng dãi nhất nhất cho đến ngày nay.
Sợ rằng đã đến lúc máy móc có thể làm mọi việc của con người. Những lo lắng
này khiến người ta bắt đầu phản đối các nghiên cứu về mạng Neural. Thời kì tạm
lắng này kéo dài đến năm 1981. Có thể tính vào khoảng đầu thập niên 80. Những
đóng góp lớn cho mạng Neural trong giai đoạn này phải kể đến Grossberg,
Kohonen, Rumelhart và Hopfield. Kohonen là mạng SOM (Self Organizing Map),
Grossberg là mạng ART (Adaptive Resonance Theory). Trong đó đóng góp lớn của
Hopfield gồm hai mạng phản hồi: Mạng rời rạc năm 1982 và mạng liên tục năm
1984. Đặc biệt, ông đã dự kiến nhiều khả năng tính toán lớn của mạng mà một
Neural không có khả năng đó. Năm 1982 trong bài báo gửi tới viện khoa học quốc
gia, John Hopfield bằng sự phân tích toán học rõ ràng, mạch lạc, ông đã chỉ ra cách
thức các mạng Neural làm việc và những công việc chúng có thể thực hiện được.
Cống hiến của Hopfield không chỉ ở giá trị của những nghiên cứu khoa học mà còn
ở sự thúc đẩy trở lại các nghiên cứu về mạng Neural. Cảm nhận của Hopfield đã
được Rumelhart, Hinton và Williams đề xuất thuật toán sai số truyền ngược nổi
tiếng để huấn luyện mạng Neural nhiều lớp nhằm giải bài toán mà mạng khác

không thực hiện được. Nhiều ứng dụng mạnh mẽ của mạng Neural ra đời cùng với
các mạng theo kiểu máy Boltzmann và mạng Neocognition của Fukushima.
7


- IT6050: Trí tuệ nhân tạo nâng cao Cũng trong thời gian này, một hội nghị với sự tham gia của Hoa Kỳ và Nhật
Bản bàn về việc hợp tác/cạnh tranh trong lĩnh vực mạng Neural đã được tổ chức tại
Kyoto, Nhật Bản. Sau hội nghị, Nhật Bản đã công bố những nỗ lực của họ trong
việc tạo ra máy tính thế hệ thứ 5. Tiếp nhận điều đó, các tạp chí định kỳ của Hoa Kỳ
bày tỏ sự lo lắng rằng nước nhà có thể bị tụt hậu trong lĩnh vực này. Vì thế, ngay
sau đó, Hoa Kỳ nhanh chóng huy động quĩ tài trợ cho các nghiên cứu và ứng dụng
mạng Neural.
Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm về mạng
Neural ứng dụng trong tin học (Neural Networks for Computing).
Năm 1987, hội thảo quốc tế đầu tiên về mạng Neural của Viện các kỹ sư điện
và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã thu hút hơn
1800 người tham gia. Tính từ năm 1987 đến nay, hàng năm thế giới đều mở hội
nghị toàn cầu chuyên ngành Neural IJCNN (International Joit Conference on Neural
Networks).
Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu ứng
dụng mạng Neural để giải quyết các bài toán thực tế được diễn ra ở khắp mọi nơi.
Các ứng dụng mạng Neural ra đời ngày càng nhiều và ngày càng hoàn thiện hơn.
Điển hình là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng ký tự
(Character Recognition), nhận dạng tiếng nói (Voice Recognition), nhận dạng mẫu
(Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ liệu (Data
Filtering),…

I.2.
I.2.1.


Khái niệm mạng neural

Neural sinh học

Hình 1. Mạng neural sinh học

8


- IT6050: Trí tuệ nhân tạo nâng cao Do nhu cầu ngày càng cao trong việc giải quyết các vấn đề phức tạp và do bản
chất của con người là không muốn bằng lòng với hiện tại mà luôn muốn vươn tới
những gì cao hơn, hoàn thiện hơn, những thuật ngữ “mạng Neural” hoặc “mạng
Neural nhân tạo” hoặc “xử lý song song và phân tán” đã ra đời. Các thuật ngữ đó
nói đến một ngành kỹ thuật mới đòi hỏi kiến thức từ nhiều ngành khoa học khác
nhau như toán học, vật lý học, hóa học, sinh vật học, tâm lý học, thần kinh học,…
Tất cả chỉ nhằm làm sao tạo ra những chiếc máy tính hoạt động giống như “bộ não”
của chính chúng ta.
Các mạng Neural nhân tạo được mô phỏng dựa theo não bộ của con người. Cho
nên, trước khi trình bày về mạng Neural nhân tạo ở các phần sau, tôi xin trình bày
sơ lược về não bộ như sau:
Chức năng, tổ chức và hoạt động của bộ não con người
a. Chức năng
Bộ não của con người có chức năng hết sức quan trọng trong đời sống của con
người. Bộ não gần như kiểm soát hầu hết mọi hành vi của con người, từ các hoạt
động cơ bắp đơn giản đến những hành động phức tạp như học tập, nhớ, suy luận, tư
duy, sáng tạo,…
b. Tổ chức
Bộ não của con người được hình thành từ sự liên kết của khoảng 10 11 phân tử
(tế bào), trong đó có khoảng 1010 phần tử là Neural, số còn lại khoảng 9*10 10 phần
tử là các tế bào thần kinh đệm. Các tế bào thần kinh đệm có nhiệm vụ phục vụ cũng

như hỗ trợ cho các Neural. Thông thường, một bộ não trung bình cân nặng khoảng
3 pound và có thể tích là 90 inches3. Cấu tạo chi tiết của bộ não thì đến nay người ta
vẫn chưa thực sự biết rõ. Tuy vậy, về đại thể thì cấu tạo não bộ được phân chia
thành nhiều vùng khác nhau. Mỗi vùng có thể kiểm soát một hay nhiều hoạt động
của con người.
Bộ não có cấu trúc nhiều lớp. Lớp bên ngoài thường thấy là các nếp nhăn, là
lớp có cấu tạo phúc tạp nhất. Đây có thể là nơi kiểm soát và phát sinh các hành
động phức tạp như nghe, nhìn, tư duy,…
c. Hoạt động
Mặc dù mỗi Neural (có thể xem như phần tử xử lý hay phần tử tính) có tốc độ
rất chậm so với tốc độ các cổng logic silicon trong các vi chip 10 -3 giây so với 10-10
giây, nhưng do mỗi Neural liên kết với khoảng 10 4 Neural khác, cho nên, khi hoạt
9


- IT6050: Trí tuệ nhân tạo nâng cao động thì bộ não hoạt động một cách tổng lực và đạt hiệu quả cao. Nói một cách
khác là phần tử của não hoạt động một cách song song và tương tác hết sức tinh vi
phức tạp. Hiệu quả hoạt động thường rất cao, nhất là trong các vấn đề phức tạp.
Bảng 1.1 So sánh khả năng làm việc của bộ não và máy tính
Máy tính

Bộ não người

Đơn vị tính toán

Bộ xử lý trung tâm với 105 Mạng 1011Neural
mạch logic cơ sở

Bộ nhớ


109 bit RAM

1011Neural

1010 bit bộ nhớ ngoài

với 1014 khớp nối thần
kinh

Thời gian xử lý

10-8 giây

10-3 giây

Thông lượng

109 bit/giây

1014 bit/giây

Cập nhật thông tin

105 bit/giây

1014 Neural/giây

Tóm lại, bộ não có chức năng hết sức quan trọng đối với đời sống của con
người. Cấu tạo của bộ não rất phức tạp, tinh vi bởi được tạo thành từ mạng Neural
có hàng chục tỉ tế bào với mức độ liên kết giữa các Neural là rất cao. Hơn nữa, bộ

não còn được chia thành các vùng và các lớp khác nhau. Bộ não hoạt động dựa trên
cơ chế hoạt động song song của các Neural tạo nên bộ não đó.
Lý thuyết về mạng Neural nhân tạo, hay gọi tắt là “mạng Neural”, được xây
dựng xuất phát từ một thực tế là bộ não con người luôn luôn thực hiện các tính toán
một cách hoàn toàn khác so với các máy tính số. Có thể coi bộ não là một máy tính
hay một hệ thống xử lý thông tin song song, phi tuyến và cực kỳ phức tạp. Nó có
khả năng tự tổ chức các bộ phận cấu thành của nó, như là các tế bào thần kinh
(Neural) hay các khớp nối thần kinh (synapse), nhằm thực hiện một số tính toán như
nhận dạng mẫu và điều khiển vận động nhanh hơn nhiều lần các máy tính nhanh
nhất hiện nay. Sự mô phỏng bộ não con người của mạng Neural là dựa trên cơ sở
một số tính chất đặc thù rút ra từ các nghiên cứu về thần kinh sinh học.
Neural(sinh học)
Neural là phần tử cơ bản tạo nên bộ não. Cấu tạo và hoạt động của Neural
như sau:
10


- IT6050: Trí tuệ nhân tạo nâng cao a. Cấu tạo
Một Neural điển hình có 3 phần chính:
- Phần thứ nhất: Thân phần tử hay soma (hoặc cell body). Nhân của Neural được

đặt ở đây.
- Phần thứ hai: Các dendrite. Đây chính là các mạng dạng cây của các dây thần

kinh để nối các soma với nhau.
- Phần thứ ba: axon. Đây là một nối kết, hình trụ dài và mang các tín hiệu từ đó ra

ngoài. Phần cuối của axon được chia thành nhiều nhánh nhỏ. Mỗi nhánh nhỏ (cả
của dendrite và axon) kết thúc trong một cơ quan nhỏ hình củ hành được gọi là
synapte mà tại đây các Neural đưa các tín hiệu của nó vào các Neural khác.

Những điểm tiếp nhận với các synapte trên các Neural khác có thể ở các dendrite
hay chính soma.

Hình 2.Sơ đồ Neural sinh học
b. Hoạt động
Các tín hiệu được đưa ra bởi một synapte và được nhận bởi các dendrite là các
kích thích điện tử. Việc truyền tín hiệu như trên liên quan đến một quá trình hóa học
phức tạp mà trong đó các chất truyền đặc trưng được giải phóng từ phía gửi của nơi
tiếp nối. Điều này làm tăng hoặc giảm điện thế bên trong thân của Neural nhận.
Neural nhận tín hiệu sẽ được kích hoạt (fire) nếu điện thế vượt khỏi một ngưỡng
nào đó. Một xung (hoặc điện thế hoạt động) với cường độ mạnh và thời gian tồn tại
11


- IT6050: Trí tuệ nhân tạo nâng cao cố định sẽ được gửi ra ngoài thông qua axon tới phần nhánh của Neural đó, rồi tới
các chỗ nối synapte của các Neural khác. Sau khi kích hoạt, Neural sẽ chờ một
khoảng thời gian được gọi là chu kỳ refractory, trước khi nó có thể kích hoạt lại.
Synapses là excitatory nếu chúng cho phép các kích thích truyền qua gây ra tình
trạng kích hoạt đối với Neural nhận. Ngược lại, chúng là inhibitory nếu chúng cho
phép các kích thích truyền qua làm ngăn chở trạng thái kích hoạt của Neural nhận.
Các synapses đóng vai trò rất quan trọng trong sự học tập. Khi chúng ta học tập
thì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa
các Neural. Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và
các synapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các Neural càng
nhiều, càng nhạy bén.

I.2.2.

Neural nhân tạo


Neural nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra. Mỗi
đầu vào đến từ một liên kết. Đặc trưng của Neural là một hàm kích hoạt phi tuyến
chuyển đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra.
Hàm kích hoạt này đảm bảo tính chất phi tuyến cho tính toán của mạng Neural.

Hình 3. Mô hình một Neural nhân tạo

12


- IT6050: Trí tuệ nhân tạo nâng cao Hình 4. Sự tương đương giữa Neural sinh học và Neural nhân tạo
-

-

-

-

Các thành phần cơ bản của một Neural nhân tạo bao gồm:
Tập các đầu vào: Là các tín hiệu vào (input signals) của Neural, các tín
hiệu này thường được đưa vào dưới dạng một vector N chiều.
Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng
số liên kết – Synaptic weight). Trọng số liên kết giữa tín hiệu vào thứ j với
Neural k thường được kí hiệu là wkj. Thông thường, các trọng số này được
khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật
liên tục trong quá trình học mạng. Các trọng số liên kết chính là các tham số
tự do cơ bản của mạng Neural. Các trọng số này có thể được thay đổi nhằm
thích nghi với môi trường xung quanh.
Bộ tổng (Summing function): Thường dùng để tính tổng của tích các đầu

vào với trọng số liên kết của nó.
Ngưỡng (còn gọi là một độ lệch -bias): Ngưỡng này thường được đưa vào
như một thành phần của hàm truyền. Hệ số điều chỉnh b có tác dụng tăng
lên hoặc giảm đi đầu vào thực của hàm truyền tùy theo hàm truyền dương
hay âm.
Hàm truyền (Transfer function) : Hay còn được gọi là hàm kích hoạt,
hàm này được dùng để giới hạn phạm vi đầu ra của mỗi Neural. Nó nhận
đầu vào là kết quả của hàm tổng và ngưỡng đã cho. Thông thường, phạm vi
đầu ra của mỗi Neural được giới hạn trong đoạn [0,1] hoặc [-1, 1]. Các hàm
truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến. Việc lựa
chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinh nghiệm của
người thiết kế mạng.
Đầu ra: Là tín hiệu đầu ra của một Neural, với mỗi Neural sẽ có tối đa là
một đầu ra.

Như vậy chúng ta vẽ lại mô hình của Neural k như trong hình 5. Trong
hình này, nhiệm vụ của hệ số hiệu chỉnh là thực hiện hai việc: (1) thêm một tín
hiệu đầu vào cố định là 1, và (2) thêm một trọng số synapse mới bằng giá trị của
hệ số bk. Mặc dầu các mô hình trong hình 3 và 5 là khác nhau về hình thức
nhưng tương tự về bản chất toán học.

13


- IT6050: Trí tuệ nhân tạo nâng cao -

Hình 5. Mô hình phi tuyến thứ hai của một mạng Neural

I.3.


Các cấu trúc mạng neural

Ta có thể hình dung mạng Neural như là một hệ truyền đạt và xử lý tín hiệu.
Đặc tính truyền đạt của Neural phần lớn là đặc tính truyền đạt tĩnh.
Khi liên kết các đầu vào/ra của nhiều Neural với nhau, ta thu được một mạng
Neural, việc ghép nối các Neural trong mạng với nhau có thể là theo một nguyên tắc
bất kỳ. Vì mạng Neural là một hệ truyền đạt và xử lý tín hiệu, nên có thể phân biệt
các loại Neural khác nhau, các Neural có đầu vào nhận thông tin từ môi trường bên
ngoài khác với các Neural có đầu vào được nối với các Neural khác trong mạng,
chúng được phân biệt với nhau qua vector hàm trọng số ở đầu vào w.
Nguyên lý cấu tạo của mạng Neural bao gồm nhiều lớp, mỗi lớp bao gồm nhiều
Neural có cùng chức năng trong mạng. Hình 6 là mô hình hoạt động của một mạng
Neural 3 lớp với 8 phần tử Neural. Mạng có ba đầu vào là x1, x2, x3 và hai đầu ra y1,
y2. Các tín hiệu đầu vào được đưa đến 3 Neural đầu vào, 3 Neural này làm thành lớp
đầu vào của mạng. Các Neural trong lớp này được gọi là Neural đầu vào. Đầu ra
của các Neural này được đưa đến đầu vào của 3 Neural tiếp theo, 3 Neural này
không trực tiếp tiếp xúc với môi trường bên ngoài mà làm thành lớp ẩn, hay còn gọi
là lớp trung gian. Các Neural trong lớp này có tên là Neural nội hay Neural ẩn. Đầu
ra của các Neural này được đưa đến 2 Neural đưa tín hiệu ra môi trường bên ngoài.
Các Neural trong lớp đầu ra này được gọi là Neural đầu ra.

14


- IT6050: Trí tuệ nhân tạo nâng cao -

Hình 6. Mạng Neural ba lớp

Mạng Neural được xây dựng như trên là mạng gồm 3 lớp mắc nối tiếp nhau đi
từ đầu vào đến đầu ra. Trong mạng không tồn tại bất kỳ một mạch hồi tiếp nào. Một

mạng Neural có cấu trúc như vậy gọi là mạng một hướng hay mạng truyền thẳng
một hướng (Feed forward network), và có cấu trúc mạng ghép nối hoàn toàn (vì bất
cứ một Neural nào trong mạng cũng được nối với một hoặc vài Neural khác). Mạng
Neural bao gồm một hay nhiều lớp trung gian được gọi là mạng Multilayer
Perceptrons) (MLP-Network).
Mạng Neural khi mới được hình thành thì chưa có tri thức, tri thức của mạng sẽ
được hình thành dần dần sau một quá trình học. Mạng Neural được học bằng cách
đưa vào những kích thích, và mạng hình thành những đáp ứng tương ứng, những
đáp ứng tương ứng phù hợp với từng loại kích thích sẽ được lưu trữ. Giai đoạn này
được gọi là giai đoạn học của mạng. Khi đã hình thành tri thức mạng, mạng có thể
giải quyết các vấn đề một cách đúng đắn. Đó có thể là vấn đề ứng dụng rất khác
nhau, được giải quyết chủ yếu dựa trên sự tổ chức hợp nhất giữa các thông tin đầu
vào của mạng và các đáp ứng đầu ra.
- Nếu nhiệm vụ của một mạng là hoàn chỉnh hoặc hiệu chỉnh các thông tin thu
được không đầy đủ hoặc bị tác động của nhiễu. Mạng Neural kiểu này được ứng
dụng trong lĩnh vực hoàn thiện mẫu, trong đó có một ứng dụng cụ thể là nhận
dạng chữ viết.
- Nhiệm vụ tổng quát của một mạng Neural là lưu giữ động các thông tin. Dạng
thông tin lưu giữ này chính là quan hệ giữa các thông tin đầu vào và các đáp ứng
đầu ra tương ứng, để khi có một kích thích bất kỳ tác động vào mạng, mạng có
khả năng suy diễn và đưa ra một đáp ứng phù hợp. Đây chính là chức năng nhận
dạng theo mẫu của mạng Neural. Để thực hiện chức năng này, mạng Neural
15


- IT6050: Trí tuệ nhân tạo nâng cao đóng vai trò như một bộ phận tổ chức các nhóm thông tin đầu vào, và tương ứng
với mỗi nhóm là một đáp ứng đầu ra phù hợp. Như vậy, một nhóm bao gồm một
loại thông tin đầu vào và một đáp ứng đầu ra. Các nhóm có thể được hình thành
trong quá trình học, và cũng có thể không hình thành trong quá trình học.
Hình 7 dưới đây là một số liên kết đặc thù của mạng Neural. Neural được vẽ là

các vòng tròn xem như một tế bào thần kinh, chúng có các mối liên hệ đến các
Neural khác nhờ các trọng số liên kết. Tập hợp các trọng số liên kết này sẽ lập
thành các ma trận trọng số tương ứng.

I.3.1.

Mạng neural một lớp

Mỗi một Neural có thể phối hợp với các Neural khác tạo thành một lớp các
trọng số. Mạng một lớp truyền thẳng như hình 7a. Một lớp Neural là một nhóm các
Neural mà chúng đều có cùng trọng số, nhận cùng một tín hiệu đầu vào đồng thời.
Trong ma trận trọng số, các hàng là thể hiện Neural, hàng thứ j có thể đặt nhãn
như một vector wj của Neural thứ j gồm m trọng số wji. Các trọng số trong cùng một
cột thứ j (j=1,2,...,n) đồng thời cùng nhận một tín hiệu đầu vào xj.
wj = [wj1, wj2, ..., wjm]
Tại cùng một thời điểm, vector đầu vào x = [x 1, x2,..., xn] có thể là một nguồn
bên ngoài là cảm biến hoặc thiết bị đo lường đưa tới mạng.

(a) Mạng truyền thẳng một lớp

(b) Mạng hồi tiếp một lớp

16


- IT6050: Trí tuệ nhân tạo nâng cao (c) Mạng truyền thẳng nhiều lớp

(d) Mạng neural hồi quy
Hình 7. Một số dạng mạng neural


I.3.2.

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

Mạng Neural nhiều lớp (Hình 7.c) có các lớp được phân chia thành 3 loại sau
đây:
- Lớp vào là lớp Neural đầu tiên nhận tín hiệu vào x i (i = 1, 2, ..., n). Mỗi tín hiệu
xi được đưa đến tất cả các Neural của lớp đầu vào. Thông thường, các Neural
đầu vào không làm biến đổi các tín hiệu vào x i, tức là chúng không có các trọng
số hoặc không có các loại hàm chuyển đổi nào, chúng chỉ đóng vai trò phân phối
các tín hiệu.
- Lớp ẩn là lớp Neural sau lớp vào, chúng không trực tiếp liên hệ với thế giới bên
ngoài như các lớp Neural vào/ra.
- Lớp ra là lớp Neural tạo ra các tín hiệu ra cuối cùng.

I.3.3.

Mạng neural phản hồi

Mạng Neural phản hồi là mạng mà đầu ra của mỗi Neural được quay trở lại
nối với đầu vào của các Neural cùng lớp được gọi là mạng Laeral như hình 7 b

I.3.4.

Mạng Neural hồi quy

Mạng Neural phản hồi có thể thực hiện đóng vòng được gọi là mạng Neural
hồi quy như hình 7d. Mạng Neural hồi quy có trọng số liên kết đối xứng như mạng
Hopfield, mạng luôn hội tụ về trạng thái ổn định (Hình 7b). Mạng BAM thuộc
nhóm mạng Neural hồi quy, gồm 2 lớp liên kết 2 chiều, không được gắn với tín hiệu

vào/ra. Nghiên cứu mạng Neural hồi quy mà có trọng số liên kết không đối xứng,
thì sẽ gặp phải vấn đề phức tạp nhiều hơn so với mạng truyền thẳng và mạng hồi
quy có trọng số liên kết đối xứng.

17


- IT6050: Trí tuệ nhân tạo nâng cao I.3.5.

Mạng Hopfield

Mạng Hopfield là mạng phản hồi một lớp, được chỉ ra trong hình 7b. Cấu trúc
chi tiết của nó được thể hiện trong hình 8. Khi hoạt động với tín hiệu rời rạc, nó
được gọi là mạng Hopfield rời rạc, và cấu trúc của nó cũng được gọi là mạng hồi
quy.

Hình 8. Cấu trúc của mạng Hopfield

Như mạng Hopfield đã vẽ ở trên, ta thấy nút có một đầu vào bên ngoài x j và
một giá trị ngưỡng (j = 1,2,...n). Một điều quan trọng cần nói ở đây là mỗi nút
không có đường phản hồi về chính nó. Nút đầu ra thứ j được nối tới mỗi đầu vào
của nút khác qua trọng số wij, với i j, (i = 1,2,...,n), hay nói cách khác wii = 0, (với
i = 1,2,...,n).
Một điều quan trọng nữa là trọng số của mạng Hopfield là đối xứng, tức là w ij =
wji, (với i,j = 1,2,...,n). Khi đó, luật cập nhật cho mỗi nút mạng là như sau:

i = 1,2,...,n

(1.11)


Luật cập nhật trên được tính toán trong cách thức không đồng bộ. Điều này có
nghĩa là, với một thời gian cho trước, chỉ có một nút mạng cập nhật được đầu ra của
nó. Sự cập nhật tiếp theo trên một nút sẽ sử dụng chính những đầu ra đã được cập
18


- IT6050: Trí tuệ nhân tạo nâng cao nhật. Nói cách khác, dưới hình thức hoạt động không đồng bộ của mạng, mỗi đầu ra
được cập nhật độc lập.
Có sự khác biệt giữa luật cập nhật đồng bộ và luật cập nhật không đồng bộ.
Với luật cập nhật không đồng bộ thì sẽ chỉ có một trạng thái cân bằng của hệ (với
giá trị đầu đã được xác định trước). Trong khi đó, với luật cập nhật đồng bộ thì có
thể làm mạng hội tụ ở mỗi điểm cố định hoặc một vòng giới hạn.

I.3.6.

Mạng BAM

Mạng BAM bao gồm hai lớp và được xem như là trường hợp mở rộng của
mạng Hopfield. Ở đây ta chỉ xét mạng rời rạc, vì nó đơn giản và dễ hiểu.

Hình 9. Cấu trúc của BAM

Khi mạng Neural được tích cực với giá trị đầu vào của vector tại đầu vào của
một lớp, mạng sẽ có hai mẫu trạng thái ổn định, với mỗi mẫu tại đầu ra của nó là
một lớp. Tính động học của mạng thể hiện dưới dạng tác động qua lại giữa hai lớp.
Cụ thể hơn, giả sử một vector đầu vào x được cung cấp cho đầu vào của lớp Neural
y. Đầu vào được xử lý và truyền tới đầu ra của lớp y như sau:

y’ = a(wx) ;


;

với i = 1,2,...,n

(1.12)

Ở đó a(.) là hàm truyền, vector y’ bây giờ lại nuôi trở lại lớp Neural X và tạo
nên đầu ra như sau:

x’ = a(wTy’);

;

với j = 1,2,...,m

(1.13)

19


- IT6050: Trí tuệ nhân tạo nâng cao Sau đó x’ nuôi trở lại đầu vào của lớp y và tạo ra hàm y’’ theo phương trình
(1.12). Quá trình này cứ tiếp tục, bao gồm các bước như sau:
y(1) = a(wx(0))

(truyền thẳng lần thứ nhất)

x(2) = a(w(T)y(1))

(truyền ngược lần thứ nhất)


y(3) = a(wx(2))

(truyền thẳng lần thứ hai)

x(4) = a(w(T)y(3))

(truyền ngược lần thứ hai)

y(k-1) = a(wx(k-2))

(truyền thẳng lần thứ k/2)

x(k) = a(w(T)y(k-1))

(truyền ngược lần thứ k/2)

(1.14)

Chú ý rằng trạng thái cập nhật trong phương trình (1.14) là đồng bộ theo
phương trình (1.12) và (1.13). Trạng thái cập nhật cũng có thể không đồng bộ theo
phương trình (1.12) và (1.13) với các nút i, j được chọn tự do. Người ta đã chỉ ra
rằng, hệ thống ổn định cho cả hai chế độ đồng bộ và không đồng bộ. Tuy nhiên, chế
độ đồng bộ sẽ làm cho hệ thống hội tụ nhanh hơn nhiều.

I.4.

Các luật học trong mạng Neural

Thông thường, mạng Neural được điều chỉnh hoặc được huấn luyện để hướng
các đầu vào riêng biệt đến đích ở đầu ra. Cấu trúc huấn luyện mạng được chỉ ra ở

hình dưới. Ở đây, hàm trọng số của mạng được điều chỉnh trên cơ sở so sánh đầu ra
với đích mong muốn (taget), cho tới khi đầu ra của mạng phù hợp với đích. Những
cặp vào/đích (input/taget) được dùng để giám sát cho sự huấn luyện mạng.

Đí
ch
Dữ liệu vào

ANN

Trọng số wi

So sánh

Điều chỉnh

Hình 10. Cấu trúc huấn luyện mạng Neural

20


- IT6050: Trí tuệ nhân tạo nâng cao Để có được một số cặp vào/ra, ở đó mỗi giá trị vào được gửi đến mạng và giá
trị ra tương ứng được thực hiện bằng mạng là sự xem xét và so sánh với giá trị
mong muốn. Bình thường, nó sẽ tồn tại một sai số vì giá trị mong muốn không
hoàn toàn phù hợp với giá trị thực. Sau mỗi lần chạy, ta có tổng bình phương của tất
cả các sai số. Sai số này được sử dụng để xác định các hàm trọng số mới.
Sau mỗi lần chạy, hàm trọng số của mạng được sửa đổi với đặc tính tốt hơn
tương ứng với đặc tính mong muốn. Từng cặp giá trị vào/ra phải được kiểm tra và
trọng số được điều chỉnh một vài lần. Sự thay đổi các hàm trọng số của mạng sẽ
được dừng lại, nếu tổng các bình phương sai số nhỏ hơn một giá trị đặt trước, hoặc

đã chạy đủ một số lần chạy xác định (trong trường hợp này, mạng có thể không
thoả mãn yêu cầu đặt ra do sai lệch còn cao). Có hai kiểu học:
• Học tham số: là các tham số về trọng số cập nhật kết nối giữa các Neural.
• Học cấu trúc: trọng tâm là sự biến đổi cấu trúc của các mạng Neural gồm số
lượng nút và các loại liên kết.
Giả sử ma trận trọng số bao gồm tất cả các phần tử thích ứng của mạng Neural.
Nhiệm vụ của việc học tham số là tìm ra được ma trận chính xác mong muốn từ ma
trận giả thiết ban đầu (với cấu trúc của mạng Neural có sẵn). Để làm được điều này
thì mạng Neural phải sử dụng các trọng số điều chỉnh, với nhiều phương pháp học
khác nhau để có thể tính toán gần đúng ma trận W cần tìm đặc trưng cho mạng. Sau
đây là 3 phương pháp học:

I.4.1.

Học có giám sát

Học có giám sát là quá trình học có tín hiệu chỉ đạo bên ngoài d (Hình
11).Trong học có giám sát, thì tại mỗi thời điểm khiđầu vào được cung cấp tới mạng
Neural, phản ứng đầu ra mong muốn d tương ứng của hệ thống được đưa ra. Ở hình
(11), khi mỗi đầu vào x(k) được đặt vào mạng, đầu ra mong muốn tương ứng d (k)
cũng được cung cấp tới mạng. Hiệu giữa đầu ra thực y (k) và đầu ra mong muốn d(k)
được đo trong máy phát tín hiệu lỗi. Máy này sẽ tạo ra tín hiệu lỗi cho mạng để hiệu
chỉnh các trọng số của mạng, và với các hiệu chỉnh này thì đầu ra thực sẽ tiến sát
với đầu ra mong muốn.

21


- IT6050: Trí tuệ nhân tạo nâng cao -


Hình 11. Học có giám sát

I.4.2.

Học củng cố

Tín hiệu chủ đạo d có thể lấy từ môi trường bên ngoài, nhưng tín hiệu này
không được đầy đủ, mà chỉ có một vài bit đại diện có tính chất kiểm tra quá trình tốt
hay xấu. Học củng cố cũng là một dạng của học có giám sát, bởi vì mạng vẫn nhận
một số tín hiệu từ bên ngoài. Nhưng tín hiệu phản hồi chỉ mang tính chất đánh giá
hơn là mạng tính chất chỉ dẫn. Nó cho biết mức độ tốt hay xấu của một đầu ra đặc
biệt. Tín hiệu củng cố bên ngoài thường được xử lý bằng máy phát tín hiệu đánh giá
để tạo ra nhiều hơn nữa các thông tin tín hiệu đánh giá, sau đó dùng để điều chỉnh
các trọng số với mục đích đạt được tín hiệu đánh giá tốt hơn.

I.4.3.

Học không giám sát

Hình 12. Học không có giám sát
Trong phần học không có giám sát, sẽ không có thầy hướng dẫn, tức là không
có tín hiệu d cung cấp tới mạch phản hồi. Điều này cho thấy, ta sẽ không biết đầu ra
đạt giá trị gì. Với loại này, thì các Neural tự xoay xở với các dữ liệu mẫu mà nó có
được, chứ không có “thầy” gợi ý cần luyện theo hướng nào. Mạng phải tự khám phá
mẫu, đặc tính, sự tương quan hay loại đầu vào. Trong khi khám phá những đặc tính
này, tham số của mạng sẽ bị thay đổi. Quá trình này được gọi là tự tổ chức. Một ví
dụ điển hình là quá trình phân loại đối tượng không có thầy, những lớp thích hợp
được hình thành bằng cách khám phá sự tương tự và không tương tự trong số các
đối tượng.
Hình (13) mô tả cấu trúc chung của quá trình học của ba phương pháp học đã

nêu ở trên. Trong tín hiệu vào x j (j = 1,2,...,m), có thể được lấy từ đầu ra của các
22


- IT6050: Trí tuệ nhân tạo nâng cao Neural khác hoặc có thể được lấy ra từ bên ngoài. Trọng số của Neural thứ i được
thay đổi tùy theo tín hiệu ở đầu vào mà nó thu nhận giá trị đầu ra của nó.
Dạng tổng quát của luật học trọng số của mạng Neural cho biết số gia của
vector wi là

tỉ lệ với tín hiệu học r và tín hiệu đầu vào x(t).
(t) =

(1.15)

là một số dương và được gọi là hằng số học dùng để xác định tốc độ học, r là
tín hiệu học và phụ thuộc:

(1.16)

Hình 13. Sơ đồ cấu trúc chung của quá trình học
Từ hình (13) ta thấy, vector trọng số wi = [wi1, wi2,..., wim]T có số gia tỷ lệ với
tín hiệu vào x và tín hiệu học r. Vector trọng số ở thời điểm (t+1) được tính như sau:
wi(t+1) = wi(t) +

fr(wi(t),x(t),d(t)).x(t).

(1.17)

Phương trình liên quan đến sự biến đổi trọng số trong mạng Neural rời rạc, và
tương ứng với sự thay đổi trọng số trong mạng Neural liên tục theo biểu thức sau:

(1.18)
Vấn đề quan trọng trong việc phân biệt luật học cập nhật trọng số có giám sát
hay không có giám sát, hoặc học củng cố là tín hiệu học r. Như vậy, đối với tín hiệu
học r thì nó làm thế nào để thay đổi hoặc cập nhật trọng số trong mạng Neural.
Mạng Neural nhân tạo có các tính chất sau:
• Là hệ phi tuyến
• Là hệ xử lý song song
23


- IT6050: Trí tuệ nhân tạo nâng cao • Là hệ học và thích nghi: Mạng được luyện từ số liệu quá khứ, có khả năng tự
chỉnh đầu vào khi số liệu đầu vào bị mất.
• Là hệ nhiều biến, nhiều đầu vào, nhiều đầu ra (MISO), rất tiện dùng khi điều
khiển đối tượng có nhiều biến số.

II.

MÔ HÌNH MẠNG NEURAL NHIỀU LỚP HỌC CÓ GIÁM SÁT

II.1. Mô hình mạng Neural
Hệ thống mạng Neural được thiết lập bằng cách kết hợp nhiều “Neural” đơn lẻ
lại với nhau, đầu ra của Neural này sẽ là đầu vào của Neural kia. Ví dụ dưới đây là
một hệ thống mạng Neural cỡ nhỏ:

(layer = lớp)
Trong hình này, ta cũng dùng các vòng tròn để phác họa đầu vào của hệ thống
mạng. Các vòng tròn có nhãn “+1” được gọi là các bias unit, và tương ứng với số
hạng giao điểm. Lớp ngoài cùng bên trái của mạng được gọi là lớp đầu vào (input
layer), và lớp ngoài cùng bên phải là lớp đầu ra (output layer) (lớp này chỉ có một
điểm nút – node). Lớp các điểm nút ở giữa gọi là lớp ẩn (hidden layer), vì các giá trị

của chúng không quan sát được trong phiên đào tạo. Cũng nói rằng hệ thống mạng
Neural ví dụ ở đây có 3 đơn vị đầu vào (không tính bias), 3 đơn vị ẩn, và 1 đơn vị
đầu ra.
24


- IT6050: Trí tuệ nhân tạo nâng cao Gọi nl là số lớp trong mạng; như vậy trong ví dụ của ta nl = 3. Ta dán nhãn lớp l
là Ll, vậy lớp L1là lớp đầu vào, và Lnl là lớp đầu ra. Hệ thống mạng Neural có các
tham số (W,b)=(W(1), b(1), W(2), b(2)), khi viết
để miêu tả thông số (hoặc trọng số)
liên quan đến sự nối kết giữa đơn vị j trong lớp l, và đơn vị i trong lớp l + 1. (Lưu ý
thứ tự của các chỉ số). Với lại,

là bias liên quan đến đơn vị i trong lớp l + 1.

Như vậy, trong ví dụ ta có
. Lưu ý rằng các
bias không có đầu vào hay nối kết giữa chúng, vì chúng luôn xuất ra giá trị +1. Ta
cũng gọi sllà số điểm nút trong lớp l (không tính bias).
Ta sẽ viết

để mô tả tính kích hoạt (tức là giá trị đầu ra) của đơn vị i trong

lớp l. Vì l = 1, cũng sẽ dùng
để miêu tả đầu ra thứ i. Cho một thiết lập
tham số cố định W, b, mạng Neural của ta xác định một giả thiết hW,b (x) xuất ra
một số thực. Đặc biệt, phép tính mà mạng Neural này trình bày được cho như sau:

Kết quả, lấy
để mô tả tổng toàn bộ đầu vào có đối trọng (total weighted sum

of inputs) cho đơn vị i trong lớp l, bao gồm bias (chẳng hạn như

Lưu ý rằng cái này có thể dễ dàng tự thích ứng với một phép biểu diễn gọn hơn.
Nhất là, nếu ta mở rộng hàm kích hoạt f (.) để áp dụng cho các véc-tơ theo kiểu từng
phần từng (element-wise) (tức là
có thể viết các phương trình trên một cách gọn gàng hơn như thế này:

, sau đó ta

25


×