Báo Cáo Bài Tập Lớn Trí Tuệ Nhân Tạo Đề Tàiv Nhận Dạng Kí Tự Số Viết Tay.pdf

30 10 0
Tài liệu đã được kiểm tra trùng lặp
Báo Cáo Bài Tập Lớn Trí Tuệ Nhân Tạo Đề Tàiv Nhận Dạng Kí Tự Số Viết Tay.pdf

Đ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

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

======***======

BÁO CÁO BÀI TẬP LỚN

Học phần: Trí Tuệ Nhân Tạo

Sinh viên: Trần Ngọc Dương - 2019604594 HoKng Anh Nghiê Lp - 2019605727

Trang 2

LỜI NÓI ĐẦU 1

Chương 1 Tổng quan về trí tuệ nhân tạo 2

1.1 Trí tuệ nhân tạo lK gì 2

Chương 3 Tổng quan về nhận diện số viết tay 13

3.1 Quy trình nhận dạng số viết tay 13

3.2 Tổng quan về các phương pháp huấn luyện 13

3.2.1 Mô hình markoov 13

3.2.2 Máy vector hỗ trợ 14

3.2.3 Mạng neural 15

Chương 4 Nhận diện số viết tay 17

4.1 Mục đích vK ý nghĩa thực tiễn của đề tKi 17

4.2 BKi toán 17

4.2 Trực quan hóa dữ liệu 18

4.3 Xử lý dữ liệu 19

4.4 Kiểm thử mô hình 20

Trang 3

KẾT LUẬN 24TÀI LIỆU THAM KHẢO 25

Trang 4

Hình 1: Các lĩnh vực của AI 3

Hình 2: Mô hình SVM 6

Hình 3: Phân loại thống kê trong học máy 7

Hình 4: Mă Lt phân cách hai lớp 8

Hình 5: Margin của hai classes lK bằng nhau vK lớn nhất có thể 9

Hình 6: Ví dụ về siêu phvng 10

Hình 7: Quy trình nhâ Ln dạng số viết tay 12

Hình 8: Sơ đw khối xử lý 13

Hình 9: Xuất mảng số dưới dạng ma trâ Ln 17

Hình 10: Sử dụng matplotlib để trực quan hóa mảng số 17

Hình 11: Trực quan hóa các con số 18

Trang 5

LỜI NÓI ĐẦU

Ngày nay với sự không ngừng phát triển của ngành công nghệ thông tin đặc biệt là lĩnh vực về trí tuệ nhân tạo đã đưa con người lên một tầm cao mới Hiện nay văn thư tại các cơ quan nhà nước, doanh nghiệp nhận được rất nhiều loại văn bản cần phải nhập lại vào phần mềm Tuy nhiên việc gõ văn bản với nhiều form khác nhau được thực hiện thủ công tốn nhiều thời gian công sức nhưng vẫn tiềm ẩn nguy cơ sai sót các đơn vị ngân hàng – bảo hiểm – viễn thông cần lấy thông tin từ chứng minh nhân dân của khách hàng thương phải nhập từng trường vào hệ thống phần mềm để quản lý, việc này mất khá nhiều thời gian và dễ dẫn đến sai sót Trong một lĩnh vực khác, việc quản lý thông tin sổ đỏ được thực hiện còn khá thủ công, các đơn vị chức năng phải nhập thủ công các trường thông tin gây khó khăn cho công tác tìm kiếm và khai thác thông tin Qua quá trình học tập và tìm hiểu về môn Trí tuệ nhân tại nhóm em đã được biết đến thuật toán Support Vector Machines đó chính lý do để chúng em lựa chọn đề tài: Tìm hiểu thuật toán Support Vector Machines và ứng dụng trong bài toán: Nhận diện số viết tay

Chương 1: Tổng quan về trí tuệ nhân tạo : Giới thiệu tổng quan về trí

tuệ nhân tạo và các ứng dụng của nó trong đời sống thực tiễn

Chương 2: Support Vector Machine: Trình bày sơ qua về thuật toán

Support Vector Machine và cách hoạt động của thuật toán

Chương 3: Tổng quan về nhận diện số viết tay: Mô tả tổng quan về chủ

đề nhận dạng số viết tay, một số phương pháp nhận dạng cơ bản

