Tiểu luận môn Máy học và ứng dụng Sử dụng mạng nơron đa lớp để xây dựng ứng dụng nhận dạng chữ viết tay - Pdf 27

Báo cáo đồ án Máy học và ứng dụng
Sử dụng mạng nơron đa lớp
để xây dựng ứng dụng nhận dạng chữ viết tay


 !"#!!#$
Mục lục
Mục lục 2
A.CHƯƠNG I : KHÁI NIỆM VỀ MÁY HỌC 3
I.Định nghĩa máy học : 4
II.Phân loại máy học 6
1)Học có giám sát (Supervised Learning) 7
2)Học không giám sát: (Unsupervised Learning) 8
3)Học nửa giám sát 9
4)Một số thuật toán máy học : 9
B.CHƯƠNG II: MÔ HÌNH HỆ THỐNG MẠNG NƠRON NHÂN TẠO 10
I.Mạng neural nhân tạo: cấu trúc, nguyên tắc hoạt động và các giải thuật huấn luyện 10
1.Cấu trúc của mạng nơron nhân tạo 10
2.Nguyên tắc họat động mạng neural nhân tạo 13
3.Huấn luyện mạng neural : 14
II.Ứng dụng demo: Nhận dạng chữ viết tay 22
1.Mục đích chương trình 22
2.Mô tả chương trình 23
A. CHƯƠNG I : KHÁI NIỆM VỀ MÁY HỌC
Học, như trí thông minh, được mọi sinh vật áp dụng mọi nơi, mọi lúc trong nhiều hoàn
cảnh khác nhau nên khó có thể định nghĩa một cách chính xác như chúng ta mong muốn.
Các từ điển thì định nghĩa như sau: “Học giúp đạt được tri thức, hay gia tăng hiểu biết,
hay có thêm kỹ năng trong một lãnh vực, là thực hiện công việc nghiên cứu tìm hiểu, thực
hiện các chỉ dẫn, hay là áp dụng các kinh nghiệm tích lũy từ quá khứ vào hiện tại và
tương lai” và “Học là điều chỉnh để cải thiện hành vi ứng xử theo kinh nghiệm đạt được”,


việc của máy tính.
• Toàn bộ các tri thức có giá trị của con người thì quá lớn ,với năng lực hạn chế
của bản thân con người khó khăn trong việc có thể thể hiện các tri thức này một
cách rõ ràng trong sáng như mong muốn.
I. Định nghĩa máy học :
Máy học (Machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến
việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống “học” tự động từ
dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ như các máy có thể “học” cách
phân loại thư điện tử xem có phải thư rác (spam) hay không và tự động xếp thư vào
thư mục tuơng ứng. Máy học rất gần với suy diễn thống kê (statistical inference)
tuy có khác nhau về thuật ngữ.
Máy học có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc
phân tích dữ liệu, nhưng khác với thống kê, máy học tập trung vào sự phức tạp của
các giải thuật trong việc thực thi tính toán. Nhiều bài toán suy luận được xếp vào
loại bài toán NP-khó, vì thế một phần của máy học là nghiên cứu sự phát triển các
giải thuật suy luận xấp xỉ mà có thể xử lý được.
Máy học có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu, chẩn
đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, phân
loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò chơi và
cử động robot (robot locomotion).
Dưới góc nhìn của trí tuệ nhân tạo, động lực chính học máy bởi là nhu cầu
thu nhận tri thức (knowledge acquisition). Thật vậy, trong nhiều trường hợp ta cần
kiến thức chuyên gia là khan hiếm (không đủ chuyên gia ngồi phân loại lừa đảo thẻ
tín dụng của tất cả giao dịch hàng ngày) hoặc chậm vì một số nhiệm vụ cần đưa ra
quyết định nhanh chóng dựa trên xử lý dữ liệu khổng lồ (trong mua bán chứng
khoán phải quyết định trong vài khoảng khắc của giây chẳng hạn) và thiếu ổn định
thì buộc phải cần đến máy tính. Ngoài ra, đại đa số dữ liệu sinh ra ngày nay chỉ phù
hợp cho máy đọc (computer readable) tiềm tàng ngưồn kiến thức quan trọng. Máy
học nghiên cứu cách thức để mô hình hóa bài toán cho phép máy tính tự động hiểu,
xử lý và học từ dữ liệu để thực thi nhiệm vụ được giao cũng như cách đánh giá

Đâ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).
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 = {(xi, cj), i=1,…,M; j=1,…,C}
• Các cặp huấn luyện này được gọi là mẫu, với xi là vector n-chiều còn gọi là vector
đặc trưng, cj là lớp thứ j đã biết trước.
• Thuật toán máy học giám sát tìm kiếm không gian của những giả thuyết có thể, gọi
là H. Đối với một hay nhiều giả thuyết, mà ước lượng tốt nhất hàm không được
biết chính xác f : x  c.
Thuật toán máy học tìm ra những giả thuyết bằng cách khám phá ra những đặc
trưng chung của những ví dụ mẫu thể hiện cho mỗi lớp.
Kết quả nhận được thường ở dạng luật (Nếu thì).
Khi áp dụng cho những mẫu dữ liệu mới, cần dựa trên những giả thuyết đã có
để dự báo những phân lớp tương ứng của chúng. Nếu như không gian giả thuyết
lớn, thì cần một tập dữ liệu huấn luyện đủ lớn nhằm tìm kiếm một hàm xấp xỉ tốt
nhất f.
Tùy thuộc vào mức độ của thuật toán học giám sát, người ta có những mô hình
học giám sát như sau:
• Học vẹt (rote): hệ thống luôn được “dạy” những luật đúng, rồi có học hội tụ.
• Học bằng phép loại suy (analogy): hệ thống được dạy phản hồi đúng cho một công
việc tương tự, nhưng không xác định. Vì thế hệ thống phải hiệu chỉnh phản hồi
trước đó bằng cách tạo ra một luật mới có thể áp dụng cho trường hợp mới.
• Học dựa trên trường hợp (case-based learning): trong trường hợp này hệ thống
học lưu trữ tất cả các trường hợp, cùng với kết quả đầu ra của chúng. Khi bắt gặp
một trường hợp mới, nó sẽ cố gắng hiệu chỉnh đến trường hợp mới này cách xử lý
trước đó của nó đã được lưu trữ.
• Học dựa trên sự giải thích (explanation-based learning): hệ thống sẽ phân tích tập

