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

Ứng dụng mạng nơron trong bài toán 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 (1.26 MB, 64 trang )

LỜI CẢM ƠN
Trước hết, em xin chân thành cảm ơn quý thầy cô trường Đại học Công
Nghệ Thông Tin Và Truyền Thông, đặc biệt các thầy cô trong khoa Công Nghệ
Thông Tin đã tận tình dạy dỗ, truyền đạt cho chúng em nhiều kiến thức quý báu.
Em xin gửi lời biết ơn sâu sắc đến thầy ThS. Lê Anh Tú đã dành nhiều thời
gian và tâm huyết để hướng dẫn nghiên cứu và giúp đỡ em hoàn thành đồ án này.
Thầy đã mở cho em những vấn đề khoa học rất lý thú, hướng em vào
nghiên cứu những lĩnh vực hết sức thiết thực và bổ ích, đồng thời tạo điều kiện
thuận lợi cho em học tập và nghiên cứu.
Xin chân thành cảm ơn các bạn trong lớp, Trường Đại Học Công Nghệ
Thông Tin Và Truyền Thông đã giúp đỡ, động viên tôi rất nhiều trong quá trình
thực hiện đồ án này.
Mặc dù đã có nhiều cố gắng hoàn thiện bằng năng lực và sự nhiệt tình
của mình, tuy nhiên vẫn không tránh khỏi những thiếu sót. Em rất mong được sự
góp ý của các thầy cô và các bạn.
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 06 năm 2012.
Sinh viên

CHU VĂN NGỌC

1


LỜI CAM ĐOAN
Em xin cam đoan về nội dung đồ án không sao chép nội dung cơ bản từ các
đồ án khác, và sản phẩm của đồ án là của chính bản thân nghiên cứu và xây
dựng nên.
Thái Nguyên, tháng 06 năm 2012
Người cam đoan
CHU VĂN NGỌC



2


MỤC LỤC
LỜI CẢM ƠN......................................................................................................1
LỜI CAM ĐOAN................................................................................................2
DANH MỤC HÌNH ẢNH...................................................................................5
LỜI NÓI ĐẦU.....................................................................................................7
CHƯƠNG 1:........................................................................................................8
TỔNG QUAN VỀ MẠNG NORON NHÂN TẠO..............................................8
1.1. Lịch sử phát triển mạng noron...........................................................8
1.2. Tổng quan về mạng nơron.................................................................9
1.2.1. Nơron sinh học................................................................................9
1.2.2. Noron nhân tạo..............................................................................10
1.3. Mạng nơron nhân tạo.......................................................................13
1.3.1. Định nghĩa mạng nơron nhân tạo.................................................13
1.3.2. Mô hình mạng nơron nhân tạo.....................................................13
1.3.3. Các thuật toán học.........................................................................19
1.3.3.2. Thuật toán huấn luyện mạng.....................................................20
1.4. Thuật toán lan truyền ngược và Giải thuật Back propagation minh
họa......................................................................................................................25
1.4.1. Thuật toán lan truyền ngược.........................................................25
1.4.2. Giải thuật Back propagation minh họa.........................................26
1.4.3. Một số vấn đề gặp phải khi sử dụng mạng Back Perceptoron.....36
CHƯƠNG 2 :.....................................................................................................39
ỨNG DỤNG MẠNG NƠRON TRONG BÀI TOÁN........................................39
NHẬN DẠNG KÍ TỰ........................................................................................39
2.1. Mô tả bài toán..................................................................................39
2.2. Hướng phát triển của bài toán.........................................................39

2.3. Trình tự các bước giải quyết giải quyết bài toán.............................40
2.3.1. Ảnh đầu vào..................................................................................40
2.3.2. Tách dòng kí tự.............................................................................40
2.3.3. Tách kí tự......................................................................................41

3


