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

Mạng nơron và ứng dụ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 (860.33 KB, 52 trang )


3
Luận văn:
Mạng nơron và ứng dụng

4
MỤC LỤC
LỜI CẢM ƠN Error! Bookmark not defined.
MỤC LỤC 4
I. LÍ DO CHỌN ĐỀ TÀI 6
II. MỤC ĐÍCH NGHIÊN CỨU 6
III. NHIỆM VỤ NGHIÊN CỨU 7
IV. PHƯƠNG PHÁP NGHIÊN CỨU 7
Chương I: TỔNG QUAN VỀ MẠNG NƠRON 8
I. BỘ NÃO VÀ NEURON SINH HỌC 8
1.1 Bộ não người 8
1.2 So sánh bộ não người và máy tính 10
II. NEURON NHÂN TẠO 11
2.1 Mô hình neuron tổng quát 11
2.2 Mô hình Single - Input Neuron 12
2.3 Mô hình Multiple - Input Neuron 13
2.4 Một số hàm chuyển thường dùng 13
III. MẠNG NƠRON 16
3.1 Huấn luyện mạng 17
3.2 Mạng nơron một lớp 19
3.3 Mạng nơron nhiều lớp 20
Chương II: MỘT SỐ MÔ HÌNH MẠNG NƠRON 23
I. MẠNG PERCEPTRON 23
1.1 Kiến trúc mạng 23
1.2 Huấn luyện mạng 24
1.3 Sử dụng mạng 25


II. MẠNG HOPFIELD (HF) 28
2.1 Kiến trúc mạng 28
2.2 Huấn luyện mạng 29
2.3 Sử dụng mạng 30

5
III. MẠNG NƠRON SỬ DỤNG THUẬT TOÁN HỌC CÓ THẦY
HEBBIAN 31
3.1 Kiến trúc mạng 31
3.2 Huấn luyện mạng 31
3.3 Sử dụng mạng 33
IV. MẠNG NƠRON NHIỀU LỚP SỦ DỤNG THUẬT TOÁN
BACKPROPAGATION 33
4.1 Kiến trúc mạng 33
4.2 Huấn luyện mạng 34
4.3 Sử dụng mạng 35
Chương 3: CÀI ĐẶT MINH HOẠ MỘT SỐ MẠNG NƠRON 37
I. BÀI TOÁN KHÁM BỆNH TRONG Y HỌC 37
1.1 Mô tả thuật toán và thiết kế mạng Nơron 37
1.2 Kết quả và đánh giá 39
1.3 Chương trình minh hoạ 43
II. BÀI TOÁN NHẬN DẠNG KÍ TỰ 47
2.1 Mô tả thuật toán và thiết kế mạng Nơron 48
2.2 Kết quả đánh giá 48
2.3 Chương trình minh hoạ 49
KẾT LUẬN 53
TÀI LIỆU THAM KHẢO 54

6
LỜI NÓI ĐẦU

I. LÍ DO CHỌN ĐỀ TÀI
Mạng nơron được bắt đầu nghiên cứu vào những năm 1940, trải qua nhiều
giai đoạn thăng trầm ngày nay việc nghiên cứu, thiết kế mạng nơron mô
phỏng theo những khả năng của não bộ đã và đang phát triển một cách mạnh
mẽ và đem lại nhiều kết quả to lớn. Rất nhiều nhà khoa học đang tập trung
vào nghiên lĩnh vực này và những thành tựu của nó đem lại đã và đang ảnh
hưởng sâu sắc tới nhiều lĩnh vực trong đời sống xã hội và trong khoa học:
Khám bệnh bằng máy trong y học, nhận dạng chữ viết, xử lý ảnh, …
Việc thiết kế mạng nơron là kết quả của việc kết hợp công nghệ thông tin
với một lĩnh vực khoa học khác như: Toán học, y học, … và nghiên cứu của
nó được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau: kỹ thuật người
máy, các chương trình trò chơi, xử lý ngôn ngữ tự nhiên… Mạng nơron đã và
đang đặt ra nhiều triển vọng về khả năng chế ngự thế giới.
Vì vậy, việc tìm hiểu về mạng nơron là rất cần thiết với một sinh viên
thuộc chuyên ngành tin. Được sự đồng ý của Hội đồng khoa học của Khoa
Toán và sự hướng dẫn của Thầy giáo - Thạc sĩ Nguyễn Văn Trường, tôi đã
lựa chọn đề tài “Mạng nơron và học mạng nơron" làm đề tài nghiên cứu. Đề
tài gồm những nội dung chính:
 Tổng quan về mạng nơron.
 Giới thiệu một số mạng nơron cơ bản.
 Cài đặt minh họa một số mạng nơron.
