Tải bản đầy đủ (.doc) (24 trang)

Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG ỨNG DỤNG MẠNG NEURON & GIẢI THUẬT LAN TRUYỀN NGƯỢC ĐỂ XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG KÝ TỰ

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 (356.55 KB, 24 trang )

GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
  
BÀI THU HOẠCH
MÔN
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Đề tài
ỨNG DỤNG MẠNG NEURON & GIẢI THUẬT LAN TRUYỀN NGƯỢC
ĐỂ XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG KÝ TỰ
Giảng viên hướng dẫn : GS.TSKH Hoàng Văn Kiếm
Học viên thực hiện : Nguyễn Hải Toàn
Lớp : KHMT K8
Mã số : CH1301110
TP.HCM, 10/2014
Nguyễn Hải Toàn – CH1301110
1
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

NHẬN XÉT CỦA GIẢNG VIÊN




























Nguyễn Hải Toàn – CH1301110
2
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN 2
2
2
2
2
2
2
2

2
2
2
2
2
2
2
2
2
2
2
2
2
2
Nguyễn Hải Toàn – CH1301110
3
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

2
2
2
2
2
2
MỤC LỤC 3
I.MÁY HỌC 6
1.Máy học: 6
2. Tiến trình máy học: 7
II.MẠNG NEURAL NHÂN TẠO 9
Mạng Neural là gì ? 9

Mô hình mạng neural nhân tạo 12
Neuron (nút mạng) 12
Mạng neural một lớp 14
Mạng lan truyền ngược 15
Định nghĩa 15
Nguyên tắc hoạt động của mạng lan truyền ngược 16
Tóm tắt thuật giải lan truyền ngược 21
III.ỨNG DỤNG MẠNG NƠRON LAN TRUYỀN NGƯỢC 23
1.Mục đích chương trình 23
Ứng dụng mạng nơron lan truyền ngược để viết chương trình nhận dạng chữ viết (ký tự) 23
2.Mô tả về chương trình 23
Giao diện chương trình : 23
23
Nguyễn Hải Toàn – CH1301110
4
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

1: Xóa khu vực “ Drawing Area” 23
2: Mở một Netword có sẵn 23
3:Training Network 23
4:Nhận dạng ký tự trong khu vực “Drawing Area” 23
3.Mô tả cách hoạt động của chương trình 23
Vẽ một ký tự vào khư vực “ Drawing Area” 23
Nhấn vào bufon “Train Network” 23
Sau đó nhấn vào bufon “Recognize” để nhận dạng ký tự vừa vẽ 23
24
sau khi nhấn “Recognize”, trong khu vực “Match Paferns” sẽ hiện thị ra kết quả : Input ( ký tự
được vẽ), High (ký tự được nhận dạng có xác suất đúng cao), Low ( ký tự được nhận dạng có xác
suất đúng thấp hơn) 24
Trên hình trên ta vẽ vào ký tự tương tự ký tự “A”, kết quả chương trình dự đoán ký tự nhập vào là

ký tự “A” với xác xuất 90 % 24
4.Một số đoạn code quan trọng 24
Hàm huấn luyện 24
25
Hàm nhận dạng ký tự 25
25
26
TÀI LIỆU THAM KHẢO 26
Nguyễn Hải Toàn – CH1301110
5
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

I. MÁY HỌC
1. Máy học:
Một số lợi ích của máy học:
- Các thông tin ngày càng nhiều, hàng ngày ta phải xử lý rất nhiều thông tin
đến từ nhiều nguồn khác nhau. Máy học có thể giúp xứ lý và dự báo các thông
tin đó bằng cách tạo ra các luất sản xuất từ dữ liệu thu thập.
- Ở những nơi không có chuyên gia, máy học có thể giúp tạo ra được các
quyết định từ các dữ liệu có được.
- Các thuật toán máy học có thể giúp xử lý khi dữ liệu không đầy đử, không
chính xác.
- Máy học giúp thiết kế hệ thống huấn luyện tự động (mạng nơrôn nhân
tạo) và giải mã mối liên hệ giữa các tri thức được lưu trữ trong mạng từ dữ liệu.
Rất khó để định nghĩa một cách chính xác về máy học. Một trong những
nguyên nhân là từ “học - learn” có ý nghĩa khác nhau trong từng lĩnh vực: tâm
lý học, giáo dục, trí tuệ nhân tạo,… Một định nghĩa rộng nhất, máy học là một
cụm từ dùng để chỉ khả năng một chương trình máy tính để tăng tính thực thi
dựa trên những kinh nghiêm đã trải qua. Hoặc, máy học là để chỉ khả năng một
chương trình có thể phát sinh ra một cấu trúc dữ liệu mới khác với các cấu trúc

