Chương 1: Mạng nơron và mạng nơron tích chập. Chương 2: Tổng quan về nhận dạng biển số xe. Chương 3: Áp dụng mạng nơron tích chập trong nhận dạng ký tự Phần kết luận tóm tắt lại các nội dung đã đạt được của luận văn, và nêu lên một số gợi ý về hướng phát triển tiếp theo của luận văn. MẠNG NƠRON VÀ MẠNG NƠRON TÍCH CHẬP 1.
Giới thiệu về mạng nơron Định nghĩa: Mạng nơron nhân tạo, Artificial Nơron 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ấu trúc nơron nhân tạo: Hình 1-1. Cấu tạo 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: Tập các đầu vào: Là các tín hiệu vào (input signals) 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. 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à wkj.
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ập liên tục trong quá trình học mạng. e 3 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. e 4 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 cặp biểu thức sau: Trong đó: x1, x2, ., xp: là các tín hiệu vào; (wk1, wk2,., wkp) là các trọng số liên kết của nơron thứ k; uk là hàm tổng; bk là một ngưỡng; f là hàm truyền và yk là tín hiệu đầu ra của nơron. Như vậy nơron nhân tạo 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, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền), và cho một tín hiệu đầu ra ( là kết quả của hàm truyền).
Một số hàm truyền thông dụng Hàm truyền Đồ thị Định nghĩa Hàm này cũng được biết đến với tên "Hàm ngưỡng" (Threshold function hay Heaviside function). Đầu ra của Symmetrical hàm này được giới hạn vào một Hard Limit trong hai giá trị: (hardlims) Nếu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này. Đôi khi Linear một hằng số được nhân với net-input (purelin) để tạo ra một hàm đồng nhất Hàm này có các thuộc tính tương tự Saturating hàm sigmoid. Nó làm việc tốt đối với Linear các ứng dụng có đầu ra yêu cầu trong (satlin) khoảng [-1,1].
Log-Sigmoid Hàm này đặc biệt thuận lợi khi sử (logsig) dụng cho các mạng được huấn luyện (trained) bởi thuật toán Lan truyền ngược (back-propagation), bởi vì nó dễ lấy đạo hàm, do đó có thể giảm đáng kể tính toán trong quá trình huấn luyện. Hàm này được ứng dụng cho các chương trình ứng dụng mà các đầu ra mong muốn rơi vào e 6 khoảng [0,1]. Mạng nơron tích chập 1. Định nghĩa mạng nơron tích chập Tích chập được ứng dụng phổ biến trong lĩnh vực thị giác máy tính.
Thông qua các phép tích chập, các đặc trưng chính từ ảnh được chiết xuất và truyền vào các lớp tích chập (layer convolution). Mỗi một lớp tích chập sẽ bao gồm nhiều đơn vị mà kết quả ở mỗi đơn vị là một phép biến đổi tích chập từ layer trước đó thông qua phép nhân tích chập với bộ lọc. Convolution (tích chập) Tích chập là một khái niệm trong xử lý tín hiệu số nhằm biến đổi thông tin đầu vào thông qua một phép tích chập với bộ lọc để trả về đầu ra là một tín hiệu mới. Tín hiệu này sẽ làm giảm những đặc trưng mà bộ lọc không quan tâm và chỉ giữ những đặc trưng chính.
Minh họa tích chập e 8 Ả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 để tính toán, cho ra một giá trị duy nhất. Đầ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). Mô hình mạng nơron tích chập Hình 1-3.
Mô hình mạng nơron tích chập CNNs có tính bất biến và tính kết hợp cục bộ (Location Invariance and Compositionality). Với cùng một đối tượng, nếu đối tượng này được chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ chính xác của thuật toán sẽ bị ảnh hưởng đáng kể. Pooling lớp sẽ cho bạn tính bất biến đối với phép dịch chuyển (translation), phép quay (rotation) và phép co giãn (scaling). Về cơ bản thiết kế của một mạng nơ ron tích chập 2 chiều có dạng như sau: INPUT -> [[CONV -> RELU]N -> POOL?]M -> [FC -> RELU]*K -> FC Trong đó: Input: Lớp đầu vào Conv Layer (Lớp tích chập): Mục tiêu của các lớp tích chập là trích chọn các đặc trưng của ảnh đầu vào.
ReLU Layer (Lớp biến đổi): ReLU layer áp dụng các kích hoạt e 9 (activation function) max(0,x) lên đầu ra của Conv Layer, có tác dụng đưa các giá trị âm về thành 0. Layer này không thay đổi kích thước của ảnh và không có thêm bất kì tham số nào. Mục đích của lớp ReLu là đưa ảnh một mức ngưỡng, ở đây là 0. Để loại bỏ các giá trị âm không cần thiết mà có thể sẽ ảnh hưởng cho việc tính toán ở các layer sau đó.
e 10 Pool layer (Lớp tổng hợp): Pool Layer thực hiện chức năng làm giảm chiều không gian của đầu và giảm độ phức tạp tính toán của model ngoài ra Pool Layer còn giúp kiểm soát hiện tượng overffiting. Thông thường, Pool layer có nhiều hình thức khác nhau phù hợp cho nhiều bài toán, tuy nhiên Max Pooling là được sử dụng nhiều vào phổ biến hơn cả với ý tưởng cũng rất sát với thực tế con người đó là: Giữ lại chi tiết quan trọng hay hiểu ở trong bài toán này chính giữ lại pixel có giá trị lớn nhất. Fully_Connected (Lớp kết nối hoàn toàn): Tại lớp mạng này, mỗi một nơ-ron của layer này sẽ liên kết tới mọi nơ-ron của lớp khác. Để đưa ảnh từ các layer trước vào mạng này, buộc phải dàn phẳng bức ảnh ra thành 1 vector thay vì là mảng nhiều chiều như trước.
Tại layer cuối cùng sẽ sử dụng 1 hàm kinh điển trong học máy mà bất kì ai cũng từng sử dụng đó là softmax để phân loại đối tượng dựa vào vector đặc trưng đã được tính toán của các lớp trước đó. Các kí hiệu []N, []M hoặc []*K ám chỉ cấu trúc bên trong [] có thể lặp lại nhiều lần liên tiếp nhau. M, K là số lần lặp lại. Kí hiệu -> đại diện cho các lớp liền kề nhau mà lớp đứng trước -> sẽ làm đầu vào cho lớp đứng sau.
Như vậy ta có thể thấy một mạng nơron tích chập về cơ bản có 3 quá trình khác nhau: Quá trình chiết xuất đặc trưng: Thông qua các tích chập giữa ma trận đầu vào với bộ lọc để tạo thành các đơn vị trong một lớp mới. Quá trình này có thể diễn ra liên tục ở phần đầu của mạng và thường sử dụng hàm kích hoạt relu. Quá trình tổng hợp: Các lớp ở về sau quá trình chiết xuất đặc trưng sẽ có kích thước lớn do số đơn vị ở các lớp sau thường tăng tiến theo cấp số nhân. Điều đó làm tăng số lượng hệ số và khối lượng tính toán trong mạng nơ ron.
Do đó để giảm tải tính toán chúng ta sẽ cần giảm chiều của ma trận hoặc giảm số đơn vị của lớp. Vì mỗi một đơn vị sẽ là kết quả đại diện của việc áp dụng 1 e 11 bộ lọc để tìm ra một đặc trưng cụ thể nên việc giảm số đơn vị sẽ không khả thi. Giảm kích thước ma trận thông qua việc tìm ra 1 giá trị đại diện cho mỗi một vùng không gian mà bộ lọc đi qua sẽ không làm thay đổi các đường nét chính của bức ảnh nhưng lại giảm được kích thước của ảnh. Do đó quá trình giảm chiều ma trận được áp dụng.
Quá trình này gọi là tổng hợp. e 12 Quá trình kết nối hoàn toàn: Sau khi đã giảm số lượng tham số đến một mức độ hợp lý, ma trận cần được làm dẹt (flatten) thành một vector và sử dụng các kết nối hoàn toàn giữa các lớp. Quá trình này sẽ diễn ra cuối mạng tích chập và sử dụng hàm kích hoạt là relu. Kết nối cuối cùng sẽ dẫn tới các đơn vị là đại diện cho mỗi lớp với hàm kích hoạt là softmax nhằm mục đích tính xác xuất.
Tính chất của mạng nơron tích chập Tính kết nối trượt: Khác với các mạng nơ ron thông thường, mạng nơ ron tích chập không kết nối tới toàn bộ hình ảnh mà chỉ kết nối tới từng vùng địa phương (local region) có kích thước bằng kích thước bộ lọc của hình ảnh đó. Các bộ lọc sẽ trượt theo chiều của ảnh từ trái qua phải và từ trên xuống dưới đồng thời tính toán các giá trị tích chập và điền vào bản đồ kích hoạt (activation map). Tích chập trên bản đồ kích hoạt Tính chia sẻ kết nối và kết nối cục bộ: Chúng ta đã biết quá trình biến đổi trong mạng tích chập sẽ kết nối các khối nơron 3D. Tuy nhiên các đơn vị sẽ không kết nối tới toàn bộ khối 3D trước đó theo chiều width và height mà chúng sẽ chọn ra các vùng địa phương có kích thước bằng với bộ lọc giống như quá trình tính tích chập.
Các vùng địa phương sẽ được chia sẻ chung một bộ siêu tham số gọi là trường tiếp nhận (receptive field) của bộ lọc. Tuy nhiên các kết nối cục bộ chỉ diễn ra theo e 13 chiều width và height. Kết nối sẽ mở rộng hoàn toàn theo chiều depth.