II. MỤC ĐÍCH NGHIÊN CỨU
Với đề tài này mục đích nghiên cứu của tôi là:
- Nắm được mô hình mạng nơron, biết cách sử dụng các mô hình mạng
nơron để áp dụng vào một số bài toán thực tế.
- Áp dụng mô hình mạng nơron để giải quyết một số bài toán thực tế.

7
- Nhằm tích lũy thêm kiến thức cho bản thân, nâng cao trình độ nhận thức
mở rộng vốn hiểu biết cho mình.

III. NHIỆM VỤ NGHIÊN CỨU
Để cho quá trình nghiên cứu đạt kết quả cao tôi phải tiến hành nghiên cứu
những vấn đề sau đây:
- Tổng quan về mạng nơron và một số mô hình cơ bản (Mạng nơron một
lớp, mạng nơron nhiều lớp, mạng nơron một đầu vào và mạng nơron một giá
trị vào và mạng nơron nhiều giá trị vào…).
- Các mô hình mạng nơron phổ biến.
IV. PHƯƠNG PHÁP NGHIÊN CỨU
Để tiến hành nghiên cứu đề tài này, chúng tôi đã sử dụng phối hợp một số
phương pháp sau:
- Phương pháp nghiên cứu tài liệu: nghiên cứu tài liệu mạng nơron.
- Xây dựng chương trình thông qua các mô hình mạng nơron.
- Phương pháp lấy ý kiến chuyên gia.

8
Chương 1
TỔNG QUAN VỀ MẠNG NƠRON
I. BỘ NÃO VÀ NEURON SINH HỌC
1.1 Bộ não người
Từ giữa thế kỉ XVIII người ta đã xác định được rằng bộ não thực sự đóng
vai trò quan trọng bậc nhất trong hoạt động nhận thức.
Các nhà nghiên cứu sinh học về bộ não cho ta biết rằng các neurons (tế
bào thần kinh) là đơn vị cơ sở đảm nhiệm những chức năng xử lý nhất định
trong hệ thần kinh bao gồm não, tuỷ sống và các dây thần kinh. Mỗi neuron
có phần thân với nhân bên trong (gọi là soma), một đầu thân kinh ra (gọi là
trục axon) và một hệ thống dạng cây các dây thần kinh vào (gọi là dendrite).
Các dây thần kinh tạo thành một lưới dày đặc xung quanh thân tế bào, chiếm
diện tích khoảng 0.25 mm
2
, còn dây thần kinh ra tạo thành trục dài có thể từ 1

cm cho đến hàng mét. Đường kính của nhân tế bào thường chỉ là 10
-4
m. Trục
dây thần kinh ra cũng có thể phân nhánh theo dạng cây để nối với các dây
thần kinh vào hoặc trực tiếp với nhân tế bào các neurons khác thông qua các
khớp nối (gọi là synapse). Thông thường, mỗi neuron có thể gồm vài chục
cho tới hàng trăm ngàn khớp nối để nối với các neurons khác. Người ta ước
lượng rằng lưới các dây thần kinh ra cùng với các khớp nối bao phủ diện tích
khoảng 90% bề mặt neuron
Nhân
Trục từ
các neuron
khác
Khớp nối
Soma
dendrite
Đầu trục
thần kinh


9
Các tín hiệu truyền trong các dây thần kinh vào và dây thần kinh ra của các
neurons là tín hiệu điện và được thực hiện thông qua các quá trình phản ứng
và giải phóng các chất hữu cơ. Các chất này được phát ra từ các khớp nối dẫn
tới các dây thần kinh vào sẽ làm tăng hay giảm điện thế của nhân tế bào. Khi
điện thế này đạt tới một ngưỡng nào đó, sẽ tạo ra một xung điện dẫn tới trục
dây thần kinh ra. Xung này được truyền theo trục, tới các nhánh rẽ khi chạm
tới các khớp nối với các neurons khác sẽ giải phóng các chất truyền điện.
Người ta chia làm hai loại khớp nối: Khớp nối kích thích (excitatory) và khớp
nối ức chế (inhibitory).

