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Ự - Pdf 27

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


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

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

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


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:

để 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

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

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

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

(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

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
∂∂∂∂

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

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
=
∂∂∂
∂∂∂
=
δ

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

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)

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

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
=

(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
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


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status