2.3.4. Tìm giới hạn kí tự.........................................................................42
2.3.5. Ánh xạ vào ma trận.......................................................................44
2.3.6. Thiết kế mạng noron.....................................................................45
2.3.7. Huấn luyện mạng noron...............................................................46
2.3.8. Nhận dạng ảnh kí tự......................................................................49
2.3.9. Bảng mã ASCII sử dụng cho chương trình..................................50
CHƯƠNG 3:......................................................................................................52
CHƯƠNG TRÌNH THỬ NGHIỆM.................................................................52
3.1. Môi trường thực nghiệm..................................................................52
3.2. Giao diện chương trình....................................................................52
3.4. Thực nghiệm....................................................................................53
3.4.1. Thực nghiệm quá trình tính giá trị một số tham số đầu vào.......53
3.4.2. Thực nghiệm huấn luyện mạng....................................................55
3.4.3. Thực nghiệm nhận dạng...............................................................58
KẾT LUẬN.......................................................................................................62
TÀI LIỆU THAM KHẢO..................................................................................63

4


DANH MỤC HÌNH ẢNH
Hình 1.1: Mô hình noron sinh học....................................................................9

Hình 1.2: Một noron nhân tạo.........................................................................10
Hình 1.3: Một số hàm truyền thông dụng........................................................12
Hình 1.4: Mạng noron nhân tạo đơn giản.......................................................14
Hình 1.5: Mạng truyền thẳng với một mức nơron..........................................15
Hình 1.6: Mạng dẫn tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra16
Hình 1.8: Mạng phản hồi có các nơron ẩn......................................................18
Hình 1.9: Minh họa giải thuật Back Propagation...........................................27
Hình 1.10: Các thành phần của noron nhân tạo...........................................27
Hình 1.11: Minh họa giải thuật Back Propagation........................................28
Hình 1.12: Quá trình lan truyền tiến...............................................................29
Hình 1.13: Tính giá trị lỗi ở đầu ra.................................................................31
Hình 1.14: Lan truyền ngược...........................................................................31
Hình 1.15: Lan truyền ngược...........................................................................31
Hình 1.16: Lan truyền ngược lớp 2..................................................................32
Hình 1.17: Lan truyền ngược...........................................................................33
Hình 1.18: Lan truyền ngược vòng 2...............................................................34
Hình 1.19: Nội suy hàm y = sin(x/3) + v, 0≤ x ≤ 20........................................37
Hình 2.1: Quá trình tách dòng kí tự.................................................................41
Hình 2.2: Quá trình tách kí tự.........................................................................42
Hình 2.3: Quá trình tìm giới hạn kí tự............................................................43
Hình 2.4: Sơ đồ mạng nơron thiết kế...............................................................45
Hình 2.5: Sơ đồ khối quá trình huấn luyện mạng nơron...............................48
Hình 2.6: Sơ đồ khối quá trình nhận dạng kí tự............................................49
............................................................................................................................52
Hình 3.1: Giao diện chương trình thực nghiệm..............................................52
Hình 3.2: Ảnh đầu dùng để huấn luyện..........................................................56
Hình 3.3: File là đầu ra mong muốn...............................................................56
Hình 3.4 a : chữ “o_ hoa” Hình 3.4b : chữ “o_thường”................................58

5



Hình 3.5a : Ảnh kích cỡ cua font Arial............................................................58
Hình 3.5b : Kết quả thu được của font Arial...................................................59
Hình 3.6a : Ảnh vào của font Times New Roman..........................................59
Hình 3.6b : Kết quả thu được của font Times New Roman...........................59
Hình 3.7a : Kết quả thu được của font Tahoma..............................................60
Hình 3.7b: Kết quả thu được của font Tahoma...............................................60

6