Phát hiện quan trọng nhất trong ngành nghiên cứu về bộ não là các liên
kết khớp thần kinh khá mềm dẻo, có thể biến động và chỉnh đổi theo thời gian
tuỳ thuộc vào các dạng kích thích. Hơn nữa, các neurons có thể sản sinh các
liên kết mới với các neurons khác và đôi khi, lưới các neurons có thể di trú từ
vùng này sang vùng khác trong bộ não. Các nhà khoa học cho rằng đây chính
là cơ sở quan trọng để giải thích cơ chế học của bộ não con người.
Phần lớn các quá trình xử lý thông tin đều xảy ra trên vỏ não. Toàn bộ vỏ
não được bao phủ bởi mạng các tổ chức cơ sở có dạng hình thùng tròn với
đường kính khoảng 0.5 mm, độ cao 4 mm. Mỗi đơn vị cơ sở này chứa khoảng
2000 neurons. Người ta chỉ ra rằng mỗi vùng não có những chức năng nhất
định. Năm 1861, Prerre Paul Broca đã chỉ ra rằng phần vỏ não phía trước bên
trái điều khiển khả năng nói và sự phát triển ngôn ngữ, bán cầu đại não trái
chịu trách nhiệm xử lý thông tin nhận thức theo những quy trình thuật giải
nhất định, còn bán cầu đại não phải gắn với các xử lý thông tin tiềm thức phi
thuật giải như linh cảm, linh tính… Các nghiên cứu thực nghiệm còn chứng tỏ
rằng các liên kết giữa các vùng não với các bộ phận cơ thể có thể thay đổi và
đối với một số động vật cao cấp các liên kết kiểu này có thể ở dạng kép.
Điều đáng ngạc nhiên chính là các neurons rất đơn giản trong cơ chế làm
việc, nhưng mạng các neurons liên kết với nhau lại có khả năng tính toán, suy
nghĩ, ghi nhớ và điều khiển

10
Có thể điểm qua những chức năng cơ bản của bộ não:
1. Bộ não được tổ chức theo các bó thông tin và truy nhập theo nội
dung (Có thể truy xuất thông tin dựa theo giá trị các thuộc tính của
đối tượng)
2. Bộ não có khả năng tổng quát hoá, có thể truy xuất các tri thức hay
các mối liên kết chung của các đối tượng tương ứng với một khái
niệm chung nào đó
3. Bộ não có khả năng dung thứ lỗi theo nghĩa có thể điều chỉnh hoặc

tiếp tục thực hiện ngay khi có những sai lệch do thông tin bị thiếu
hoặc không chính xác. Ngoài ra, bộ não còn có thể phát hiện và
phục hồi các thông tin bị mất dựa trên sự tương tự giữa các đối
tượng.
4. Bộ não có khả năng xuống cấp và thay thế dần dần. Khi có những
trục trặc tại các vùng não (do bị bệnh, chấn thương) hoặc bắt gặp
những thông tin hoàn toàn mới lạ, bộ não vẫn có thể tiếp tục làm
việc.
5. Bộ não có khả năng học
1.2 So sánh bộ não người và máy tính
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
1 bộ xử lý trung tâm với
10
5
mạch logic cơ sở
Mạng 10
11
neurons
Bộ nhớ
10
9
bit RAM
10
10
bit bộ nhớ ngoài
10

11
neurons với 10
14

khớp nối thần kinh
Thời gian xử lý
10
-8
giây

10
-3
giây
Thông lượng
10
9
bit/giây
10
14
bit/giây
Cập nhật thông tin
10
5
bit/giây
10
14
neurons/giây

11
Dễ dàng thấy rằng bộ não con người có thể lưu giữ một lượng lớn thông

tin. Về khả năng tính toán thì các bộ vi xử lý có thể tính 10
8
lệnh trong một
giây, trong khi đó mạng nơron xử lý chậm hơn, cần khoảng vài miligiây để
kích hoạt. Tuy nhiên bộ não có thể kích hoạt hầu như cùng một lúc tại rất
nhiều neurons và khớp nối, trong khi đó ngay cả những máy tính hiện đại nhất
cũng chỉ có một số hạn chế các bộ vi xử lý song song. Nếu chạy một mạng
nơron nhân tạo trên máy tính, phải tốn hàng trăm lệnh để máy kiểm tra một
neuron có được kích hoạt hay không (tiêu phí khoảng 10
-8
x10
2
giây/neuron).
Do đó, dẫu bộ vi xử lý có thể tính toán nhanh hơn hàng triệu lần so với các
neurons bộ não, nhưng xét tổng thể bộ não lại tính toán nhan hơn hàng tỷ lần.
Cách tiếp cận mạng nơron nhân tạo có ý nghĩa thực tiễn rất lớn cho phép
tạo ra các thiết bị có thể kết hợp khả năng xử lý song song cao của bộ não với
tốc độ tính toán cao của máy tính. Tuy vậy, cần phải có một khoảng thời gian
dài nữa để các mạng nơron nhân tạo mô phỏng được các hành vi sáng tạo của
con người. Chẳng hạn, bộ não có thể thực hiện một nhiệm vụ khá phức tạp
như nhận ra khuôn mặt người quen sau không quá 1 giây, trong khi đó một
máy tính tuần tự phải thực hiện hàng tỷ phép tính (khoảng 10 giây) để thực
hiện cùng thao tác đó, nhưng với chất lượng kém hơn nhiều, đặc biệt trong
trường hợp thông tin không chính xác, không đầy đủ.
II. NEURON NHÂN TẠO
2.1 Mô hình neuron tổng quát


