1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu thuật toán Neural Network và Support Vector Machine Áp dụng nhận dạng chữ số viết tay

36 1,4K 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 1,2 MB

Nội dung

Một số ứng dụng trong lĩnh vực này có thể kể đến như: các hệ tự động lập luận và chứng minh định lý; các hệ chuyên gia; các hệ hiểu và xử lýngôn ngữ tự nhiên; máy học và khai khoáng dữ l

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ TỪ XA QUA MẠNG

Bài tiểu luận:

Tìm hiểu thuật toán Neural Network và Support Vector Machine

Trang 2

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Contents

Chương 1: Mở đầu 4

Chương 2: Neural Network 5

1 Nguồn gốc 5

2 Mô hình một neuron – logistic unit 6

3 Mô hình neural network 7

4 Phân lớp đa lớp (Multi-class classification) 8

5 Forward propagation 9

6 Cost function 9

7 Back propagation algorithm 11

Chương 3: Support Vector Machine 13

0 Ký hiệu 13

1 Margin 13

1.1 Khái niệm: 13

1.2 Functional margin 14

1.3 Geometric margin 15

2 Bài toán tối ưu (Optimization problem) 16

3 Lagrange duality 16

4 Optimal margin classifier 19

5 Kernels 22

6 Regularization 25

7 SMO algorithm 27

7.1 Coordinate ascent 27

7.2 SMO 28

8 Kết luận 29

Chương 4: Thực nghiệm, đánh giá 31

1 Chương trình demo 31

1.1 Cấu trúc dữ liệu học 31

1.2 Cấu trúc engine máy học 31

Trang 3

1.3 Chương trình demo 31

2 Đánh giá 34

3 Kết luận: 34

Chương 5: Kết luận 35

1 So sánh giữa 2 thuật toán SVM và Neural Network 35

2 Tổng kết 35

Tài liệu tham khảo 36

Trang 4

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Chương 1: Mở đầu

Công nghệ thông tin được ra đời và phát triển từ những năm nữa cuối của thế kỉ

XX Và đến nay đã gặt hái được rất nhiều thành tựu vượt bậc, khả năng áp dụng rộng khắp vào tất các các ngành kinh tế, xã hội khác nhau và làm thay đổi không ít lối sống, cách suy nghĩ của con người hiện đại

Tuy nhiên, nhu cầu của con người ngày càng cao, họ không chỉ cần những thiết bị Công nghệ thông tin làm việc theo mệnh lệnh được lập trình sẵn, hỗ trợ tính toán

cơ bản hay lưu trữ dữ liệu và tìm kiếm thông thường Họ cần những thiết bị máy tính thông minh hơn, giúp họ tìm ra lời giải những bài toán khó, gợi ý cho họ tronggiải quyết các vấn đề phức tạp v.v…

Trước nhu cầu mới, ngành Khoa học máy tính nói chung và lĩnh vực Trí tuệ nhân tạo nói riêng nhận vai trò quan trọng trong việc nghiên cứu tìm ra các giải pháp

tiên tiến giúp làm ra những phần mềm và thiết bị máy tính đáp ứng nhu cầu trên Chúng phải có khả năng tự động xử lý thông tin, xử lý tri thức, suy luận tính toán

và điều khiển phức tạp Một số ứng dụng trong lĩnh vực này có thể kể đến như: các

hệ tự động lập luận và chứng minh định lý; các hệ chuyên gia; các hệ hiểu và xử lýngôn ngữ tự nhiên; máy học và khai khoáng dữ liệu; robotics v.v…

Nói tới máy học, hiện nay có rất nhiều thành tựu tiên tiến và rất nhiều trong số đó

đã được áp dụng vào thực tế trên nhiều lĩnh vực như tự động hóa, hỗ trợ ra quyết định, nhận dạng v.v… Với mục tiêu tiếp cận lĩnh vực này, nhóm đã chọn 2 thuật toán máy học nổi tiếng là Neuron Network và Support Vector Machine để tìm hiểu