Chương 4: Nhận dạng số viết tay: Mô tả và thực hiện bài toán bằng ngôn

ngữ Python, thuật toán SVM và thư viện scikit-learn.

Chúng em xin chân thành cảm ơn! Nhóm sinh viên thực hiện

Trang 6

Chương 1 Tổng quan về trí tuệ nhân tạo 1.1 Trí tuệ nhân tạo lK gì

● AI - Artificial Intelligence hay còn gọi là Trí tuệ nhân tạo là một ngành khoa học, kỹ thuật chế tạo máy móc thông minh, đặc biệt là các chương trình máy tính thông minh.

● AI được thực hiện bằng cách nghiên cứu cách suy nghĩ của con người, cách con người học hỏi, quyết định và làm việc trong khi giải quyết một vấn đề nào đó, và sử dụng những kết quả nghiên cứu này như một nền tảng để phát triển các phần mềm và hệ thống thông minh, từ đó áp dụng vào các mục đích khác nhau trong cuộc sống Nói một cách dễ hiểu thì AI là việc sử dụng, phân tích các dữ liệu đầu vào nhằm đưa ra sự dự đoán rồi đi đến quyết định cuối cùng.

1.2 Mục đích của AI

● Tạo ra các hệ thống chuyên gia - là các ứng dụng máy tính được phát triển để giải quyết các vấn đề phức tạp trong một lĩnh vực cụ thể, ở mức độ thông minh và chuyên môn của con người.

● Thực hiện trí thông minh của con người trong máy móc - Tạo ra các hệ thống có thể hiểu, suy nghĩ, học hỏi và hành xử như con người

1.3 Những đóng góp của AI trong các lĩnh vực trong cuộc sống

● AI là môt ngành khoa học và công nghệ dựa trên nhiều ngành khác như Khoa học máy tính, Toán học, Sinh học, Kỹ thuật…

Trang 7

H nh 1 : C愃Āc l$nh vực c%a AI

1.4 Một số ứng dụng AI

1.4.1 Trong vận tải: Trí tuệ nhân tạo được ứng dụng trên những phương

tiện vận tải tự lái, điển hình là ô tô Sự ứng dụng này góp phần mang lại lợi ích kinh tế cao hơn nhờ khả năng cắt giảm chi phí cũng như hạn chế những tai nạn nguy hiểm đến tính mạng.

1.4.2 Trong y tế: quản trị, điều trị từ xa, hỗ trợ chuẩn đoán,phẫu thuật

nhờ có sợ giúp đỡ của robot giúp các bác sĩ chữa trị cho bệnh nhân dễ dàng hơn, người bệnh phát hiện sớm bệnh và có thể chữa bị kịp thời.

1.4.3 Trong giáo dục: Các hoạt động giáo dục như chấm điểm hay dạy

kèm học sinh có thể được tự động hóa nhờ công nghệ AI Nhiều trò chơi, phần mềm giáo dục ra đời đáp ứng nhu cầu cụ thể của từng học sinh, giúp học sinh cải thiện tình hình học tập theo tốc độ riêng của mình.

1.4.4 Trong dịch vụ: Công nghệ AI giúp ngành dịch vụ hoạt động tối ưu

hơn và góp phần mang đến những trải nghiệm mới mẻ hơn và tốt

Trang 8

hơn cho khách hàng Thông qua việc thu thập và phân tích dữ liệu, công nghệ AI có thể nắm bắt thông tin về hành vi sử dụng dịch vụ của khách hàng, từ đó mang lại những giải pháp phù hợp với nhu cầu của từng khách hàng.

1.5 Phân loại AI

Công nghệ AI được chia làm 4 loại chính:

Loại 1: Công nghệ AI phản ứng: Công nghệ AI phản ứng có khả

năng phân tích những động thái khả thi nhất của chính mình và của đối thủ, từ đó, đưa ra được giải pháp tối ưu nhất Một ví dụ điển hình của công nghệ AI phản ứng là Deep Blue.

Loại 2: Công nghệ AI với bộ nhớ hạn chế: Đặc điểm của công

nghệ AI với bộ nhớ hạn chế là khả năng sử dụng những kinh nghiệm trong quá khứ để đưa ra những quyết định trong tương lai Công nghệ AI này thường kết hợp với cảm biến môi trường xung quanh nhằm mục đích dự đoán những trường hợp có thể xảy ra và đưa ra quyết định tốt nhất cho thiết bị