12
Mỗi neuron được nối với các neurons khác và nhận được các tín hiệu s

j
từ
chúng với các trọng số w
j
. Tổng các thông tin vào có trọng số là:


jj
swNet

Người ta gọi đây là thành phần tuyến tính của neuron. Hàm kích hoạt g
(còn gọi là hàm chuyển) đóng vai trò biến đổi từ Net sang tín hiệu ra Out.
Out=g(Net)
Đây là thành phần phi tuyến của neuron
Đây là mô hình chung cho tất cả các neuron nhân tạo
2.2 Mô hình Single - Input Neuron
Với mô hình này, đầu vào của neuron là vectơ p gồm một thành phần. Sơ
đồ mô tả một Single - Input Neuron được cho bởi hình dưới.

f
w
b
n a
p
Inputs General Neuron
a=f(Wp+b)

Single - Input Neuron
Tích vô hướng của giá trị input p với trọng số w là wp, một trong số những
số hạng này sẽ được đưa đến vùng tính tổng trọng số. Giá trị input khác là b

cũng được gửi đến vùng tính tổng trọng số. Giá trị Output của vùng này là
n=Wp+b là giá trị input của hàm chuyển, nó sẽ tạo ra giá trị neuron output a
là kết quả của phép tính:
a = f(wp+b)
Nếu ta có w = 3, p = 2, b = -1.5 thì

13
a = f(3.2 - 1.5) = f(4.5)
2.3 Mô hình Multiple - Input Neuron
Một neuron có thể có nhiều hơn một input. Giả sử có R inputs như ở hình
dưới. Mỗi đại lượng input p
1
, p
2
,…, p
R
có một trọng số tương ứng là w
1,1
,
w
1,2
,… w
1,R
của ma trận trọng số W (ma trận trọng số của một neuron chỉ có
một dòng).
Tổng trọng số của W và b là input của hàm chuyển.
n = w
1,1
*p
1

+ w
1,2
*p
2
+ … + w
1,R
*p
R
+ b
Viết dưới dạng ma trận:
n = Wp + b
Giá trị Output của neuron là: a = f(n) = f(Wp + b)

f
w
b
n a
p
Inputs
Multiple – Input Neuron

p
p
p

1
R
3
2
1,1

1,R
w
a=f(Wp+b)
Multiple – Input Neuron

2.4 Một số hàm chuyển thường dùng
Ở phần trên chúng ta đã nhắc đến khái niệm hàm chuyển (hàm kích hoạt).
Thực chất chúng là gì? Chúng hoạt động như thế nào?
Hàm chuyển (Transfer function) có thể là một hàm có đồ thị là đường
thẳng hoặc không là đường thẳng. Một hàm chuyển được lựa chọn nhằm giải
quyết một vài vấn đề đã được định rõ mà neuron đang cố gắng giải quyết.
Có rất nhiều hàm chuyển được sử dụng trong các mạng nơron hiện nay. Ở
đây tôi xin giới thiệu một vài hàm chuyển được sử dụng nhiều trong thiết kế

14
mạng. Đây cũng là những hàm chuyển mà tôi sẽ sử dụng để thiết kế mạng
nơron giải quyết các bài toán nhận dạng và bài toán khám sức khoẻ trong y
học. Các hàm chuyển này đều đã được cung cấp sẵn trong bộ công cụ thiết kế
mạng nơron "Nơron Network Toolbox" của Matlab
2.4.1 Hàm chuyển Hard Limit
Hàm chuyển hard limit có công thức a=hardlim(n). Được xác định theo
biểu thức sau:






01
00

hardlim(n)a
n
n