LỜI NÓI ĐẦU
Sự phát triển mạnh mẽ của công nghệ nói chung và công nghệ thông tin nói
riêng đã tạo nên nhiều hệ thống thông tin phục vụ việc tự động hoá. Điều này đã
tạo ra những dòng dữ liệu khổng lồ. Phát hiện tri thức trong cơ sở dữ liệu
(Knowledge Discovery in Databases - KDD) là một quá trình hợp nhất các dữ
liệu từ nhiều hệ thống dữ liệu khác nhau tạo thành các kho dữ liệu, phân tích
thông tin để có được nhiều tri thức tiềm ẩn có giá trị. Khai phá dữ liệu là một
trong những lĩnh vực nghiên cứu của khoa học máy tính hiện nay đang được
phát triển rất mạnh mẽ. Nó kết hợp giữa học máy, công nghệ cơ sở dữ liệu và
một số chuyên ngành khác để tìm ra những tri thức từ những cơ sở dữ liệu lớn.
Trong công nghệ khai phá dữ liệu (Data mining) thì mạng noron nhân tạo là
một hướng tiếp cận được đánh giá cao. Hướng tiếp cận này có hàm lượng khoa học
lớn và có thể ứng dụng trong thực tiễn để giải quyết nhiều lớp bài toán khác nhau.
Trong bài báo cáo này Em sẽ đi sâu tìm hiểu về mạng noron nhân tạo lan
truyền ngược Back Perceptoron. Đây là một mô hình mạng noron điển hình đã
được nghiên cứu và triển khai rộng rãi trong nhiều lĩnh vực.
Nội dung chính của bài báo cáo được tổ chức thành 3 chương có nội dung
như sau:

- Chương 1: Tổng quan về Mạng Noron nhân tạo
- Chương 2: Ứng dụng mạng noron nhân tạo trong bài toán nhận dạng kí tự.
- Chương 3: Chương trình thử nghiệm

7


CHƯƠNG 1:
TỔNG QUAN VỀ MẠNG NORON NHÂN TẠO
1.1. Lịch sử phát triển mạng noron
Sự kiện đầu tiên đánh dấu sự ra đời của mạng noron 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 noron hoạt động. Họ cũng đã tiến hành xây dựng
một mạng noron đơn giản bằng các mạch điện. Các noron 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.
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 noron.
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 noron.
Từ những năm sau đó tới năm 1985 đã xuất hiện thêm nhiều phát minh ra
các mô hình mạng noron nhân tạo khác nhau.
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 noron ứ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 noron 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.
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 noron để 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 noron 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ữ, nhận dạng kí tự 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),…..

8


1.2. Tổng quan về mạng nơron
1.2.1. Nơron sinh học
Bộ não con người bao gồm khoảng 1011 noron tham gia vào khoảng 1015
kết nối trên các đường truyền. Các noron có khả năng nhận, xử lý và truyền các
tín hiệu điện hóa trên các dây thần kinh.
Một số cấu trúc của noron được xác định trước lúc sinh ra. Một số cấu trúc
được phát triển thông qua quá trình học.
Như vậy noron sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu
vào, xử lý các tín hiệu này và cho ra một tín hiệu output. Tín hiệu output này sau
đó được truyền đi làm tín hiệu đầu vào cho các noron khác.
Dựa trên những hiểu biết về noron sinh học, con người xây dựng noron
nhân tạo với hy vọng tạo nên một mô hình có sức mạnh như bộ não.

Hình 1.1: Mô hình noron sinh học
Phần tử xử lý cơ bản của một mạng nơron sinh học là một nơron, phần tử
này có thể chia làm bốn thành phần cơ bản như sau: dendrites, soma, axon, và
synaptic.
- Dendrites phần nhận tín hiệu đầu vào.
- Soma: là hạt nhân.

9


