Chương I: Tổng quan Giới thiệu tổng quan về mục đích của đề tài cũng như các nghiên cứu liên quan đến đề tài, cũng như trình bày mục tiêu và phương pháp thực hiện đề tài. Chương II: Cơ sở lý thuyết Giới thiệu cơ sở lý thuyết sử dụng trong đề tài như mạng CNN, mạng R-CNN, mạng Fast R-CNN, mạng Faster R-CNN và các kỹ thuật xử lý liên quan. Chương III: Xây dựng bài toán nhận dạng đơn giản dùng mạng nơron tích chập. Chương này sẽ đi vào trình bày cách xây dựng mạng, tổ chức dữ liệu, huấn luyện và giới thiệu các phần mềm mô phỏng các kỹ thuật.
Chương IV: Kết quả mô phỏng Chương này sẽ trình bày các kết quả mô phỏng nhằm so sánh và đánh giá các kỹ thuật. Chương V: Kết luận và hướng phát triển Chương này sẽ đưa ra kết luận và hướng phát triển của đề tài. 3 Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Mạng nơron và mạng nơron lan truyền ngược 2.1 Giới thiệu về mạng Nơron Đặc điểm bộ não người: hệ xử lý thông tin phức tạp, phi tuyến và song song, có khả năng học, ghi nhớ, tổng quát hóa, xử lý lỗi và có khoảng 1011 tế bào thần kinh. Tế bào thần kinh sinh học gồm: đầu dây thần kinh, thân tế bào, sợi thần kinh.
Sợi nhánh Sợi trục Eo răng-vi-ê Thanh nơ ron Bao mi-ê-lin Nhân Hình 2.1: Tế bào thần kinh. Tế bào thần kinh nhân tạo: được biết như là mô hình toán học đơn giản của bộ não con người. 4 Đặc điểm: Cần được huấn luyện trước khi sử dụng, các nghiên cứu về lĩnh vực này bắt từ 1940. Hiện nay có rất nhiều mạng và các thuật toán huấn luyện tương ứng được công bố để giải quyết các bài toán khác nhau.
Mạng thần kinh nhân tạo: Nó bao gồm các tế bào thần kinh kết nối với nhau bởi các liên kết, mỗi liên kết kèm theo một trọng số. Các vectơ tín hiệu ngõ vào và vectơ trọng số của tế bào thần kinh.2: Mạng thần kinh nhân tạo. Theo tài liệu [2] ta có thể định nghĩa như sau: Mạng nơron (thần kinh) nhân tạo, Artificial Neural Network (ANN) là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơron sinh học. Nó được tạo nên từ một số lượng lớn các phần tử (nơron) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.
Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu, .) thông qua một quá trình học từ tập các mẫu huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron. Các thành phần cơ bản của một nơron nhân tạo bao gồm: Tập các đầu vào: là các tín hiệu vào của nơron, các tín hiệu này thường được đưa vào dưới dạng một vector N chiều. 5 Tập các liên kết: mỗi liên kết được thể hiện bởi một trọng số liên kết – Synaptic weight.
Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thường được kí hiệu là Wij. Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng. Bộ tổng (Summing function): thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó. Ngưỡng (còn gọi là một độ lệch - bias): ngưỡng này thường được đưa vào nhờ một thành phần của hàm truyền.
Hàm truyền (Transfer function): hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng. Đầu ra: là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là một đầu ra. Xét về mặt toán học, cấu trúc của một nơron k, được mô tả bằng biểu thức sau: Hàm xử lý ngõ vào: Hàm tuyến tính: n f neti ( wij x j ) i W T X (2.1) j 1 Hàm toàn phương: n f net ( wij xij 2 ) i (2.2) j 1 Hàm cầu: n f net ( 2 ( wij xij )2 ) i 2 ( X W )T ( X W ) (2.3) j 1 Hàm xử lý ngõ ra _ Hàm kích hoạt: Y = a(f), bao gồm: 6 Hàm nấc.
Hàm tuyến tính. Hàm tuyến tính bão hòa. Threshold Linear Gaussian Sigmoid Hình 2.3: Một số hàm tác động.2 Một số kiểu mạng nơron 2.1 Mạng truyền thẳng một lớp Hình 2.4: Mạng truyền thẳng một lớp. 7 Là mạng chỉ gồm một lớp tế bào thần kinh xử lý.
Tín hiệu chỉ truyền theo một chiều từ ngõ vào đến ngõ ra.2 Mạng truyền thẳng nhiều lớp Hình 2.5: Mạng truyền thẳng nhiều lớp. Là mạng gồm nhiều lớp tế bào thần kinh xử lý. Tín hiệu chỉ truyền theo một chiều từ ngõ vào đến ngõ ra.3 Mạng hồi quy một lớp Hình 2.6: Mạng hồi quy một lớp. 8 Là mạng chỉ gồm một lớp trong đó có tín hiệu hồi tiếp từ ngõ ra trở về ngõ vào.4 Mạng hồi quy nhiều lớp Hình 2.7: Mạng hồi quy nhiều lớp.
Là mạng gồm nhiều lớp tế bào thần kinh xử lý. Trong đó có tín hiệu hồi tiếp từ ngõ ra trở về ngõ vào.3 Các phương pháp huấn luyện mạng thần kinh nhân tạo Kiểu học Học thông số Học cấu trúc Có giám sát Củng cố Không giám sát Hình 2.8: Các phương pháp huấn luyện mạng thần kinh nhân tạo.1 Học có giám sát Hình 2. Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy giáo”. Cũng giống như việc ta dạy một em nhỏ các chữ cái.
Ta đưa ra một chữ “a” và bảo với em đó rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu chữ cái. Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi em đó đây là chữ gì? Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước. Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó.2 Học củng cố Học củng cố: đôi khi còn được gọi là học thưởng-phạt (rewardpenalty learning), là sự tổ hợp của cả hai mô hình trên.
Phương pháp này cụ thể như sau: với vector đầu vào, quan sát vector đầu ra do mạng tính được. Nếu kết quả được xem là “tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống.10: Học củng cố.3 Học không giám sát Hình 2.11: Học không giám sát.2 Mạng nơron tích chập CNN là một trong những thuật toán Deep Learning cho kết quả tốt nhất hiện nay trong hầu hết các bài toán về thị giác máy như phân lớp, nhận dạng, …Về cơ bản CNN là một kiểu mạng ANN truyền thẳng, trong đó kiến trúc chính gồm nhiều thành phần được ghép nối với nhau theo cấu trúc nhiều tầng đó là: Convolution. 11 Trước tiên ta đi vào tìm hiểu khái niệm tích chập trong mạng nơ ron tích chập trước.1 Tích chập Tích chập được sử dụng đầu tiên trong xử lý tín hiệu số (Signal Processing). Nhờ vào nguyên lý biến đổi thông tin, các nhà khoa học đã áp dụng kĩ thuật này vào xử lý ảnh và video số.
Các nguyên lý về tích chập được trình bày rõ hơn trong tài liệu [1]. Để dễ hình dung, ta có thể xem tích chập như một cửa sổ trượt (Sliding Window) áp đặt lên một ma trận. Ta có thể theo dõi cơ chế của tích chập qua hình minh họa bên dưới: Hình ảnh Ma trận đặc tính Hình 2.12: Minh họa tích chập. Ma trận bên trái là một bức ảnh đen trắng.
Mỗi giá trị của ma trận tương đương với một điểm ảnh (pixel), 0 là màu đen, 1 là màu trắng (nếu là ảnh xám thì giá trị biến thiên từ 0 đến 255). Sliding window còn có tên gọi là kernel, filter hay feature detector. Ở đây, ta dùng một ma trận với bộ lọc 3×3 nhân từng thành phần tương ứng (Element-wise) với ma trận ảnh bên trái. Gía trị đầu ra do tích của các thành phần này cộng lại.
Kết quả của tích chập là một ma trận (Convoled Feature) sinh ra từ việc trượt ma trận bộ lọc và thực hiện tích chập cùng lúc lên toàn bộ ma trận ảnh bên trái. Dưới đây là kết quả thu được sau khi sử dụng cửa sổ trượt là ma trận tách biên Sobel: 12 Hình 2.2 Các thành phần cơ bản của mạng CNN Trước khi đi vào các thành phần cơ bản của CNN, ta xem xét một ví dụ về cách thức xử lý thông tin đầu vào của một ANN truyền thẳng để từ đó ta thể thấy được tác dụng của các thành phần có trong mạng CNN. W Lớp đầu vào Lớp ẩn Hình 2.14: ANN với cấu trúc kết nối đầy đủ. Hình trên mô tả một ví dụ với dữ liệu đầu vào là một bức ảnh có kích thước 200*200 được xử lý bằng ANN với kết nối đầy đủ giữa hai tầng liên tiếp (full connected).
Như vậy giả sử số neural tầng ẩn là 40000 thì tổng số tham số (mà cụ thể hơn ở đây là các trọng số liên kết W giữa các neural tầng nhập với tầng ẩn) cần phải ước lượng lên 13 đến 1. Điều này gây khó khăn cho việc huấn luyện ANN trên hai yếu tố:(1) chi phí để xây dựng dữ liệu huấn luyện lớn và (2) thời gian huấn luyện lâu. Từ thực tế đặt ra ở trên người ta thấy rằng để giảm số lượng tham số cần giảm số lượng kết nối giữa các lớp. Từ đây thành phần tích chập được áp dụng – ý tưởng chính là mỗi nơ ron chỉ cần kết nối tới một vùng cục bộ của ảnh thay vì trên toàn bộ ảnh.1 Lớp tích chập (Convolution layer) Lớp tích chập là lớp quan trọng nhất trong cấu trúc của CNN.
Lớp tích chập dựa trên lý thuyết xử lý tín hiệu số, việc lấy tích chập sẽ giúp trích xuất được những thông tin quan trọng từ dữ liệu. Hình dưới mô tả lý thuyết và cách thức tích chập hoạt động trên một dữ liệu đầu vào được biểu diễn bằng một ma trận hai chiều.