Ví dụ như đối với xe không người lái, nhiều cảm biến được trang bị xung quanh xe và ở đầu xe để tính toán khoảng cách với các xe phía trước, công nghệ AI sẽ dự đoán khả năng xảy ra va chạm, từ đó điều chỉnh tốc độ xe phù hợp để giữ an toàn cho xe.

Loại 3: Lý thuyết trí tuệ nhân tạo: Công nghệ AI này có thể học

hỏi cũng như tự suy nghĩ, sau đó áp dụng những gì học được để thực hiện một việc cụ thể Hiện nay, công nghệ AI này vẫn chưa trở thành một phương án khả thi.

Loại 4: Tự nhận thức: Công nghệ AI này có khả năng tự nhận thức

về bản thân, có ý thức và hành xử như con người Thậm chí, chúng còn có thể bộc lộ cảm xúc cũng như hiểu được những cảm xúc của con người.

1.6 Các thKnh phần trong hệ thống AI

Hê q thống trí tuê q nhân tạo bao gồm hai thành phần cơ bản đó là biểu diễn tri thức và tìm kiếm tri thức trong miền biểu diễn:

AI = Tri thức + Suy diễn

Tri thức của bài toán có thể được phân ra làm ba loại cơ bản đó là tri thức mô tả, tri thức thủ tục và tri thức điều khiển.

Để biểu diễn tri thức người ta sử dụng các phương pháp sau đây: Phương pháp biểu diễn nhờ luật

Phương pháp biểu diễn nhờ mạng ngữ nghĩa Phương pháp biểu diễn nhờ bộ ba liên hợp OAV Phương pháp biểu diễn nhờ Frame.

Phương pháp biểu diễn nhờ logic vị từ.

Trang 9

Sau khi tri thức của bài toán đã được biểu diễn, kỹ thuật trong lĩnh vực trí tuê q nhân tạo là các phương pháp tìm kiếm trong miền đă qc trưng tri thức về bài toán đó Với mỗi cách biểu diễn sẽ có các giải pháp tương ứng.

Trang 10

Chương 2 Support Vector Machine 2.1 Khái niệm

Máy vectơ hỗ trợ (SVM - viết tắt tên tiếng Anh support vector machine) là một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương pháp học có giám sát liên quan đến nhau để phân loại và phân tích hồi quy SVM dạng chuẩn nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau Do đó SVM là một thuật toán phân loại nhị phân Với một bộ các ví dụ luyện tập thuộc hai thể loại cho trước, thuật toán luyện tập SVM xây dựng một mô hình SVM để phân loại các ví dụ khác vào hai thể loại đó Một mô hình SVM là một cách biểu diễn các điểm trong không gian và lựa chọn ranh giới giữa hai thể loại sao cho khoảng cách từ các ví dụ luyện tập tới ranh giới là xa nhất có thể Các ví dụ mới cũng được biểu diễn trong cùng một không gian và được thuật toán dự đoán thuộc một trong hai thể loại tùy vào ví dụ đó nằm ở phía nào của ranh giới.

H nh 2:Mô h nh SVM

Công thức tính khoảng cách từ một điểm đến siêu phẳng:

-Trong không gian 2 chiều, khoảng cách từ 1 điểm có tọa độ (x0,y0) tới đường thẳng có pt w1x+w2y+b=0được xác định bởi:

Trang 11

-Trong không gian 3 chiều:

2.2.Tổng quan về máy vectơ hỗ trợ

