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

Luận văn sư phạm Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán nhận dạng ảnh 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.55 MB, 73 trang )

LỜI CẢM ƠN
Để hoàn thành đề tài này và có kiến thức nhƣ ngày hôm nay, đầu tiên
em xin gửi lời cảm ơn đến ban Giám hiệu cùng toàn thể thầy cô giáo khoa
Công nghệ thông tin – Trƣờng đại học sƣ phạm Hà Nội 2 đã tận tình giảng
dạy, truyền đạt kiến thức cũng nhƣ những kinh nghiệm quý báu cho em
trong suốt quá trình học tập và nghiên cứu tại trƣờng.
Em cũng chân thành cảm ơn cô Ths. Lƣu Thị Bích Hƣơng đã tận tình
hƣớng dẫn và quan tâm, động viên em trong quá trình thực hiện khóa luận.
Em cũng bày tỏ lòng biết ơn sâu sắc đến những ngƣời thân trong gia
đình, bạn bè đã động viên và tạo mọi điều kiện giúp em trong quá trình học
tập cũng nhƣ trong cuộc sống.
Mặc dù em đã cố gắng hoàn thành tốt khóa luận nhƣng cũng không
thể tránh khỏi những sai sót nhất định, rất mong đƣợc sự thông cảm và chia
sẻ cùng quý thầy cô và bạn bè.
Em xin gửi lời chúc sức khỏe và thành đạt tới tất cả quý thầy cô cùng
các bạn.
Sinh viên thực hiện

ĐỖ THANH BA

1


LỜI CAM ĐOAN
Tên tôi là: ĐỖ THANH BA
Sinh viên lớp: K34-CNTT, Trƣờng ĐH Sƣ Phạm Hà Nội 2
Tôi xin cam đoan:
1. Đề tài “Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài
toán nhận dạng ảnh ký tự” là kết quả nghiên cứu của riêng tôi, dƣới sự
hƣớng dẫn của cô giáo Th.s LƢU THỊ BÍCH HƢƠNG và tham khảo một số
nguồn tài liệu trong nƣớc và nƣớc ngoài trên Internet.


2. Khóa luận hoàn toàn không sao chép từ các tài liệu có sẵn nào.
3. Kết quả nghiên cứu không trùng với các tác giả khác.
Nếu sai, tôi xin hoàn toàn chịu trách nhiệm!
Hà Nội, ngày 21 tháng 4 năm 2012
Ngƣời cam đoan

ĐỖ THANH BA

2


Mục Lục
LỜI CẢM ƠN ................................................................................................... 1
LỜI CAM ĐOAN ............................................................................................. 2
MỞ ĐẦU ........................................................................................................... 5
CHƢƠNG 1 TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO ..................... 8
1.1. Giới thiệu mạng nơron ............................................................................... 8
1.1.1. Lịch sử phát triển của mạng nơron ..................................................... 8
1.1.2. Nơron sinh học .................................................................................... 9
1.1.3. Nơron nhân tạo .................................................................................. 10
1.1.4. Các thành phần của một nơron nhân tạo........................................... 12
1.1.5. Mạng nơron nhân tạo ........................................................................ 15
1.2. Đơn vị xử lý ............................................................................................. 16
1.3. Hàm xử lý ................................................................................................. 17
1.3.1. Hàm kết hợp ...................................................................................... 17
1.3.2. Hàm kích hoạt (hàm chuyển) ............................................................ 18
1.4. Đặc trƣng của mạng nơron ....................................................................... 21
1.4.1. Tính phi tuyến ................................................................................... 21
1.4.2. Tính chất tƣơng ứng đầu vào đầu ra ................................................. 22
1.4.3. Tính chất thích nghi .......................................................................... 22

1.4.4. Tính chất đƣa ra lời giải có bằng chứng ........................................... 22
1.4.5. Tính chất chấp nhận sai xót............................................................... 23
1.4.6. Khả năng cài đặt VLSI (Very-large-scale-intergrated)..................... 23
1.4.7. Tính chất đồng dạng trong phân tích và thiết kế............................... 23
1.5. Một số vấn đề của mạng nơron ................................................................ 24
1.6. Ứng dụng của mạng nơron ....................................................................... 25
CHƢƠNG 2 BIỂU DIỄN TRI THỨC BẰNG MẠNG NƠRON ................... 27
2.1. Các kiến trúc mạng................................................................................... 27
3


2.1.1. Mạng một tầng .................................................................................. 27
2.1.2. Mạng đa tầng ..................................................................................... 29
2.2. Các hình trạng của mạng .......................................................................... 31
2.2.1. Mạng truyền thẳng ............................................................................ 31
2.2.2. Mạng hồi quy .................................................................................... 33
2.3. Xây dựng mạng nơron.............................................................................. 34
2.4. Huấn luyện mạng nơron ........................................................................... 35
2.4.1. Phƣơng pháp học ............................................................................... 35
2.4.2. Thuật toán học ................................................................................... 36
2.5. Thu thập dữ liệu cho mạng nơron ............................................................ 42
2.6. Biểu diễn tri thức cho mạng nơron .......................................................... 44
CHƢƠNG 3 XÂY DỰNG ỨNG DỤNG ....................................................... 47
3.1. Phát biểu bài toán ..................................................................................... 47
3.2. Giải quyết bài toán ................................................................................... 47
3.2.1. Xây dựng mạng nơron ...................................................................... 47
3.2.2. Xử lý dữ liệu (phân tích ảnh) ............................................................ 49
3.2.3. Huấn luyện mạng nơron .................................................................... 54
3.2.4. Nhận dạng ảnh kí tự .......................................................................... 58
3.3. Bảng mã ASCII ........................................................................................ 60