Hình bên dưới (phía trái) biểu diễn đồ thị của hàm chuyển Hard - Limit. Ở
giữa là biểu tượng của hàm. Bên phải là đồ thị của một Single - Input Neuron
sử dụng hàm chuyển Hard - Limit
0
p
-b/w
-1
1
a = hardlim(wp + b)
Single – Input Hardlim Neuron

Hàm chuyển này sẽ được ứng dụng trong thiết kế mạng nơron giải quyết
bài toán nhận dạng kí tự
2.4.2 Hàm chuyển Linear
Hàm chuyển là hàm chuyển cho giá trị output bằng input
a = n
Nó có công thức:
a = purelin(n)
Hàm chuyển này được sử dụng trong các mạng nơron sử dụng thuật giải
huấn luyện mạng ADALINE. Hình dưới biểu diễn đồ thị của hàm chuyển

15
linear, biểu tượng và đồ thị của một Single - Input Neuron sử dụng hàm
chuyển linear

+b

a
p0
-b/w
a = purelin(wp+b)
Single – input purelin Neuron

Hàm chuyển này cùng với hàm chuyển hard limit đã nói ở trên sẽ được tôi
sử dụng để thiết kế mạng nơron hai lớp giải quyết bài toán nhận dạng kí tự mà
các bạn sẽ thấy ở phần sau.
2.4.3 Hàm chuyển log - sigmoid:
Hàm chuyển log - sigmoid có công thức:
n
e
a



1
1

Hàm chuyển này có thể nhận giá trị input là bất cứ giá trị nào trong khoảng
 
 ,
và trả về giá trị output nằm trong khoảng (0, 1).
Các mạng nơron nhiều lớp sử dụng thuật toán huấn luyện mạng
backpropagation sử dụng hàm này làm hàm chuyển. Dưới đây là đồ thị của
hàm chuyển log - sigmoid, biểu tượng và đồ thị của một Single - Input
Neuron sử dụng hàm chuyển log - sigmoid

16

a = logsig(wp + b)
Log – Sigmoid Transfer Function Single – Input logsig Neuron

Các bạn sẽ thấy hàm chuyển này được sử dụng trong các mạng nơron giải
quyết bài toán khám sức khoẻ ở chương 3
Ngoài các hàm chuyển đã giới thiệu ở trên các bạn có thể tham khảo thêm
các hàm chuyển khác trong cuốn Nơron Network Design.
III. MẠNG NƠRON
Mạng nơron nhân tạo (Artificial Nơron Network) gọi tắt là MNR bao gồm
các nút (đơn vị xử lý, neuron) được nối với nhau bởi các liên kết neuron. Mỗi
liên kết kèm theo một trọng số nào đó, đặc trưng cho đặc tính kích hoạt/ức
chế giữa các neurons
Có thể xem các trọng số là phương tiện để lưu giữ thông tin dài hạn trong
mạng nơron và nhiệm vụ của quá trình huấn luyện (học) mạng là cập nhật các
trọng số khi có thêm các thông tin về mẫu học, hay nói một cách khác, các
trọng số được điều chỉnh sao cho dáng điệu vào ra của nó mô phỏng hoàn
toàn phù hợp với môi trường đang xem xét.
Mạng nơron là hệ thống bao gồm nhiều phần tử xử lý đơn giản (neuron)
hoạt động song song. Tính năng của hệ thống này tuỳ thuộc vào cấu trúc của
hệ, các trọng số liên kết neuron và quá trình tính toán tại các neuron đơn lẻ.
Mạng nơron có thể học từ dữ liệu mẫu và tổng quát hoá dựa trên các dữ liệu
mẫu học.
Trong mạng nơron, các neurons đón nhận tín hiệu vào gọi là neuron vào và
các neuron đưa thông tin ra gọi là neuron ra.

17
- Các neurons có thể tổ chức lại thành các lớp sao cho mỗi neuron của lớp
này chỉ được nối với các neuron ở lớp tiếp theo, không cho phép các liên kết
giữa các neuron trên cùng một lớp, hoặc từ neuron lớp dưới lên neuron lớp
trên. Ở đây cũng không cho phép các liên kết neuron nhảy qua một lớp. Căn

cứ theo số lớp mạng ta có mạng nơron một lớp và mạng nơron nhiều lớp.
Hình dưới mô tả một mạng nơron nhiều lớp.
- Mỗi một lớp mạng bao gồm ma trận trọng số, tổng trọng số, đại lượng b
và hàm chuyển f.