Một máy vectơ hỗ trợ xây dựng một siêu phẳng hoặc một tập hợp các siêu phẳng trong một không gian nhiều chiều hoặc vô hạn chiều, có thể được sử dụng cho phân loại, hồi quy, hoặc các nhiệm vụ khác Một cách trực giác, để phân loại tốt nhất thì các siêu phẳng nằm ở càng xa các điểm dữ liệu của tất cả các lớp (gọi là hàm lề) càng tốt, vì nói chung lề càng lớn thì sai số tổng quát hóa của thuật toán phân loại càng bé.Trong nhiều trường hợp, không thể phân chia các lớp dữ liệu một cách tuyến tính trong một không gian ban đầu được dùng để mô tả một vấn đề Vì vậy, nhiều khi cần phải ánh xạ các điểm dữ liệu trong không gian ban đầu vào một không gian mới nhiều chiều hơn, để việc phân tách chúng trở nên dễ dàng hơn trong không gian mới Để việc tính toán được hiệu quả, ánh xạ sử dụng trong thuật toán SVM chỉ đòi hỏi tích vô hướng của các vectơ dữ liệu trong không gian mới có thể được tính dễ dàng từ các tọa độ trong không gian cũ Tích vô hướng này được xác định bằng một hàm hạt nhân K(x,y) phù hợp Một siêu phẳng trong không gian mới được định nghĩa là tập hợp các điểm có tích vô hướng với một vectơ cố định trong không gian đó là một hằng số Vectơ xác định một siêu phẳng sử dụng trong SVM là một tổ hợp tuyến tính của các vectơ dữ liệu luyện tập trong không gian mới với các hệ số αi Với siêu phẳng lựa chọn như trên, các điểm x trong không gian đặc trưng được ánh xạ vào một siêu mặt phẳng là các điểm thỏa mãn:Σi, αi, K(xi,x) = hằng sốGhi chú rằng nếu K(x,y) nhận giá trị ngày càng nhỏ khi y xa dần khỏi x thì mỗi số hạng của tổng trên được dùng để đo độ tương tự giữa x với điểm xi tương ứng trong dữ liệu luyện tập Như vậy, tác dụng của tổng trên chính là so sánh khoảng cách giữa điểm cần dự đoán với các điểm dữ liệu đã biết Lưu ý là tập hợp các điểm x được ánh xạ vào một siêu phẳng

Trang 12

có thể có độ phức tạp tùy ý trong không gian ban đầu, nên có thể phân tách các tập hợp thậm chí không lồi trong không gian ban đầu.

H nh 3:Phân loại th Āng kê trong h漃⌀c m愃Āy

Thuật to愃Ān SVM ban đầu được t m ra bởi Vladimir N Vapnik và dạng chuẩn hiện nay sử dụng lề mềm được t m ra bởi Vapnik và Corinna Cortes năm 1995.

2.3 Cách hoạt động

Chúng ta cùng quay lại với bài toán trong Perceptron Learning Algorithm (PLA) Giả sử rằng có hai class khác nhau được mô tả bởi các điểm trong không gian nhiều chiều, hai classes này linearly separable, tức tồn tại một siêu phẳng phân chia chính xác hai classes đó Hãy tìm một siêu mặt phẳng phân chia hai classes đó, tức tất cả các điểm thuộc một class nằm về cùng một phía của siêu mặt phẳng đó và ngược phía với toàn bộ các điểm thuộc class còn lại Chúng ta đã biết rằng, thuật toán PLA có thể làm được việc này nhưng nó có thể cho chúng ta vô số nghiệm như hình dưới đây:

H nh 4:Mă Dt phân c愃Āch hai lEp

Trang 19

- Ta sẽ tìm hiểu cách phân loại chữ số sử dụng HOG và thuật toán SVM:

- Có được bộ dữ liệu hình ảnh của các chữ mong muốn thực hiện - Phân vùng bộ dữ liệu, training và kiểm tra.

- Training sử dụng tính năng HOG - Sử dụng thuật toán SVM để kiểm tra.

Kết quả nghiên cứu

- Sau khi trải qua quá trình trainning và nhận dạng được sẽ xuất ra được kết quả là chữ sau khi nhận dạng được Việc khó khăn vẫn là thói quen viết của từng người nên sự chuẩn xác không phải là chắc chắn.

Hướng phát triển tiếp theo

- Cải tiến một số thuật toán tiền xử lý để chương trình có tốc độ tốt hơn

- Phát triển giao diện thân thiện hơn với người sử dụng.

3.2.3 Mạng neural

Mạng nơ-ron cung cấp một hướng tiếp cận mạnh cho các giá trị thực xấp xỉ, giá trị rời rạc hay các véc-tơ giá trị Trong nhiều dạng của vấn đề, mạng nơ-ron nhân tạo là một trong những phương pháp máy học hiểu quả hiện nay Trong phần nghiên cứu của mình, kỹ thuật mạng nơron truyền ngược (backpropagation), một trong những phương pháp hiểu quả trong trong nhiều bài toán, thích hợp bài toán nhận dạng chữ viết tay của chúng ta.