Mô Hình Hệ Thống Mạng Nơrôn mờ hồi quy - RECURRENT FUZZY NEURAL
NETWORK (RFNNs).
Mô Hình Hệ thống Fuzzy Artmap Neural Network.
Mô hình Hệ luật mờ - Standard Additive Model (SAM).
Giải Thuật Di Truyền.
Thuật toán Support Vector machine (SVMs).
Thuật toán Fuzzy Support Vector machine (FSVMs).
Thuật toán PageRank.
Thuật toán Weighted PageRank.
Thuật toán Topic Sensitive PageRank.
B. CHƯƠNG II: MÔ HÌNH HỆ THỐNG MẠNG NƠRON NHÂN TẠO
Theo nghĩa sinh học, mạng nơ-ron là một tập hợp các dây thần kinh kết nối với
nhau. Ngày nay, thuật ngữ này còn dùng để chỉ mạng nơ-ron nhân tạo, cấu thành từ các
nơ-ron nhân tạo. Do đó thuật ngữ 'mạng nơ-ron' xác định hai khái niệm phân biệt:
• Mạng nơ-ron sinh học là một mạng lưới (plexus) các nơ-ron có kết nối hoặc có liên
quan về mặt chức năng trực thuộc hệ thần kinh ngoại biên (peripheral nervous
system) hay hệ thần kinh trung ương (central nervous system). Trong ngành thần
kinh học (neuroscience), nó thường được dùng để chỉ một nhóm nơ-ron thuộc hệ
thần kinh là đối tượng của một nghiên cứu khoa học nhất định.
• Mạng nơ-ron nhân tạo được thiết kế để mô hình một số tính chất của mạng nơ-ron
sinh học, tuy nhiên, khác với các mô hình nhận thức, phần lớn các ứng dụng lại có
bản chất kỹ thuật.
I. Mạng neural nhân tạo: cấu trúc, nguyên tắc hoạt động và các giải
thuật huấn luyện.
1. Cấu trúc của mạng nơron nhân tạo
Mạng neural nhân tạo là một mạng gồm một tập các node được kết nối với nhau
bằng các cạnh có trọng số, mỗi node là một đơn vị tính toán thường gọi là perceptron.
Một perceptron (Hình 1) 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 perceptron 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. Mỗi perceptron có thể có nhiều tín hiệu đầu vào nhưng chỉ có một tín hiệu