3.4. Thực nghiệm ............................................................................................ 61
3.4.1. Giao diện chƣơng trình ..................................................................... 61
3.4.2. Thực nghiệm quá trình tính giá trị một số tham số đầu vào ............. 63
3.4.3. Thực nghiệm huấn luyện mạng ......................................................... 66
3.4.4. Thực nghiệm nhận dạng .................................................................... 68
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ...................................................... 72
TÀI LIỆU THAM KHẢO ............................................................................... 73

4


MỞ ĐẦU
1. Mục đích, lý do chọn đề tài
1.1. Lý do chọn đề tài
Cuối thế kỉ XX, đầu thế kỉ XXI Công nghệ thông tin là một lĩnh vực
không thể thiếu trong cuộc sống ngày càng hiện đại của con ngƣời. Không ai
có thể phủ nhận vai trò cực kỳ quan trọng của máy tính trong nghiên cứu khoa
học kỹ thuật cũng nhƣ trong đời sống. Càng ngày càng có nhiều ngƣời tự hỏi,
liệu máy tính có khả năng suy nghĩ nhƣ con ngƣời hay chƣa? Chúng ta sẽ
không trả lời câu hỏi ấy. Thay vào đó, chúng ta sẽ nêu ra những khác biệt chủ
yếu giữa cách làm việc của máy tính và bộ óc con ngƣời. Một máy tính, dù có
mạnh đến đâu chăng nữa, đều phải làm việc theo một chƣơng trình chính xác
đã đƣợc hoạch định trƣớc bởi các chuyên gia. Bài toán càng phức tạp thì việc
lập trình càng công phu. Trong khi đó con ngƣời làm việc bằng cách học tập
và rèn luyện, khi làm việc con ngƣời có khả năng liên tƣởng, kết nối sự việc
này với sự việc khác, và quan trọng hơn hết, họ có thể sáng tạo.
Do có khả năng liên tƣởng, con ngƣời có thể dễ dàng làm nhiều điều mà việc
lập trình cho máy tính đòi hỏi rất nhiều công sức. Từ lâu các nhà khoa học đã
nhận thấy những ƣu điểm của bộ óc con ngƣời và tìm cách bắt chƣớc để thực
hiện trên những máy tính, tạo cho nó có khả năng học tập, nhận dạng và phân

loại. Mạng nơron nhân tạo đã ra đời từ những nỗ lực đó. Nó thực sự đƣợc chú
ý và nhanh chóng trở thành một hƣớng nghiên cứu đầy triển vọng trong mục
đích xây dựng các máy thông minh tiến gần tới trí tuệ con ngƣời. Chính vì
vậy em đã chọn đề tài: “Nghiên cứu mạng nơron nhân tạo và ứng dụng vào
bài toán nhận dạng ảnh ký tự” với mục đích chuyển đổi ảnh văn bản thành
văn bản có thể sửa đổi đƣợc trong máy vi tính.
1.2. Mục đích
Mục đích của đề tài nghiên cứu này là tạo ra một nguồn tài liệu cơ sở
trong lĩnh vực nhận dạng ký tự, từ đó có cái nhìn tổng quan về phƣơng thức

5


thực hiện hay các vấn đề gặp phải trong bài toán nhận dạng ký tự, kích thích
sự đam mê và khả năng nghiên cứu khoa học của sinh viên nhằm phát triển
đƣợc nhiều ứng dụng thực tiễn hơn nữa liên quan tới ký tự chữ in nhƣ: Nhận
dạng CMTND, hộ chiếu, biển số xe...
2. Nhiệm vụ, yêu cầu
2.1. Nhiệm vụ
- Nghiên cứu về lý thuyết nhận dạng.
- Nghiên cứu các khái niệm và thành phần cơ bản của mạng nơron.
Tập trung nghiên cứu mạng perceptron nhiều lớp MLP (MultiLayer
Perceptron) là một trong những loại mạng truyền thẳng điển hình, đƣợc sử
dụng rộng rãi trong các hệ thống nhận dạng nhƣ nhận dạng ảnh ký tự, chữ viết
tay, nhận dạng tiếng nói…
- Nghiên cứu ngôn ngữ c# để tiến hành cài đặt chƣơng trình nhận dạng
ảnh ký tự.
2.2. Yêu cầu
- Xây dựng chƣơng trình nhận dạng ảnh ký tự bằng mạng nơron nhân
tạo.

3. Phƣơng pháp nghiên cứu
- Phƣơng pháp nghiên cứu chủ yếu là tham khảo tài liệu, bài viết liên
quan tới nhận dạng ký tự quang học.
- Tìm nguồn tài liệu trên Internet, sách báo liên quan.
- Phƣơng pháp thực nghiệm.
4. Đối tƣợng, phạm vi nghiên cứu
4.1. Đối tƣợng nghiên cứu
- Mạng nơron nhân tạo, trong đề tài này tập trung nghiên cứu quá trình
xây dựng mạng, xử lý dữ liệu (phân tích ảnh), huấn luyện mạng nơron và
nhận dạng mạng nơron.
4.2. Phạm vi nghiên cứu

6