Mạng nơ-ron giúp xây dựng một tập cơ sở dữ liệu từ việc huấn luyện các tập mẫu có sẵn Cơ sở dữ liệu này được dùng trong nhận dạng ký tự từ các đặc điểm phân tích được.

Kết quả nghiên cứu:

Phát triển một kỹ thuật nhận dạng ký tự viết tay dùng phương pháp nhận dạng dựa trên thông tin tĩnh

Xây dựng mạng nơ-ron nhân tạo nhằm tạo ra cơ sở dữ liệu tri thức cho quá trình nhận dạng

Trang 20

Ưu điểm của sự cải tiến này không những làm giảm thời gian thi hành của giải thuật mà còn đưa ra các đặc điểm chính xác hơn

Các véc-tơ đặc điểm được đưa vào giai đoạn huấn luyện, các véc-tơ này sẽ được đưa vào giai đoạn nhận dạng.

Nhược điểm:

Giải thuật làm mỏng không phù hợp chữ viết chữ quá nhỏ, các nét viết có thể dính từ nét này qua nét khác

Mẫu được huấn luyện quá ít, không thể đánh giá xác thực được độ chính xác của chương trình một cách tuyệt đối.

Màu sắc của chữ sẽ không ảnh hưởng tới giải thuật trong trường hợp áp dụng trên các thiết bị di động

Hướng phát triển sắp tới

Tăng cường và bổ sung thêm một số các đặc điểm khác cần phải rút trích để tăng độ tin cậy và lưu những thông tin chính xác hơn về đặc trưng của ký tự, áp dụng một số phương pháp cải tiến trong mạng nơ-ron để tăng độ tin cậy cho mạng

Không dừng lại ở mức chỉ nhận dạng một kí tự đơn thuần, sắp tới họ sẽ cố gắng áp dụng các giải thuật phân mảnh để ứng dụng có khả năng đọc một từ gồm nhiều kí tự viết dính liền nhau, dẫn tới khả năng có thể đọc được cả một đoạn văn bản.

Trang 21

Chương 4 Nhận diện số viết tay 4.1 Mục đích vK ý nghĩa thực tiễn của đề tKi

- Mục đích nghiên cứu của đề tài:

Nghiên cứu và đề xuất các phương pháp nhận diện chữ số viết tay

Tích hợp giải pháp vào hệ thống phân loại email và đánh giá hiệu quả

- Ý nghĩa khoa học thực tiễn của đề tài:

SVM là một phương pháp hiệu quả cho bài toán phân lớp dữ liệu Nó là một công cụ đắc lực cho các bài toán về xử lý ảnh, phân loại văn bản, phân tích quan điểm Một yếu tố làm nên hiệu quả của SVM đó là việc sử dụng Kernel function khiến cho các phương pháp chuyển không gian trở nên linh hoạt hơn - Đóng góp về mặt phương pháp luận và thực nghiệm vào lĩnh vực

nhận diện chữ số viết tay cho các cơ quan, ngân hàng, công ty doanh nghiệp.

Trang 22

4.2 BKi toán

Ở phần này của báo cáo, chúng ta sẽ cùng nhau áp dụng thuật toán support vector classifier để thực hiện phân lớp các ký tự số viết tay có giá trị từ 0 đến 9 Dưới đây là nhãn của tập huấn luyện.

Vài điều về dữ liệu, dữ liệu chúng ta được lấy từ dataset object trong sklearn, gồm 1797 ví dụ, 64 thuộc tính (vì ảnh là ảnh 8x8), giá trị của các điểm ảnh nằm trong khoảng từ 0 tới 16 Những bức ảnh trên là chữ viết tay của 43 người khác nhau, trong đó, chữ viết của 30 người sẽ được dùng cho tập dữ liệu huấn luyện (train_set), phần còn lại 13 người sẽ dùng cho tập thử (test_set).

Xuất một bức ảnh dưới dạng ma trận

H nh 9:Xuất mảng s Ā dưEi dạng ma trâ Dn

4.2 Trực quan hóa dữ liệu

Dưới đây là việc sử dụng matplotlib để trực quan hóa mảng số ở phía trên.

Ngày đăng: 04/05/2024, 14:22

Tài liệu cùng người dùng

Tài liệu liên quan