và nghiên cứu cùng với việc xây dựng 1 ứng dụng nhỏ vào việc nhận dạng chữ số

Mô hình bài toán máy học chung là dựa trên tập dữ liệu học, máy tính sẽ tự tìm ra kết quả khi người dùng đưa vào tập dự liệu mới Dữ liệu này thường là tập các

thuộc tính dạng số nhị phân Do đó để nhận dạng được hình ảnh, hình ảnh phải

được xử lý chuyển sang chỗ số nhị phân Trong báo cáo này, hình ảnh các kí tự số

sẽ được chuyển thành ảnh nhị phân có kích thước 16x16 pixel, và tập dữ liệu học

sẽ có 256 thuộc tính tương đương với 256 điểm ảnh trong bức hình Chi tiết sẽ

được trình bày ở chương 4 của báo cáo này

Trang 5

Chương 2: Neural Network

Cấu trúc của một neuron gồm phần nhận “tín hiệu” gọi là Dendrite, hay “input

wires” Tín hiệu được xử lý bởi phần nhân “Nucleus” và trả về “tín hiệu” phản hồi tại Axon Axon của neuron này được nối kết với các dendrite của neuron lớn tiếp theo, khi đó “thông tin” đầu ra của neuron này được truyền đi từ axon bởi dòng

điện sinh học “electrical impules” đến dendrite của neuron thu nhận như là tín hiệuđầu vào

Trang 6

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

1 Mô hình một neuron – logistic unit

Dựa trên lý thuyết về neuron thần kinh được trình bày ở trên, mô hình 1 neuron

nhân tạo có cấu trúc như hình bên dưới

Một neuron, hay còn gọi là unit có n giá trị đầu vào Một unit khi được “kích hoạt” khi nhận giá trị từ đầu vào sẽ cho giá trị

h θ(x )=g(θ T x)

Trang 7

số (parameters) của unit.

Có nhiều loại hàm kích hoạt (activation function) cho một neuron nhân tạo, nhưng

logistic unit

2 Mô hình neural network

Layer 3 Output layer

Layer 1

Input layer

Layer 2 Hidden layer

Trang 8

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Một neural network gồm nhiều lớp các neuron Lớp đầu tiên gọi là input layer, lớp

gọi là output layer, số lượng node của lớp này tùy theo bài toán của chúng ta

Các lớp giữa 2 intput layer và output layer được gọi là hidden layer Tùy thiết kế

mà số lượng các hidden layer hay số lượng các unit trong mỗi layer có thể khác

nhau Đa phần, số lượng của các hidden layer là giống nhau Số lượng các hidden layer càng nhiều, thì cho kết quả “tốt”nhưng tiêu tốn thời gian tính toán nhiều hơn

3 Phân lớp đa lớp (Multi-class classification)

Trang 9

a1(l) +Θ12(l)

a2(l) +

Θ20(l)

a0(l) +Θ21(l)

a1(l) +Θ22(l)

a2(l) +

Trang 10

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Trong logistic regression, ta có hàm cost function như sau

min

Θ J (Θ)

Bằng cách sử dụng các thuật toán tối ưu hóa như gradient ascent Tuy nhiên, việc

ij

(l)J (Θ) trong quá trình tối ưu Θ Việc

ij

(l)J (Θ) có độ phức tạp cao khitính theo

Layer 2

Layer 3

Layer 4

Trang 11

6 Back propagation algorithm

Trang 12

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Trang 13

Chương 3: Support Vector Machine

Tương tự như Neuron nhân tạo, Support Vector Machine (SVM) cũng là 1 trong những thật toán học có giám sát phổ biến hiện nay Nói về SVM, báo cáo sẽ trình bày các phần về Margin và ý tưởng về việc phân loại dữ liệu bằng khoảng cách

lớn, Optimal margin classifier, cách sử dụng Lagrange duality và cuối cùng là thuậttoán SMO để giải bài toán tối tưu khi dùng SVM