- Trong phạm vi đề tài này sẽ giới thiệu tổng quan về lý thuyết mạng
nơron và ứng dụng mạng Perceptron nhiều lớp lan truyền ngƣợc sai số để
thiết kế chƣơng trình nhận dạng ảnh ký tự.
- Huấn luyện mạng nơron sử dụng phƣơng pháp học: học có giám sát.
5. Ý nghĩa thực tiễn của đề tài
Nếu đề tài “Nghiên cứu mạng nơron nhân tạo và ứng dụng vào bài toán
nhận dạng ảnh ký tự” đƣợc hoàn thành thì nó có thể đƣợc ứng dụng thực tiễn
vào việc nhận dạng các ký tự trong các file ảnh tài liệu đƣợc tạo ra từ các
thiết bị thu nhận ảnh nhƣ máy scanner,máy ảnh.
6. Cấu trúc của khóa luận
Ngoài mở đầu và kết luận, khóa luận bao gồm ba chƣơng:
Chƣơng 1: Tổng quan về mạng nơron nhân tạo
Chƣơng 2: Biểu diễn tri thức bằng mạng nơron
Chƣơng 3: Xây dựng ứng dụng


7


CHƢƠNG 1
TỔNG QUAN VỀ MẠNG NƠRON NHÂN TẠO
1.1. Giới thiệu mạng nơron
1.1.1. Lịch sử phát triển của mạng nơron
Mạng nơron nhân tạo đƣợc xây dựng từ những năm 1940 nhằm mô
phỏng một số chức năng của bộ não ngƣời. Dựa trên quan điểm cho rằng bộ
não ngƣời là bộ điều khiển. Mạng nơron nhân tạo đƣợc thiết kế tƣơng tự nhƣ
nơron sinh học sẽ có khả năng giải quyết hàng loạt các bài toán nhƣ tính toán
tối ƣu, điều khiển, công nghệ robot…
Quá trình nghiên cứu và phát triển nơron nhân tạo có thể chia thành 4
giai đoạn nhƣ sau:
- Giai đoạn 1: 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 nơron thần kinh. Năm 1940 Mc Culloch và Pitts đã cho
biết nơron có thể mô hình hoá nhƣ thiết bị ngƣỡng (Giới hạn) để thực hiện các
phép tính logic và mô hình mạng nơron của Mc Culloch và Pitts cùng với
giải thuật huấn luyện mạng của Hebb ra đời năm 1943.
- Giai đoạn 2: Vào khoảng gần những năm 1960, một số mô hình
nơron hoàn thiện hơn đã đƣợc đƣa ra nhƣ: Mô hình Perceptron của
Rosenblatt (1958), Adalile của Widrow (1962). Trong đó mô hình
Perceptron rất đƣợc quan tâm vì nguyên lý đơn giản, nhƣng nó cũng có
hạn chế vì nhƣ Marvin Minsky và Seymour papert của MIT (Massachurehs
Insritute of Technology) đã chứng minh nó không dùng đƣợc cho các hàm
logic phức (1969). Còn Adaline là mô hình tuyến tính, tự chỉnh, đƣợc dùng
rộng rãi trong điều khiển thích nghi, tách nhiễu và phát triển cho đến nay.
- Giai đoạn 3: Vào khoảng đầu thập niên 80. Những đóng góp lớn
cho mạng nơron trong giai đoạn này phải kể đến Grossberg, Kohonen,
Rumelhart và Hopfield. Trong đó đóng góp lớn của Hopfield gồm hai mạng


8


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 nơron không có
khả năng đó. 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 nơron
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 nơron ra đời cùng với các mạng theo kiểu
máy Boltzmann và mạng Neocognition của Fukushima.
- Giai đoạn 4: 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 nơron IJCNN (International Joit
Conferenceon Neural Networks). Rất nhiều công trình đƣợc nghiên cứu
để ứng dụng mạng nơron vào các lĩnh vực nhƣ: Kỹ thuật tính, điều khiển, bài
toán tối ƣu, y học, sinh học, thống kê, giao thông, hoá học... Cho đến nay
mạng nơron đã tìm và khẳng định đƣợc vị trí của mình trong rất nhiều ứng
dụng khác nhau.
1.1.2. Nơron sinh học
Hệ thần kinh gồm hai lớp tế bào: Nơron (tế bào thần kinh) và glia (tế
bào glia). Nơron là thành phần cơ bản của hệ thần kinh, chúng có chức năng
xử lý thông tin. Glia thực hiện chức năng hỗ trợ. Vì vậy trƣớc khi nghiên cứu
về nơron nhân tạo chúng ta sẽ trình bày khái quát về cấu tạo và hoạt động của
nơron sinh học.
Nơron sinh học có nhiều loại, chúng khác nhau về kích thƣớc và
khả năng thu phát tín hiệu. Tuy nhiên chúng có cấu trúc và nguyên lý hoạt
động chung nhƣ sau:
Mỗi nơron sinh học gồm có 3 thành phần: Thân nơron với nhân ở bên
trong (soma), một đầu dây thần kinh ra (axon) và một hệ thống phân nhánh
hình cây (Dendrite) để nhận các thông tin vào. Trong thực tế có rất nhiều dây

thần kinh vào và chúng bao phủ một diện tích rất lớn (0,25mm2). Đầu dây

9


thần kinh ra đƣợc rẽ nhánh nhằm chuyển giao tín hiệu từ thân nơron tới nơron
khác. Các nhánh của đầu dây thần kinh đƣợc nối với các khớp thần kinh
(synapse). Các khớp thần kinh này đƣợc nối với thần kinh vào của các nơron
khác. Các nơron có thể sửa đổi tín hiệu tại các khớp. Hình ảnh đơn giản của
một nơron thể hiện trong hình 1.1.

Hình 1.1: Mô hình nơron sinh học