3.1 Huấn luyện mạng
Mạng nơron như một hệ thống thích nghi có khả năng học (huấn luyện) để
tinh chỉnh các trọng số liên kết cũng như cấu trúc của mình sao cho phù hợp
với các mẫu học (samples). Có 3 loại kĩ thuật học:
1) Học có giám sát (còn gọi là học có thầy): Trong học có giám sát
mạng được cung cấp một tập mẫu học {(X
i
, Y
i
)} theo nghĩa X
i
là tín hiệu vào
thì kết quả ra đúng của hệ phải là Y
i
. Ở mỗi lần học, vectơ tín hiệu vào X
i

được đưa vào mạng, sau đó so sánh sự sai khác giữa các kết quả đúng Y
i
với
kết quả tính out
i
. Sai số này sẽ được dùng để hiệu chỉnh lại các trọng số liên
kết trong mạng. Quá trình cứ tiếp tục cho đến khi thoả mãn một tiêu chuẩn


18
nào đó. Có hai cách sử dụng tập mẫu học: hoặc dùng các mẫu lần lượt, hết
mẫu này đến mẫu khác, hoặc sử dụng đồng thời tất cả các mẫu cùng một lúc.
2) Học không có giám sát (Học không có thầy): Các mạng với cơ chế
học không giám sát được gọi là các mạng tự tổ chức.
3) Học tăng cường
Các kĩ thuật học trong mạng nơron có thể nhằm vào hiệu chỉnh các trọng
số liên kết (gọi là học tham số) hoặc điều chỉnh, sửa đổi cấu trúc của mạng
bao gồm số lớp, số neuron, kiểu trọng số các liên kết (gọi là học cấu trúc). Cả
hai mục đích học này có thể thực hiện đồng thời hoặc tách biệt.
Học tham số: Giả sử có k neurons trong mạng và mỗi neuron có đúng l
liên kết với các neurons khác. Khi đó, ma trận trọng số liên kết W sẽ có kích
thước kxl. Các thủ tục học tham số nhằm mục đích tìm kiếm ma trận W sao
cho:
Y
i
= Tinh(X
i
, W) đối với mọi mẫu học S = (X
i
, Y
i
)
Mạng neural N
X
i
Out
i
Sai số
Y

i
Hiệu chỉnh W

Học tham số có giám sát
Học cấu trúc: Với học tham số ta giả định rằng mạng có một cấu trúc cố
định. Việc học cấu trúc của mạng truyền thẳng gắn với yêu cầu tìm ra số lớp
của mạng L và số neuron trên mỗi lớp n
j
. Tuy nhiên, với các mạng hồi quy
còn phải xác định thêm các tham số ngưỡng

của các neuron trong mạng.
Một cách tổng quát phải xác định bộ tham số P = (L, n
1
, …, n
t
,

1
, …,

k
)
Ở đây


j
nk
sao cho
Y

i
= Tinh(X
i
, P) đối với mọi mẫu học S = (X
i
, Y
i
)

19
Về thực chất, việc hiệu chỉnh các vectơ tham số W hay P đều quy về bài
toán tìm kiếm tối ưu trong không gian tham số. Do vậy, có thể áp dụng các cơ
chế tìm kiếm kinh điển theo gradient hay các giải thuật di truyền, lập trình
tiến hoá.
Quá trình học mạng thường gồm quá trình lan truyền xuôi và quá trình lan
truyền ngược.
Quá trình lan truyền xuôi để tính giá trị ra a.
Quá trình lan truyền ngược làm nhiệm vụ tính sai số và cập nhật trọng số.
Tuy nhiên không phải mạng nơron nào cũng có đủ cả hai quá trình lan
truyền này.
Hiệu quả huấn luyện mạng phụ thuộc vào nhiều yếu tố: Số neuron trên một
lớp, số lớp mạng, hệ số tập huấn, hệ số lặp…
Trong 3 loại kĩ thuật học mạng tôi chỉ chú trọng giới thiệu kĩ thuật học có
giám sát vì đây là loại kĩ thuật học mạng được sử dụng chủ yếu hiện nay và sẽ
được sử dụng trong việc giải quyết các bài toán mà tôi sẽ giới thiệu trong
chương 3.
3.2 Mạng nơron một lớp
Đây là mô hình mạng nơron đầu tiên trong lịch sử nghiên cứu và ứng dụng
mạng nơron.
Mạng chỉ gồm một lớp được cấu thành bởi các neurons (giả sử là S

neurons). Có R giá trị input. Mỗi một input kết nối với các neurons của mạng.
Như vậy ma trận trọng số W có kích thước là SxR.