Support vector machine là khái niệm trong thống kê và khoa học máy tính nhằm đểchỉ một phương pháp học có giám sát (supervised learning) với mục đích phân

tích dữ liệu và nhận biết mẫu (pattern recognize), được sử dụng trong phân loại

(classification) và phân tích hồi quy (regression analysis)

1 Ký hiệu

Phần này trình bày về ý nghĩa trực quan của margin và độ "tin cậy" đối với dự

đoán mà ta đưa ra

1+e− (w T

h θ ( x )= p ( y=1|x ;w , b) càng lớn, và độ tin cậy của ta càng cao khi phân loại y=1 Nếu

, y(i)

=1)

Trang 14

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

7.2 Functional margin

tin cậy cao và chính xác

Trang 15

7.3 Geometric margin

, y(i)

γ=min

i γ(i)

Trang 16

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

8 Bài toán tối ưu (Optimization problem)

Cho một training set, ta cần tìm một mặt phẳng phân cách sao cho cực đại

geometric function, vì nó thể hiện việc dự đoán có độ tin cậy cao và chính xác đối với training set và phù hợp với dữ liệu huấn luyện Đặc biệt là nó cho ta một sự

phân loại giữa các training example dương tính và âm tính bởi một khoảng cách (geometric margin)

Ta giả sử rằng tập dữ liệu có thể phân loại bởi hàm tuyến tính (linearly separable), tức là có thể phân chia các training example dương tính với các training example

âm tính bởi một mặt phẳng phân cách Nó đưa ta đến bài toán tối ưu sau

của geometric margin

Trang 18

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

θ P (w)={f (w) nếu w thỏa điều kiệnràng buộc ban đầu ∞ otherwise

Từ đó suy ra bài toán

Tiếp theo, ta định nghĩa

affine đều lồi

Trang 19

Dựa trên những giả thiết trên, thì luôn tồn tại w¿, α¿, β¿ mà w¿ là đáp số của bài toán

bài toán primal và dual

10 Optimal margin classifier

Ở phần trước, ta đã đưa ra bài toán sau để tìm optimal margin classifier

Trang 20

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Như hình trên, đường gạch ngang liền là mặt phẳng phân cách Có 3 điểm có

các đường đứt khúc song song với mặt phẳng phân cách Trong trường hợp này có

support vectors Trên thực tế, số lượng các support vector thường rất nhỏ so với

số lượng dữ liệu huấn luyện

Lagrangian cho vấn đề hiện tại

Trang 21

i : y ( i)=1

w¿T

x(i) 2

Trang 22

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

ϕ (x ) Tức ta chỉ đơn giản thay x bằng ϕ(x ) trong các phần trên

K ( x , z)=ϕ( x ) T ϕ (z)

Trang 23

SVM cho phép thuật toán có thể học từ không gian feature có chiều rất lớn mà

Trang 24

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

)

K ( x , z ) sẽ lớn và ngược lại, khi 2 vector ϕ ( x )ϕ ( z ) xa nhau (gần vuông góc với

Ví dụ:

K ( x , z)=exp(−‖x−z‖2

2 σ2 )

Trang 25

, … , x(m)} thì ma trận kernel tương ứng là đối xứng

chúng ta cũng không thể đảm bảo rằng nó luôn đúng Hơn nữa, trong một vài

trường hợp, việc tìm một mặt phẳng phân cách không chính xác là cái mình long muốn do chịu ảnh hưởng không chính xác từ một số các giá trị ngoại lai Ví dụ nhưtrong hình dưới

Hình bên trái cho ta thấy optimal margin classifier, và hình phải thể hiện sự thay đổi lớn của optimal margin classifier khi ta thêm chỉ duy nhất một giá trị ngoại lai

và margin của classifier đối với tập dữ liệu bây giờ nhỏ hơn nhiều

Để giúp thuật toán có thể làm việc trong tập dữ liệu không phân tách tuyến tính

