TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÀI TẬP LỚN
TRÍ TUỆ NHÂN TẠO
Đề tài: Nhận diện chữ viết tay bằng mạng noron nhân tạo
Giảng viên hướng dẫn : TS. Phạm Văn Hải
Nhóm sinh viên thực hiện : Nhóm 3
Nguyễn Xuân Tùng 20102495
Nguyễn Thị Kim Chi 20101157
Mai Thị Gấm 20090843
Phạm Thị Sen 20102077
Tống Thị Đông 20104037
Trần Văn Nhuận 20072164
Hà Nôi, Tháng 8 năm 2013
Giáo viên hướng dẫn: TS.Phạm Văn Hải
Mục Lục
2
Giáo viên hướng dẫn: TS.Phạm Văn Hải
LỜI CẢM ƠN
“Trí tuệ nhân tạo” là khoa học nghiên cứu các hành vi thông minh nhằm giải
quyết các vấn đề được đặt ra đối với các chương trình máy tính. Đây là môn học mới lạ
với chúng tôi nhưng rất quan trọng với những sinh viên công nghệ thông tin, giúp cung
cấp những kiến thức cần thiết về trí thông minh của các hệ thống máy tính. Và để có
được những kiến thức đó, chúng tôi xin gửi lời cảm ơn chân thành đến thầy Phạm Văn
Hải – Giảng viên Viện Công nghệ thông tin và truyền thông, Đại học Bách Khoa Hà Nội
đã tận tình chỉ dạy, đưa chúng tôi đến gần hơn với một lĩnh vực hoàn toàn mới, giúp
chúng tôi có thêm những kiến thức nền tảng để có thể phát triển tiếp trong tương lai và
hoàn thành bài tập này.
3
Giáo viên hướng dẫn: TS.Phạm Văn Hải
LỜI NÓI ĐẦU
Bài toán nhận dạng tuy ra đời từ thập nhiên 60 của thế kỷ trước nhưng vẫn nhận
được sự quan tâm, nghiên cứu của nhiều nhà khoa học trên thế giới. Đặc biệt là trong
những năm gần đây, cùng với quá trình đẩy mạnh tin học hóa trong mọi lĩnh vự đời sống
xã hội, nhận dạng không chỉ còn là lĩnh vực nghiên cứu lý thuyết nữa mà đã được ứng
dụng rộng rãi trong thực tế cuộc sống. Các bài toán nhận dạng được nghiên cứu nhiều
nhất hiện nay bao gồm nhận dạng các mẫu hình học (vân tay, mặt người, hình khối,…),
nhận dạng tiếng nói và nhận dạng chữ viết. Chúng được áp dụng vòa nhiều lĩnh vực như
y học, an ninh, dự báo thời tiết, dự báo cháy rừng,….Trong các bài toán nhận dạng này,
nhận dạng chữ viết là bài toán đang được ứng dụng phổ biến nhất hiện nay.
Nhận dạng chữ viết bao gồm hai kiểu chính là nhận dạng chữ in và nhận dạng chữ
viết tay. Vấn đề đặt ra là mỗi nguời đều có một kiểu chữ viết tay khác nhau: về cỡ chữ,
kiểu chữ, độ thanh, đầm của mỗi chữ nên viêc nhận diện chữ viết sao cho máy tính có thể
hiểu độ chính xác cao là khá phức tạp và yêu cầu tốn thời gian.Nó cũng là thách thức đối
với các nhà nghiên cứu, bài toán này vẫn chưa đuợc giải quyết trọn vẹn vì nó còn phụ
thuộc quá nhiều vào nguời viết và sự biến đổi quá đa dạng trong cách viết và trạng thái
tinh thần của người viết.
Trong khuôn khổ bài tập lớn của nhóm, chúng tôi xin đuợc trình bày phuơng pháp
nhận diện chữ cái viết tay sử dụng mạng nơron nhân tạo.
4
Giáo viên hướng dẫn: TS.Phạm Văn Hải
CHƯƠNG I: TỔNG QUAN VỀ MẠNG NORON
1. Noron sinh học
Quá quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con người
bao gồm khoảng 10
11
nơron tham gia vào khoảng 10
15
kết nối trên các đường
truyền. Mỗi đường truyền này dài khoảng hơn một mét. Các nơron có nhiều đặc
điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả
năng mà các tế bào khác không có được, đó là khả năng nhận, xử lý và truyền các
tín hiệu điện hóa trên các đường mòn nơron, các con đường này tạo nên hệ thống
giao tiếp của bộ não
Hình 1: Cấu trúc của một nơron sinh học điển hình
Mỗi nơron sinh học có 3 thành phần cơ bản:
• Các nhánh vào hình cây ( dendrites)
• Thân tế bào (cell body)
• Sợi trục ra (axon)
Các nhánh hình cây truyền tín hiệu vào đến thân tế bào. Thân tế bào tổng hợp và
xử lý cho tín hiệu đi ra. Sợi trục truyền tín hiệu ra từ thân tế bào này sang nơron khác.
Điểm liên kết giữa sợi trục của nơron này với nhánh hình cây của nơron khác gọi là
synapse. Liên kết giữa các nơron và độ nhạy của mỗi synapse được xác định bởi quá
trình hóa học phức tạp. Một số cấu trúc của nơron đượ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. Trong cuộc đời cá thể, một số liên
kết mới được hình thành, một số khác bị hủy bỏ.
5
X1
X2
Xn
f(x)
Bias
Result
Wi1
Win
Giáo viên hướng dẫn: TS.Phạm Văn Hải
Như vậy nơron 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 nơron khác.
Dựa trên những hiểu biết về nơron sinh học, con người xây dựng nơron 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.
2. Noron nhân tạo
Một nơron 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
nơron, được mô tả như hình dưới đây:
Các thành phần cở bản của một noron nhân tạo là:
Tập đầu vào: là tín hiệu vào của các noron (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 vecto n chiều.
Tập các liên kết : Mỗi liên kết được biểu diễn bởi các trọng số (gọi là trong
số liên kết – Synaptic weight), trọn số liên kết thứ j liên kết với noron thứ i
được kí hiệu là w
ij
. Thông thường được khởi tạo ngẫu nhiên và được cập
nhập lại trong quá trình huấn luyện.
Bộ tổng (Summing function): thường được dùng để tính tổng tích trọng số
với đầu vào của nó.
Ngưỡng (bias): thường được đưa vào trong thành phần huấn luyện.
Hàm truyền (Transfer function) : hàm này được đưa ra để giới hạn đầu ra
của mỗi noron. 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ác loại hàm truyền như trong bảng sau:
Hàm truyền Đồ thị
6
Giáo viên hướng dẫn: TS.Phạm Văn Hải
Symmetrical Hard Limit
(hardlims)
Linear (purelin)
Saturating Linear (satlin)
Log-Sigmoid (logsig)
Đầu ra: là tín hiệu ra của một noron, mỗi noron có duy nhất một đầu ra
Xét về mặt toán học, thì một noron được biểu diễn bởi công thức:
Trong đó, w
ij
là trọn số liên kết của noron thứ i tới đầu vào j, còn x
j
là giá trị
đầu vào thứ j, bias là ngưỡng của noron, f() là hàm truyền, a là đầu ra của
noron.
3. Mạng noron nhân tạo
Mạng noron nhân tạo, Artificial Neural Network(ANN) 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 lên từ một số lượng các phần tử noron, kết nối với nhau thông qua 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 đó.
Một mạng noron nhân tạo được cấu hình cho một ứng dụng cụ thể(nhận dạng
mẫu, phân loại dữ liệu, …) thông qua một quá trình học từ tập các mẫu huấn
7
Giáo viên hướng dẫn: TS.Phạm Văn Hải
luyện, về bản chất của quá trình học là quá trình hiệu chỉnh ngưỡng và các trọng
số liên kết.
8
Giáo viên hướng dẫn: TS.Phạm Văn Hải
CHƯƠNG II: GIỚI THIỆU BÀI TOÁN NHẬN DẠNG CHỮ CÁI BẰNG MẠNG
NORON NHÂN TẠO
1. Các phương pháp nhận dạng chữ cái.
Để nhận dạng chữ cái, nhiều giải pháp khác nhau đã được đưa ra, chúng tôi xin được
đưa ra một vài phương pháp thông dụng hiện nay:
1.1. Đối sánh mẫu : Đây là kỹ thuật nhận dạng chữ cái đơn giản nhất dựa trên cơ sở
đối sánh các nguyên mẫu với nhau để nhận dạng kí tự hoặc từ. Gồm:
- Đối sánh trực tiếp: với kí tự đầu vào là ảnh đa cấp xám hoặc ảnh nhị phân
đuợc so sánh trực tiếp với một tập mẫu chuẩn đã được lưu trữ.
- Các mẫu biến dạng và đối sánh mềm: Sử dụng các mẫu biến dạng trong đó
một phép biến dạng ảnh đuợc dùng để đối sánh là ảnh chưa biết với một cơ sở
dữ liệu ảnh đã biết.
- Đối sánh giản nhẹ : kỹ thuật này sử dụng hình dáng đặc trưng cơ bản của ảnh
kí tự, các vùng đối sánh đã đuợc nhận biết. Sau đó trên cơ sở một số vùng đối
sánh đuợc đánh giá tốt, các phần tử của ảnh được so sánh với các vùng đối
sánh này.
Các kỹ thuật của đối sánh mẫu chỉ áp dụng tốt đối với nhận dạng chữ in, còn đối
với chữ viết tay thì các kỹ thuật này tỏ ra kém hiệu quả.
1.2. Phuơng pháp tiếp cận cấu trúc.
- Cách tiếp cận phuơng pháp này dựa vào việc mô tả đối tượng nhờ một số khái
niệm biểu diễn đối tượng cơ sở trong ngôn ngữ tự nhiên. Để mô tả đối tuợng
nguời ta dung một số dạng nguyên thủy như đoạn thẳng, cung… Mỗi đối
tuợng được mô tả như một sự kết hợp các dạng nguyên thủy.
- Hiện nay, nhận dạng theo cấu trúc phổ biến là trích trọn các đặc trưng của
mẫu học, phân hoạch bảng kí tự dựa trên các đặc trưng này, sau đó ảnh cần
nhận dạng sẽ đuợc trích chọn đặc trưng, sau đó so sánh trên bảng phân hoạch
để tìm ra kí tự có các đặc trưng phù hợp.
- Đối với nhận dạng chữ viết tay rời rạc dựa theo cấu trúc xương và đuờng biên,
công việc này đòi hỏi phải xây dựng các đặc trưng của chữ, đặc biệt là đăc
trưng về các điểm uốn, điểm gấp khúc và các đặc trưng của các nét.Sau khi
tiền xử lý, tách nét đuợc tiến hành thông qua các điểm. Sau đó trích chọn đặc
trưng cấu trúc xương của chữ, mỗi nét đặc trưng bởi cặp chỉ số đầu và cuối
tuơng ứng với các thực tự của điểm chạc đầu và điểm cuối. Cuối cùng là xây
dựng cây tìm kiếm, dựa vào đặc trưng về cấu trúc xuơng và cấu trúc biên để
9
Giáo viên hướng dẫn: TS.Phạm Văn Hải
phân tập mẫu học thành các lớp. Qúa trình phân lớp được tiến hành theo 2
bước : Xác định lớp tương ứng với mẫu và tìm kiếm trong lớp đó mẫu nào gần
giống với mẫu vào nhất.
1.3. Mạng nơron.
- Một mạng nơ ron được định nghĩa như một cấu trúc tính toán bao gốm nhiệu
bộ xử lý “ nơron” được kết nối song song chằng chịt với nhau. Do bản chất
song song của các noron nên nó có thể thực hiện các tính toán tốc độ cao hơn
so với các kỹ thuật phân lớp khác. Một mạng nơron chứa nhiều nút, đầu ra của
một nút đuợc sử dụng cho một nút khác ở trong mạng và hàm quyết định cuối
cùng phụ thuộc vào sự tuơng tác phức tạp giữa các nút. Mặc dù nguyên lý
khác nhau nhưng hầu hết các kiến trúc mạng nơron đều tương đương với các
phương pháp nhận diện dạng mẫu thống kê.
- Các kiến trúc mạng nơron có thể được phân thành 2 nhóm chính là: Mạng
truyền thẳng và mạng lan truyền nguợc.Trong các hệ thống nhận dạng chữ,
các mạng nơron sử dụng phổ biến nhất là mạng perceptron đa lớp thuộc nhóm
mạng truyền thẳng và mạng SOM của Kohonen thuộc nhóm mạng lan truyền
ngược.
- Mạng perceptron đa lớp đuợc đề xuất bởi Rosenblatt đuợc nhiều tác giả sử
dụng trong các hệ nhận dạng chữ viết tay. Hầu hết các nghiên cứu phát triển
nhận dạng chữ viết tay hiện nay đều tập trung vào mạng SOM .SOM kết hợp
trích chọn đặc trưng và nhận dạng trên một tập lớp các ký tự huấn luyện.
Mạng này chứng tỏ rằng nó tuơng đuơng với thuật tóan phân cụm k- mean.
- Với thật toán đơn giản nhưng hiệu quả, cùng với thành công của mô hình này
trong các ứng dụng thực tiễn, mạng nơron hiện đang là một trong các huớng
nghiên cứu của lĩnh vực học máy. Mạng nơ ron tỏ ra phù hợp với các bài tóan
đối sánh, phân loại mẫu, xấp xỉ hàm, tối ưu hóa, luợng tử hóa véc tơ và phân
hoach không gian dữ liệu, trong khi các phương pháp truyền thống không đủ
khả năng giải quyết các vấn đề nêu trên một cách hiệu quả. Đăc biệt trong các
hệ thống nhận dạng sử dụng mạng nơron đã đạt đuợc tỉ lệ nhận dạng khá
chính xác, có thể so sánh với các phương pháp nhận dạng cấu trúc, thống
kê….
Trong bài tập lớn của mình chúng tôi áp dụng phương pháp mạng noron
nhân tạp để giải quyết bài tóan nhận dạng chữ của mình.
10
Mẫu
Tiền xử lý
Trích chọn đặc trưng
Phân lớp
Áp dụng giải thuật lan truyền ngược
Đưa ra kết quả.
Giáo viên hướng dẫn: TS.Phạm Văn Hải
2. Giải quyết bài toán nhận diện chữ cái.
Bài toán nhận dạng chữ cái bằng mạng noron nhân tạo, áp dụng giải thuật lan
truyền ngược.
Để phân loại một bức ảnh gồm các bước sau:
• Mẫu : là chữ cái dung để nhận diện.
• Tiền xử lý: chuyển đổi tài liệu trong kho dữ liệu thành một hình thức phù
hợp để phân loại. Cụ thể:
Nhị phân hóa ảnh : ( phần nền và phần chữ) lựa chọn một nguỡng thích
hợp theo cường độ sáng, lớn hơn ngưỡng thì lấy 1 giá trị “ trắng”, nhỏ
hơn là đen)
Lọc nhiễu : là khử các tập điểm sang thừa trên ảnh.
Chuẩn hóa kích thuớc ảnh.
Làm trơn biên chữ.
Làm đầy chữ.
Làm mảnh chữ.
Điều chỉnh độ ngiêng.
…
• Trích chọn đặc trưng: đóng một vai trò cực kỳ quan trọng trong một hệ
thống nhận dạng. Dựa vào số liệu các đặc trưng sẵn có, đưa ra các đặc
trưng của mẫu.
3. Các bước cơ bản để nhận dạng chữ cái.
- Nhị phân hóa ảnh là một kỹ thuật chuyển ảnh đa cấp xám sang ảnh nhị phân.
Trong bất kỳ bài toán phân tích hoặc nâng cao chất lượng ảnh nào, nó cũng
cần thiết để xác định các đối tượng quan trọng. Nhị phân hóa ảnh phân chia
ảnh thành 2 phần : phần nền và phần chữ. Hầu hết các phương pháp nhị phân
hóa ảnh hiện nay đều lựa chọn một ngưỡng thích hợp theo cường độ sáng của
ảnh và sau đó chuyển tất cả các giá trị độ sang lớn hơn ngưỡng đó thành một
11
Giáo viên hướng dẫn: TS.Phạm Văn Hải
giá trị độ sáng ( ví dụ “ trắng” ) và tất cả các giá trị bé hơn ngưỡng thành một
giá trị độ sáng khác (“đen”).
- Lọc nhiễu.
Nhiễu là một tập các điểm sang thừa trên ảnh. Khử nhiễu là một vấn đề
thuờng gặp trong nhận dạng, nhiễu có nhiều loại (nhiễu đốm, nhiễu vệt, nhiễu
đứt nét…).
Để khử các nhiễu đốm ( các nhiễu với kích thước nhỏ), có thể sử dụng các
phương pháp lọc ( lọc trung bình, lọc trung vị). Tuy nhiên, với các nhiễu vệt
(hoặc các nhiễu có kích thước lớn) thì các phương pháp lọc tỏ ra kém hiệu
quả, trong trường hợp này sử dụng phương pháp khử các vùng liên thông tỏ ra
có hiệu quả hơn.
- Chuẩn hóa kích thước ảnh
Việc chuẩn hóa kích thước ảnh dựa trên việc xác định trọng tâm ảnh, sau đó
xác định khoảng cách lớn nhất từ tâm ảnh đến các cạnh trên, dưới, trái, phải
của hình chữ nhật bao quanh ảnh. Thông qua khoảng cách lớn nhất đó, có thể
xác định được một tỷ lệ co, gian của ảnh gốc so với kích thước đã xác định,
từ đó hiệu chỉnh kích thước ảnh theo tỉ lệ co, giãn này. Như vậy thuật toán
chuẩn hóa kích thước ảnh luôn luôn được đảm bảo tính cân bằng khi co giãn
ảnh sẽ không bị biến dạng hoặc bị lệch.
- Làm trơn biên chữ
- Đôi khi do chất lượng quét ảnh quá xấu, các đuờng biên của chữ không còn
giữ được dáng điệu trơn tru ban đầu mà hình thành các đường răng cưa giả
tạo. Trong các trường hợp này, phải dùng các thuật toán làm trơn biên để khắc
phục.
12
Giáo viên hướng dẫn: TS.Phạm Văn Hải
- Làm đầy chữ.
Chức năng này được áp dụng với các ký tự bị đứt nét một cách ngẫu nhiên,
ảnh đứt nét gây khó khăn cho việc tách chữ, dễ bị nhầm hai phần liên thông
của ký tự thành hai ký tự riêng biệt , tạo nên sai lầm trong quá trình nhận
dạng.
- Làm mảnh chữ.
Đây là một bước quan trọng nhằm phát hiện khung xương của ký tự bằng
cách loại bộ dần các điểm bên ngoài của các nét. Tuy nhiên, quá trình làm
mảnh chữ rất nhạy cảm với việc khử nhiễu. Hiện nay có nhiều phương pháp
làm mảnh chữ.
Hình ban đầu Sau khi tiền xử lý.
- Trích chọn đặc trưng.
13
Giáo viên hướng dẫn: TS.Phạm Văn Hải
Trong phần này, ảnh sau khi qua tiền xử lý sẽ đuợc đưa về kích thước NxN
vùng. Tổng số điểm đen của mỗi vùng sẽ được chọn để tạo thành các vectơ
đặc trưng.
Trong thực nghiệm, với ảnh kích thước 16x16, chọn N= 8 , như vậy có 8x8 =
64 đặc trưng.
14
Giáo viên hướng dẫn: TS.Phạm Văn Hải
CHƯƠNG III: XÂY DỰNG VÀ HUẤN LUYỆN MẠNG NORON NHÂN
TẠO ĐỂ GIẢI QUYẾT BÀI TOÁN.
1. Xây dựng mô hình huấn luyện
- Mô hình của mạng nơ ron nhân tạo.
- Mỗi mẫu dữ liệu được chuẩn bị dưới dạng một cặp ai vector gồm vector các
đặc trưng đầu vào(input) và vector mục tiêu(target):
Parttern={input, target}, trong đó:
Input = (numOfStrokes, d1, cos() (K là số điểm được chọn ra từ dãy điểm
của chữ, và cố định trong một bài toán nhận dạng cụ thể.
Target = {a1, ,an}, ai = 1 nếu mẫu thuộc lớp thứ i, và ạ=0 với mọi ij. (N là số
lớp chữ cái cần nhận dạng).
Ta có mô hình:
Trong đó:
• Data: là tập dữ liệu ban đầu
15
Giáo viên hướng dẫn: TS.Phạm Văn Hải
• Training Set: là tập dữ liệu huấn luyện.
• Test Set: là tập dữ liệu kiểm tra
• ANN: là mạng nơron cần huấn luyện.
• Model: là mô hình tạo ra sau khi huấn luyện mạng với tập dữ liệu huấn
luyện.
• Evaluator: là phần đánh giá chất lượng của mô hình, thường lấy tỉ lệ phân
loại đúng trên tập kiểm tra làm tiêu chí đánh giá.
• Thuật toán cập nhập trong bài toán này, chúng tôi sử dụng thuật toán lan
truyền ngược (Back-propagation).
Các mẫu được chia thành hai tập là tập huấn luyện(training set) và tập kiểm tra(test
set). Khởi đầu với số lượng nút ẩn nhỏ, quá trình huấn luyện được tiến hành như sau:
huấn luyện mạng với tập dữ liệu huấn luyện, kiểm tra mô hình thu được trên tập dữ liệu
kiểm tra. Chừng nào sai số trên tập kiểm tra còn giảm xuống thì tập kiểm tra không giảm
nữa(có thể tăng lên)thì dừng lại.
2. Quá trình nhận dạng
Sau quá trình huấn luyện, mạng nơron có thể được sử dụng cho quá trình nhận
dạng chữ cái viết tay trực tuyến. Với mỗi mẫu chữ đầu vào(được biểu diễn dưới một
vector đặc trưng), khi qua mạng noron sẽ cho ra một vector đầu ra có dạng {a1,a2,
…,an} với thành phần là các số thực và N là số lớp chữ cái cần nhận dạng. Ta phát
biểu và chứng minh giả thuyết sau:
Giả thuyết: nếu ai(1 <= i <= N) là phần tử lớn nhất trong dãy a1,a2,…,an thì sai số
trung bình bình của vector đầu ra này so với vector mục tiêu của lớp thứ i là nhỏ nhất.
Từ đó ta có kết luận: mẫu đầu vào gần với lớp thứ i trong tập chữ cần nhận dạng nhất.
3. Thuật toán lan truyền ngược (Back-propagation)
16
Giáo viên hướng dẫn: TS.Phạm Văn Hải
Ta sử dụng một số kí hiệu sau:
• j: nơron thứ j (hay nút thứ j)
• X
j
: vector đầu vào của nút thứ j
• W
j
: vector trọng số của nút thứ j
• x
ji
: đầu vào của nút thứ j từ nút thứ i
• w
ji
: trọng số trên x
ji
• b
j
: ngưỡng tại nút thứ j
• o
j
: đầu ra của nút thứ j
• T
j
: đầu ra mong muốn của nút thứ j.
• Downstream(j): Tập tất cả các nút nhận đầu ra của nút thứ j làm một giá trị
đầu vào.
• l: tốc độ học
• hàm truyền : out =
Thuật toán được mô tả như sau:
Input:
- Mạng feedforward với n
i
đầu vào, n
h
nút ẩn và n
o
đầu ra. Trong bài toán,
chúng tôi xây dựng với 1 lớp ẩn, với 100 nút ẩn và 8 nút đầu ra. Mỗi đầu ra
tương ứng với 1 bit để biểu diễn chữ cái cần nhận dạng.
- Hệ số học l, ( l = 0.3)
- Tập dữ liệu D = {là tập vecto đầu vào, tập vecto đầu ra mong muốn} (folder
training).
Output: các vector trọng số
Thuật toán:
B1: khởi tạo tập trọng số ngẫu nhiên (khởi tạo trong khoảng [-1,1])
17
Giáo viên hướng dẫn: TS.Phạm Văn Hải
B2: Lặp lại cho tới khi tất cả các mẫu dữ liệu mẫu đều trả lại kết quả mong
muốn.
Với mỗi mẫu dữ liệu ta thực hiện các bước như sau:
2.1 Tính đầu ra oj cho mỗi nút j .
O
j
= f(Σx
ji
w
ji
- b
j
).
2.2 Với mỗi nút đầu ra k(result), ta tính sai Err theo công thức sau:
Err = O
j
(1 - O
j
)(T - O
j
);
2.3 Với mỗi nút h ở tầng ẩn, ta tính sai số Err
h
Err
h
= O
h
(1 – O
h
)ΣO
k
w
kh
vớik∈Downstream(j), áp dụng trong bài toán thì k =1;
2.4 Cập nhập lại trong số cũng như ngưỡng của bài toán.
Δw
ji
= lErr
j
x
ji
W
ji
= W
ji
+Δw
ji
Δb
j
= lErr
j
b
j
= b
j
+Δb
j
18
Giáo viên hướng dẫn: TS.Phạm Văn Hải
CHƯƠNG IV: CÀI ĐẶT BÀI TOÁN
1. Mô hình lớp của thuật toán
2. Thông số bài toán:
- Số lượng đặc trưng ảnh: 256 đặc trưng
- Số lượng noron của tầng đầu ra: 8
- Ngưỡng đánh giá kết quả là 0.5
- Số noron lớp ẩn : 100 noron
- Tốc độ học là 0.3
- Ngưỡng để thoát khỏi vòng lặp là 100000
- Số lượng file để học là 1429 file
- Số lượng file test 648 file
- Thời gian học của mạng noron là 3h
- Tỉ lệ chính xác sau khi test là 29,74%
19
Giáo viên hướng dẫn: TS.Phạm Văn Hải
TỔNG KẾT
Nhận dạng chữ cái bằng phương pháp dùng mạng noron nhân tạo là một hướng có
rất nhiều ưu điểm Báo cáo này đã đạt được một số kết quả chính sau đây:
- Hệ thống hóa một số vấn đề lý thuyết về nhận dạng chữ cái, đề xuất hướng
tiếp cận trong vấn đề nhận dạng chữ cái.
- Trình bày các nội dung cơ bản của mạng noron nhân tạo
- Xây dựng được một hệ thống nhận dạng chữ cái theo hướng đã đề xuất và thu
được một số kết quả rất khả quan.
Với những kết quả đã thu được, chúng tôi sẽ tiếp tục nghiên cứu và phát triển để
nâng cao hiệu suất của hệ thống đồng thời giảm thời gian thực hiện để hoàn thiện hệ
thống đã đưa ra.
20
Giáo viên hướng dẫn: TS.Phạm Văn Hải
TÀI LIỆU THAM KHẢO
1. Slide Trí tuệ nhân tạo phần học máy – Thầy Nguyễn Nhật Quang
2. ứng dụng mô hình mạng nơron trong nhận dạng chữ viết tay rời rạc hạn chế trực
tuyến trên tablet pc – Ngô Xuân Bách
3. Luận văn nghiên cứu và cài đặt một số giải thuật phân cụm phân lớp – Vũ Lan
Phương
4. Mạng noron nhân tạo ANN và giới thiệu một số ứng dụng trong quản lý dự án đầu
tư xây dựng – Phan Văn Quang, Lưu Trọng Văn, Lê Kiều
5. Bộ dữ liệu test dựa bào bộ dữ liệu được lấy từ http://ngocminh-
oss.blogspot.com/2011/07/du-lieu-cho-bai-toan-nhan-dang-chu-viet.html
21