20
Layer of S Neurons
a = f(Wp + b)
1,1
w
RS
w
,
S
b
2
b
1
b
1
a
2
a
S
a
Layer of S neurons

Sau khi các giá trị input đi vào lớp mạng sẽ cho ra Output của mạng là
vectơ (a
1
, a
2

, …, a
S
). Số neuron của mạng có ảnh hưởng đến hiệu quả làm việc
của mạng. Điều này có thể thấy rõ qua bài toán huấn luyện mạng nơron kiểm
tra tình trạng sức khoẻ của bệnh nhân mà ta sẽ xem xét ở phần sau.
Về hiệu quả hoạt động, mạng nơron một lớp hoạt động không hiệu quả: xử
lý chậm, sai số lớn. Tuy nhiên do cấu tạo đơn giản nên nó vẫn là mô hình
mạng
3.3 Mạng nơron nhiều lớp
Mạng gồm nhiều lớp, Output của lớp này là Input của lớp tiếp theo.

21

Mạng nơron nhiều lớp hoạt động hiệu quả hơn mạng nơron một lớp. Ví dụ
như mạng nơron hai lớp, lớp thứ nhất sử dụng hàm sigmoid và lớp thứ hai sử
dụng hàm linear có thể huấn luyện gần như chính xác hầu hết các hàm nhưng
mạng một lớp thì không thể.
1.2.3 Mạng nơron hồi quy
Mạng nơron hồi quy cho phép các liên kết neuron tạo thành chu trình. Các
thông tin ra của các neurons được truyền lại cho các neurons góp phần kích
hoạt chúng. Điều này làm cho mạng hồi quy có khả năng lưu giữ trạng thái
trong của nó dưới dạng các ngưỡng kích hoạt ngoài các trọng số liên kết
neuron. Hình dưới mô tả một mạng nơron hồi quy

22


23
Chương 2:
MỘT SỐ MÔ HÌNH MẠNG NƠRON

Như đã nói ở trên, đề tài ngoài việc tìm hiểu về lí thuyết mạng nơron thì
mục đích chính là sử dụng mạng nơron để giải quyết hai bài toán được giới
thiệu cụ thể ở chương 3 là bài toán nhận dạng kí tự và bài toán khám sức khoẻ
trong y học. Chính vì vậy mà ở đây tôi chỉ giới thiệu một số mô hình mạng,
trong đó chủ yếu là những mô hình và thuật toán sẽ được sử dụng để giải
quyết các bài toán đã nêu ở trên. Việc huấn luyện mạng cũng chủ yếu là với kĩ
thuật học có giám sát.
I. MẠNG PERCEPTRON
1.1 Kiến trúc mạng
Mạng Perceptron do F.Rosenblatt đề xuất năm 1960. Đây là mạng truyền
thẳng một lớp có một hoặc nhiều đầu ra. Để đơn giản ở đây tôi chỉ trình bày
với mạng có một đầu ra.
a= hardlim(Wp + b)
Hard Limit Layer

Đầu ra của mạng được tính theo công thức:
a = hardlim(Wp + b)
Hàm chuyển này được sử dụng nhiều trong quá trình phát triển của thuật
toán học mạng Perceptron vì nó thuận lợi trong việc xem xét từng thành phần
riêng rẽ trong vectơ của mạng. Đầu tiên, chúng ta hãy xem xét ma trận trọng
số:

24














SRSS
R
R
www
www
www
W
21
22221
11211




Chúng ta có thể xác định được một vectơ chứa các thành phần gồm i dòng
trong ma trận trọng số W (Chính là cột thứ i trong ma trận W)














iR
i
i
i
w
w
w
w

2
1

Chúng ta hãy viết lại ma trận trọng số theo các thành phần của ma trận P
















T
S
T
T
w
w
w
W

2
1

Bây giờ chúng ta có thể viết ra thành phần thứ i của vectơ output:
a
i
= hardlim(n
i
) = hardlim(
i
w
T
p + b
i
)
Giá trị trả về của hàm chuyển hardlim là:
a = hardlim(n) =






00
01
n
n

Vì vậy, nếu tích của thành phần gồm i dòng trong ma trận trọng số với
vectơ input lớn hơn hoặc bằng -b thì output bằng 1, ngược lại output bằng 0.
1.2 Huấn luyện mạng
Mạng học dựa trên nguyên tắc có giám sát với tập mẫu {(X
s
,Y
s
)}
Ý tưởng cơ bản của quá trình huấn luyện mạng là xác định bộ trọng số W
sao cho giá trị ra a = hardlim(W
T
p + b) = Y
s
đối với mẫu học s.
Ban đầu các trọng số được gán ngẫu nhiên trong khoảng [-0.5, 0.5]. Sau đó
hiệu chỉnh các trọng số sao cho phù hợp với các mẫu học, làm giảm sai số
giữa giá trị quan sát Y
s
với giá trị tính toán a.