dữ liệu cũ. Chẳng hạn, các luật sản xuất: if… then…
Lợi điểm của các phương pháp máy học là nó phát sinh ra các luật tường minh,
có thể được sửa đổi, hoặc được huấn luyện trong một giới hạn nhất định. Các
phương pháp máy học hoạt động trên các dữ liệu có đặc tả thông tin. Các thông
tin được trình bày theo một cấu trúc gồm 4 mức được gọi là tri thức kim tự tháp
(pyramid knowledge). Mức thấp nhất là một tập dữ liệu lớn dùng để lưu thông
tin, thường nó rất khó hiểu với con người. Do đó, cần phải trích các thông tin
hữu ích từ kho dữ liệu bằng cách sử dụng các phương pháp tiền xử lý. Kết quả
của việc tiền xử lý sẽ tạo ra thông tin ở mức thứ 2. Các tri thức ở mức thứ 3
thường được tạo ra do các luật sản xuất. Các siêu tri thức được gọi là tri thức
của tri thức.
Máy học là sự tự động của quy trình học và việc học thì tương đương với việc
xây dựng những luật dựa trên việc quan sát trạng thái trên cơ sở dữ liệu và
những sự chuyển hoá của chúng. Đây là lĩnh vực rộng lớn không chỉ bao gồm
Nguyễn Hải Toàn – CH1301110
6
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

việc học từ mẫu, mà còn học tăng cường, học với “thầy”, Các thuật toán học
lấy bộ dữ liệu và những thông tin quen thuộc của nó khi nhập và trả về một kết
quả câu nói hay một câu ví dụ, một khái niệm để diễn tả những kết quả học.
Máy học kiểm tra những ví dụ trước đó và kiểm tra luôn cả những kết quả của
chúng khi xuất và học làm cách nào để tái tạo lại những kết quả này và tạo nên
những sự tổng quát hóa cho những trường hợp mới.
Nói chung, máy học sử dụng một tập hữu hạn dữ liệu được gọi là tập huấn
luyện. Tập này chứa những mẫu dữ liệu mà nó được viết bằng mã theo một
cách nào đó để máy có thể đọc và hiểu được. Tuy nhiên, tập huấn luyện bao giờ
cũng hữu hạn do đó không phải toàn bộ dữ liệu sẽ được học một cách chính
xác.
2. Tiến trình máy học:

Một tiến trình máy học gồm 2 giai đoạn:
 Giai đoạn học (learning): hệ thống phân tích dữ liệu và nhận ra sự mối
quan hệ (có thể là phi tuyến hoặc tuyến tính) giữa các đối tượng dữ liệu. Kết
quả của việc học có thể là: nhóm các đối tượng vào trong các lớp, tạo ra các
luật, tiên đoán lớp cho các đối tượng mới.
 Giai đoạn thử nghiệm (testing): Mối quan hệ (các luật, lớp ) được tạo
ra phải được kiểm nghiệm lại bằng một số hàm tính toán thực thi trên một phần
của tập dữ liệu huấn luyện hoặc trên một tập dữ liệu lớn.
Các thuật toán máy học được chia làm 3 loại: học giám sát, học không giám sát
và học nửa giám sát.
Học có giám sát
Đây là cách học từ những mẫu dữ liệu mà ở đó các kỹ thuật máy học giúp hệ
thống xây dựng cách xác định những lớp dữ liệu. Hệ thống phải tìm một sự mô
tả cho từng lớp (đặc tính của mẫu dữ liệu). Nhờ vậy người ta có thể sử dụng các
luật phân loại hình thành trong quá trình học và phân lớp để có thể sử dụng dự
báo các lớp dữ liệu sau này.
Thuật toán học có giám sát gồm tập dữ liệu huấn luyện M cặp:
S = {(x
i
, c
j
)| i=1,…,M; j=1,…,C}
Các cặp huấn luyện này được gọi là mẫu, với
x
i
là vector n-chiều còn gọi là vector đặc trưng.
Nguyễn Hải Toàn – CH1301110
7
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược


c
j
là lớp thứ j đã biết trước.
Thuật toán máy học giám sát tìm kiếm không gian của những giả thuyết có thể,
gọi là H. Đối với một hay nhiều giả thuyết, mà ước lượng tốt nhất hàm không
được biết chính xác f : x

c. Đối với công việc phân lớp có thể xem giả thuyết
như một tiêu chí phân lớp. Thuật toán máy học tìm ra những giả thuyết bằng
cách khám phá ra những đặc trưng chung của những ví dụ mẫu thể hiện cho mỗi
lớp. Kết quả nhận được thường ở dạng luật (Nếu thì).
Tùy thuộc vào mức độ của thuật toán học giám sát, người ta có những mô hình
học giám sát như sau:
• Học vẹt: hệ thống luôn luôn được “dạy” những luật đúng, rồi có học hội
tụ.
• Học bằng phép loại suy: hệ thống được dạy phản hồi đúng cho một
công việc tương tự, nhưng không xác định. Vì thế hệ thống phải hiệu
chỉnh phản hồi trước đó bằng cách tạo ra một luật mới có thể áp dụng
cho trường hợp mới.
• Học dựa trên trường hợp: trong trường hợp này hệ thống học lưu trữ tất
cả các trường hợp, cùng với kết quả đầu ra của chúng. Khi bắt gặp một
trường hợp mới, nó sẽ cố gắng hiệu chỉnh đến trường hợp mới này cách
xử lý trước đó của nó đã được lưu trữ.
• Học dựa trên sự giải thích: hệ thống sẽ phân tích tập hợp những giải
pháp nhằm chỉ ra tại sao mỗi phương pháp là thành công hay không
thành công. Sau khi những giải thích này được tạo ra, chúng sẽ được
dùng để giải quyết những vấn đề mới.
Học không giám sát
Đây là việc học từ quan sát và khám phá. Hệ thống khai thác dữ liệu được ứng
dụng với những đối tượng nhưng không có lớp được định nghĩa trước, mà để nó

phải tự hệ thống quan sát những mẫu và nhận ra mẫu. Hệ thống này dẫn đến
một tập lớp, mỗi lớp có một tập mẫu được khám phá trong tập dữ liệu.
Học không giám sát còn gọi là học từ quan sát và khám phá. Trong trường hợp
chỉ có ít, hay gần như không có tri thức về dữ liệu đầu vào, khi đó một hệ thống
học không giám sát sẽ khám phá ra những phân lớp của dữ liệu, bằng cách tìm
ra những thuộc tính, đặc trưng chung của những mẫu hình thành nên tập dữ
liệu.
Nguyễn Hải Toàn – CH1301110
8
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

Một thuật toán máy học giám sát luôn có thể biến đổi thành một thuật toán máy
học không giám sát. Đối với một bài toán mà những mẫu dữ liệu được mô tả
bởi n đặc trưng, người ta có thể chạy thuật toán học giám sát n-lần, mỗi lần với
một đặc trưng khác nhau đóng vai trò thuộc tính lớp, mà chúng ta đang tiên
đoán. Kết quả sẽ là n tiêu chí phân lớp (n bộ phân lớp), với hy vọng là ít nhất
một trong n bộ phân lớp đó là đúng.
Học nửa giám sát
Học nửa giám sát là các thuật toán học tích hợp từ học giám sát và học không
giám sát. Việc học nửa giám sát tận dụng những ưu điểm của việc học giám sát
và học không giám sát và loại bỏ những khuyết điểm thường gặp trên hai kiểu
học này.
II. MẠNG NEURAL NHÂN TẠO
Mạng Neural là gì ?
Mạng Neural là một thuật ngữ nói đến một phương pháp giải quyết vấn đề bài
toán trên máy tính phỏng theo hoạt động của tế bào thần kinh não bộ. Nói cụ thể
hơn, mạng Neural là một bộ xử lý phân tán song song rất lớn theo khuynh hướng
tự nhiên nhằm tích lũy kinh nghiệm tri thức và sử dụng chúng để giải quyết bài
toán ngày càng hoàn thiện hơn. Mạng neural nhân tạo hoạt động giống não bộ
con người ở hai mặt:

1. Tri thức được tích lũy thông qua mạng trong suốt quá trình học
2. Mức độ của các kết nối giữa tế bào thần kinh được xem như những trọng
số của các cung mạng neural nhân tạo. Trọng số này được dùng để lưu trữ tri
thức.
Nguyễn Hải Toàn – CH1301110
9
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

Trước khi đi vào nghiên cứu sâu hơn về mạng Neural, ta tìm hiểu sơ lược về
hoạt động của não bộ con người.
Hệ thần kinh con người có thể đuợc chia thành ba bộ phận: Bộ phận trung tâm
được gọi là não bộ, nó được biểu diễn bởi mạng neural, tiếp nhận thông tin, xử
lý thông tin và đưa ra một quyết định thích hợp. Bộ phận tiếp nhận (Receptors)
giữ nhiệm vụ chuyển đổi những tín hiệu kích thích(stimulus) từ các bộ phận
khác của cơ thể hay môi trường bên ngoài thành những electrical impulses (xung
lực điện sinh ra từ não bộ) và chuyển chúng vào não bộ. Bộ phận phản hồi
(Effectors) giữ vai trò ngược với bộ phận tiếp nhận, nó chuyển đổi electrical
impulses thành discernible responses và phản hồi thông tin. Hoạt động của hệ
thần kinh được biểu diễn theo sơ đồ sau:
Để đi vào phân tích các hoạt động của hệ thần kinh, ta xem xét mô hình phân cấp
các mức từ thấp đến cao như hình sau:
Nguyễn Hải Toàn – CH1301110
10
Cấu trúc của tế bào thần kinh con người
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược


Mức cơ bản biểu diễn các phân tử và các ion (Molecules). Chính sự tương tác
của các phân tử này theo nhiều cách khác nhau hình thành các khớp thần kinh
(Synapses). Một neural microcircuit là một nhóm các khớp thần kinh có tổ chức

để tạo ra các tính năng tương tự nhau. Kích cỡ của các neural microcircuit
khoảng vài micro-met, tốc độ phản ứng của chúng vào khoảng vài mili giây. Các
neural microcircuit với các đặc điểm tương tự nhau nhóm lại trong dạng hình cây
(denrictic tree), và từ đó hình thành những neuron với các tính năng riêng. Một
neuron kích cỡ 100 micro-met chứa khoảng vài denrictic tree. Ở cấp độ cao hơn
là các local circuits có chiều rộng khoảng 1 mili mét được hình thành từ các
neuron với tính năng khác nhau hoặc gần giống nhau. Từ đây hình thành các
hoạt động có tính chất chuyên môn hóa. Ở mức cao hơn, các local circuits liên
Nguyễn Hải Toàn – CH1301110
11
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

kết với nhau theo những qui tắc nhất định, đó chính là các Interrgional circuits,
có nhiệm vụ phản hồi thông tin sau khi đã được xử lý. Trên cùng chính là cơ
quan thần kinh trung ương (Central nervous system) đóng vai trò quyết định cho
một trả lời từ nhiều phản hồi thông tin của Interrgional circuits.
Từ cấu trúc cũng như họat động của bộ não con người, người ta đã đúc kết một
phương pháp học cho máy tính có mô hình tương tự như vậy, nhằm đạt được
một kết quả tốt như mong muốn, đó là mạng neural nhân tạo. Các thành phần cơ
bản của mạng neural nhân tạo được so sánh với các local circuits và interrigional
circuits.
Mô hình mạng neural nhân tạo
Neuron (nút mạng)
Đơn vị nền tảng trong mạng neural là neuron, một đơn vị xử lý thông tin. Người
ta đã đưa ra các thành phần cơ bản của một neuron như sau:
1. Một tập các dây thần kinh mà đặc trưng của mỗi sợi là một trọng số.
Trọng số w
kj
biểu diễn cho dây thần kinh có một đầu là tín hiệu x
j