- Axon: là phần dẫn ra tín hiệu xử lý.
Synaptic: là đường tín hiệu điện hóa giao tiếp giữa các nơron.Kiến trúc cơ
sở này của bộ não con người có một vài đặc tính chung. Một cách tổng quát, thì
một nơron sinh học nhận đầu vào từ các nguồn khác nhau, kết hợp chúng tại với
nhau, thực thi tổ hợp phi tuyến chúng để cho ra kết quả cuối cùng ở đầu ra. Hình
1.1 chỉ ra mối quan hệ giữa bốn phần tử của một nơron sinh học.
1.2.2. Noron nhân tạo
Một noron là một đơn vị xử lý thông tin và là thành phần cơ bản của một
mạng noron. Cấu trúc của một noron được mô tả như hình dưới đây:

Hình 1.2: Một noron nhân tạo
Các thành phần cơ bản của một noron 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 noron, 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 noron 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.
- 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

10


như một thành phần của hàm truyền.

- Hàm truyền (Transfer function) : Hàm này được dùng để giới hạn phạm
vi đầu ra của mỗi noron. 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 noron đượ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. Một số hàm truyền thường sử dụng trong các
mô hình mạng noron được đưa ra trong bảng bên dưới.
Đầu ra: Là tín hiệu đầu ra của một noron, với mỗi noron sẽ có tối đa là một
đầu ra. Xét về mặt toán học, cấu trúc của một noron k, được mô tả bằng cặp biểu
thức
k

Uk=

∑w
j =1

kj

xj

và Y k = f (u k − bk )

Trong đó: x1, x2, ..., xp là các tín hiệu vào; (wk1, wk2, ..., wkp) là các trọng số
liên kết của noron thứ k; uk là hàm tổng; bk là một ngưỡng; f là hàm truyền và yk
là tín hiệu đầu ra của noron.
Như vậy tương tự như noron sinh học, noron nhân tạo cũng nhận các tín
hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích
thu được rồi gửi kết quả tới hàm truyền), và cho một tín hiệu đầu ra (là kết quả
của hàm truyền).


11


Một số hàm truyền thông dụng

Hình 1.3: Một số hàm truyền thông dụng
Hàm vùng tuyến tính: Đối với loại hàm này chúng ta có

12


Dạng hàm này có thể được xem như môt xấp xỉ của một bộ khuếch đại phi tuyến.
Hàm sigma: Hàm sigma là dạng chung nhất của hàm kích hoạt được sử
dụng trong cấu trúc mạng noron nhân tạo. Nó là một hàm tăng và nó thể hiện một
sự trung gian giữa tuyến tính và phi tuyến. Một ví dụ của hàm này là hàm
logistics, xác định như sau:

Ở đó a là tham số độ dốc của hàm sigma. Bằng việc biến đổi tham số a,
chúng ta thu được các hàm sigma với các độ dốc khác nhau. Thực tế, hệ số góc
tại v=0 là a/4. Khi tham số hệ số góc tiến tới không xác định, hàm sigma trở
thành một hàm ngưỡng đơn giản. Trong khi một hàm ngưỡng chỉ có giá trị là 0
hoặc 1, thì một hàm sigma nhận các giá trị từ 0 tới 1. Cũng phải ghi nhận rằng
hàm sigma là hàm phân biệt, trong khi hàm ngưỡng thì không (Tính phân biệt
của hàm là một đặc tính quan trọng trong lý thuyết mạng noron).
Các hàm kích hoạt được định nghĩa trong các công thức bên trên đều trong
phạm vi từ 0 đến 1. Đôi khi có những yêu cầu xây dựng hàm kích hoạt trong
phạm vi từ -1 đến 1, trong trường hợp này hàm kích hoạt được giả định có dạng
đối xứng qua gốc toạ độ (hay có thể gọi là dạng phản đối xứng); nghĩa là hàm
kích hoạt là một hàm lẻ.