Hoạt động của nơron sinh học có thể đƣợc mô tả nhƣ sau:
Mỗi nơron nhận tín hiệu vào từ các tế bào thần kinh khác. Chúng tích
hợp các tín hiệu vào, khi tổng tín hiệu vƣợt quá một ngƣỡng nào đó chúng tạo
tín hiệu ra và gửi tín hiệu này tới các nơron khác thông qua dây thần kinh.
Các nơron liên kết với nhau thành mạng. Mức độ bền vững của các
liên kết này xác định một hệ số gọi là trọng số liên kết.
1.1.3. Nơron nhân tạo
Nơron 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 nơron 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 nơron.

10


y1


a

w1
y2

yk



f

w2
wk

b
Đầu ra a = f( wy+b)

Đầu vào

Hình 1.2: Mô hình một nơron nhân tạo

Một nơron đƣợc cầu tạo gồm các thành phần chính: liên kết nơron, bộ
cộng, hàm kích hoạt.
Liên kết nơron là một thành phần của mạng nơron nhận tạo để liên kết
giữa các nơron, nó nối đầu ra của nơron lớp này với đầu vào của một nơron
trong lớp khác. Đặc trƣng của thành phần liên kết là một trọng số mà mỗi tín
hiệu đi qua đều đƣợc nhân với trọng số này. 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 nơron, có thể thay đổi đƣợc nhằm thích nghi
với môi trƣờng xung quanh.

Bộ cộng dùng để tính tổng các tín hiệu đầu vào của nơron, đã đƣợc
nhân với các trọng số liên kết tƣơng ứng. Phép toán đƣợc mô tả ở đây tạo nên
một bộ hợp tuyến tính.
Hàm kích hoạt hay còn gọi hàm kích hoạt phi tuyến, chuyển đổi một 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 mạng nơron. Nó đƣợc xem
nhƣ là một hàm giới hạn, nó giới hạn phạm vi biên độ cho phép của tín hiệu
đầu ra trong một khoảng giá trị hữu hạn. Mô hình nơron trong hình 2 còn bao

11


gồm một hệ số điều chỉnh b tác động từ bên ngoài. 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 kích hoạt, tùy theo nó
dƣơng hay âm.
1.1.4. Các thành phần của một nơron nhân tạo
Phần này mô tả một số thành phần cơ bản của một nơron nhân tạo.
Những thành phần này là giống nhau cho dù nơron đó dùng trong tầng vào,
tầng ra hay là ở trong tầng ẩn.
Thành phần 1. Các nhân tố trọng số: Một nơron thƣờng nhận nhiều
đầu vào cùng lúc. Mỗi đầu vào có trọng số liên quan của riêng nó, trọng số
này giúp cho đầu vào có ảnh hƣởng cần thiết lên hàm tổng của đơn vị xử lý
(thành phần xử lý). Những trọng số này có chức năng giống nhƣ sức mạnh
của các synapes khác nhau trong nơron sinh học. Trong cả hai trƣờng hợp
(nhân tạo và sinh học), một số đầu vào quan trọng hơn những đầu vào khác do
vậy chúng có ảnh hƣởng lớn hơn tới thành phần xử lý để rồi chúng kết hợp lại
để tạo ra sự phản ứng của nơron (neural response).
Các trọng số là những hệ số thích nghi bên trong một mạng, chúng xác
định cƣờng độ (sức mạnh hay là sức ảnh hƣởng) của tín hiệu vào lên nơron
nhân tạo. Những sức mạnh này có thể đƣợc điều chỉnh theo những tập đào tạo

đa dạng khác nhau và theo một kiến trúc mạng cụ thể hay là qua các luật học
của nó.
Thành phần 2. Hàm tổng: Bƣớc đầu tiên trong hoạt động của một
thành phần xử lý là tính toán tổng có trọng số của tất cả các đầu vào. Về mặt
toán học, những đầu vào và các trọng số tƣơng ứng là những véc tơ có thể
đƣợc biểu diễn I = (i1, i2, .., in) và W = (w1, w2, …, wn). Tín hiệu vào tổng là
tích vô hƣớng của mỗi thành phần trong véc tơ I với thành phần tƣơng ứng
trong véc tơ W và cộng lại tất cả các tích. Input1 = i1.w1, input2 = i2.w2 …

12


Cuối cùng đƣợc cộng lại: input1 + input2 + … + inputn. Kết quả là một số duy
nhất, không phải là một véc tơ.
Hàm tổng có thể phức tạp hơn nhiều so với mô tả ở trên. Đầu vào và
các hệ số trọng số có thể đƣợc kết hợp theo nhiều cách khác nhau trƣớc khi
đƣợc đƣa vào hàm chuyển đổi. Bên cạnh việc tính tổng các tích đơn giản, hàm
tổng có thể chọn max, min, tích… nhờ một số thuật toán chuẩn tắc. Thuật
toán cụ thể để kết hợp các đầu vào của nơron đƣợc xác định bởi việc chọn
kiến trúc mạng và mô hình mạng.
Thành phần 3. Hàm chuyển đổi: Kết quả của hàm tổng, hầu nhƣ luôn
là tổng có trọng số, đƣợc chuyển đổi thành một đầu ra có ý nghĩa nhờ một quá
trình xử lý có thuật toán gọi là hàm chuyển đổi. Trong hàm chuyển đổi tổng
có thể đƣợc so sánh với một ngƣỡng nào đó để quyết định đầu ra của mạng.
Nếu nhƣ tổng lớn hơn giá trị ngƣỡng thì thành phần xử lý đƣa ra đầu ra một
tín hiệu. Nếu nhƣ tổng của đầu vào và các tích có trọng số nhỏ hơn ngƣỡng
thì không có tín hiệu ở đầu ra. Cả hai kiểu phản ứng đều quan trọng.
Giá trị ngƣỡng, còn gọi hàm chuyển đổi, thƣờng là phi tuyến. Các hàm
tuyến tính bị giới hạn vì đầu ra chỉ đơn giản là tỷ lệ của đầu vào. Hàm chuyển
đổi có thể chỉ đơn giản là cho biết hàm tổng là dƣơng hay âm. Mạng có thể