perceptron đầu vào qua các perceptron ở lớp ẩn (nếu có) và đến các perceptron ở lớp đầu
ra. Các perceptron đầu vào là các perceptron đặc biệt, chúng không thực hiện một tính
toán nào cả mà chỉ truyền tín hiệu từ môi trường ngoài sang các perceptron ở lớp sau.
Một perceptron i không phải là perceptron ở lớp đầu vào sẽ tính giá trị đầu ra của nó như
sau. Đầu tiên nó sẽ tính tổ hợp tuyến tính các giá trị đầu vào của mình
Ở đây pred(j) là các perceptron đứng trước i và kết nối với i, s
j
là đầu ra của cá
perceptron này và cũng là đầu vào của I, w
ij
trọng số của cạnh nối từ perceptron j đến
perceptron i, là độ lệch (bias) của perceptron i. Đôi khi giá trị độ lệch được biểu diễn
bằng một trọng số của một cạnh kết nối từ một perceptron giả có giá trị đầu ra luôn là 1
đến perceptron i. Sau đó giá trị neti sẽ được truyền vào hàm kết hợp để tính giá trị đầu ra
của si của perceptron i. Nếu perceptron i là perceptron ở tầng suất của mạng thì s
i
chính là
tín hiệu đầu ra của mạng neural, nếu không thì s
i
sẽ được truyền đến làm giá trị đầu vào
cho các perceptron ở lớp kế sau. Ví dụ nếu hàm kích hoạt là hàm sigmoid thì s
i
được tính
như sau :
Mạng neural nhân tạo có thể được xem như một hàm số từ một tập các giá trị đầu
vào đến một tập các giá trị đầu ra có các tham số là số lớp, số perceptron trên mỗi lớp và
các tập hợp các trọng số w
ij
. Bài toán trên mạng neural là làm sao xác định được các
thông số trên để mạng neural thực hiện được yêu cầu mong muốn. Điều này được thực

dễ dàng.
"!%&'()*
Giải thuật lan truyền ngược tìm tập các trọng số thích hợp cho một mạng neural
truyền thẳng nhiều lớp. Nó áp dụng phương pháp giảm độ dốc (gradient descent) để
tối thiểu hóa bình phương sai số giữa kết quả xuất của mạng với kết quả xuất mong
muốn. Ý tưởng chính của giải thuật là giá trị lỗi sẽ được lan truyền ngược từ tầng xuất
về tầng nhập để tính (đạo hàm riêng phần của hàm mục tiêu E theo từng trọng số wij).
Ta tính đạo hàm riêng phần này như sau:
Ở đây w
ij
là trọng số của cạnh nối perceptron j đến perceptron i, si là kết quả
xuất của perceptron i, f() là hàm kích hoạt của các perceptron

Ở đây succ(i) là các perceptron ở lớp ngay sau perceptron i. Các công thức này
cho phép ta xây dựng một thủ tục tính đạo hàm riêng của hàm mục tiêu E theo các
trọng số w
ij
như sau: Bắt đầu tính toán từ perceptron ở tầng xuất, sau đó sử dụng kết
quả vừa tính được vào việc tính toán ở các perceptron ở tầng trước. Nói các khác
thông tin về độ dốc (gradient) được lan truyền từ tầng xuất đến tầng nhập. Do đó giả
thuật này được gọi là giải thuật lan truyền ngược.
Mỗi khi thông tin về đạo hàm riêng phần đã biết, bước tiếp theo trong giải thuật
lan truyền ngược là cập nhập các trọng số w
ij
.
Mặc dù giải thuật lan truyền ngược tương đối đơn giản nhưng trong thực tế việc
lựa chọn một hệ số học phù hợp là không hề đơn giản. Hệ số học quá nhỏ sẽ dẫn đến
thời gian hội tụ của giải thuật quá lâu, ngược lại hệ số học quá lớn sẽ dẫn đến hiện
tượng giao động (oscillation), ngăn không cho giá trị hàm mục tiêu hội tụ về một diểm
nhất định. Hơn nữa, mặc dù điểm tối ưu cục bô có thể được chứng minh là luôn có thể