được cũng như bớt nhạy cảm với các giá trị ngoại lai, ta xây dựng lại bài toán tối

ưu như sau

Trang 26

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

dụng để giải bài toán đã trình bày chi tiết ở phần trên

Trước tiên, ta trình bày về thuật toán coordinate ascent Xét bài toán tối ưu không chứa điều kiện ràng buộc sau

Trang 27

Để giải bài toán trên, ta sử dụng thuật toán coordinate ascent

Thuật toán coordinate ascent

1 loop until convergence {

End of Coordinate ascent

dàng và hiệu quả

Hình vẽ trên thể hiện cách hoạt động của thuật toán coordinate ascent Các vòng

song song với các trục tọa độ do trong mỗi lần lặp, ta chỉ hiệu chỉnh một biến duy nhất

Trở lại bài toán tối ưu ta cần giải

Trang 28

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Thuật toán SMO

repeat till convergence {

Trang 29

Từ điều kiện ràng buộc 0 ≤ α i ≤ C ∀ α i, thì (α i , α j)[0,C]×[0,C] (tức nằm trong hình

Như vậy, thuật toán SVM hình thành từ khái niệm margin và bài toán optimal

margin classifier nhằm và dẫn đến bài toán tối ưu sau

Trang 30

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Trang 31

Chương 4: Thực nghiệm, đánh giá

1 Chương trình demo

Semeion+Handwritten+Digit, bao gồm

- 1593 chữ số viết tay của 80 người được đưa vào máy tính xử lý, chuyển thành

hình ảnh nhị phân có kích thước 16x16pixel, mỗi pixel cso giá trị là 0 hoặc 1

- Hình ảnh nhị phân sẽ được ghi vào cơ sở dữ liệu học gồm có 256 thuộc tính

(tương đương với 256 pixel), mỗi thuộc tính có giá là là 0 hoặc 1

Input: Là 1 vector có 256 giá trị 0/1 thể hiện cho giá trị đọc từ tập tin dữ liệu học.Output: Là 1 vector có 10 giá trị 0/1, trong đó vị trí của số 1 trong vector này thể hiện cho giá trị của số được nhận dạng

Ví dụ: số 0 là 1000000000, số 1 là 0100000000 v.v…

Neural Network được cài đặt có 3 layer với input layer có 256 node tương ứng với

256 giá trị sẽ được truyền vào, hidden layer có 266 node và output layer là 10 nodetương ứng với 10 giá trị output trình bày ở trên

SVM được cài đặt thành 10 engine khác nhau dùng để nhận dạng các kí tự từ 0…9.Mỗi engine sẽ có input là 1 vector 256 giá trị và output là {1,-1} Khi thực hiện

nhận dạng, chương trình sẽ duyệt qua 10 engine này để tìm engine nào trả về giá trịoutput là 1 sẽ tương ứng với số nhận dạng được

Trang 32

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Các thư viện sử dụng:

mọi nền tảng (Windows hoặc Linux)

hình ảnh bằng C++

Hướng dẫn cài đặt môi trường windows để chạy ứng dụng demo

- Tải và cài đặt thư viện MinGW cho windows tại địa chỉ

http://sourceforge.net/projects/mingw/files/

- Tải và cài đặt thư viện OpenCV cho Windows tại địa chỉ

http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.0/

- Cập nhật lại biến PATH cho hệ điều hành Trên Windows 7, vào "Control

Panel", chọn "System and Security", chọn "Advanced system setting", chọn tab

"Advanced", chọn "Envioment Variables", ở mục "System variable" chọn Path,

bấm Edit và thêm vào chuỗi đường dẫn sau

Hình ảnh tự nhiên của 1 chữ số Dùng hàm findContour để tìm hình chữ nhật nhỏ nhất chứa chữ số cần nhận dạng.

Cắt hình ban đầu theo kích thước và vị trí hình chữ nhật tìm được.

Cắt hình ban đầu theo kích thước và vị trí hình chữ nhật tìm được.

Chuyển thành hình trắng đen (grayscale)

Chuyển thành ảnh nhị phân với các pixel có độ xám <130 sẽ có giá trị là 1 và ngược

Trang 33

Đây là 3 đường dẫn tới thư mục binary của 2 thư viện bổ xung ở trên (Tên đường

có thể thay đổi tùy vào lúc cài đặt các gói thư viện)

Hình ảnh giao diện của chương trình demo:

Trang 34

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

15 Đánh giá

- Cả 2 thuật toán đã nhận dạng được 100% kí tự số không nhiễu được tạo từ các bộ font phổ biến trên máy tính Và khoảng 60% kí tự viết tay được scan hoặc chụp thành hình ảnh đưa vào máy tính

- Tuy nhiên tốc độ “training” và nhận dạng của Neural Network chậm hơn

SVM khá nhiều

- Các kí tự số viết tay thường khó nhận dạng được là số 6, số 9, số 8 Lý do chủ yếu là vì chương trình xử lý hình ảnh cho kết quả nhị phân chưa thật sự tốt

16 Kết luận:

- Việc nhận dạng chữ số viết tay hiện tại không đánh giá chính xác được chất lượng của 2 thuật toán nói trên vì kĩ thuật xử lý ảnh chưa thật sự tốt và còn phụ thuộc nhiều vào chất lượng hình ảnh và độ nhiễu của môi trường xung quanh

- Tuy nhiên, với tỉ lệ nhận dạng thành công như trên, cũng đã phần nào nói lên hiệu quả khi được đầu tư áp dụng vào thực tế

Trang 35

Chương 5: Kết luận

1 So sánh giữa 2 thuật toán SVM và Neural Network

- Quá trình phát triển của NN bắt đầu từ một thuật toán heuristic, trải qua thựcnghiệm và áp dụng, và cuối cùng tiến đến lý thuyết Ngược lại, quá trình

phát triển của SVM bắt nguồn từ lý thuyết, sau đó áp dụng lý thuyết trên vàothực nghiệm

- Trong Neural Network, việc tìm kiếm tối ưu có thể chỉ tìm được lời giải cục

bộ địa phương thay vì lời giải tối ưu toàn cục Trong khi đó, lời giải của

SVM là toàn cục và là duy nhất do bài toán tối ưu là bài toán lồi

- Lý thuyết của SVM dựa trên một diễn giải hình học Độ phức tạp của SVM không phụ thuộc vào số chiều của không gian đầu vào (input space)

- Neural Network áp dụng nguyên tắc tối thiểu rủi ro thực nghiệm (empirical risk minimization) Trong khi, SVM dựa trên nguyên tắc tối thiểu rủi ro cấu trúc (structural risk minimization)

- SVM thường hoạt động tốt hơn NN do SVM ít bị ảnh hưỡng bởi overfitting (hiện tượng hàm phân lớp thể hiện rất tốt trên tập dữ liệu huấn luyện như rất tồi trên dữ liệu thực tế) Độ phức tạp phân lớp trong việc dự đoán của SVM tuyến tính với số lượng support vector, vì thế thời gian dự đoán rất nhanh

Trang 36

Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM

Tài liệu tham khảo

[3] GS.TSKH Hoàng Kiếm, Slide Công nghệ tri thức và ứng dụng, Trường Đại

học CNTT

[4] Nguyễn Hoàng Vũ, Lê Quý Quốc Cường; khóa luận tốt nghiệp Nghiên cứu

phương pháp phân đa lớp văn bản bằng SVM và một số cải tiến, 2011; GVHD:

TS Vũ Thanh Nguyên, Đại học Công Nghệ Thông Tin

[5] R T Rockarfeller (1970), Convex Analysis, Princeton University Press.

[6] Ts Nguyễn Đình Thúc, Trí tuệ nhân tạo- mạng noron - phương pháp và ứng

Ngày đăng: 10/04/2015, 16:27

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w