1.3. Mạng nơron nhân tạo
1.3.1. Định nghĩa mạng nơron nhân tạo
Mạng noron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng
noron, là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của
các hệ noron sinh học. Nó được tạo nên từ một số lượng lớn các phần tử (gọi là
phần tử xử lý hay noron) kết nối với nhau thông qua các liên kết (gọi là trọng số
liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.
1.3.2. Mô hình mạng nơron nhân tạo
Một mạng noron là một mô hình tính toán được xác định qua các tham
số: kiểu noron (như là các nút nếu ta coi cả mạng noron là một đồ thị), kiến trúc
kết nối (sự tổ chức kết nối giữa các noron) và thuật toán học (thuật toán dùng để
13


học cho mạng).
Về bản chất một mạng noron có chức năng như là một hàm ánh xạ F: X->Y,
trong đó X là không gian trạng thái đầu vào (input state space) và Y là không
gian trạng thái đầu ra (output state space) của mạng. Các mạng chỉ đơn giản là
làm nhiệm vụ ánh xạ các vector đầu vào x thuộc X sang các vector đầu ra y thuộc
Y thông qua các trọng số. Tức là y=F(x)=s(W, x), trong đó W là ma trận trọng số
liên kết.
Sơ đồ của hình dưới chỉ ra mô hình của mạng noron nhân tạo dạng dơn
giản:

Hình 1.4: Mạng noron nhân tạo đơn giản
Mô hình mạng nơron ở trên gồm 3 lớp: lớp nhập (input layer), lớp ẩn (hidden
layer) và lớp xuất (output layer). Mỗi nút trong lớp nhập nhận giá trị của một
biến độc lập và chuyển vào mạng.
Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp- ta gọi là tổng trọng
số và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút trong lớp

này chỉ liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có người thiết kế
mạng mới biết lớp này (người sử dụng không biết lớp này).
Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp
ẩn. Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc.
Mạng nơron đượ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 nơron có cấu trúc như vậy gọi là mạng một hướng hay mạng
14


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 nơron nào trong mạng cũng được nối với một hoặc vài
nơron khác). Mạng nơron bao gồm một hay nhiều lớp trung gian được gọi là
mạng Multilayer Perceptrons (MLP- Network).
1.3.2.1 Các kiểu mô hình mạng noron
Cách thức kết nối các noron trong mạng xác định kiến trúc (topology) của
mạng. Các noron trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗi
noron đều được kết nối với tất cả các noron khác, hoặc kết nối cục bộ (partially
connected) chẳng hạn chỉ kết nối giữa các noron trong các tầng khác nhau.
Người ta chia ra hai loại kiến trúc mạng chính:.
a. Kiến trúc truyền thẳng
Kiến trúc truyền thẳng: là kiểu kiến trúc mạng không có các kết nối ngược
trở lại từ các noron đầu ra về các noron đầu vào; mạng không lưu lại các giá trị
output trước và các trạng thái kích hoạt của noron. Các mạng noron truyền thẳng
cho phép tín hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu
ra của một tầng bất kì sẽ không ảnh hưởng tới tầng đó. Các mạng kiểu
Perceptron là mạng truyền thẳng.
Có hai dạng truyền:
+ đơn mức: Trong một mạng nơron phân mức, các nơron được tổ chức dưới
dạng các mức. Với dạng đơn giản nhất của mạng phân mức, chúng ta có một

mức đầu vào gồm các nút nguồn chiếu trực tiếp tới mức đầu ra gồm các nơron.

Mức đầu vào

Mức đầu ra

Hình 1.5: Mạng truyền thẳng với một mức nơron

15


