Các thiết bị như tivi, máy tính hay các thiết bị điện tử không hề xa lạ gì đối với mỗi người, nhưng hiện nay, các thiết bị đó vẫn được điều khiến bằng các phương pháp như sử dụng điều kh
TONG QUAN VE BÀI TOÁN NHAN DIỆN CU CHÍ TAY
Ứng dụng của bài toán nhận diện cử chi tay 2-5 5sc5ce+ccrserxee 4
GVHD: PGS.TS Phạm Văn Cường Page |4 _ SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP Động lực đăng Sau sự quan tâm của các nhà nghiên cứu cho bài toán nhận diện cử chỉ tay cho dù dùng hình ảnh hay cảm biến là có thé ứng dụng được cho nhiều lĩnh vực khác nhau, chang hạn như tương tác người — máy, tương tác thực tế ảo và thực tế ảo tăng cường, nhận dạng ngôn ngữ ký hiệu và xây dựng người máy Trong nhiều bộ phim về tương lai, các nhân vật thường sử dụng cử chỉ tay để tương tác với máy tính như được mô tả trong hình 1.3 Hiện tại các hệ thống chưa cho phép con người có thé thao tác tự do như vậy, nhưng những ví dụ này cho thầy tiềm năng mà hệ thống tương tác dựa trên cử chỉ tay có thé phát triển Điều này sẽ làm thay đổi hoàn toàn cách con người tương tác với máy tinh trong tương lai.
1.2.1 Tương tác với thực tế ảo và thực tại tăng cường
VR là một công nghệ tạo ra các hình ảnh, âm thanh và cảm giác mô phỏng sự hiện diện của người dùng trong một môi trường Một người sử dụng môi trường thực tế ảo chất lượng cao có thể nhìn và di chuyên tự do xung quanh thế giới nhân tạo.
Thực tại tăng cường (AR)
AR là góc nhìn trên thế giới thực được tạo ra bởi máy tính AR nâng cao môi trường thực tại, ngược lại, VR thay thế toàn bộ thế giới thật bằng một thế giới mô phỏng.
Ngày nay các công nghệ về VR đang được phát triển rất rằm rộ, có nhiều nhà phát triển đã ứng dụng được công nghệ VR vào việc làm phim, làm game Công nghệ AR
GVHD: PGS.TS Phạm Văn Cường Page |5 SVTH: Nguyễn Thế An — D17HTTT1 ĐỎ AN TOT NGHIỆP cũng đang được phát triển nhưng so với VR vẫn còn cần một thời gian nữa cho đến khi chúng ta có thể thực sự sử dụng công nghệ này vào cuộc sống.
1.2.2 Nhận diện ngôn ngữ ký hiệu
Ngôn ngữ ký hiệu là ngôn ngữ được sử dụng bởi người khiếm khuyết về thính giác hoặc lời nói Họ sử dụng ngôn ngữ ký hiệu như một phương tiện giao tiếp không lời dé thé hiện suy nghĩ và cảm xúc của ho.
Tuy nhiên, chỉ có một số ít người có thê hiểu được ngôn ngữ ký hiệu Do đó những người khiếm thính phải yêu cầu sự trợ giúp của một thông dịch viên Mặc dù việc thuê thông dịch viên là rất tốn kém và không phải lúc nào cũng có thể Một hệ thống nhận dạng ngôn ngữ ky tự mạnh mẽ và hiệu quả có thé giúp mọi người có một công cụ rẻ và dé dàng sử dụng dé tương tác với người khiếm khuyết về thính giác và lời nói.
1.2.3 Công cụ hỗ trợ cuộc sống
Một ứng dụng khác của việc nhận diện cử chỉ tay là có thể hỗ trợ chúng ta trong cuộc sống thường ngày Do người máy vẫn là một điều khá xa vời tại thời điểm hiện tại, nên câu hỏi đặt ra là có cách nào để những người bệnh không thé di chuyén duoc có thé tương tác với môi trường xung quanh Điều này đã đưa đến một ứng dụng là sử dụng nhận diện cử chỉ tay dé họ có thé tương tác với môi trường xung quanh như có thể tắt, bật đèn, mà không cần phải di chuyên.
Một số phương pháp cho bài toán nhận diện cử chỉ tay
1.3.1 Phương pháp nhận diện cử chỉ tay cỗ điển
Trong những năm đầu phát triển bài toán nhận diện cử chỉ tay đã có một số phương pháp được đưa ra Phương pháp đầu tiên được các nhà nghiên cứu đưa ra đó là sử dụng một bộ cảm biến được gắn trên một chiếc găng tay dé thu thập các thông số khi thực hiện một hành động nào đó Các thông số đó sau khi thu thập sẽ được đưa vào xử lý là thông qua các thuật toán nhận diện đề có thể nhận diện được cử chỉ tay Hình 1.4 minh họa phương pháp truyền thống cho bài toán nhận diện cử chỉ tay.
Dữ liệu được - - thu tử cảm biên gan Tiên xử lý trên tay
Kết quả nhận diện Hậu xử lý
Hình 1-4 Minh họa hệ thống nhận diện cứ chỉ tay cổ điển
GVHD: PGS.TS Phạm Văn Cường Page |6 SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP
Nhận diện cử chỉ tay thường bao gồm các giai đoạn: thu thập dit liệu từ cảm biến, tiền xử lý dữ liệu, cho dữ liệu đi qua thuật toán nhận diện và thu về kết quả, hậu xử lý kết quả và cuối cùng là đưa ra kết quả nhận diện e Thu dữ liệu từ cảm biến: người dùng sẽ phải đeo một chiếc găng tay được gắn các cảm biến đề thu đữ liệu cử động. e Tiền xử lý: Giảm nhiễu trong quá trình thu dữ liệu từ cảm biến, chuẩn hóa dữ liệu. e Thuật toán nhận diện: Thường là các thuật toán học máy cô điển như máy vectơ hỗ trợ đa lớp (SVM), e Hậu xử lý: Xử lý các kết quả được thuật toán trả về và đưa ra kết quả cuối cùng. Thuật toán máy vectơ hỗ trợ (SVM)
Có thể mô tả 1 cách đơn giản về bộ phân lớp SVM như sau: Cho trước 2 tập dữ liệu học, mỗi tập thuộc về 1 lớp cho trước, bộ phân lớp SVM sẽ xây dựng mô hình phân lớp dựa trên 2 tập dữ liệu này Khi có một mẫu mới được đưa vào, bộ phân lớp sẽ đưa ra dự đoán xem mẫu này thuộc lớp nào trong 2 lớp đã định Phương pháp này được Vapnik và cộng sự đề xuất năm 1992, lấy nền tảng từ lý thuyết học thống kê của
Vapnik & Chervonenkis vào năm 1960. Đặc trưng cơ bản quyết định khả năng phân loại của một bộ phân loại là hiệu suất tong quát hóa, hay là khả năng phân loại những dữ liệu mới dựa vào những tri thức đã tích lũy được trong quá trình huấn luyện Thuật toán huấn luyện được đánh giá là tốt nếu sau quá trình huấn luyện, hiệu suất tổng quát hóa của bộ phân loại nhận được cao Hiệu suất tổng quát hóa phụ thuộc vào hai tham số là sai số huấn luyện và năng lực của máy học Trong đó sai số huấn luyện là tỷ lệ lỗi phân loại trên tập dữ liệu huấn luyện Còn năng lực của máy học được xác định bằng kích thước Vapnik
Chervonenkis (kích thước VC) Kích thước VC là một khái niệm quan trọng đối với một họ hàm phân tách (hay là bộ phân loại) Đại lượng này được xác định bang số điểm cực đại mà họ hàm có thể phân tách hoàn toàn trong không gian đối tượng, Một bộ phân loại tốt là bộ phân loại đơn giản nhất và đảm bảo sai số huấn luyện nhỏ.
Phương pháp SVM được xây dựng dựa trên ý tưởng này
Công thức máy vectơ hỗ trợ
Công thức SVM đơn giản nhất là trường hợp tuyến tính khi mà một siêu phẳng quyết định nằm giữa hai tập dữ liệu.Trong trường hợp này, không gian giả định là một tập các điểm có phương trình là: f(x) = w- x + b SVM đi tìm một siêu phăng tối ưu như một phương án đề phân chia hai tập hợp dữ liệu và đồng thời có thể sử dụng cho những dữ liệu mới.
Có hai phương pháp dé tìm siêu phang tối ưu Thứ nhất là tìm siêu phăng nằm giữa 2 tập đóng (Hình 1.5) Thứ hai là cực đại hóa khoảng cách giữa hai mặt phang hỗ trợ (cực đại hóa lề) (Hình 1.6) Cả hai phương pháp đều tim ra một mặt phẳng quyết
GVHD: PGS.TS Phạm Văn Cường Page |7 SVTH: Nguyễn Thế An — D17HTTT1 ĐỎ AN TOT NGHIỆP định và tập hợp những điểm hỗ trợ cho quyết định Chúng được gọi là các vectơ hỗ trợ.
Siêu phăng phân chia biên độ cực đại
GVHD: PGS.TS Phạm Văn Cường Page |8 SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP te | h———
Hình 1-8 Anh xạ phi tuyến tính và ham hạt nhân
Việc huấn luyện SVM là việc giải bài toán quy hoạch toàn phương với các ràng buộc bằng và không bằng Việc xử lý sau cùng là xử lý các tham số dương ơ và rút ra một tập con của tập huấn luyện tương ứng với các tham số Việc huấn luyện một tập dữ liệu nhỏ (nhỏ hơn 1000 mẫu) có thé được xử lý một cách nhanh chóng trên một máy tính có cấu hình thích hợp Đối với những tập dữ liệu lớn hơn, việc giải bài toán quy hoạch toàn phương đòi hỏi một máy tinh có năng lực lớn và bộ nhớ lớn dé lưu trữ ma trận hạt nhân trong suốt quá trình tính toán Bộ nhớ yêu cầu lên đến bình phương kích thước của tập huấn luyện.
Có nhiều phương pháp huấn luyện SVM được phát triển dé tận dụng bộ nhớ, cải thiện tốc độ huấn luyện và tìm một mô hình tốt nhất bằng cách dùng một nhân và các siêu tham số thích hợp (Burges, 1988) Lưu ý rằng, SVM cơ bản dùng cho hai lớp.
Dé có thé dùng cho nhiều lớp thì ta phải kết hợp nhiều bộ phân loại hai lớp hoặc xây dựng SVM cho nhiều lớp.
Thuật toán máy vectơ hỗ trợ đa lớp
Trong bài toán nhận diện cử chỉ tay, cử chỉ tay không chỉ có hai lớp, mà có rất nhiều lớp Do đó dé giải quyết bài toán nhận diện cử chỉ tay chúng ta phải xử lý bằng phương pháp nhận diện đa lớp Hình 1.9 minh họa dữ liệu gồm nhiều lớp.
GVHD: PGS.TS Phạm Văn Cường Page |9 _ SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP x 4 © e eo? e ° © ) e e e © © e ® ef, e %0.% ® © ee ee ®
Hình 1-9 Minh họa dữ liệu gồm 3 lớp được biểu diễn bởi ba màu: đỏ, xanh lá cây, xanh nước biên
Dé có thể giải quyết bài toán đa lớp bằng thuật toán máy vecto hỗ trợ, chúng ta cần chia bài toán đa lớp thành các bài toán phân loại nhị phân Phương pháp đầu tiên đó là với mỗi lớp, so sánh lớp đó với từng lớp khác, việc này sẽ biến bài toán phân loại đa lớp thành nhiều bài toán phân loại nhị phân Phương pháp này gọi là một với một.
Một phương pháp khác đó chính là với mỗi lớp, so sánh lớp đó với tất cả các lớp còn lại, phương pháp này gọi là một với còn lại.
Thuật toán máy vectơ hỗ trợ có thể phân biệt giữa hai lớp nhị phân, do đó, theo hai cách được trình bày phía trên, chúng ta có thể sử dụng máy vectơ hỗ trợ đề phân loại các lớp. e Với phương pháp một với còn lại: bộ phân loại có thé sử dụng ? máy vectơ hỗ trợ dé phân loại m lớp Mỗi máy vecto hỗ trợ sẽ phân loại một trong m lớp
1nŒn—1) e Với phương pháp một với một: bộ phân loại có thé sử dung máy vectơ hỗ trợ
Vi dụ với bài toán phân loại ba lớp như hình 1.9 Khi áp dụng hai phương pháp cho bộ dữ liệu sẽ được kết quả như sau: e Khi sử dụng phương pháp một với một, chúng ta cần một siêu mặt phang dé phân biệt mỗi 2 lớp Bỏ qua các điểm dữ liệu thuộc lớp thứ ba Điều này có nghĩa là việc phân tách chỉ sử dụng các điểm dữ liệu thuộc vào hai lớp trong lần phân tách hiện tại Ví dụ như hình 1.10, đường màu đỏ-xanh nước biển sẽ phân biệt giữa hai lớp là đỏ và xanh nước biển Nó sẽ không quan tâm đến các điểm thuộc lớp màu xanh lá cây.
GVHD: PGS.TS Phạm Văn Cường Page |10_ SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP
Giới thiệu về học SAU cecccccccecccc ccs essessessessesscseesessessessesscsseseesesseesesseaees 13 "A0 DG) (21 ee 13
Tri tuệ nhân tao hay trí thông minh nhân tạo (Artificial intelligence hay Machine intelligence - AI) là trí tuệ do con người lập trình tạo nên với mục tiêu giúp máy tính có thể tự động hóa các hành vi thông minh như con người Trí tuệ nhân tạo luôn là một ngành khoa học khó tiếp cận cho những người mới bắt đầu bởi trí tuệ nhân tạo được xây dựng từ nhiều nền tảng khác nhau Những năm gan đây, với tốc độ phát triển vô cùng nhanh chóng nhờ vào những tiến bộ trong ngành khoa học dữ liệu (Data Science) và những siêu máy tính có tốc độ tính toán cực kì nhanh chóng, AI nổi lên như một bằng chứng của cuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượng điện, 3 - công nghệ thông tin) và đang len lỏi vào mọi lĩnh vực trong đời sống mà có thể chúng ta không nhận ra, giúp cho cuộc sống của con người ngày một tốt đẹp hơn.
Hình 2-1 Mô hình tổng quan về Trí tuệ nhân tạo
Hoc máy (Machine Learning - ML) là một tập con cua AI Nói đơn giản, Machine
Learning là một lĩnh vực nhỏ của Khoa Học Máy Tính, nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể Nếu AI thể hiện một mục
GVHD: PGS.TS Phạm Van Cường Page |13_ SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP tiêu của con người, ML là một phương tiện được kỳ vọng sẽ giúp con người đạt được mục tiêu đó Và thực tế thì ML đã mang nhân loại đi rất xa trên quãng đường chinh phục
AI Nhưng vẫn còn một quãng đường xa hơn rất nhiều cần phải đi Machine Learning và AI có mối quan hệ chặt chẽ với nhau nhưng không han là trùng khớp vì một bên là mục tiêu (AI), một bên là phương tiện (ML) Chinh phục AI mặc dù vẫn là mục đích tối thượng của ML, nhưng hiện tại ML tập trung vào những mục tiêu ngắn hạn hơn như: e Lam cho máy tính có những khả năng nhận thức co ban của con người như nghe, nhìn, hiểu được ngôn ngữ, giải toán, lập trình e Hỗ trợ con người trong việc xử lý một khối lượng thông tin khổng lồ mà chúng ta phải đối mặt hàng ngày, hay còn gọi là Big Data.
Học sâu (Deep Learning - DL) là một tập các kỹ thuật học máy mạnh sử dụng mạng nơ-ron nhiều lớp Đây hiện là công nghệ dẫn đầu trong việc giải quyết nhiều bài toán trong lĩnh vực nhận diện ảnh, nhận diện giọng nói, từ đó mang thêm nhiều giá tri mới cho doanh nghiệp trên nhiêu lĩnh vực Mạng nơ-ron nhân tạo (Artificial Neural Network- ANN) là mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các nơ-ron được gắn kết dé xử lý thông tin. ANN giống như bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data) Các ứng dụng của mạng Neuron được sử dụng trong rất nhiều lĩnh vực như điện, điện tử, kinh tế, quân sự dé giải quyết các bài toán có độ phức tạp va đòi hỏi có độ chính xác cao, các tác vụ “dé với người nhưng khó với máy”: e Nhận diện mẫu: nhận diện khuôn mặt, nhận diện chữ viết e Dự đoán: dự đoán giá cổ phiếu tăng hay giảm, dự đoán thời tiết mưa hay nắng e Xử lý tín hiệu: loc âm, khử nhiễu ảnh e Điều khiến: điều khiển xe tự hành, máy bay không người lái e Soft sensors: lấy thông tin từ các cảm biến dé đánh giá và đưa ra một kết quả e Phát hiện bất thường: phát hiện bất thường trong các sản phẩm, trang web
2.1.2 Những dấu mốc quan trọng của học sâu
GVHD: PGS.TS Phạm Văn Cường Page |14 SVTH: Nguyễn Thế An — D17HTTT1 ĐỎ AN TOT NGHIỆP
Hình 2-2 Lịch sử học sâu
Những bước đầu của học sâu được bắt đầu từ rất sớm
Một trong những nền móng đầu tiên của mạng nơ-ron và học sâu là perceptron learmng algorithm (hoặc gọn là perceptron) Perceptron là một thuật toán học có giám sát giúp giải quyết bài toán phân lớp nhị phân, được khởi nguồn bởi Frank Rosenblatt năm 1957 trong một nghiên cứu được tài trợ bởi Văn phòng nghiên cứu hải quân Hoa
Ky (U.S Office of Naval Research — từ một cơ quan liên quan đến quân sự) Thuật toán perceptron được chứng minh là hội tụ nếu hai lớp dữ liệu là có thé phân tách tuyến tính.
Với thành công nảy, năm 1958, trong một hội thảo, Rosenblatt đã có một phát biểu gây tranh cãi Từ phát biểu này, tờ New York Times đã có một bài báo cho rằng perceptron được Hải quân Hoa Kỳ mong đợi “có thé đi, nói chuyện, nhìn, viết, tự sinh sản, và tự nhận thức được sự tồn tại của mình” (Chúng ta biết rằng cho tới giờ các hệ thống nâng cao hơn perceptron nhiều lần vẫn chưa thể).
Mặc dù thuật toán này mang lại nhiều kỳ vọng, nó nhanh chóng được chứng minh không thể giải quyết những bài toán đơn giản Năm 1969, Marvin Minsky và Seymour Papert trong cuốn sách nỗi tiếng Perceptrons đã chứng minh rằng không thé ‘hoc’ được hàm số XOR khi sử dụng perceptron Phát hiện này làm choáng váng giới khoa học thời gian đó (bây giờ chúng ta thấy việc này khá hiển nhiên) Perceptron được chứng minh rằng chỉ hoạt động nếu dữ liệu là có thể phân tách tuyến tính.
Phát hiện này khiến cho các nghiên cứu về perceptron bị gián đoạn gần 20 năm. Thời kỳ này còn được gọi là Mùa đông AI thứ nhất (The First AI winter).
Cho tới khi MLP và Backpropagation ra đời vào những năm 80s
Geoffrey Hinton tốt nghiệp PhD ngành neural networks năm 1978 Năm 1986, ông cùng với hai tác giả khác xuất bản một bai báo khoa hoc trên Nature với tựa dé
“Learning representations by back-propagating errors” Trong bai báo này, nhóm của ông chứng minh rang neural nets với nhiều hidden layer (được gọi là multi-layer
GVHD: PGS.TS Pham Văn Cường Page |15 SVTH: Nguyễn Thế An — D17HTTT1 ĐỎ AN TOT NGHIỆP perceptron hoặc MLP) có thé được huấn luyện một cách hiệu quả dựa trên một quy trình đơn giản được gọi là backpropagation (backpropagation là tên gọi mỹ miéu của quy tắc chuỗi — chain rule — trong tính đạo hàm Việc tính được đạo hàm của hàm sỐ phức tạp mô tả quan hệ giữa đầu vào và đầu ra của một mạng nơ-ron là rất quan trọng vì hầu hết các thuật toán tối ưu đều được thực hiện thông qua việc tính đạo hàm, gradient descent là một ví dụ) Việc này giúp mạng nơ-ron thoát được những hạn chế của perceptron về việc chỉ biéu diễn được các quan hệ tuyến tinh Dé biểu diễn các quan hệ phi tuyến, phía sau mỗi lớp là một hàm kích hoạt phi tuyến, ví dụ hàm sigmoid hoặc tanh (ReLU ra đời năm 2012) Với các lớp an, mang nơ-ron được chứng minh rằng có khả năng xấp xi hầu hết bất kỳ hàm số nào qua một định lý được gọi là universal approximation theorem.
Mạng nơ-ron quay trở lại cuộc chơi.
Thuật toán này mang lại một vài thành công ban đầu, nồi trội là mạng nơ-ron tích chập (convnets hay CNN) (còn được gọi là LeNet) cho bài toán nhận dạng chữ số viết tay được khởi nguồn bởi Yann LeCun tại AT&T Bell Labs (Yann LeCun là sinh viên sau cao học của Hinton tại đại học Toronto năm 1987-1988) Dưới đây là kiến trúc của
LeNet được áp dụng, network là một CNN với 5 layer, còn được gọi là LeNet-5 (1998).
\ a ` i TM `.` II Ni ies wa) — 2 i k_Í ax pooling œ
1* convolutional layer 2TM convolutional layer
Mô hình này được sử dụng rộng rãi trong các hệ thống đọc số viết tay trên các check (séc ngân hàng) và mã vùng bưu điện của nước Mỹ.
LeNet là thuật toán tốt nhất thời gian đó cho bài toán nhận dạng ảnh chữ số viết tay Nó tốt hơn MLP thông thường (với fully connected layer) vì nó có khả năng trích xuất được đặc trưng trong không gian hai chiều của ảnh thông qua các filters (bộ lọc) hai chiều Hơn nữa, các filter này nhỏ nên việc lưu trữ và tính toán cũng tốt hơn so với MLP thông thường (Yan LeCun có xuất phát từ Electrical Engineering nên rất quen thuộc với các bộ lọc.)
Mùa đông AI thứ hai (90s - đầu 2000s)
Các mô hình tương tự được kỳ vọng sẽ giải quyết nhiều bài toán phân loại ảnh khác Tuy nhiên, không như các chữ số, các loại ảnh khác lại rất hạn chế vì máy ảnh sỐ chưa phô biến tại thời điểm đó Ảnh được gán nhãn lại càng hiếm Trong khi dé có thé huấn luyện được mô hình CNN, ta cần rất nhiều dữ liệu huấn luyện Ngay ca khi dit liệu
Mạng nơ-ron tích chập - 2c S2 1S SE 1 1H HH Hy rey 25
Convolutional Neural Networks (CNN - hay còn gọi là mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến giúp con người xây dựng được những
GVHD: PGS.TS Phạm Văn Cường Page |25 SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP hệ thống thông minh với độ chính xác cao hiện nay Facebook, Google hay Amazon đã sử dung CNN dé đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động.
CNN có kiến trúc khá giống với mạng nơ-ron truyền thống, chúng được cấu tạo từ rất nhiều nơ-ron và có khả năng học dữ liệu nhờ thay đôi các trọng số và hệ số chênh lệch Mỗi nơ-ron nhận dữ liệu đầu vào từ nhiều nguồn, thực hiện các biến đổi nhân vô hướng CNN có đầu vào là một mảng các phần tử (có thể đại diện cho 1 ảnh), đầu ra của nó là xác suất tương ứng với mỗi lớp cần phân loại Vì vây mà cách huấn luyện trên CNN không có nhiều thay đồi, vẫn sử dụng các hàm mat mát dé đánh giá độ chính xác của mô hình tại lớp đầu ra cuối cùng.
GVHD: PGS.TS Phạm Van Cường Page |28 SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP Điểm đặc biệt của CNN là dữ liệu đầu vào của mạng có thể truyền dưới dạng ảnh, tức là dữ liệu đưới dạng ma trận Các phép biến đổi trong mang, ở đây là phép tích chập cũng được tích hợp dé dàng và ít tham số hơn nhiều so với mạng nơ-ron truyền thống cơ bản Đối với mạng nơ-ron truyền thống cơ bản, lớp đầu vào nhận dữ liệu là một vector, tức mang 1 chiều và biến đổi nó lần lượt qua mỗi lớp ấn Mỗi lớp ân được cau tạo từ tap các nơ-ron, mỗi nơ-ron sẽ được kết nối toàn bộ từ các nơ-ron của lớp trước đó Mỗi nơ-ron đều có tập các kết nói riêng biệt, không chia sẻ với các nơ-ron khác, vì vậy chúng đều có tập trọng số riêng của mình Lớp cuối cùng được gọi là lớp đầu ra, trong bài toán phân loại, thì mỗi nơ-ron trong lớp đầu ra sẽ biểu diễn xác suất là lớp tương ứng của đữ liệu đầu vào.
CNN được xây dựng và thiết kế để khắc phục nhược điểm tổng trọng số quá lớn của mạng nơ-ron truyền thống CNN có thé xử lý được dữ liệu ảnh và đữ nguyên cấu trúc của chúng, mà không phải biến đổi duỗi ma trận ảnh thành mảng một chiều Cụ thê hơn, các nơ-ron trong CNN được sắp xếp trong không gian 3 chiều: chiều rộng, chiều cao và chiều sâu Các nơ-ron lớp ân không kết nối với toàn bộ nơ-ron lớp trước mà chỉ cần kết nối tới một phần nơ-ron nhỏ Nhìn chung cứ qua mỗi lớp, đữ liệu giảm đi về kích thước chiều rộng, chiều cao và tăng về chiều sâu Sự biến đổi kích thước dit liệu qua các lớp được biểu thi ở hình 2.11. depth
Hình 2-11 Sự biến đổi dữ liệu khi di qua CNN
Một CNN đơn giản bao gồm chuỗi các lớp liên tiếp, mỗi lớp có hàm kích hoạt và cách biến đổi dữ liệu riêng của nó Thường có 4 loại lớp chính dé xây dựng một CNN, bao gồm: e Lớp tích chập (Convolutional layer) e Lớp pooling (Pooling layer) ¢ Lớp kết nối toàn bộ (Fully-Connected layer)
Như đã đề cập ở trên, điểm khác biệt giữa Deep Learning và Machine Learning là mô hình mạng của Deep Learning có khả năng trích chọn đặc trưng tự động, mà không phải làm thủ công như ở các phương pháp, thuật toán ở Machine Learning Đây cũng chính là nhiệm vụ, mục tiêu của lớp tích chập.
GVHD: PGS.TS Phạm Van Cường Page |27 SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP
Input Volume (~pad 1) (7x7x3) Filter W0 (3x3x3} Filter W1 (3x3x3) Output Volume (3x3x2) x[ m5 wl ee)
Wllũ 407 ws 9 2 ae 2 Oo As 2 -7 -10 -5 ðj 89 I8 gì „e5 iy (a0 4 x[izyz71] fo jo Jojo o o 0 poe
“13 0 23 10.10 “ Z oy i a) 7 71W ae ae gl ae : rr
LE Se le Se ae
Hình 2-12 Minh họa phép tích chập trong CNN
Hình 2.12 thé hiện các thành phan cũng như cách biến đổi, tính toán nằm trong lớp tích chập Ảnh đầu vào được cho qua một bộ lọc chạy dọc bức ảnh Bộ lọc có kích thước là (3x3 hoặc 5x5) và áp dụng phép tích vô hướng dé tính toán, cho ra một giá tri duy nhất Sau mỗi lần, bộ lọc lại dịch chuyên qua 1| vi trí khác lân cận, theo cả 2 chiều để áp dụng tiếp việc lọc Đầu ra của phép tích chập là một tập các giá trị ảnh được gọi là mạng đặc trưng (features map).
Thực chất, ở các lớp đầu tiên, phép tích chập đơn giản là phép tìm biên ảnh, sau khi cho qua bộ lọc nó sẽ làm hiện lên các đặc trưng của đối tượng trong ảnh như đường vẽ xung quanh đối tượng, các góc cạnh, và các lớp tiếp theo sẽ lại trích xuất tiếp các đặc trưng của các đối tượng đó, việc có nhiều lớp như vậy cho phép chúng ta chia nhỏ đặc trưng của ảnh tới mức nhỏ nhất có thé Vì thế mới gọi là mạng đặc trưng.
Dưới đây là một số các khái niệm cơ bản của phần này: e Filter Hạt nhân hay Feature Detector: chúng đều là cách gọi của ma trận lọc.
Thông thường, ở các lớp đầu tiên của Conv Layer sẽ có kích thước là [5x5x3]. e_ Convolved Feature, Activation Map hay Feature Map: là đầu ra của ảnh khi cho bộ lọc chạy hết bức ảnh với phép tích vô hướng. e Receptive field: là vùng ảnh được chọn dé tính tích chập, vùng này có kích thước bằng đúng kích thước của bộ lọc. e Depth: là sỐ lượng bộ lọc Lưu ý: ở đây là sỐ lượng bộ loc (filter) chứ không phải số lượng kênh màu RBG trên ảnh.
GVHD: PGS.TS Phạm Van Cường Page |28 SVTH: Nguyễn Thế An - D17HTTT1 ĐỎ AN TOT NGHIỆP e Stride: là khoảng cách dịch chuyền của bộ lọc sau mỗi lần tính Ví dụ khi stride
= 2 Tức sau khi tính xong tại 1 vùng anh, nó sẽ dịch sang phải 2 pixel Tương tự với việc dịch xuống dưới. e Zero-Padding: là việc thêm các giá trị 0 ở xung quanh biên ảnh, dé đảm bảo phép tích chập được thực hiện đủ trên toàn ảnh.
Single depth slice x "II 1D ¿| 4 max pool with 2x2 filters
Hình 2-13 Minh họa dữ liệu khi áp dung Max Pooling
Lớp pooling thực hiện chức năng làm giảm kích thước đầu vào và giảm độ phức tạp tính toán của model ngoài ra lớp pooling còn giúp kiểm soát hiện tượng overffiting. Thông thường, pooling có nhiều hình thức khác nhau phù hợp cho nhiều bài toán, tuy nhiên có 2 phương pháp pooling được sử dụng rộng rãi và phô biến, đó là: e Max Pooling: Thay thé vùng nhỏ trên dit liệu bằng giá trị lớn nhất của vùng đó Y nghĩa của việc này là giữ lại những chỉ tiết có thông tin lớn nhất, quan trọng nhất đề đại diện cho một vùng thông tin. e Average Pooling: Thay thế vùng nhỏ trên dữ liệu bang giá trị trung bình của vùng đó Ý nghĩa của việc này là lay thông tin tong thé dé đại diện cho một vùng thông tin.
Ví dụ về max pooling với bộ lọc 2x2 và stride = 2 Bộ lọc sẽ chạy dọc ảnh và với mỗi vùng anh được chọn, sẽ chọn ra 1 giá trị lớn nhất và giữ lại Hình 2.13 biểu diễn giá trị đữ liệu trước và sau khi áp dụng max pooling Lưu ý răng, thông thường các lớp pooling có kích thước là 2 và stride = 2 Nếu lay giá trị quá lớn, thay vì giảm tính toán nó lại làm phá vỡ cấu trúc ảnh và mất mát thông tin nghiêm trọng Vì vậy mà một số chuyên gia không thích sử dụng layer này mà thay vào đó sử dụng thêm các lớp tích chập và tăng số stride lên mỗi lần.
2.2.3 Lớp kết nối toàn bộ
Tại lớp mạng này, mỗi một nơ-ron của lớp này sẽ liên kết tới mọi nơ-ron của lớp khác Đề đưa ảnh từ các lớp trước vào mạng này, buộc phải dàn phăng bức ảnh ra thành mảng một chiều thay vì là mảng nhiều chiều như trước Tại lớp cuối cùng sẽ sử dụng