cho ra đầu ra 0 và 1, 1 và -1, hay con số kết hợp nào đó.
Thành phần 4. Hàm ra: Mỗi thành phần xử lý cho phép một tín hiệu
đầu ra mà đầu ra này có thể đi tới hàng trăm nơron khác. Điều này giống với
nơron sinh học trong đó có rất nhiều đầu vào và chỉ có một hành động ra.
Thƣờng thì đầu ra tƣơng đƣơng với kết quả của hàm chuyển đổi. Tuy nhiên,
một số kiến trúc mạng chỉnh sửa kết quả của hàm chuyển đổi để kết hợp với
những thành phần xử lý lân cận. Các nơron cho phép cạnh tranh với những
nơron khác, khi này chúng hạn chế các thành phần xử lý khác trừ các thành
phần xử lý có sức mạnh rất lớn. Sự cạnh tranh có thể xảy ra ở một hay là cả
hai mức. Đầu tiên sự cạnh tranh quyết định xem nơron nhân tạo nào sẽ là tích

13


cực, hay là cung cấp một đầu ra. Tiếp theo các đầu ra cạnh tranh giúp xác
định thành phần xử lý nào sẽ tham gia và quá trình học hay là quá trình thích
nghi.
Thành phần 5. Giá trị truyền ngƣợc và hàm lỗi: Trong hầu hết các
mạng học sự khác biệt giữa đầu ra hiện tại và đầu ra mong muốn đƣợc tính
toán, sự khác biệt có thể đƣợc gọi là lỗi thô. Sau khi đƣợc tính toán, lỗi thô đó
đƣợc chuyển đổi bởi hàm lỗi để làm cho phù hợp với một kiến trúc mạng cụ
thể nào đó. Các kiến trúc mạng cơ sở nhất sử dụng lỗi này một cách trực tiếp
nhƣng một số khác bình phƣơng lỗi đó trong khi vẫn giữ lại dấu của nó, một
số tính bậc ba của lỗi, một số khác lại hiệu chỉnh lỗi thô đó để đạt đƣợc mục
đích cụ thể nào đó. Lỗi của nơron nhân tạo thƣờng đƣợc truyền vào hàm học
của một thành phần xử lý khác. Số hạng lỗi này đôi khi còn đƣợc gọi là lỗi
hiện thời.
Lỗi hiện thời thƣờng đƣợc truyền ngƣợc về một tầng trƣớc đó. Nhƣng
giá trị truyền ngƣợc này có thể là lỗi hiện thời hay là lỗi hiện thời đã đƣợc
điều chỉnh theo một cách nào đó (thƣờng sử dụng đạo hàm của hàm chuyển

đổi), hay là một đầu ra mong muốn nào đó, điều này phụ thuộc vào kiểu mạng
nơron đƣợc sử dụng. Thƣờng thì giá trị truyền ngƣợc này sau khi đƣợc điều
chỉnh bởi hàm học đƣợc nhân với mỗi trọng số kết nối vào để thay đổi chúng
trƣớc khi bƣớc vào chu kỳ học mới.
Thành phần 6. Hàm học: Mục đích của hàm học là để thay đổi giá trị
của biến trọng số kết nối ở các đầu vào của mỗi thành phần xử lý theo một
thuật toán nào đó. Quá trình thay đổi các trọng số của các kết nối đầu nào
nhằm thu đƣợc một số kết quả mong muốn cũng có thể đƣợc gọi là hàm thích
nghi, hay còn gọi là chế độ học. Có hai kiểu học chính là học có giám sát và
học không có giám sát. Học có giám sát đòi hỏi có một “giáo viên”. Ngƣời
“giáo viên” này có thể là một tập dữ liệu đào tạo hay là một “ngƣời quan sát”,
“ngƣời quan sát” này đánh giá kết quả hoạt động của mạng. Trong khi không

14


có “giáo viên” bên ngoài nào, hệ thống sẽ phải tự sắp xếp nhờ một tiêu chuẩn
bên trong đƣợc thiết kế sẵn trong mạng.
1.1.5. Mạng nơron nhân tạo
Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn gọi là
nơron) tựa nhƣ nơron thần kinh của não ngƣời, hoạt động song song và đƣợc
nối với nhau bởi các liên kết nơron. Mỗi liên kết kèm theo một trọng số nào
đó, đặc trƣng cho tính kích hoạt hoặc ức chế giữa các nơron.
Có thể xem các trọng số là phƣơng tiện để lƣu trữ 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 của mạng là cập nhật các
trọng số khi có thêm thông tin về mẫu học. Hay nói một cách khác, các trọng
số đều đƣợc điều chỉnh sao cho dáng điệu vào ra của mạng sẽ mô phỏng hoàn
toàn phù hợp với môi trƣờng đang xem xét.
Mô hình mạng nơron đƣợc mô tả trong hình 1.3


Hình 1.3: Sơ đồ đơn giản về một mạng nơron nhân tạo

Mô hình mạng nơron ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn (hidden)
và lớp xuất (output). 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.

15


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.
1.2. Đơn vị xử lý
Một đơn vị xử lý (Hình 1.4), cũng đƣợc gọi là một nơron hay một nút
(node), thực hiện một công việc rất đơn giản: nó nhận tín hiệu vào từ các đơn
vị phía trƣớc hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ
đƣợc lan truyền sang các đơn vị khác.