Như vậy, mạng thực sự là không có chu trình. Nó được minh hoạ trong hình
1.5 cho trường hợp ba nút đối với cả mức đầu ra và đầu vào. Một mạng như vậy
được gọi là một mạng đơn mức. “Đơn mức” tức là chỉ có một mức, chính là mức đầu
ra gồm các nút tính toán (các nơron). Chúng ta không tính mức đầu vào của các nút
nguồn vì không có tính toán nào được thực hiện ở đây.
+ đa mức: Lớp thứ hai của một mạng nơron dẫn tiến được phân biệt bởi sự có
mặt của một hay nhiều mức ẩn, mà các nút tính toán của chúng được gọi là các
Nơron ẩn hay các đơn vị ẩn (thuật ngữ “ẩn” ở đây mang ý nghĩa là không tiếp
xúc với môi trường). Chức năng của các nơron ẩn là can thiệp vào giữa đầu vào
và đầu ra của mạng một cách hữu hiệu. Bằng việc thêm một vài mức ẩn, mạng có
khả năng rút ra được các thống kê bậc cao của tín hiệu đầu vào. Khả năng các
nơron ẩn rút ra được các thống kê bậc cao đặc biệt có giá trị khi mức đầu vào có
kích thước lớn.
Mạng nơron trong hình 1.6 được gọi là kết nối đầy đủ với ý nghĩa là tất cả
các nút trong mỗi mức của mạng được nối với tất cả các nút trong mức tiếp sau.
Nếu một số kết nối không tồn tại trong mạng, chúng ta nói rằng mạng là kết nối
không đầy đủ.

Mức đầu vào


Mức ẩn

Mức đầu ra

gồm các nút

gồm các

gồm các

nguồn

nơron ẩn

nơron đầu ra

Hình 1.6: Mạng dẫn tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra

16


17


b. Kiến trúc phản hồi
Kiến trúc phản hồi: là kiểu kiến trúc mạng có các kết nối từ noron đầu ra tới
noron đầu vào. Mạng lưu lại các trạng thái trước đó, và trạng thái tiếp theo
không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc vào các trạng
thái trước đó của mạng.

+đơn mức:

Hình 1.7: Mạng phản hồi không có nơron ẩn và không có vòng lặp tự phản hồi
+đa mức:

Hình 1.8: Mạng phản hồi có các nơron ẩn

18


1.3.2.2. Đặc trưng của mạng neural
- Tính phi tuyến
- Tính chất tương ướng đầu vào đầu ra
- Tính chất thích nghi
- Tính chất đưa ra lời giải có bằng chứng
- Tính chất chấp nhận sai xót
1.3.3. Các thuật toán học
Một số khái niệm cần biết
Học trong mạng noron là quá trình thay đổi giá trị của w để mạng có thể
đưa ra được kết quả mong muốn tối ưu.
Sự khác nhau giữa giá trị thật của mẫu và kết quả dự đoán của mạng gọi là
lỗi. Quá trình học sẽ tìm các wi* để lỗi nhỏ nhất.
1.3.3.1. Các phương pháp học
a. Học có giám sát
Là quá trình học có sự tham gia giám sát của một “thầy giáo”. Cũng giống
như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một chữ “a” và bảo với em đó
rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu chữ cái. Sau đó
khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi em đó
đây là chữ gì? Với học có giám sát, số lớp cần phân loại đã được biết trước.
Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho

với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó.
b. Học không giám sát
Là việc học không cần có bất kỳ một sự giám sát nào. Trong bài toán học
không giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {(x 1, x2,...,xN)}
với (x1, x2,...,xN) là vector đặc trưng của mẫu huấn luyện. Nhiệm vụ của thuật
toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các
vector đầu vào có đặc trưng giống nhau. Như vậy với học không giám sát, số lớp
phân loại chưa được biết trước, và tùy theo tiêu chuẩn đánh giá độ tương tự giữa
các mẫu mà ta có thể có các lớp phân loại khác nhau.

19


c. Học tăng cường
Đôi khi còn được gọi là học thưởng-phạt (reward-penalty learning), là
sự tổ hợp của cả hai mô hình trên. Phương pháp này cụ thể như sau: Với vector
đầu vào, quan sát vector đầu ra do mạng tính được. Nếu kết quả được xem là
“tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại
mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống. Do
đó học tăng cường là học theo nhà phê bình (critic), ngược với học có giám sát là
học theo thầy giáo.
1.3.3.2. Thuật toán huấn luyện mạng
a. Thuật toán học mạng nơron truyền thẳng một lớp
Xét trường hợp perceptron sử dụng hàm kích hoạt ngưỡng:


