Tổng quan về trí tuệ nhân tạo
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.
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
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…
H nh 1 : C愃Āc l$nh vực c%a AI
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 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.
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.
Support Vector Machine
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.
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:
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 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.
Ưu vK nhược điểm của thuật toán
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
Tổng quan về nhận diện số viết tay
Tổng quan về các phương pháp huấn luyện
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.
Nhận diện số viết tay
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.
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
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.
H nh 10:Sử dụng matplotlib để trực quan hóa mảng s Ā Trực quan hóa các con số, với 10 phần tử đầu tiên
H nh 11:Trực quan hóa c愃Āc con s Ā
Xử lý dữ liệu
H nh 12:Chuyển ảnh thành vector
Chia tập dữ liệu trong trường hợp này chúng ta sẽ chia test_size = 0.01, tức là 17 bản ghi cho việc kiểm thử, phần còn lại là cho việc huấn luyện.
H nh 13:Huấn luyê D n mô h nh
Trong phương thức SVC, ta thấy có chỉ số c = 100 và gamma = 0.01 Tạm giải thích như sau, chỉ số c có thể được coi là chỉ số “lỗi” nếu ta để “C” càng lớn, tức là mô hình sẽ dự đoán sai càng nhiều, ngược lại nếu “C” nhỏ, mô hình sẽ dự đoán ít xảy ra lỗi hơn Nhưng không vì thế mà cứ thấy “C” nhỏ là có thể đánh giá mô hình đó là mô hình tốt, vì khi set chỉ số C, ta nên dựa vào sự “sai lệch” của dữ liệu trong tập dữ liệu của chúng ta, để từ đó có thể đưa ra một con số phù hợp cho “C” Gamma thì cũng tương tự, chỉ số này thể hiện đường cong của mô hình, gamma càng lớn, mô hình sẽ càng cong để cố gắng không tạo ra sai số, gamma càng nhỏ thì càng ít đường cong trong mô hình, việc lựa chọn gamma cũng tương tự như “C”, ta cần chọn lựa chỉ số sao cho phù hợp với tập dữ liệu.
Kiểm thử mô hình
H nh 15:Đ愃Ānh gi愃Ā
Chúng ta sẽ thấy một điều rằng là khi sử dụng (gần như) toàn bộ tập dữ liệu cho việc huấn luyện, thì độ chính xác trong trường hợp này là tuyệt đối. Chúng ta sẽ thử một trường hợp khác, lần này ta sẽ tăng test_set lên 0.7
H nh 16:Thử mô Dt s Ā trường hợp Lần này, vì số lượng data cho việc huấn luyện đã bị giảm đi, cho nên mô hình đã xuất hiện những sai số, tỉ lệ đúng chỉ còn là 0.98.
Chúng ta sẽ thử thêm một lần nữa, tăng test_set lên 0.9 và kết quả thu được như sau:
Như vậy ta có thể thấy được, việc chia số lượng dữ liệu cho việc huấn luyện là rất quan trọng, trong trường hợp dữ liệu “tốt”, càng nhiều dữ liệu cho việc huấn luyện, mô hình sẽ dự đoán tốt hơn.
Thứ nhất, nhóm đã thực hiện tìm hiểu tổng quan về trí tuệ nhân tạo như khái niệm, thành phần trong hệ thống trí tuệ nhân tạo, mục đích sử dụng, ứng dụng của trí tuệ nhân tạo trong đời sống và phân loại các kiểu trí tuệ nhân tạo Thứ hai, nhóm đã thực hiện tìm hiểu về chủ đề nhận dạng số viết tay sử dụng ngôn ngữ Python, thuật toán SVM và thư viện scikit-learn Thứ ba, nhóm đã thu thập dữ liệu về ảnh số viết tay và tìm hiểu đầu ra, đầu vào của bài toán nhận dạng số viết tay sử dụng thuật toán SVM. Thứ tư, thực hành thực tế các kiến thức đã học như: Python, thuật toán support vector machine tạo ra bài toán nhận dạng số viết tay bằng SVM Tuy nhiên, tìm hiểu một số thuật toán còn chưa sơ sài, chưa sâu, cần nắm bắt được cấu trúc của từng thuật toán. Tiếp theo, nhóm dự định sẽ phát triển bài toán bằng cách thêm dữ liệu traning và xử lý dữ liệu với kích thước lớn hơn, sau đó thực hiện xuất ra giá trị cần tìm.
1 Giáo trình Trí tuệ nhân tạo – Trường Đại học Công Nghiệp Hà Nội
2 Wikipedia – Mạng nơron nhân tạo, SVM, mô hình markoov
3 Link source code: https://colab.research.google.com/drive/1n93CG9gxWd42JINqgUXyfOSRBrz1gV7x