25

Các bước tiến hành như sau:
1. Xác định ngẫu nhiên bộ trọng số.
2. Với mỗi mẫu học (X
s
, Y
s
), X
s
= (X
s1
, X
s2
, …, X
sn
) thực hiện các
bước:
 Tính giá trị ra a
s

 Xác định Err = Y
s
- a
s

 Hiệu chỉnh các trọng số W
j
= W
j
+


X
sj
*Err trong đó


hằng số học. Hệ số học

phải được chọn không quá lớn để
đảm bảo sự hội tụ của quá trình.
Có thể thấy sự hội tụ của quá trình học của mạng dựa trên nguyên lý tìm
kiếm gradient trong không gian trọng số làm cực tiểu hàm sai số
Err(W) = ½(Y
s
- a
s
(w))
2

Người ta chứng minh được rằng quá trình huấn luyện mạng Perceptron
luôn hội tụ
1.3 Sử dụng mạng
Để làm rõ vấn đề huấn luyện mạng của thuật toán huấn luyện mạng
preceptron chúng ta sẽ bắt đầu với một ví dụ đơn giản và sẽ tiến hành thử
nghiệm với một quy tắc hợp lý.
Ta có tập mẫu:













































 0,
1
0
,0,
2
1
,1,
2
1
332211
tptptp

Vấn đề cần giải quyết được hiển thị trong hình dưới:
1
2
3


26
Ta thấy trong tập mẫu có hai vectơ input có mục tiêu là 0 được biểu diễn
bởi hình tròng sáng và một vectơ input có mục tiêu là 1 được biểu diễn bởi
hình tròn tối . Đây là một vấn đề hết sức đơn giản, và chúng ta gần như có

thể đạt được một đáp án chuẩn. Điều này dễ dàng thực hiện với thuật toán
huấn luyện mạng perceptron.
Mạng nơron thiết kế để giải quyết vấn đề này có hai input và một output.
Để đơn giản cho việc hiểu thuật toán huấn luyện mạng, chúng ta sẽ sử dụng
mạng nơron không có tham số b. Mạng nơron này chỉ có hai tham số w
1,1

w
1,2
được hiển thị ở hình sau:
a = hardlim(Wp)
Hard – Limit Layer

Việc huấn luyện mạng được bắt đầu bằng việc gán các giá trị ngẫu nhiên
cho các tham số của mạng. Ở đây chúng ta có hai tham số cần gán giá trị là
w
1,1
và w
1,2
. Chúng ta sẽ khởi tạo một vectơ trọng số
1
w. Giả sử sau khi gán
giá trị ngẫu nhiên ta có:
1
w
T
=
 
8.01 


Khi vectơ input







2
1
1
p
được truyền vào mạng. Mạng hoạt động và tính
giá trị output:
a = hardlim(
1
w
T
p
1
) = hardlim(
 







2

1
8.01
)
a = hardlim(-0.6) = 0
Tính sai số:

27
Err = t - a = 1 - 0 = 1
Điều chỉnh trọng số:
1
w =
1
w + Err.p =
1
w + (t - a)p
1
1
w =






 8.0
1
+







2
1
=






2.1
2

Tính lại giá trị output:
a = hardlim(
1
w
T
p
1
) = hardlim(
 







2
1
2.12
)
a = hardlim(4.4) = 1
Xác định lại sai số:
Err = t - a = 1 - 1 = 0
Việc huấn luyện mạng kết thúc
Một điều cần lưu ý là mạng Perceptron chỉ có thể sử dụng để tính các hàm
khả tách tuyến tính có nghĩa là trên đồ thị phải tồn tại đường phân chia giữa
các miền giá trị. Hình dưới là một ví dụ minh hoạ về một số đường phân chia
giữa các giá trị.
1
2
3

Như vậy mạng nơron Perceptron không thể tính được X xor Y vì hàm này
không khả tách tuyến tính, không tồn tại một đường thẳng phân chia hai vùng
{(0,0), (1,1)} và {(0,1), (1,0)}
Mạng nơron Perceptron được sử dụng để tính toán các hàm. Số lớp các
hàm mà nó có thể tính được tương đối phong phú. Sau đây là một số hàm tiêu
biểu

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×