+ 1,

output = 
−1,




d

∑v w
i

i =1

i

(1.1)

d

∑v w
i =1

i

>t
≤t

i

Nếu ta cho w0=-t và v0=1, ta có thể viết lại


+ 1,


output = 
−1,



d

∑v w
i

i =0

i

d

∑v w
i =0

i

i

>0
≤0

 d

= sign ∑vi wi 

 i =0


(1.2)

Thuật toán:
Thuật toán học của perceptron hay mạng neural một lớp gồm 3 bước chính:
Bước 1: Khởi tạo:
Khởi tạo trọng số w (0 hoặc ngẫu nhiên).
Chọn tốc độ học µ.
Bước 2 : Học
Với mỗi mẫu (x,t) trong tập học.
Tính y=f(x, w).
Nếu y!=t thay đổi vectơ trọng số w với:

20


w(mới (cũ)+ µ(t-y)x;
Bước 3: lặp lại bước 2 cho tất cả các mẫu.
Nhận xét:
Phương trình w.v=0 là chính là siêu phẳng trong không gian d-chiều, suy ra
perceptron có khả năng phân lớp tuyến tính, có khả năng giải bài toán quy hồi
tuyến tính.
Hạn chế:
Không thể phân lớp phi tuyến.
Giải pháp: sử dụng mạng neural nhiều tầng MLP.
b. Thuật toán học của mạng neural nhiều lớp
Huấn luyện mạng neural nhiều lớp sử dụng thuật toán Lan truyền ngược
gồm hai quá trình: Quá trình truyền tuyến tính và quá trình truyền ngược:

Quá trình truyền tuyến tính: Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để:
1,Thay đổi giá trị của trọng số liên kết W của các neural trong mạng biểu diễn
được dữ liệu học.
2.Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được và kết quả
dự đoán của mạng gọi là lỗi (học có giám sát).
Quá trình truyền ngược: Giá trị lỗi sẽ được truyền ngược lại sao cho quá
trình huyến luyện(học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất.
Thuật toán:
Xét mạng neural 3 lớp : input, hiden và output.
Hàm kích hoạt các neural : logistic (sigmoid).g(x)=

(1.3)

Bước 1: Khởi tạo trọng số w ngẫu nhiên nhỏ.
Bước 2 : Chọn lớp đầu vào x và đính nó vào lớp đầu vào .
Bước 3 : Truyền sự kích hoạt qua trọng số đến khi kich hoạt các neural đầu ra.
Bước 4: Tính đạo hàm riêng “δE” theo trọng số cho lớp xuất. sử dụng
GRADIENT của hàm lỗi .
Bước 5: Tính đạo hàm riêng “δE” theo trọng số cho lớp ẩn. sử dụng GRADIENT
của hàm lỗi.
21


Bước 6: Cập nhật tất cả trọng số theo Wi=W(i-1)-µ(δE/ δ Wi)
Bước 7: quay lai “Bước 2” cho đến “Bước 6” cho tất cả các mẫu.
Trong đó: GRADIENT hàm lỗi.
Đối với các neural lớp đầu ra:

Hàm lỗi:


E( z) =

1
( z −1) 2
2

(1.4)

( t là giá trị thật của mẫu huấn luyện)
Đạo hàm riêng của hàm lỗi theo trọng số b:

∂E
∂E ∂z ∂v
=
∂b
∂z ∂v ∂b

(1.5)

Ta có:

∂E
= ( z −t )
∂z
∂z
∂g
=
= z (1 − z )
∂v
∂v

1, i = 0
∂v
=
∂b1 y i , i > 0
Đặt:

p=

∂E ∂z
= ( z − t ) z ( z −1)
∂z ∂v

Ta được:

22


 p i =0
∂E
=
∂bi
pyi i >0

(1.6)

Đối với lớp ẩn :

Đạo hàm riêng của hàm lỗi theo trọng số:

∂E ∂E ∂y ∂u

=
∂a
∂y ∂u ∂a

(1.7)

Ta có:

∂E
∂y
∂E
∂zi
∂vi
∂y
∂y
∂u

∂E ∂zi ∂vi
=∑
i =1 ∂zi ∂vi ∂y
∂zi
= ( zi − ti ) zi (1 − zi ) = pi
∂vi
K

= bi
= y (1 − y )

1, j = 0
∂u

=
∂a j c j , j > 0

23


Đặt:

∂E ∂y  K

q=
=  ∑ pibi  y (1 − y )
∂y ∂u  i =1

Ta được:

∂E  q i = 0
=
∂a1 qxi i > 0

(1.8)

Sau khi tính được đạo hàm riêng của hàm lỗi theo từng trọng số, trọng số sẽ
được điều chỉnh bằng cách trừ bớt đi 1 lượng bằng tích của đạo hàm riêng và tốc
độ học:

wi = wi −µ

∂E
∂wi


(1.9)

Chú ý :
Ngoài những thành công của giải thuật, vẫn còn có một số khía cạnh làm
cho giải thuật trở nên chưa được bảo đảm là mọi lúc đều tốt. Khó khăn chủ yếu là
ở quá trình huấn luyện lâu. Có thể do nhịp độ học và động lực không tối ưu. Sự
sai sót trong việc huấn luyện nói chung xuất hiện từ hai nguồn: mạng liệt và
những cực tiểu địa phương.
Mạng liệt: xảy ra khi những trọng số được điều chỉnh tới những giá trị rất
lớn. Tổng đầu vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà đạt
giá trị rất cao (hoặc dương hoặc âm), và qua hàm kích hoạt sigmoid, đơn vị sẽ có
một giá trị kích hoạt rất gần 0 hoặc rất gần 1. Giá trị hiệu chỉnh trọng số gần 0, và
quá trình huấn luyện có thể đi đến một trạng thái dừng ảo.
Cực tiểu địa phương: bề mặt sai số của mạng rất phức tạp đầy những ngọn
đồi và những thung lũng. Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy tại một
cực tiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh. Những phương
pháp thống kê có thể giúp để tránh cái bẫy này, nhưng chúng làm chậm. Một
phương án khác là tăng thêm số lượng đơn vị ẩn. Như vậy sẽ làm việc trong
không gian sai số nhiều chiều, nên cơ hội gặp bẫy nhỏ hơn. Tuy nhiên việc tăng
cũng có giới hạn trên, khi vượt qua giới hạn này, cơ hội mắc bẫy lại tăng lên.
24


1.4. Thuật toán lan truyền ngược và Giải thuật Back propagation minh họa

1.4.1. Thuật toán lan truyền ngược
Xem xét một mạng với Q lớp lan truyền ngược, q= 1,2,...,Q; với




lần lượt là đầu vào và đầu ra của khối trong lớp thứ q.Mạng có m nơron đầu vào,
l nơron ở lớp ẩn, và n nơron đầu ra. Với

là trọng số liên kết từ nơron thứ j

trong lớp q – 1 tới nơron thứ i trong lớp q.
Đầu vào: các cặp huấn luyện {
của phần tử cuối cùng bằng

) | k=1,2,...,p}, ở đó giá trị đầu vào

1, tức là

.

Bước 1: Khởi tạo các trọng số ngẫu nhiên nhỏ. Chọn hằng số



(sai số lớn nhất cho phép). Cho sai số E= 0 và k= 1.
Bước 2: Chọn lớp đầu vào và đính nó vào lớp đầu vào.
Bước 3: Lan truyền tín hiệu từ lớp vào tới lớp ra (lan truyền thẳng)
(1.10)
Bước 4: Tính toán lỗi đầu ra
E

(1.11)
(1.12)


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


(1.13)

25


×