nối vào
neuron k. w
kj
>0 thể hiện sự kích thích tăng trưởng cho tín hiệu này, ngược
lại w
kj
<0 mang tính kìm hãm thông tin đó.
2. Một hàm cộng, tính tổng tất cả các tích của tính hiệu đầu vào x
j
và trọng
số w
kj
tương ứng:

=
=
p
j
jkjk
xwu
1
3. Một hàm truyền nhằm hiệu chỉnh giá trị đầu ra của neuron. Hàm truyền là
hàm toán học thỏa mãn các điều kiện sau:
a) Liên tục
b) Đơn điệu tăng
Nguyễn Hải Toàn – CH1301110
12
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

c) Bị chặn

Giá trị đầu ra của neuron k được tính bởi công thức:
y
k
= f(u
k
- θ
k
)
Trong đó f là hàm truyền, u
k
là tổng các tích của tín hiệu đầu vào x
j
và trọng số
tương ứng w
kj
, θ
k
là ngưỡng hoạt động của neuron k
Một số lọai hàm truyền được dùng cho các mạng neural:
1) Hàm ngưỡng
f(v) =



0
1

2) Hàm logistic (còn gọi là hàm sigma)
f(v) =
av

e

+1
1
3) Hàm hyperpol
f(v) =
v
v
e
e


+

1
1
Trên cơ sở đã định nghĩa về cấu trúc của một neuron, người ta đưa ra một số mô
hình mạng neural dựa trên số lớp của nó.
Nguyễn Hải Toàn – CH1301110
13
nếu v

0
nếu v < 0
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

Mạng neural một lớp
Một lớp trong mạng neural là một nhóm các neuron có đặc điểm tương tự nhau,
nghĩa là chúng nhận cùng những tín hiệu đầu vào nhưng với các trọng có thể
khác nhau.

Mạng neural một lớp là mạng chỉ có một lớp nhận nhiệm vụ tính toán để đưa ra
kết quả (lớp output). Đầu vào của các neuron output chính là các nút input x
1
,x
2
,
…,x
p
.
Mạng neural nhiều lớp
Mạng neural nhiều lớp là mạng neural gồm có hai hay nhiều lớp tính toán, nghĩa
là ngoài lớp input và lớp output, còn có một số lớp xen giữa hai lớp này gọi là
các lớp ẩn.
Nguyễn Hải Toàn – CH1301110
14
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

Nguyên tắc hoạt động cơ bản của mạng neural là quá trình luyện mạng hay còn
gọi là quá trình học qua nhiều thế hệ. Để có thể học được, cũng như con người,
ta cần có tập những mẫu dùng để học. Một mẫu là cặp các giá trị đầu vào x
1
,…,x
p
và các giá trị mong muốn d
1
,…,d
q
. Giả sử thông tin (giá trị của một mẫu) được
đưa vào lớp input, chúng sẽ được “truyền” qua các lớp kế tiếp nhờ vào kết quả
tính toán của neuron mà ta trình bày ở trên. Ở đây bộ trọng số có thể được khởi

đầu bằng những giá trị bất kỳ. Kết quả tính toán các giá trị output y
1,…,
y
q
sẽ được
so sánh với các giá trị mong đợi d
1
,…,d
q
từ đây mạng rút ra được các “bài học”
bằng cách cập nhật các trọng số để lần học sau được tốt hơn. Mỗi lần lặp lại tiến
trình cập nhật trọng số được gọi là một thế hệ. Điều mà ta mong muốn là qua các
thế hệ, trọng số được cập nhật sao cho sai số của giá trị output ngày càng giảm
dần, đến một lúc nào đó có thể chấp nhận được, khi ấy có thể coi là mạng học
xong.
Mạng lan truyền ngược
Định nghĩa
Mạng lan truyền ngược là mạng neural nhiều lớp, bao gồm một lớp input, một
lớp output và một hay nhiều lớp ẩn. Trong mạng thông tin được truyền từ lớp
này qua lớp kia theo cả hai chiều tiến và chiều ngược. Suốt quá trình lan truyền
ngược, các bộ trọng số được cập nhật sao cho sai số giữa giá trị output và kết quả
mong đợi giảm dần sau mỗi lượt lan truyền.
Nguyễn Hải Toàn – CH1301110
15
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