Hình 1.4: Đơn vị xử lý (Processing unit)

Trong đó:
Xj : các đầu vào
wji : các trọng số tƣơng ứng với các đầu vào
θj : độ lệch (bias)
aj : đầu vào mạng (net-input)
zj : đầu ra của nơron
g(x): hàm chuyển (hàm kích hoạt).

Trong một mạng nơron có ba kiểu đơn vị:
1) Các đơn vị đầu vào (Input units), nhận tín hiệu từ bên ngoài;

16


2) Các đơn vị đầu ra (Output units), gửi dữ liệu ra bên ngoài;
3) Các đơn vị ẩn (Hidden units), tín hiệu vào (input) và ra (output) của nó
nằm trong mạng.
Mỗi đơn vị j có thể có một hoặc nhiều đầu vào: x0, x1, x2, … xn, nhƣng
chỉ có một đầu ra zj.
Một đầu vào tới một đơn vị có thể là dữ liệu từ bên ngoài mạng, hoặc
đầu ra của một đơn vị khác, hoặc là đầu ra của chính nó.
1.3. Hàm xử lý
1.3.1. Hàm kết hợp
Mỗi một đơn vị trong một mạng kết hợp các giá trị đƣa vào nó thông
qua các liên kết với các đơn vị khác, sinh ra một giá trị gọi là net input. Hàm
thực hiện nhiệm vụ này gọi là hàm kết hợp, đƣợc định nghĩa bởi một luật lan
truyền cụ thể. Trong phần lớn các mạng nơron, giả sử mỗi một đơn vị cung
cấp một bộ cộng nhƣ là đầu vào cho đơn vị mà nó có liên kết. Tổng đầu vào
đơn vị j đơn giản chỉ là tổng trọng số của các đầu ra riêng lẻ từ các đơn vị
kết nối cộng thêm ngƣỡng hay độ lệch (bias) j

Trƣờng hợp wji > 0, nơron đƣợc coi là đang ở trong trạng thái kích
thích. Tƣơng tự, nếu nhƣ wji < 0, nơron ở trạng thái kiềm chế. Chúng ta gọi
các đơn vị với luật lan truyền nhƣ trên là các sigma units. Trong một vài
trƣờng hợp ngƣời ta cũng có thể sử dụng các luật lan truyền phức tạp hơn.
Một trong số đó là luật sigma-pi, có dạng nhƣ sau:

17



Rất nhiều hàm kết hợp sử dụng một "độ lệch" hay "ngƣỡng" để tính net
input tới đơn vị. Đối với một đơn vị đầu ra tuyến tính, thông thƣờng, j đƣợc
chọn là hằng số và trong bài toán xấp xỉ đa thức j = 1.
1.3.2. Hàm kích hoạt (hàm chuyển)
Phần lớn các đơn vị trong mạng nơron chuyển net input bằng cách
sử dụng một hàm vô hƣớng (scalar-to-scalar function) gọi là hàm kích hoạt,
kết quả của hàm này là một giá trị gọi là mức độ kích hoạt của đơn vị (unit's
activation). Loại trừ khả năng đơn vị đó thuộc lớp ra, giá trị kích hoạt đƣợc
đƣa vào một hay nhiều đơn vị khác. Các hàm kích hoạt thƣờng bị ép vào
một khoảng giá trị xác định, do đó thƣờng đƣợc gọi là các hàm bẹp
(squashing). Các hàm kích hoạt hay đƣợc sử dụng là:
1) Hàm đồng nhất (Linear function, Identity function )
g(x) = x
Nếu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này. Đôi khi
một hằng số đƣợc nhân với net-input để tạo ra một hàm đồng nhất.
g(x)

1

-1

0
-1

1

x


Hình 1.5: Hàm đồng nhất (Identity function)

2) Hàm bƣớc nhị phân (Binary step function, Hard limit function)

18


Hàm này cũng đƣợc biết đến với tên "Hàm ngƣỡng" (Threshold function
hay Heaviside function). Đầu ra của hàm này đƣợc giới hạn vào một trong hai
giá trị:

Dạng hàm này đƣợc sử dụng trong các mạng chỉ có một lớp. Trong hình
vẽ sau, θ đƣợc chọn bằng 1.
g(x)

1

-1

1

0

2

x

Hình 1.6: Hàm bước nhị phân (Binary step function)

3) Hàm sigmoid (Sigmoid function (logsig))


Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng đƣợc huấn
luyện (trained) bởi thuật toán Lan truyền ngược (back-propagation), bởi vì
nó dễ lấy đạo hàm, do đó có thể giảm đáng kể tính toán trong quá trình

19


huấn luyện. Hàm này đƣợc ứng dụng cho các chƣơng trình ứng dụng mà các
đầu ra mong muốn rơi vào khoảng [0,1].

g(x)
1

-6

-4

0

-2

2

4

6

x


Hình 1.7: Hàm Sigmoid

4) Hàm sigmoid lƣỡng cực (Bipolar sigmoid function (tansig))

Hàm này có các thuộc tính tƣơng tự hàm sigmoid. Nó làm việc tốt đối
với các ứng dụng có đầu ra yêu cầu trong khoảng [-1,1].
g(x)
1

0
-6

-4

-2

2

4

6

Hình 1.8: Hàm sigmoid lưỡng cực

20

x


Các hàm chuyển của các đơn vị ẩn (hidden units) là cần thiết để biểu