w t

) không những phụ thuộc vào dấu của đạo hàm riêng phần mà còn bị ảnh hưởng
bởi độ lớn của nó, điều này làm cho quá trình học không được ổn định. Việc thêm vào
hệ số quán tính không giải quyết trọn vẹn vấn đề bởi vì ta không biết giá trị tối ưu cho
hệ số này là bao nhiêu. Để giải quyết vấn đề trên người ta đưa ra một giải thuật mới
gọi là RPROP.
RPROP là viết tắt của từ ‘resilient propagation’, nghĩa là lan truyền đàn hồi.
RPROP thực hiện cập nhập các trọng số w
ij
dựa vào thông tin về dấu của các đạo hàm
riêng phần điều này giúp nó tránh được sự ảnh hưởng của độ lớn của các đạo hàm
riêng phần này. Để thực hiện điều này các trọng số sẽ có một giá trị cập nhập riêng
ij

chỉ phụ thuộc vào dấu của
ij
E
w


. Giá trị này được cập nhập trong quá trình học theo
quy luật sau:
( 1) ( )
( 1)
( 1) ( )
( ) ( 1)
( 1)
* , * 0
* , * 0



∂ ∂

∆ = ∆ <

∂ ∂






Ở đây
0 1
η η
− +
< < <
là các hệ số cố định của quá trình học dùng để hiệu chỉnh các giá
trị cập nhập cho từng trọng số tùy theo hình dạng của hàm lỗi.
Mỗi lần đạo hàm riêng phần theo trọng số w
ij
của hàm lỗi E đổi dấu, nghĩa là giá trị
cập nhập vừa thực hiện là quá lớn và giải thuật đã nhảy vượt qua điểm tối ưu cục bộ thì giá
trị cập nhập
ij

sẽ giảm đi theo một thừa số
η


w if
w
else


−∆ >






∆ = +∆ <








( 1) ( ) ( )t t t
ij ij ij
w w w
+
= + ∆
Tuy nhiên có một trường hợp đặc biệt đó là khi đạo hàm riêng phần đổi dấu, nghĩa là
bước cập nhập trước quá lớn làm cho điểm tối ưu bị nhảy vượt qua. Giá trị trọng số phải
được trả về giá trị trước khi thay đổi, giá trị cập nhập
ij

if (
( 1) ( )
* 0
t t
ij ij
E E
w w

∂ ∂
>
∂ ∂
) then {

( )t
ij

= minimum (
( 1)
max
* ,
t
ij
η
− +
∆ ∆
)

( )t
ij
w∆

w w

∂ ∂
<
∂ ∂
) then {

( )t
ij

= maximum (
( 1)
min
* ,
t
ij
η
− −
∆ ∆
)

( 1)t
ij
w
+
=
( )t
ij
w
-

( )t
ij
w∆
= - sign (
( )t
ij
E
w


)*
( )t
ij


( 1)t
ij
w
+
=
( )t
ij
w
+
( )t
ij
w∆
}
}
Ở đây hàm số minimum và maximum lần lược là hai hàm trả về giá trị nhỏ nhất và lớn


được chọn là một giá trị nhỏ (ví dụ 1.0) để ngăn giải thuật không rơi quá
nhanh vào một cực tiểu cục bộ. Hai thông số
η
+

η

được cố định ở hai giá trị lần lược là
1.2 và 0.5, để việc lựa chọn các tham số cho giải thuật được đơn giản. Trong thực tế, hai
thông số cần được lưa chọn cho giải thuật RPROP là
0


max

.
II. Ứng dụng demo: Nhận dạng chữ viết tay
1. Mục đích chương trình
Ngày nay, máy học và mạng nơron nhân tạo đang được áp dụng rộng rãi trong rất nhiều khía
cạnh của cuộc sống. Có thể kể đến những ứng dụng của mạng nơron nói riêng và máy học
nói chung như:
• Dò đường, tự động hóa: Ô tô tự hành, robot tự tìm đường, máy bay tự lái…
• Các ứng dụng nhận dạng: nhận dạng chữ số, nhận dạng kí tự, nhận dạng giọng nói,
nhận dạng chữ viết tay…
Trong đó, bài toán nhận dạng chữ viết tay là một bài toán khá phổ biến, nhất là trong thời đại
mà mọi thứ đều đang được số hóa như hiện nay. Với những ứng dụng nhận dạng chữ viết
tay, ta có thể dễ dàng chuyển các tài liệu giấy thành tài liệu số để lưu trữ trên máy tính một
cách nhanh chóng và hiệu quả.
Tuy nhiên, việc xây dựng một mạng nơron hiệu quả cho một bài toán phức tạp như bài toán

trình.


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