Nguyên tắc hoạt động của mạng lan truyền ngược
Để tìm hiểu về nguyên tắc hoạt động của mạng lan truyền ngược ta định nghĩa
thêm hai loại tín hiệu sau:
Tín hiệu hàm(function signal): là một tín hiệu (stimulus) xuất phát từ đầu vào

của mạng (lớp input), lan truyền theo chiều tiến, từ neuron này qua neuron
kia (các lớp ẩn), kết thúc tại đầu ra của mạng(lớp output).
Tín hiệu lỗi (error signal): là tín hiệu xuất phát từ đầu ra của mạng, lan truyền
theo chiều ngược, cũng qua lần lượt các lớp ẩn, kết thúc tại đầu vào của
mạng.
Trong một ứng dụng mạng lan truyền ngược, có hai quá trình tính toán phân biệt
nhau. Thứ nhất là quá trình lan truyền tiến và thứ hai là quá trình lan truyền
ngược.
Trong quá trình lan truyền tiến, tất cả các trọng số của các cung mạng không
thay đổi, các tín hiệu hàm được tính toán từ trái qua phải từ neuron này qua
neuron kia, tín hiệu hàm xuất hiên tại đầu ra của neuron j được tính bởi công
thức :
y
j
(n) = f(v
j
(n))
Nguyễn Hải Toàn – CH1301110
16
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

với v
j
(n) =

=
p
i
iji
nyw