diễn sự phi tuyến vào trong mạng. Lý do là hợp thành của các hàm đồng
nhất là một hàm đồng nhất. Mặc dù vậy nhƣng nó mang tính chất phi tuyến
(nghĩa là, khả năng biểu diễn các hàm phi tuyến) làm cho các mạng nhiều
tầng có khả năng rất tốt trong biểu diễn các ánh xạ phi tuyến. Tuy nhiên, đối
với luật học lan truyền ngƣợc, hàm phải khả vi (differentiable) và sẽ có
ích nếu nhƣ hàm đƣợc gắn trong một khoảng nào đó. Do vậy, hàm sigmoid
là lựa chọn thông dụng nhất.
Đối với các đơn vị đầu ra (output units), các hàm chuyển cần đƣợc
chọn sao cho phù hợp với sự phân phối của các giá trị đích mong muốn.
Chúng ta đã thấy rằng đối với các giá trị ra trong khoảng [0,1], hàm sigmoid
là có ích; đối với các giá trị đích mong muốn là liên tục trong khoảng đó
thì hàm này cũng vẫn có ích, nó có thể cho ta các giá trị ra hay giá trị đích
đƣợc căn trong một khoảng của hàm kích hoạt đầu ra. Nhƣng nếu các giá
trị đích không đƣợc biết trƣớc khoảng xác định thì hàm hay đƣợc sử dụng
nhất là hàm đồng nhất. Nếu giá trị mong muốn là dƣơng nhƣng không biết
cận trên thì nên sử dụng một hàm kích hoạt dạng mũ.
1.4. Đặc trƣng của mạng nơron
1.4.1. Tính phi tuyến
Một nơron có thể tính toán một cách tuyến tính hay phi tuyến. Một mạng
nơron, cấu thành bởi sự kết nối các nơron phi tuyến thì tự nó sẽ có tính phi
tuyến. Hơn nữa, điều đặc biệt là tính phi tuyến này đƣợc phân tán trên toàn
mạng. Tính phi tuyến là một thuộc tính rất quan trọng, nhất là khi các cơ chế
vật lý sinh ra các tín hiệu đầu vào (ví dụ tín hiệu tiếng nói) vốn là phi tuyến.

21


1.4.2. Tính chất tƣơng ứng đầu vào đầu ra
Mặc dù khái niệm “học” hay “huấn luyện” chƣa đƣợc bàn đến nhƣng để
hiểu đƣợc mối quan hệ đầu vào-đầu ra của mạng nơron, chúng ta sẽ đề cập sơ

qua về khái niệm này. Một mô hình học phổ biến đƣợc gọi là học với một
ngƣời dạy hay học có giám sát liên quan đến việc thay đổi các trọng số liên
kết của mạng nơron bằng việc áp dụng một tập hợp các mẫu tích luỹ hay các
ví dụ tích luỹ. Mỗi một ví dụ bao gồm một tín hiệu đầu vào và một đầu ra
mong muốn tƣơng ứng. Mạng nơron nhận một ví dụ lấy một cách ngẫu nhiên
từ tập hợp nói trên tại đầu vào của nó, và các trọng số liên kết của mạng đƣợc
biến đổi sao cho có thể cực tiểu hoá sự sai khác giữa đầu ra mong muốn và
đầu ra thực sự của mạng theo một tiêu chuẩn thống kê thích hợp. Sự tích luỹ
của mạng đƣợc lặp lại với nhiều ví dụ trong tập hợp cho tới khi mạng đạt tới
một trạng thái ổn định mà ở đó không có một sự thay đổi đáng kể nào của các
trọng số liên kết. Các ví dụ tích luỹ đƣợc áp dụng trƣớc có thể đƣợc áp dụng
lại trong thời gian của phiên tích luỹ nhƣng theo một thứ tự khác. Nhƣ vậy
mạng nơron học từ các ví dụ bằng cách xây dựng nên một tƣơng ứng đầu vàođầu ra cho vấn đề cần giải quyết.
1.4.3. Tính chất thích nghi
Các mạng nơron có một khả năng mặc định là biến đổi các trọng số liên
kết tuỳ theo sự thay đổi của môi trƣờng xung quanh. Đặc biệt, một mạng
nơron đã đƣợc tích luỹ để hoạt động trong một môi trƣờng xác định có thể
đƣợc tích luỹ lại một cách dễ dàng khi có những thay đổi nhỏ của các điều
kiện môi trƣờng hoạt động.
1.4.4. Tính chất đƣa ra lời giải có bằng chứng
Trong ngữ cảnh phân loại mẫu, một mạng nơron có thể đƣợc thiết kế để
đƣa ra thông tin không chỉ về mẫu đƣợc phân loại, mà còn về sự tin cậy của

22


quyết định đã đƣợc thực hiện. Thông tin này có thể đƣợc sử dụng để loại bỏ
các mẫu mơ hồ hay nhập nhằng.
1.4.5. Tính chất chấp nhận sai xót
Một mạng nơron, đƣợc cài đặt dƣới dạng phần cứng, vốn có khả năng

