Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Công nghệ thông tin Nhận dạng phương tiện giao thông sử dụng kỹ thuật học sâu...

Tài liệu Nhận dạng phương tiện giao thông sử dụng kỹ thuật học sâu

.PDF
59
265
129

Mô tả:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- BÙI TRẦN TIẾN NHẬN DẠNG PHƯƠNG TIỆN GIAO THÔNG SỬ DỤNG KỸ THUẬT HỌC SÂU LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng nghiên cứu) HÀ NỘI - 2019 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- BÙI TRẦN TIẾN NHẬN DẠNG PHƯƠNG TIỆN GIAO THÔNG SỬ DỤNG KỸ THUẬT HỌC SÂU CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH MÃ SỐ: 8.48.01.01 LUẬN VĂN THẠC SĨ KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC TS. NGUYỄN NGỌC ĐIỆP HÀ NỘI - 2019 i LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu và tìm hiểu của riêng tôi. Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất cứ công trình nào khác. Tác giả luận văn Bùi Trần Tiến ii LỜI CẢM ƠN Để hoàn thành được luận văn này, ngoài sự nghiên cứu và những cố gắng của bản thân, em xin gửi lời cảm ơn sâu sắc tới Tiến sĩ Nguyễn Ngọc Điệp, giáo viên trực tiếp hướng dẫn, tận tình chỉ bảo và định hướng cho em trong suốt quá trình nghiên cứu và thực hiện luận văn. Xin gửi Em xin gửi lời cảm ơn chân thành cảm ơn tất cả các thầy cô giáo của Học viện Công nghệ Bưu chính Viễn thông đã giảng dạy và dìu dắt em trong trong suốt quá trình học tập tại trường từ khi còn học đại học cho đến sau đại học. Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè và những người đã luôn ở bên cổ vũ tinh thần, tạo điều kiện thuận lợi cho em để em có thể học tập tốt và hoàn thiện luận văn. Em xin chân thành cảm ơn! iii MỤC LỤC LỜI CẢM ƠN ......................................................................................................... ii MỤC LỤC .............................................................................................................iii DANH MỤC BẢNG ............................................................................................... v DANH MỤC HÌNH ẢNH ...................................................................................... vi DANH MỤC KÝ HIỆU CÁC CHỮ VIẾT TẮT ................................................... viii MỞ ĐẦU ................................................................................................................ 1 CHƯƠNG 1: KỸ THUẬT HỌC SÂU VÀ BÀI TOÁN PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG ........................................................................................................ 3 1.1 Giới thiệu về học sâu. .................................................................................... 3 1.1.1 Học sâu................................................................................................... 3 1.1.2 Mạng nơ-ron tích chập – Convolutional neural network (CNN) .............. 7 1.2 Các kỹ thuật liên quan đến xử lý ảnh và nhận diện đối tượng. ..................... 13 1.2.1 Tổng quan về xử lý ảnh ........................................................................ 13 1.2.2 Các vấn đề cơ bản trong xử lý ảnh ........................................................ 14 1.2.3 Nhận diện và phân loại ảnh ................................................................... 14 1.3 Các kỹ thuật hiện tại và hạn chế. ................................................................. 15 1.3.1 R-CNN, Fast R-CNN ............................................................................. 15 1.3.2 Faster R-CNN........................................................................................ 18 1.3.3 YOLO, SSD .......................................................................................... 19 1.4. Kết luận chương. ........................................................................................ 20 CHƯƠNG 2: PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG SỬ DỤNG KỸ THUẬT HỌC SÂU YOLO ................................................................................................. 22 2.1 Bài toán phát hiện phương tiện giao thông ................................................... 22 2.1.1 Tổng quan bài toán ................................................................................ 22 2.1.2 Các điều kiện ràng buộc......................................................................... 23 2.2 Hệ thống phát hiện đối tượng thời gian thực YOLO. .................................... 23 2.2.1 Tổng quan hệ thống phát hiện đối tượng YOLO. ................................... 23 iv 2.2.2 Các thành phần của hệ thống YOLO ..................................................... 24 2.2.3 Kiến trúc của mô hình YOLO qua các phiên bản ................................... 27 2.2 Phương pháp huấn luyện ......................................................................... 33 2.3 Kết luận chương. ......................................................................................... 36 CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ ..................................................... 37 3.1 Thu thập và tiền xử lý dữ liệu. ..................................................................... 37 3.2 Cài đặt và thử nghiệm. ................................................................................. 38 3.2.1 Môi trường thử nghiệm .......................................................................... 38 3.2.2 Huấn luyện dữ liệu ................................................................................ 39 3.2.3 Phương pháp đánh giá. ............................................................................. 39 3.3 Đề xuất phương pháp cải tiến và đánh giá ................................................... 43 3.3.1 Đề xuất phương pháp cải tiến .................................................................... 43 3.3.2 Đánh giá phương pháp cải tiến ................................................................. 43 3.4 Kết luận chương .......................................................................................... 46 KẾT LUẬN ........................................................................................................... 47 TÀI LIỆU THAM KHẢO ..................................................................................... 48 v DANH MỤC BẢNG Bảng 1.1: So sánh các mô hình dựa trên R-CNN ............................................................. 18 Bảng 2.1: So sánh các mô hình khác với YOLO .............................................................. 23 vi DANH MỤC HÌNH ẢNH Hình 1.1: Nơ-ron sinh học ................................................................................................. 4 Hình 1.2: Perceptron.......................................................................................................... 4 Hình 1.3: Hàm sigmoid ..................................................................................................... 5 Hình 1.4: Mạng nơ-ron nhân tạo ........................................................................................ 6 Hình 1.5: Quá trình tích chập (Convolutional) ................................................................... 8 Hình 1.6: Mô hình mạng CNN .......................................................................................... 9 Hình 1.7: Input đầu vào của một nơ-ron ở lớp ẩn ............................................................. 10 Hình 1.8: Các input của nơ-ron thứ nhất .......................................................................... 10 Hình 1.9: Các input của nơ-ron thứ hai ............................................................................ 11 Hình 1.10: Ma trận đặc trưng thu được khi sử dụng 3 filter .............................................. 11 Hình 1.11: Quá trình tổng hợp thông tin .......................................................................... 12 Hình 1.12: Lớp kết nối đầy đủ của CNN .......................................................................... 13 Hình 1.13: Các bước cơ bản trong một hệ thống xử lý ảnh ............................................... 13 Hình 1.14: Mô hình R-CNN ............................................................................................ 16 Hình 1.15: Mô hình SPP-net ............................................................................................ 17 Hình 1.16: Mô hình mạng Fast R-CNN ........................................................................... 17 Hình 1.17: Mô hình mạng Faster R-CNN ........................................................................ 18 Hình 1.18: Quá trình dự đoán của YOLO ........................................................................ 19 Hình 1.19: Mô hình mạng SSD ........................................................................................ 20 Hình 2.1 Bài toán phát hiện phương tiện giao thông ........................................................ 22 Hình 2.2: Mô hình YOLO ban đầu .................................................................................. 24 Hình 2.3: Ô chịu trách nhiệm dự đoán đối tượng xe ô tô .................................................. 25 Hình 2.4: Quá trình non-maximum suppression ............................................................... 27 Hình 2.5: YOLO version 1 .............................................................................................. 27 Hình 2.6: Loại bỏ phần kết nối đầy đủ trên YOLOv2 ....................................................... 28 Hình 2.7: Kết quả dự đoán của YOLO ............................................................................. 29 Hình 2.8: Mô hình YOLO phiên bản thứ 3 ...................................................................... 30 Hình 2.9: Kết quả dự đoán của YOLOv3 ......................................................................... 32 Hình 3.1 : Quá trình xác định hộp giới hạn và gán nhãn cho ảnh ...................................... 37 Hình 3.2:Định dạng file annotation cho mỗi ảnh .............................................................. 38 Hình 3.3: Log trong quá trình training ............................................................................. 39 Hình 3.4: Xác định ground truth cho các đối tượng .......................................................... 40 Hình 3.5: Kết quả dự đoán của mô hình ........................................................................... 40 vii Hình 3.6: So sánh kết quả dự đoán với ground truth của đối tượng .................................. 41 Hình 3.7: Vùng giao nhau giữa kết quả dự đoán và ground truth ...................................... 41 Hình 3.8: Công thức tính IoU .......................................................................................... 42 Hình 3.9: Tốc độ xử lý .................................................................................................... 44 Hình 3.10: Tốc độ hội tụ của hai cấu hình ........................................................................ 44 Hình 3.11: Thời gian huấn luyện của hai cấu hình ........................................................... 45 Hình 3.12: Kết quả mô hình YOLO sau khi thay đổi số filter ........................................... 45 viii DANH MỤC KÝ HIỆU CÁC CHỮ VIẾT TẮT Viết tắt Tiếng Anh CNN Convolutional Neural Network COCO Common Object in Context FPS Frame per second GPU Graphics processing unit HOG Histogram of oriented gradients IoU Intersection over Union MAP mean average precision NMS Non-maximum suppression R-CNN Region – Convolutional Neural Network SSD Single Shot Detector SVM Support vector machine YOLO You Only Look Once Tiếng Việt Mạng nơ-ron tích chập Khung hình trên giây Bộ xử lý đồ họa 1 MỞ ĐẦU Trong thời đại ngày này công nghệ thông tin hầu như đã thâm nhập vào toàn bộ các lĩnh vực đời sống xã hội. Xã hội ngày càng phát triển thì nhu cầu áp dụng các tiến bộ của công nghệ thông tin vào cuộc sống ngày càng cao để giải quyết những vấn đề phức tạp về y tế, giáo dục, giao thông… Ở nước ta những năm gần đấy, cùng với sự phát triển của kinh tế xã hội thì số lượng phương tiện giao thông đường bộ cũng tăng lên nhanh chóng đi liền với đó là vấn đề tai nạn giao thông và ùn tắc giao thông, đặc biệt là giao thông đường bộ, số vụ giao thông không ngừng tăng về quy mô và số lượng. Đặc biệt vấn nạn ùn tắc giao thông tại một số tuyến đường xuyên tâm như đường Đê La Thành, Trần Đại Nghĩa, Kim Liên, Nguyễn Lương Bằng, Nguyễn Trãi, Giải Phóng… lâm vào cảnh ùn tặc kéo dài, ùn tặc trầm trọng gây ảnh hưởng đến cuộc sống của người dân và thiệt hại lớn về kinh tế xã hội. Với mục đích đưa những tiến bộ công nghệ vào phục vụ cho cuộc sống, tôi xin chọn đề tài nghiên cứu “Nhận dạng phương tiện giao thông sử dụng kỹ thuật học sâu”. Hy vọng kết quả của đề tài này có thể là một tiền đề quan trọng trong việc xây dựng các hệ thống giám sát phương tiện giao thông cũng như các hệ thống cảnh báo ùn tắc giao thông ở nước ta hiện nay. Mục tiêu của luận án là Nghiên cứu các phương pháp phát hiện đối tượng bằng kỹ thuật học sâu và áp dụng phát hiện phương tiện giao thông tại Việt Nam. Mục tiêu cụ thể bao gồm: - Nắm được một số phương pháp học sâu quan trọng - Áp dụng và đánh giá hiệu quả trên dữ liệu ảnh, video được thu thập tại Việt Nam Do thời gian có hạn nên luận văn tập trung phát hiện phương tiện giao thông từ ảnh và video - Ảnh và video giao thông tai Việt Nam được quay trong điều kiện ánh sáng tốt. - Phương tiện cần phát hiện là ô tô con và xe máy. Nội dung của luận văn được bố cục thành 3 chương như sau: 2  CHƯƠNG 1: KỸ THUẬT HỌC SÂU VÀ BÀI TOÁN PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG Giới thiệu chương: Giới thiệu về kỹ thuật học sâu, các khái niệm, đặc trưng và các kỹ thuật liên quan đến xử lý ảnh và phát hiện đối tượng. Tổng quan về bài toán phát hiện phương tiện giao thông. Các kỹ thuật hiện tại áp dụng cho bài toán nhận diện phương tiện giao thông và những hạn chế của các kỹ thuật này.  CHƯƠNG 2: PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG SỬ DỤNG KỸ THUẬT HỌC SÂU YOLO Giới thiệu chương: Trình bày tổng quan về bài toàn phát hiện phương tiện giao thông sử dụng kỹ thuật học sâu YOLO. Giới thiệu về hệ thống phát hiện đối tượng thời gian thực và một số phương pháp tiếp cận.  CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ Giới thiệu chương: Sử dụng các thư viện có sẵn đã cài đặt hệ thống phát hiện đối tượng thời gian thực và áp dụng một trong những phương pháp được đề xuất ở Chương 3. Thực hiện xây dựng bộ dữ liệu từ các phương tiện giao thông tại Việt Nam bao gồm các hình ảnh các phương tiện giao thông và các video được quay trong điều kiện ánh sang tốt. Thực hiện huấn luyện hệ thống với bộ dữ liệu tự xây dựng. 3 CHƯƠNG 1: KỸ THUẬT HỌC SÂU VÀ BÀI TOÁN PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG Trong chương này luận văn sẽ giới thiệu về học sâu, các khái niệm, đặc trưng và các kỹ thuật liên quan đến xử lý ảnh và phát hiện đối tượng. Các kỹ thuật hiện tại áp dụng cho bài toán phát hiện đối tượng và những hạn chế của các kỹ thuật này. 1.1 Giới thiệu về học sâu. 1.1.1 Học sâu Học sâu (deep learning) là một nhánh của ngành máy học, dựa trên một tập hợp các thuật toán để cố gắng mô hình dữ liệu để trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều lớp biến đổi phi tuyến để trích tách đặc trưng và chuyển đổi[23]. Mỗi lớp kế tiếp dùng đâu ra của lớp trước làm đầu vào. Các thuật toán này có thể được giám sát hoặc không cần giám sát và các ứng dụng bao gồm các mô hình phân tích (không giám sát) và phân loại (giám sát). Các thuật toán học sâu dựa trên các đại diện phân phối. Giả định tiềm ẩn đằng sau các đại diện phân phối là các dữ liệu được quan sát là được tạo ra bởi sự tương tác của các yếu tố được tổ chức theo lớp. Học sâu thêm giả định rằng các lớp của các yếu tố này tương ứng với các mức độ trừu tượng hay theo thành phần. Các con số khác nhau của các lớp và kích thước của lớp có thể được sử dụng để quy định các lớp trừu tượng khác. Học sâu khai thác ý tưởng thứ bậc các yếu tố giải thích này ở cấp cao hơn, những khái niệm trừu tượng hơn được học từ các cấp độ thấp hơn. Một trong những phương pháp học sâu thành công nhất là mô hình mạng nơ-ron nhân tạo (Arificial Neural Network)[23]. Mạng nơ-ron nhân tạo được lấy cảm hứng từ các mô hình sinh học năm 1959 được đề xuất bởi người đoạt giải Nobel David H. Hubel & Torsten Wiesel, 2 người đã tìm thấy hai loại tế bào trong vỏ não thị giác chính: các tế bào đơn giản và các tế bào phức tạp. Nhiều mạng nơ-ron nhân tạo có thể được xem như là các mô hình ghép tầng của các tế bào loại lấy cảm hứng từ những quan sát sinh học. Nhưng không giống như bộ não sinh học mà bất kỳ nơ-ron nào có thể kết nối với bất kỳ nơ-ron nào khác trong một cách nhất định, các mạng nơ-ron nhân tạo 4 này có các lớp, kết nối và hướng riêng biệt để truyền dữ liệu. Mỗi tế bào thần kinh được gán một trọng số cho đầu vào của nó, kết quả cuối cùng sau đó được xác định bằng tổng số trọng số đó. Hình 1.1: Nơ-ron sinh học Như hình trên, ta có thể thấy một nơ-ron có thể nhận nhiều đầu nào và cho ra một kết quả duy nhất. Một nơ-ron đơn lẻ như vậy được gọi là perceptron Hình 1.2: Perceptron Ví dụ: Một perceptron sẽ nhận một hoặc nhiều đầu vào x dạng nhị phân và cho kết quả đầu ra o dạng nhị phân duy nhất. Các đầu vào được điều phối tầm ảnh hưởng bởi các tham số lượng tương ứng w của nó, kết quả đầu ra được quyết định vào một ngưỡng quyết định b nào đó: 0, ∑ 𝑤𝑖 𝑥𝑖 ≤ 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑 𝑖 𝑜 = 1, { ∑ 𝑤𝑖 𝑥𝑖 > 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑 𝑖 Đặt b = - threshold, ta có thể viết lại thành: 5 0, ∑ 𝑤𝑖 𝑥𝑖 + 𝑏 ≤ 0 𝑖 𝑜 = 1, ∑ 𝑤𝑖 𝑥𝑖 + 𝑏 > 0 { 𝑖 Với đầu vào và đầu ra dạng nhị phân, ta rất khó có thể điều chỉnh một lượng nhỏ đầu vào để đầu ra thay đổi chút ít, nên để linh động ta có thể mở rộng ra cả khoảng [0, 1]. Lúc này đầu ra được quyết định bởi một hàm sigmoid[17] σ(w⊺x) có công thức 𝜎(𝑧) = 1 1 + 𝑒 −𝑧 Đồ thị của hàm này cũng cân xứng thể hiện được mức độ công bằng của các tham số: Hình 1.3: Hàm sigmoid Đặt z = WTX thì công thức của perceptron lúc này sẽ có dạng: o = 𝜎(𝑧) = 1 1 + 𝑒 −𝑊 𝑇𝑋 Tới đây thì ta có thể thấy rằng mỗi hàm sigmoid cũng tương tự như một bộ phân loại tuyến tính(logistic regression) bởi xác suất P(yi=1|xi;w)= σ(w⊺x). Ngoài hàm sigmoid ra ta còn có một số hàm khác như tanh, ReLU[1] để thay thế hàm sigmoid bởi dạng đồ thị của nó cũng tượng tự như sigmoid[17]. Một cách tổng quát, hàm perceptron được biểu diễn qua một hàm kích hoạt (activation function) f(z) như sau: 𝑜 = 𝑓(𝑧) = 𝑓(𝑊 𝑇 𝑋) Mạng nơ-ron nhân tạo là sự kết hợp của các tầng perceptron hay còn gọi là perceptron đa tầng (multilayer perceptron) như hình bên dưới: 6 Hình 1.4: Mạng nơ-ron nhân tạo Kiến trúc chung của mạng nơ-ron nhân tạo bao gồm thành phần: Lớp đầu vào, Lớp ẩn và Lớp đầu ra.  Lớp đầu vào (Input layer): Là nơi để nạp dữ liệu vào. Mỗi nơ-ron tương ứng với một thuộc tính (attribute) hoặc đặc trưng (feature) của dữ liệu đầu vào.  Lớp ẩn (Hidden layer): Là nơi xử lý dữ liệu trước khi đưa ra output. Thường là hàm tổng (Summation function) để đưa ra giá trị của một nơ-ron tại hidden layer. Có thể có nhiều hơn một hidden layer. Khi đó đầu ra của một hidden layer sẽ là đầu vào cho hidden layer tiếp theo.  Lớp đầu ra (Output layer): Là giá trị đầu ra của mạng nơ-ron. Sau khi đi qua hidden layer cuối cùng, dữ liệu sẽ được chuyển hóa bằng một hàm số được gọi là hàm kích hoạt (Activation function) và đưa ra output cuối cùng. Hàm chuyển đổi thường là hàm tanh(x), sigmoid(x) hoặc softmax(x)[17]. Trong mạng nơ-ron nhân tạo, mỗi nơ-ron đóng vai trò như một đơn vị xử lý thông tin. Giữa các nơ-ron được đánh trọng số, gọi là các trọng số liên kết (Connection Weight), thể hiện độ quan trọng của thông tin của mỗi nơ-ron trước với nơ-ron sau. Quá trình học của mạng nơ-ron cũng chính là việc điều chỉnh những tham số này sao cho phù hợp nhất. Thông tin của mỗi nơ-ron đi qua mỗi layer sẽ được áp dụng hàm tổng và hàm kích hoạt trước khi trở thành thông tin đầu vào của nơ-ron tiếp theo. 7 𝑓(𝑥 ) = ∑𝑛𝑗=1 𝑥𝑗 × 𝑤𝑖𝑗 Hàm tổng: Trong đó: - 𝑥𝑗 : Giá trị đầu ra của nơ-ron thứ j - 𝑤𝑖𝑗 : Trọng số liên kết giữa nơ-ron thứ j ở layer trước và nơ-ron thứ i ở layer sau Thông tin ở hidden layer cuối cùng trước khi tới output sẽ phải qua một hàm kích hoạt (Activation function). Việc sử dụng hàm kích hoạt có hai mục đích: Một là những thông tin qua hàm tổng có thể sẽ lớn, vì vậy hàm chuyển đổi sẽ khiến giá trị đầu ra bị chặn. Ví dụ đầu ra của hàm sigmoid sẽ nằm trong khoảng [0, 1] còn tanh thì là [-1, 1]. Hai là hàm tổng là một hàm tuyến tính, giá trị đầu ra sẽ không “mượt”, hàm kích hoạt sẽ “mượt hóa” kết quả của hàm tổng để kết quả đầu ra có thể chính xác hơn. Hàm kích hoạt thường sử dụng là hàm softmax, tanh, sigmoid[17] hay chỉ đơn thuần là một ngưỡng để quyết định giá trị cho output. - Hàm softmax: 𝑒𝑥 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 (𝑥 ) = ∑𝑛 𝑘𝑒 𝑥𝑘 n: là tổng số nơ-ron ở output layer x: là giá trị từ hidden layer cuối cùng sau khi đi qua hàm tổng 1 - Hàm Sigmoid: 𝑓(𝑥 ) = - Hàm tanh: 𝑡𝑎𝑛ℎ (𝑥 ) = 1+𝑒 −𝑥 𝑒 𝑥 −𝑒 −𝑥 𝑒 𝑥 +𝑒 −𝑥 1.1.2 Mạng nơ-ron tích chập – Convolutional neural network (CNN) Convolutional Neural Network (CNN – 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 cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đư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 sử dụng nhiều trong các bài toán phát hiện các object trong ảnh. Để tìm hiểu tại sao thuật toán này được sử dụng rộng rãi cho việc phát hiện (detection), chúng ta hãy cùng tìm hiểu về thuật toán này. Convolutional là một cửa sổ trượt (sliding windows) trên một ma trận. 8 Hình 1.5: Quá trình tích chập (Convolutional) Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh lấy ra những thông tin chính xác nhất mà không cần chọn các feature. Trong hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa. Ma trận có kích thước 5x5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột. Convolution hay tích chập là nhân từng phần tử trong ma trận 3x3. Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận có kích thước nhỏ như trong ví dụ trên là 3x3. Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3x3 với ma trận bên trái. Kết quả được một ma trận gọi là Convoled feature được sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5x5 bên trái. Cấu trúc của mạng CNN - Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo. Trong mô hình mạng lan truyền tiến(feedforward neural network) thì mỗi nơ-ron đầu vào (input node) cho mỗi nơ-ron đầu ra trong các lớp tiếp theo. Mô hình này gọi là mạng kết nối đầy đủ (fully connected layer) hay mạng toàn vẹn (affine layer). Còn trong mô hình CNN thì ngược lại. Các layer liên kết được với nhau thông 9 qua cơ chế convolution. Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ vậy mà ta có được các kết nối cục bộ. Như vậy mỗi nơ-ron ở lớp kế tiếp sinh ra từ kết quả của filter áp đặt lên một vùng ảnh cục bộ của nơ-ron trước đó. - Mỗi một lớp được sử dụng các filter khác nhau thông thường có hàng trăm hàng nghìn filter như vậy và kết hợp kết quả của chúng lại. Ngoài ra có một số layer khác như pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ các thông tin nhiễu). Trong quá trình huấn luyện mạng (training) CNN tự động học các giá trị qua các lớp filter dựa vào cách thức mà bạn thực hiện. Ví dụ trong tác vụ phân lớp ảnh, CNN sẽ cố gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel > edges > shapes > facial > high-level features. Layer cuối cùng được dùng để phân lớp ảnh. Hình 1.6: Mô hình mạng CNN - Trong mô hình CNN có 2 khía cạnh cần quan tâm là tính bất biến (Location Invariance) và tính kết hợp (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 layer sẽ cho ta 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). Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter. Đó là lý do tại sao CNN cho ra mô hình với độ chính xác rất cao. Cũng giống như cách con người nhận biết các vật thể trong tự nhiên. - Mạng CNN sử dụng 3 ý tưởng cơ bản:  Các trường tiếp nhận cục bộ (local receptive field) 10  Trọng số chia sẻ (shared weights)  Tổng hợp (pooling). Các ý tưởng cơ bản của CNN: - Trường tiếp nhận cục bộ (local receptive field) Đầu vào của mạng CNN là một ảnh. Ví dụ như ảnh có kích thước 28x28 thì tương ứng đầu vào là một ma trận có 28x28 và giá trị mỗi điểm ảnh là một ô trong ma trận. Trong mô hình mạng nơ-ron truyền thống thì chúng ta sẽ kết nối các nơ-ron đầu vào vào tầng ẩn. Tuy nhiên trong CNN chúng ta không làm như vậy mà chúng ta chỉ kết nối trong một vùng nhỏ của các nơ-ron đầu vào như một filter có kích thước 5x5 điểm ảnh đầu vào. Mỗi một kết nối sẽ học một trọng số và mỗi nơ-ron ẩn sẽ học một bias. Mỗi một vùng 5x5 đấy gọi là một trường tiếp nhận cục bộ. Hình 1.7: Input đầu vào của một nơ-ron ở lớp ẩn Một cách tổng quan, ta có thể tóm tắt các bước tạo ra 1 hidden layer bằng các cách sau: Bước 1: Tạo ra nơ-ron ẩn đầu tiên trong lớp ẩn 1 Hình 1.8: Các input của nơ-ron thứ nhất
- Xem thêm -

Tài liệu liên quan