0
)(
trong đó p là tổng số nút input (kể cả ngưỡng) của neuron j; w
ji
là trọng số của
cung mạng nối từ neuron i đến neuron j và f là một hàm truyền.
Trong quá trình lan truyền ngược, tín hiệu lỗi xuất phát từ lớp ouput lan truyền
ngược về phía trái. Trong khi lan truyền các trọng số được cập nhật theo chiều
hướng làm giá trị output xích gần giá trị mong muốn hơn. Thuật giải lan truyền
ngược :
Tín hiệu lỗi tại đầu ra của neuron j trong lần học thứ n được tính bởi công thức
e
j
(n) = d
j
(n) – y
j
(n)
Trong đó d
j
(n) là giá trị mong muốn, y
j
(n) là giá trị output thật sự tính toán qua
mạng neural của neuron j.
Ta định nghĩa giá trị bình phương hàm lỗi cho neuron j là
2
1
e
j
2

(n). Tương ứng
giá trị E(n) là tổng bình phương hàm lỗi thu được từ việc lấy tổng tất cả các bình
phương hàm lỗi tại lớp ouput.
Nguyễn Hải Toàn – CH1301110
17
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

E(n) =
)(
2
1
2
ne
Cj
j


(3.1)
Trong đó C là tập tất cả các neuron của lớp ouput. Đặt N là tổng số các mẫu
dùng để luyện mạng. Khi đó giá trị trung bình bình phương hàm lỗi của mạng
neural là
E
av
=

=
N
n
nE
N

1
)(
1
(3.2)
Ta thấy rằng E
av
là hàm của tất cả các tham số tự do (các trọng số của các cung
mạng và các ngưỡng). Mục tiêu của quá trình học trong mạng lan truyền ngược
là điều chỉnh các tham số tự do này sao cho E
av
đạt giá trị nhỏ nhất có thể. Để
làm được điều này ta xét cụ thể một neuron j. Giá trị output của nó là:
V
j
(n) =

=
p
i
iji
nynw
0
)()(
(3.3)
Trong đó p là tổng số nút input của neuron j. Trọng số w
j0
(tương ứng giá trị
input y
0
=-1) chính là ngưỡng θ

j
.Từ đây ta tính được giá trị output của neuron j
trong lần học thứ n thông qua hàm truyền f là:
y
j
(n) = f(v
j
(n))
Công thức tính đạo hàm hàm lỗi theo các tham số tự do kí hiệu là
)(
)(
nw
nE
ji


. Theo
qui tắc dây chuyền ta biểu diễn đạo hàm này như sau:
)()()()(
)()()()(
)(
)(
nwnvnyne
nvnynenE
nw
nE
jijjj
jjj
ji
∂∂∂∂

∂∂∂∂
=


(3.4)
Bây giờ ta tính từng thành phần trong công thức trên.
)(
)(
)(
ne
ne
nE
j
j
=


(3.5)
Nguyễn Hải Toàn – CH1301110
18
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

1
)(
)(
−=


ny
ne

j
j
(3.6)
))(('
)(
)(
nvf
nv
ny
j
j
j
=


(3.7)
)(
)(
)(
ny
nw
nv
j
ji
j
=


(3.8)
Thay vào công thức (3.4) ta được

)())((')(
)(
)(
nynvfne
nw
nE
jjj
ji
−=


(3.9)
Ta tính gia số
)(nw
ji

theo công thức
)(
)(
)(
nw
nE
nw
ji
ji


−=∆
η
(3.10)

Trong đó
η
được gọi là hệ số học của thuật giải lan truyền ngược.
Kết hợp với công thức (3.9) ta thu được
)()()( nynnw
jjji
ηδ
−=∆
(3.11)
Ở đây
)(n
j
δ
được định nghĩa bởi công thức
))((')(
)()()(
)()()(
)( nvfne
nwnyne
nynenE
n
jj
jijj
jj
j
=
∂∂∂
∂∂∂
=
δ

(3.12)
Từ công thức (3.11) và (3.12) ta thấy rằng, sự điều chỉnh trọng số
)(nw
ji


mối liên hệ với hàm lỗi và đạo hàm hàm truyền tại giá trị output của neuron j.
Bây giờ ta xét trường hợp neuron j là một nút ẩn. Khi đó sẽ không tính được giá
trị mong muốn, mà chỉ có thể nhận được các tín hiệu lỗi từ các neuron thuộc lớp
trực tiếp sau nó. Ta định nghĩa
)(n
j
δ
cho neuron j là nút ẩn như sau:
Nguyễn Hải Toàn – CH1301110
19
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

))(('
)(
)(
)()(
)()(
)( nvf
ny
nE
nwny
nynE
n
j

jjij
j
j


=
∂∂
∂∂
=
δ
(3.13)
Theo (3.1) E(n) =
)(
2
1
2
ne
Ck
k


, ở đây k chỉ các neuron thuộc lớp output, do đó:
=


)(
)(
ny
nE
j




k
j
k
k
ny
ne
ne
)(
)(
)(
(3.14)
Cũng theo qui tắc dây chuyền ta viết lại
=


)(
)(
ny
nE
j

∂∂
∂∂
k
jk
kk
k

nynv
nvne
ne
)()(
)()(
)(
(3.15)
Theo công thức hàm lỗi e
k
(n) = d
k
(n) – y
k
(n) = d
k
(n) – f(v
k
(n)) ta suy ra
=


)(
)(
nv
ne
j
k
-f’(v
k
(n)) (3.16)

Theo định nghĩa v
k
(n) =

=
q
j
jkj
nynw
0
)()(
, ở đây q là số nút ẩn. Ta tính được
=


)(
)(
ny
nv
j
k
w
kj
(n) (3.17)
Thay (3.16), (3.17) vào (3.15) ta được
=


)(
)(

ny
nE
j


k
kjkk
nwnvfne )())((')(
=


k
kjk
nwn )()(
δ
(3.18)
trong đó
)(n
j
δ
được kí hiệu giống công thức 3.13 khi thay thế chỉ số k cho j.
Thay vào (3.13), độ dốc cục bộ
)(n
j
δ
của neuron j là nút ẩn được tính như sau

=
k
kjkjj

nwnnvfn )()())((')(
δδ
(3.19)
Nguyễn Hải Toàn – CH1301110
20
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

Tóm tắt thuật giải lan truyền ngược
Thuật toán gồm các bước sau:
1. Khởi đầu:
Vào tập mẫu dùng để luyện mạng:
{[x(n),d(n)]; n = 1,2,…,N}
Các bộ trọng số w(n) cho các neuron có thể được sinh ngẫu nhiên.
Hàm truyền được dùng trong mạng neural là hàm logistic
Kí hiệu w
(l)
, y
(l)
là vector trọng số, vector tín hiệu hàm của những neuron lớp
thứ l
f(v) =
av
e

+1
1
2. Biểu diễn các mẫu lên mạng để luyện:
Luyện mạng xuất phát từ mẫu n = 1 đến mẫu thứ N, thực hiện các bước tiếp
theo.
3. Tính toán quá trình lan truyền tiến:

Giá trị output của neuron j là
)(
)(
ny
l
j
= f(
)(
)(
nv
l
j
) =
)(
)(
1
1
nv
l
j
e


với
)(
)(
nv
l
j
=


=

p
i
l
j
l
ji
nyw
0
)1()(
)(
Nếu neuron j thuộc lớp ẩn thứ nhất thì y
j
(n) = x
j
(n) với x
j
(n) là thành phần thứ
j trong vector input x(n).
Ngược lại y
j
(n) = o
j
(n) với o
j
(n) là thành phần thứ j trong vector output, tính
toán tín hiệu lỗi e
j

(n) = d
j
(n) –o
j
(n) với d
j
(n) là thành phần thứ j trong vector
giá trị mong muốn d(n) của tập mẫu.
Nguyễn Hải Toàn – CH1301110
21
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

4. Tính toán quá trình lan truyền ngược:
Tính delta

=
k
kjkj
l
j
nwnnvfn )()())((')(
)(
δδ
=

++

k
l
kj

l
k
l
j
l
j
nwnyy )()(]1[
)1()1()()(
δ
nếu neuron j
là nút ẩn.
)](1)[()())((')()( nononenvfnen
jjjjjj
−==
δ
nếu neuron j là nút output.
Trọng số được cập nhật theo qui theo qui tắc delta như sau:
)()()]1()([)()1(
)1()()()()()(
nynnwnwnwnw
l
i
l
j
l
ji
l
ji
l
ji

l
ji

+−−+=+
ηδα
với
α
là hằng số moment,
η
là hệ số học.
5. Điều kiện dừng:
Luyện các mẫu cho đến khi các tham số tự do của mạng đạt trạng thái ổn
định với giá trị hàm lỗi E
av
<
ε
dương cho trước.
Nguyễn Hải Toàn – CH1301110
22
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

III. ỨNG DỤNG MẠNG NƠRON LAN TRUYỀN NGƯỢC
1. Mục đích chương trình
- Ứng dụng mạng nơron lan truyền ngược để viết chương trình nhận dạng
chữ viết (ký tự).
2. Mô tả về chương trình
- Giao diện chương trình :
1: Xóa khu vực “ Drawing Area”
2: Mở một Netword có sẵn
3:Training Network

4:Nhận dạng ký tự trong khu vực “Drawing Area”
3. Mô tả cách hoạt động của chương trình
- Vẽ một ký tự vào khư vực “ Drawing Area”
- Nhấn vào button “Train Network”.
- Sau đó nhấn vào button “Recognize” để nhận dạng ký tự vừa vẽ
Nguyễn Hải Toàn – CH1301110
23
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

- sau khi nhấn “Recognize”, trong khu vực “Match Patterns” sẽ hiện thị ra
kết quả : Input ( ký tự được vẽ), High (ký tự được nhận dạng có xác suất
đúng cao), Low ( ký tự được nhận dạng có xác suất đúng thấp hơn).
- Trên hình trên ta vẽ vào ký tự tương tự ký tự “A”, kết quả chương trình
dự đoán ký tự nhập vào là ký tự “A” với xác xuất 90 %.
4. Một số đoạn code quan trọng
- Hàm huấn luyện
Nguyễn Hải Toàn – CH1301110
24
GVHD: GS.TSKH Hoàng Văn Kiếm Mạng Nơron lan truyền ngược

- Hàm nhận dạng ký tự
Nguyễn Hải Toàn – CH1301110
25

×