chấp nhận lỗi, hay khả năng tính toán thô, với ý nghĩa là tính năng của nó chỉ
thoái hoá khi có những điều kiện hoạt động bất lợi. Ví dụ, nếu một nơron hay
các liên kết kết nối của nó bị hỏng, việc nhận dạng lại một mẫu đƣợc lƣu trữ
sẽ suy giảm về chất lƣợng.
1.4.6. Khả năng cài đặt VLSI (Very-large-scale-intergrated)
Bản chất song song đồ sộ của một mạng nơron làm cho nó rất nhanh
trong tính toán đối với một số công việc. Đặc tính này cũng tạo ra cho một
mạng nơron khả năng phù hợp cho việc cài đặt sử dụng kỹ thuật Very-largescale-intergrated (VLSI). Kỹ thuật này cho phép xây dựng những mạch cứng
tính toán song song quy mô lớn. Chính vì vậy mà ƣu điểm nổi bật của VLSI
là mang lại những phƣơng tiện hữu hiệu để có thể xử lý đƣợc những hành vi
có độ phức tạp cao.
1.4.7. Tính chất đồng dạng trong phân tích và thiết kế
Về cơ bản, các mạng nơron có tính chất chung nhƣ là các bộ xử lý thông
tin. Chúng ta nêu ra điều này với cùng ý nghĩa cho tất cả các lĩnh vực có liên
quan tới việc ứng dụng mạng nơron. Đặc tính này thể hiện ở một số điểm nhƣ
sau:
Các nơron, dƣới dạng này hoặc dạng khác, biểu diễn một thành phần
chung cho tất cả các mạng nơron.
Tính thống nhất này đem lại khả năng chia sẻ các lý thuyết và các thuật
toán học trong nhiều ứng dụng khác nhau của mạng nơron.

23


Các mạng tổ hợp (modular) có thể đƣợc xây dựng thông qua một sự tích
hợp các mô hình khác nhau.
1.5. Một số vấn đề của mạng nơron
Khi xây dựng một ứng dụng mạng nơron chúng ta cần quan tâm một số
vấn đề sau:
Vấn đề về kiến trúc mạng nơron: nơron nào nối với nơron nào? Đây

chính là sự lựa chọn mô hình của mạng nơron. Nó sẽ phụ thuộc vào sự trình
bày dữ liệu và ứng dụng. Những mô hình phức tạp quá dẫn đến những vấn đề
lựa chọn quá trình huấn luyện hay là việc lựa chọn giải thuật học.
Lựa chọn giải thuật học: ở đây có nhiều sự cân bằng giữa các giải thuật
học. Gần nhƣ bất kỳ giải thuật nào sẽ làm tốt với độ chính xác của các siêu
tham số cho việc huấn luyện trên tập dữ liệu cố định cho trƣớc. Tuy nhiên sự
lựa chọn và điều hƣớng của giải thuật cho việc huấn luyện trên các tập dữ liệu
này cần thực hiện nhiều thí nghiệm, đó là điều rất quan trọng. Trên một mô
hình nếu lựa chọn giải thuật và hàm đánh giá phù hợp thì mạng nơron có thể
cho kết quả rất tốt.
Trọng số của các cung nối và ngƣỡng thay đổi thƣờng xuyên. Đã có
nhiều nghiên cứu về vấn đề này và cũng đã có một số kết quả:
Nếu mạng gây ra lỗi, thì có thể xác định nơron nào gây ra lỗi thì phải
điều chỉnh nơron đó.
Với cách tiếp cận này, mạng phải biết rằng nó gây ra lỗi.Trong thực tế,
lỗi chỉ đƣợc biết sau một thời gian dài.
Chức năng của một nơron không quá đơn giản nhƣ mô hình. Bởi vì
mạng nơron hoạt động nhƣ một hộp đen.
Một số hƣớng dẫn khi sử dụng mạng nơron
Xây dựng mạng khởi tạo (dùng một lớp ẩn có số nơron = ½ tổng số
nơron của lớp nhập và lớp xuất).

24


Huấn luyện mạng dùng các giải thuật huấn luyện. Nên thực hiện trên
nhiều mạng khác nhau để tránh trƣờng hợp cực tiểu cục bộ.
Nếu máy “Không thuộc bài” thì thêm một vài nơron cho tầng ẩn.
Ngƣợc lại nếu máy “Học vẹt” thì bớt một vài nơron ra khỏi tầng ẩn.
Khi đã tìm đƣợc một kiến trúc mạng tƣơng đối tốt lấy mẫu lại tập dữ

liệu và huấn luyện lại để tìm các mạng mới.
1.6. Ứng dụng của mạng nơron
Kể từ khi ra đời và phát triển mạng nơron đã đƣợc ứng dụng trong
rất nhiều lĩnh vực. Do vậy, liệt kê đƣợc tất cả các ứng dụng của mạng
nơron là không thực tế. Tuy nhiên, ta có thể đƣa ra một số ứng dụng điển
hình của mạng nơron nhƣ sau:
 Xử lý ảnh, nhìn máy: Gồm trùng khớp ảnh, tiền xử lý ảnh, phân
đoạn và phân tích ảnh, nén ảnh,...
 Xử lý tín hiệu: Phân tích tín hiệu địa chấn và hình thái học.


Nhận dạng mẫu: Gồm việc tách các nét đặc biệt của mẫu,
phân loại và phân tích tín hiệu của rada, nhận dạng và hiểu tiếng nói,
nhận dạng vân tay, ký tự, chữ viết,...

 Y học: Phân tích và hiểu tín hiệu điện tâm đồ, chuẩn đoán bệnh, xử
lý ảnh y học.
 Quân sự: Các hệ phát hiện thuỷ lôi, phân loại luồng rada, nhận dạng
nguời nói.
 Các hệ tài chính: Gồm phân tích thị trƣờng chứng khoán, định giá
bất động sản, cấp phát thẻ tín dụng và thƣơng mại an toàn.
 Trí tuệ nhân tạo: Gồm các hệ chuyên gia,...
 Dự đoán: Dự đoán các trạng thái của hệ thống,...
 Quy hoạch, kiểm tra và tìm kiếm: Gồm cài đặt song song các bài toán
thoả mãn ràng buộc, tìm nghiệm bài toán ngƣời du lịch, điều khiển và

25



×