Chương 1: Tổng quan. Giới thiệu sơ lược về tình hình nghiên cứu hiện nay cũng như tính cấp thiết của đề tài. Chương 2: Cơ sở lý thuyết. Nêu các lý thuyết cần thiết sử dụng trong đề tài.
Chương 3: Thiết kế và xây dựng hệ thống. Trình bày sơ đồ hệ thống và giải thích hoạt động của từng khối trong hệ thống. Đưa ra các phương pháp lựa chọn phần cứng và xác định lựa chọn phù hợp với yêu cầu của đề tài. Chương 4: Kết quả thực hiện.
Tính toán đưa ra giải thuật, thuật toán phần mềm. Trình bày kết quả đã thực hiện về phần cứng và phần mềm. Chương 5: Kết quả so sánh, thực nghiệm, phân tích, tổng hợp. Đưa ra các kết quả thực nghiệm và đánh giá, nhận xét hệ thống.
Chương 6: Kết luận và hướng phát triển. Nêu các ưu điểm và các nhược điểm cần cải thiện của đề tài, hướng khắc phục và hướng phát triển trong tương lai. 5 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN Để tiến hành thiết kế phần cứng cũng như phần mềm nhóm đã tìm hiểu một số khái niệm sau: 2. Tổng quan về mạng nơ-ron 2.
Giới thiệu về mạng nơ-ron Định nghĩa: Mạng nơ-ron nhân tạo, Artificial Neural Network (ANN) là một mô hình xử lý thông tin mô 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 lại với nhau thông qua các liên kết W (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ấu trúc mạng nơ-ron: Hình 2-1 Cấu trúc của một nơ–ron. Các thành phần cơ bản của một Nơ-ron nhân tạo bao gồm: 6 Tập các đầu vào: Là các tín hiệu vào (input signals) của các nơ-ron, các tín hiệu này thường được đưa vào dưới dạng vector một chiều N phần tử. Tập các liên kết: Mỗi liên kết 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à Wkj.
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. Bộ tổng (Summing function): Thường được dùng đề tính tổng 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 i, được mô tả bằng biểu thức: Trong đó: X1, X2, .Xm là các tín hiệu đầu vào, còn Wi1, Wi2, …Wim là các trọng số kết nối của nơ-ron thứ i, neti là hàm tổng, f là hàm truyền, θi là một ngưỡng, yi là tín hiệu đầu ra của nơ-ron. Như vậy, nơ-ron nhân tạo cũng nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết của nó, sau đó tính tổng các tích thu được, rồi gửi kết quả đến hàm truyền) và cho một tín hiệu đầu ra (là kết quả của hàm truyền).
7 Phương thức làm việc chung của mạng nơ-ron: Mạng nơ-ron là một cấu trúc mạng, được hình thành nên bởi số lượng các nơ-ron liên kết với nhau. Mỗi nơ-ron có các đặc tính đầu vào, đầu ra và thực hiện một số chức năng tính toán cục bộ. Với việc giả lập các hệ thống sinh học, các cấu trúc tính toán, mạng nơ-ron có thể giải quyết được các lớp bài toán nhất định, ví dụ như: bài toán xếp loại, bài toán lập lịch, bài toán tìm kiếm, bài toán nhận dạng mẫu,… Xét một cách tổng quát, mạng nơ-ron là một cấu trúc xử lý song song thông tin phân tán mang các đặc tính nổi bật sau: Là một mô hình tính toán dựa trên bản chất của nơ-ron. Bao gồm một số lượng rất lớn các nơ-ron liên kết với nhau.
Mạng nơ-ron có khả năng học, khái quát hóa tập dữ liệu học thông qua việc gán và hiệu chỉnh các trọng số liên kết. Tổ chức theo kiểu tập hợp, mang lại cho mạng nơ-ron khả năng tính toán rất lớn, trong đó không có nơ-ron nào mang thông tin riêng biệt. Tổng quan về mạng nơ-ron tích chập 2. Định nghĩa mạng nơ-ron tích chập Định nghĩa: Mạng nơ-ron tích chập có kiến trúc khác so với mạng nơ-ron thông thường.
Mạng nơ-ron thông thường chuyển đổi đầu vào thông qua hàng loạt các tầng ẩn. Mỗi tầng là một tập các nơ-ron và các tầng được liên kết đầy đủ với các nơ-ron ở tầng trước đó. Và ở tầng cuối cùng sẽ là tầng kết quả đại diện cho dự đoán của mạng. Đầu tiên, mạng nơ-ron tích chập được chia thành 3 chiều: rộng, cao và sâu.
Kế đến, các nơ-ron trong mạng không liên kết hoàn toàn với toàn bộ nơ-ron kế đến nhưng chỉ liên kết tới một vùng nhỏ. Cuối cùng, một tầng đầu ra được tối giản thành vector của giá trị xác suất. CNN gồm hai thành phần: 8 Phần tầng ẩn hay còn gọi là phần trích xuất đặc trưng: Trong phần này, mạng sẽ tiến hành tính toán hàng loạt các phép tích chập và phép hợp nhất (pooling) để phát hiện các đặc trưng. Ví dụ như nếu có một bức hình ảnh con ngựa vằn, thì trong phần này mạng sẽ nhận diện các sọc vằn, hai tai, và bốn chân của nó.
Phần phân lớp: Tại phần này, một lớp với các liên kết đầy đủ sẽ đóng vai trò như là một bộ phân lớp các đặc trưng đã rút trích được trước đó. Tầng này sẽ đưa ra xác suất của một đối tượng trong hình. Cấu trúc mạng nơ-ron tích chập Trích xuất đặc trưng: Tích chập là một khối rất quan trọng trong CNN. Thuật ngữ tích chập dựa trên một phép hợp nhất toán học của hai hàm tạo thành hàm thứ ba.
Phép toán này được kết hợp hai tập thông tin khác nhau. Trong trường hợp CNN, tích chập được thực hiện trên giá trị đầu vào của dữ liệu và kernel / filter (thuật ngữ này được sử dụng khác nhau tùy tình huống) để tạo ra một bản đồ đặc trưng (feature map). Ta thực hiện phép tích chập bằng cách trượt kernel / filter theo dữ liệu đầu vào. Tại mỗi vị trí, ta tiến hành phép nhân ma trận và tính tổng các giá trị để đưa vào bản đồ đặc trưng.
Trong hình dưới đây, thành phần kernel /filter (màu xanh lá) trượt trên đầu vào (màu xanh dương) và kết quả được trả về bản đồ đặc trưng (màu đỏ). Kernel / filter có kích thước là 3×3 trong ví dụ này. 9 Hình 2-2 Ví dụ tính toán phép tích chập. Trong thực tế, tích chập được thực hiện trên không gian 3 chiều.
Vì mỗi hình ảnh được biểu diễn dưới dạng 3 chiều: rộng, cao và sâu. Chiều sâu ở đây chính là giá trị màu sắc của hình (RGB). Ta thực hiện phép tích chập trên đầu vào nhiều lần khác nhau. Mỗi lần sử dụng một kernel / filter khác nhau, kết quả ta sẽ thu được những bản đồ đặc trưng khác nhau.
Cuối cùng sẽ kết hợp toàn bộ bản đồ đặc trưng này thành kết quả cuối cùng của tầng tích chập. Tương tự như mạng nơ-ron thông thường, sử dụng một hàm kích hoạt (activate function) để có đầu ra dưới dạng phi tuyến.Trong trường hợp CNN, đầu ra phép tích chập đi qua hàm kích hoạt nào đó ví dụ như hàm ReLU (rectified linear units). Trong quá trình trượt kernel / filter trên dữ liệu đầu vào, sẽ quy định một bước nhảy (stride) với mỗi lần di chuyển. Thông thường lựa chọn thường chọn bước nhảy là 1.
Nếu kích thước bước nhảy tăng, kernel / filter sẽ có ít ô trùng lắp. Số hàng / cột mà bộ lọc trượt qua trong một bước di chuyển ký hiệu là s. Ma trận đầu vào có kích thước là n. Kích thước của bộ lọc (filler) là f.
P (padding) là đường viền phụ. Kích thước ma trận đầu ra lúc này được tính bởi: 10 Hình 2-3 Nhân chập với bước sải (trượt) s=2 Bởi vì kích thước đầu ra luôn nhỏ hơn đầu vào nên cần có một phép xử lí đầu vào để đầu ra không bị co giãn. Đơn giản, ta chỉ cần thêm một lề nhỏ vào đầu vào. Một lề với giá trị 0 sẽ được thêm vào xung quanh đầu vào trước khi thực hiện phép tích chập.
Thông thường, sau mỗi tầng tích chập, sẽ cho kết quả đi qua một tầng hợp nhất (pooling layer). Mục đích của tầng này là để nhanh chóng giảm số chiều. Việc này giúp giảm thời gian học và hạn chế việc overfitting. Một phép hợp nhất đơn giản thường dùng đó là max pooling, phép này lấy giá trị lớn nhất của một vùng để đại diện cho vùng đó.
Kích thước của vùng sẽ được xác định trước để giảm kích thước của bản đồ đặc trưng nhanh chóng và giữ được thông tin cần thiết. 11 Hình 2-4 Mô hình Poolling max Layer Tổng kết lại khi sử dụng CNN, ta cần chú ý đến 4 siêu tham số quan trọng: Kích thước kernel/filter Số lượng kernel/filter Kích thước bước nhảy (stride) Kích thước lề (padding) Phân lớp: Trong phần phân lớp, sử dụng một vài tầng với kết nối đầy đủ để xử lý kết quả của phần tích chập. Vì đầu vào của mạng liên kết đầy đủ là 1 chiều, cần làm phẳng đầu vào trước khi phân lớp. Tầng cuối cùng trong mạng CNN là một tầng liên kết đầy đủ, phần này hoạt động tương tự như mạng nơ-ron thông thường.
Kết quả thu được cuối cùng cũng sẽ là một vector với các giá trị xác suất cho việc dự đoán như mạng nơ-ron thông thường. Mô hình mạng nơ-ron tích chập: CNN chỉ đơn giản là gồm một vài layer của convolution kết hợp với các hàm kích hoạt phi tuyến (nonlinear activation function) như là ReLU để tạo ra thông tin trừu tượng hơn (abstract / higher - level) cho các layer tiếp theo. 12 Trong mô hình Feedforward Neural Network (mạng nơ-ron truyền thẳng), các layer kết nối trực tiếp với nhau thông qua trọng số w (weighted vector). Các layer này còn được gọi là có kết nối đầy đủ (fully connected layer).
Trong mô hình CNNs thì ngược lại. Các layer liên kết được với nhau thông qua cơ chế convolution.