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 (2.87 MB, 30 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b> KHOA CÔNG NGHỆ THÔNG TIN</b>
======***======
<b> Sinh viên: Trần Ngọc Dương - 2019604594 HoKng Anh Nghiê Lp - 2019605727</b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>LỜI NÓI ĐẦU...1</b>
<b>Chương 1. Tổng quan về trí tuệ nhân tạo...2</b>
<b>1.1. Trí tuệ nhân tạo lK gì...2</b>
<b>Chương 3. Tổng quan về nhận diện số viết tay...13</b>
<b>3.1. Quy trình nhận dạng số viết tay...13</b>
<b>3.2. Tổng quan về các phương pháp huấn luyện...13</b>
<b>3.2.1. Mơ hình markoov...13</b>
<b>3.2.2. Máy vector hỗ trợ...14</b>
<b>3.2.3. Mạng neural...15</b>
<b>Chương 4. Nhận diện số viết tay...17</b>
<b>4.1. Mục đích vK ý nghĩa thực tiễn của đề tKi...17</b>
<b>4.2. BKi tốn...17</b>
<b>4.2. Trực quan hóa dữ liệu...18</b>
<b>4.3. Xử lý dữ liệu...19</b>
<b>4.4. Kiểm thử mơ hình...20</b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>KẾT LUẬN...24TÀI LIỆU THAM KHẢO...25</b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>Hình 2: Mơ hình SVM...6</b>
<b>Hình 3: Phân loại thống kê trong học máy...7</b>
<b>Hình 4: Mă Lt phân cách hai lớp...8</b>
<b>Hình 5: Margin của hai classes lK bằng nhau vK lớn nhất có thể...9</b>
<b>Hình 6: Ví dụ về siêu phvng...10</b>
<b>Hình 7: Quy trình nhâ Ln dạng số viết tay...12</b>
<b>Hình 8: Sơ đw khối xử lý...13</b>
<b>Hình 9: Xuất mảng số dưới dạng ma trâ Ln...17</b>
<b>Hình 10: Sử dụng matplotlib để trực quan hóa mảng số...17</b>
<b>Hình 11: Trực quan hóa các con số...18</b>
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><b>LỜI NÓI ĐẦU</b>
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 tố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
<b>Chương 1: Tổng quan về trí tuệ nhân tạo : Giới thiệu tổng quan về trí</b>
tuệ nhân tạo và các ứng dụng của nó trong đời sống thực tiễn
<b>Chương 2: Support Vector Machine: Trình bày sơ qua về thuật toán</b>
Support Vector Machine và cách hoạt động của thuật toán
<b>Chương 3: Tổng quan về nhận diện số viết tay: Mô tả tổng quan về chủ</b>
đề nhận dạng số viết tay, một số phương pháp nhận dạng cơ bản
<b>Chương 4: Nhận dạng số viết tay: Mơ tả và thực hiện bài tốn bằng ngơn</b>
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
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">● 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.
<b>1.2. Mục đích của AI</b>
● 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
<b>1.3. Những đóng góp của AI trong các lĩnh vực trong cuộc sống</b>
● 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, Tốn học, Sinh học, Kỹ thuật…
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">H nh 1 : C愃Āc l$nh vực c%a AI
<b>1.4. Một số ứng dụng AI</b>
<b>1.4.1. Trong vận tải: Trí tuệ nhân tạo được ứng dụng trên những phương</b>
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.
<b>1.4.2. Trong y tế: quản trị, điều trị từ xa, hỗ trợ chuẩn đốn,phẫu thuật</b>
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.
<b>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</b>
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.
<b>1.4.4. Trong dịch vụ: Công nghệ AI giúp ngành dịch vụ hoạt động tối ưu</b>
hơn và góp phần mang đến những trải nghiệm mới mẻ hơn và tốt
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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.
<b>1.5. Phân loại AI</b>
Công nghệ AI được chia làm 4 loại chính:
<b>Loại 1: Cơng nghệ AI phản ứng: Cơng nghệ AI phản ứng có khả</b>
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.
<b>Loại 2: Công nghệ AI với bộ nhớ hạn chế: Đặc điểm của công</b>
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ự đố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 tốn khoảng cách với các xe phía trước, cơng nghệ AI sẽ dự đốn khả năng xảy ra va chạm, từ đó điều chỉnh tốc độ xe phù hợp để giữ an tồn cho xe.
<b>Loại 3: Lý thuyết trí tuệ nhân tạo: Cơng nghệ AI này có thể học</b>
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.
<b>Loại 4: Tự nhận thức: Công nghệ AI này có khả năng tự nhận thức</b>
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.
<b>1.6. Các thKnh phần trong hệ thống AI</b>
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:
<b>AI = Tri thức + Suy diễn</b>
Tri thức của bài tố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ừ.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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 tốn đó. Với mỗi cách biểu diễn sẽ có các giải pháp tương ứng.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">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 tố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
<small> </small>
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:
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">-Trong không gian 3 chiều:
<b>2.2.Tổng quan về máy vectơ hỗ trợ</b>
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 qt 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 tố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
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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.
<b>2.3. Cách hoạt động</b>
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 tồn bộ các điểm thuộc class cịn lại. Chúng ta đã biết rằng, thuật tố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
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">- Ta sẽ tìm hiểu cách phân loại chữ số sử dụng HOG và thuật tố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.
<b>3.2.3. Mạng neural</b>
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 tốn, thích hợp bài tố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.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="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ữ q 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.
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">- 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 tố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.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22"><b>4.2. BKi toán</b>
Ở 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
<b>4.2. Trực quan hóa dữ liệu</b>
Dưới đây là việc sử dụng matplotlib để trực quan hóa mảng số ở phía trên.
</div>