Có rất nhiều phương pháp để thực hiện điều này, nhưng cách để có được kết quả tốt nhất và phù hợp với cuộc cách mạng công nghiệp 4.0 là sử dụng một thuật toán liên quan đến lĩnh vực trí
Trang 1LUẬN VĂN THẠC SĨ DƯƠNG MINH THIỆN
ĐIỀU HƯỚNG XE TỰ HÀNH DÙNG TRÍ TUỆ NHÂN TẠO
NGÀNH: KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA - 8520216
S K C0 0 6 0 7 4
Trang 2THÀNH PHỐ HỒ CHÍ MINH
Tp Hồ Chí Minh, tháng 04/2019
LUẬN VĂN THẠC SĨ DƯƠNG MINH THIỆN
ĐIỀU HƯỚNG XE TỰ HÀNH DÙNG TRÍ TUỆ NHÂN TẠO
NGÀNH: KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA - 8520216
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
LUẬN VĂN THẠC SĨ DƯƠNG MINH THIỆN
ĐIỀU HƯỚNG XE TỰ HÀNH DÙNG TRÍ TUỆ NHÂN TẠO
Trang 4QUYẾT ĐỊNH GIAO ĐỀ TÀI
Trang 5LÝ LỊCH KHOA HỌC
I LÝ LỊCH SƠ LƯỢC:
Họ & tên: Dương Minh Thiện Giới tính: Nam
Ngày, tháng, năm sinh: 22/06/1994 Nơi sinh: Bà Rịa Vũng Tàu Quê quán: Bà Rịa Vũng Tàu Dân tộc: Kinh
Địa chỉ liên lạc: 167/1/7 Võ Thị Sáu, Thị Trấn Long Điền, Huyện Long Điền, Tỉnh Bà Rịa Vũng Tàu
Điện thoại liên hệ: 0909 196 940
E-mail: duongthien2206@gmail.com
II QUÁ TRÌNH ĐÀO TẠO:
1 Đại học:
Hệ đào tạo: Chính qui
Thời gian đào tạo: từ 09/2012 đến 12/2016
Nơi học: Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh Ngành học: Công Nghệ Kỹ Thuật Điều Khiển & Tự Động Hóa
Tên đồ án, luận án hoặc môn thi tốt nghiệp: Thiết Kế, Thi Công và Lập Trình Điều Khiển Cánh Tay Máy Gắp Vật Thể Sử Dụng Thuật Toán Nhận Dạng Màu Sắc và Hình Khối
Ngày & nơi bảo vệ đồ án tốt nghiệp: tháng 07/2016 tại Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Người hướng dẫn: TS Nguyễn Văn Thái
10/2017- nay Đại Học Sư Phạm Kỹ Thuật
Thành Phố Hồ Chí Minh Học viên cao học
Trang 6LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của 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 kỳ công trình nào khác
Tp Hồ Chí Minh, ngày 13 tháng 04 năm 2019
(Ký tên và ghi rõ họ tên)
Trang 7LỜI CẢM ƠN
Trong suốt quá trình thực hiện đề tài, với sự giúp đỡ nhiệt tình của quý thầy
cô, hướng dẫn về mọi mặt từ thiết kế phần cứng đến phần mềm điều khiển là những yếu tố quyết định đến sự thành công của đề tài ngày hôm nay Tôi xin chân thành gửi lời cảm ơn đến:
Giảng viên hướng dẫn TS Lê Mỹ Hà đã định hướng, nhiệt tình giúp đỡ, chỉ
bảo tận tình và tạo điều kiện tốt nhất cho tôi khi làm việc tại phòng thí nghiệm (ISLab) trong suốt quá trình thực hiện đề tài
Tôi cũng xin gửi lời cảm ơn đến toàn bộ quý thầy cô trong Khoa Điện – Điện
tử và Bộ môn Tư Động Điều Khiển đã giúp đỡ tôi rất nhiều trong quá trình thực hiện
đề tài cũng như đóng góp ý kiến và tạo điều kiện thuận lợi giúp đề tài hoàn thiện hơn
Tôi xin gửi lời cảm ơn đến tập thể lớp cao học TĐH17B, trong quá trình làm
đề tài các anh chị đã có những ý kiến thiết thực và giúp đỡ tôi trong việc thiết kế và thi công đề tài
Cuối cùng, tôi xin gửi lời cảm ơn chân thành tới nhà trường, thầy cô, cha mẹ
và bạn bè đã động viên và giúp đỡ trong suốt quá trình thực hiện đề tài
Tôi xin chân thành cảm ơn!
Trang 8TÓM TẮT
Trong đề tài này, mô hình xe tự lái dựa trên thị giác máy sử dụng mạng nơron học sâu trên máy tính Raspberry Pi được đề xuất Xe tự lái là một trong những lĩnh vực được quan tâm nghiên cứu nhiều nhất trong những năm gần đây nhờ vào sự phát triển mạnh mẽ của công nghệ phần cứng cũng như phần mềm liên quan đến khả năng
tự lái hoàn toàn, không có sự can thiệp của con người Cấp độ 3 trên 4 của phương tiện tự hành sẽ đạt được trong tương lai rất gần Việc sử dụng cơ điện tử và trí tuệ nhân tạo (AI) sẽ hỗ trợ người lái xe điều khiển và kiểm soát phương tiện một cách dễ dàng hơn Điều này đóng góp rất nhiều cho các vấn đề giao thông hiện nay, có xe tự hành, sẽ không còn kẹt xe, hạn chế tai nạn giao thông do con người Mạng nơron tích chập (CNN) đã được chứng minh rằng có hiệu suất đáng kể trong rất nhiều bài toán nhận dạng và điều khiển so với các kỹ thuật khác trong thời gian gần đây Những yếu
tố quyết định kết quả ấn tượng này chính là khả năng học hàng triệu thông số sử dụng một lượng lớn dữ liệu đã được gán nhãn Ở đây, tác giả tập trung vào việc tìm kiếm một model trực tiếp ánh xạ các hình ảnh đầu vào đến các góc lái dự đoán ở đầu ra mạng nơron học sâu
Việc thực hiện luận văn này bao gồm ba việc chính Đầu tiên, các thông số của model CNN được huấn luyện bằng cách sử dụng dữ liệu thu thập được từ một xe mô hình tỉ lệ 1/10, gắn máy tính Raspberry Pi 3 Model B và một camera ở phía trước Dữ liệu dùng để huấn luyện mạng là hình ảnh đường đi và góc lái đồng bộ với thời gian thu thập lúc xe được lái Tiếp theo, dữ liệu đó được chuyển sang máy tính và dùng để huấn luyện cho model điều hướng xe Cuối cùng, thực nghiệm model đó trên máy tính Raspberry để xe tự chạy trong môi trường ngoài trời, xung quanh đường tròn và đường số 8 có biển báo giao thông Kết quả thực nghiệm cho thấy tính hiệu quả và
sự mạnh mẽ của model lái tự động trong việc giữ làn đường trong thời gian thực Tốc
độ tối đa của xe khoảng 5-6km/h trong nhiều điều kiện lái khác nhau, bất kể vạch đường có bị che khuất hay không
Trang 9ABSTRACT
In this thesis, a monocular vision-based self-driving car prototype using Deep Neural Network on Raspberry Pi is proposed Self-driving cars are one of the most increasing interests in recent years as the definitely developing relevant hardware and software technologies toward fully autonomous driving capability with no human intervention Level-3/4 autonomous vehicles are potentially turning into a reality in near future It involves the use of Mechatronics and Artificial Intelligence (AI) to control the vehicle, thereby taking the responsibilities of the driver, providing a more manageable control over it And a swarm of autonomous vehicles could just be the solution to our traffic problems: no traffic jam, no road accidents, no delayed journey Convolutional Neural Networks (CNNs) have been shown to achieve significant performance in various perception and control tasks in comparison to other techniques in the latest years The key factors behind these impressive results are their ability to learn millions of parameters using a large amount of labeled data In this work, we concentrate on finding a model that directly maps raw input images to a predicted steering angle as output using a deep neural network
The technical contributions of this work are three-fold First, the CNN model parameters were trained by using data collected from vehicle platform built with a 1/10 scale RC car, Raspberry Pi 3 Model B computer and front-facing camera The training data were road images paired with the time-synchronized steering angle generated by manually driving Second, the stored data is then transferred to a desktop computer and used for training the model to autonomously navigate the car Finally, road tests the model on Raspberry to drive itself in the outdoor environment around oval-shaped and 8-shaped with traffic sign lined track The experimental results demonstrate the effectiveness and robustness of autopilot model in real-time lane keeping task Vehicle’s top speed is about 5-6km/h in a wide variety of driving conditions, regardless of whether lane markings are present or not
Trang 10MỤC LỤC
LÝ LỊCH KHOA HỌC i
LỜI CAM ĐOAN iii
LỜI CẢM ƠN iv
TÓM TẮT v
ABSTRACT vi
MỤC LỤC vii
DANH MỤC CÁC CHỮ VIẾT TẮT ix
DANH MỤC CÁC BẢNG BIỂU x
DANH MỤC CÁC HÌNH ẢNH VÀ BIỂU ĐỒ xi
Chương 1: TỔNG QUAN 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu đề tài 2
1.3 Giới hạn đề tài 2
1.4 Nội dung đề tài 3
Chương 2: CƠ SỞ LÝ THUYẾT CỦA XE TỰ HÀNH 4
2.1 Giới thiệu về xe tự hành 4
2.2 Tổng quan về trí tuệ nhân tạo 5
2.2.1 Trí tuệ nhân tạo (Artificial Intelligence- AI) 5
2.2.2 Machine Learning 7
2.2.3 Deep Learning 12
2.3 Convolutional Neural Network (CNN) 16
2.4 Bộ điều khiển PID 25
Chương 3: THIẾT KẾ VÀ LỰA CHỌN THIẾT BỊ 27
3.1 Các thành phần phần cứng 27
3.1.1 Xe điều khiển Trophy Truck 27
3.1.2 Động cơ Brushed Motor RC-540PH 28
3.1.3 Động cơ RC Servo TowerPro MG946R 29
3.1.4 Waterproof Brushed ESC Controller WP-1040 29
3.1.5 Raspberry Pi 3 Model B 30
3.1.6 Raspberry Pi Power Pack 31
Trang 113.1.7 Raspberry Pi Camera Module 31
3.1.8 Arduino Uno R3 32
3.1.9 PWM/Servo Driver PCA9685 33
3.1.10 Encoder Omron E6B2-CWZ6C 10P/R 34
3.1.11 Pin Lipo 2S-30C 3600mAh 34
3.2 Sơ đồ kết nối phần cứng 35
3.3 Cấu trúc phần cứng của mô hình xe tự hành 35
Chương 4: GIẢI THUẬT ĐIỀU KHIỂN CỦA MÔ HÌNH XE TỰ HÀNH 38
4.1 Sơ đồ khối thu thập dữ liệu huấn luyện 38
4.2 Sơ đồ khối điều hướng mô hình xe tự hành 39
4.3 Cấu trúc mạng và tối ưu các thông số 40
4.4 Phần mềm và các thư viện sử dụng để lập trinhg 43
4.4.1 Giới thiệu thư viện Tensorflow 43
4.4.2 Giới thiệu thư viện Keras 43
Chương 5: THỰC NGHIỆM 44
5.1 Môi trường thực nghiệm 44
5.2 Mô tả tập dữ liệu 45
5.3 Các phương pháp để tạo ra các nhiều dữ liệu khác nhau 46
5.4 Quá trình huấn luyện 46
5.5 Kết quả thực nghiệm ngoài trời: 48
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50
6.1 Kết luận 50
6.2 Hướng phát triển 51
TÀI LIỆU THAM KHẢO 52
PHỤ LỤC 54
Trang 12DANH MỤC CÁC CHỮ VIẾT TẮT
1 AI: Artificial Intelligence
2 ANN: Artificial Neural Network
3 CNN: Convolutional Neural Network
4 CPU: Control Processing Unit
5 ESC: Electronic Speed Control
6 GPS: Global Positioning System
7 GPU: Graphics Processing Unit
8 PID: Proportional Integral Derivative
9 PWM: Pulse Width Modulation
10 RNN: Recurrent Neural Network
11 USB: Universal Serial Bus
Trang 13DANH MỤC CÁC BẢNG BIỂU
Bảng 3.1:Thông số hoạt động của RC Servo TowerPro MG946R 29
Bảng 3.2: Thông số của board Arduino Uno 33
Bảng 5.1:Sự ảnh hưởng của chu kỳ huấn luyện đến độ chính xác của mô hình 47
Bảng 6.1: Sự ảnh hưởng của số lượng mẫu huấn luyện đến độ chính xác của mô hình
50
Trang 14DANH MỤC CÁC HÌNH ẢNH VÀ BIỂU ĐỒ
Hình 2.1: Sự phát triển của xe tự hành trong tương lai 4
Hình 2.2: Mối quan hệ giữa AI, Machine Learning và Deep Learning 7
Hình 2.3: Cấu trúc của một tế bào thần kinh sinh học 8
Hình 2.4: Cấu trúc tế bào thần kinh nhân tạo 10
Hình 2.5: Học có giám sát 11
Hình 2.6: Học không giám sát 12
Hình 2.7: Học tăng cường 12
Hình 2.8: So sánh hiệu suất giữa DL với các thuật toán học theo thứ tự 14
Hình 2.9: Tổ chức của hệ thống vỏ não thị giác 15
Hình 2.10: Mô hình RNN 15
Hình 2.11: Kiến trúc mạng autoencoders 16
Hình 2.12: Ví dụ cách thức xử lý của ANN với cấu trúc kết nối đầy đủ 17
Hình 2.13: Ý tưởng thiết kế CNN 17
Hình 2.14: Minh họa tích chập 18
Hình 2.15: Ví dụ ứng dụng tích chập 19
Hình 2.16: Các thành phần của lớp tích chập 20
Hình 2.17: Ví dụ về lớp Convolution trong ảnh 21
Hình 2.18: Cách tính tham số của lớp pooling 22
Hình 2.19: Quá trình tinh chỉnh tuyến tính 23
Hình 2.20: Flatten dữ liệu nhận được từ một lớp convolution a) là ma trận 3x3 b) là mảng sau khi áp dụng flatten 23
Hình 2.21: Kiến trúc mạng CNN cơ bản 24
Hình 2.22: Bộ điều khiển PID 26
Hình 2.23: Bộ điều khiển PID cho tốc độ của xe 26
Hình 3.1: Sơ đồ khối của mô hình xe tự hành 27
Hình 3.2: Xe điều khiển Trophy Truck 27
Hình 3.3: Chi tiết bên trong xe điều khiển 28
Trang 15Hình 3.4: Động cơ Brushed Motor RC-540PH 28
Hình 3.5: RC Servo TowerPro MG946R 29
Hình 3.6: Waterproof Brushed ESC Controller WP-1040 30
Hình 3.7: Raspberry Pi 3 Model B 30
Hình 3.8: Raspberry Pi Power Pack 31
Hình 3.9: Raspberry Pi Camera 32
Hình 3.10: Board Arduino Uno (mặt trước và sau) 32
Hình 3.11: Mạch Điều Khiển 16 Chanel PWM PCA9685 33
Hình 3.12: Encoder Omron E6B2-CWZ6C 10P/R 34
Hình 3.13: Pin Lipo 2S-30C 3600mAh 34
Hình 3.14: Sơ đồ kết nối phần cứng 35
Hình 3.15: Phía trên của mô hình xe tự hành 36
Hình 3.16: Phía trái của mô hình xe tự hành 36
Hình 3.17: Bên trong xe tự hành (a) bên trong xe nhìn từ phía trên (b) bánh răng của encoder (c) hệ thống bể lái (d) Motor và ESC 37
Hình 4.1: Sơ đồ khối thu thập dữ liệu huấn luyện 38
Hình 4.2: Sơ đồ khối điều hướng mô hình xe tự hành 39
Hình 4.3: Cấu trúc mạng huấn luyện cho mô hình xe tự hành 40
Hình 4.4: Lớp dropout a) mạng nơ-ron tiêu chuẩn, b) mạng nơ-ron sau khi áp dụng dropout 42
Hình 5.1: Quỹ đạo thực nghiệm 1: (a) Quỹ đạo hình bầu dục.(b) góc rẽ của đường đi .(c) mô hình xe đang di chuyển theo quỹ đạo 44
Hình 5.2:Quỹ đạo thực nghiệm 2: (a) quỹ đạo hình số 8 (b) và (c) biển báo hiệu chỉ đường 44
Hình 5.3: Tập dữ liệu thu thập được: (a) là các mẫu từ tập dữ liệu lái xe (b), (c) và (d) là những hình ảnh điển hình trong tập dữ liệu 45
Hình 5.4: Ví dụ về các phương pháp tạo thêm dữ liệu huấn luyện 46
Hình 5.5: Sơ đồ huấn luyện cho mô hình xe tự hành 47
Trang 16Hình 5.6: Trực quan các lớp tích chập a) ảnh gốc b), c) và d) là lần lượt là các lớp tích chập thứ 1,2 và 3 48 Hình 5.7: Độ chính xác của mạng CNN được đề xuất 49 Hình 5.8: Giá trị góc lái được dự đoán 49
Trang 17Chương 1: TỔNG QUAN
1.1 Đặt vấn đề
Ngày nay, với sự phát triển mạnh mẽ về khoa học công nghệ cũng như giao thông vận tải, nhiều phương tiện được trang bị chế độ tự lái để hỗ trợ người lái xe duy trì sức khỏe khi lái xe đường dài cũng như giảm thiểu rủi ro tai nạn giao thông
Điều hướng quỹ đạo cho phương tiện giao thông là một trong những khía cạnh quan trọng nhất của sự phát triển của mô hình xe không người lái Có rất nhiều phương pháp để thực hiện điều này, nhưng cách để có được kết quả tốt nhất và phù hợp với cuộc cách mạng công nghiệp 4.0 là sử dụng một thuật toán liên quan đến lĩnh vực trí tuệ nhân tạo Cụ thể, chúng tôi đã thực hiện thuật toán mạng nơ-ron tích chập (CNN) để điều hướng cho các phương tiện tự hành [1]
Học tập sâu (Deep Learning) là một lĩnh vực thuộc phần máy học (Machine Learning) lấy cảm hứng từ một mạng nơron nhân tạo Một trong những loại mạng sâu đặc biệt như vậy là mạng nơ-ron tích chập, thường được gọi là CNN hoặc ConvNet Sự khác biệt của CNN so với mạng thần kinh truyền thống là số lượng nơ-ron trong một lớp có thể giảm nhưng số lượng của các lớp ẩn sẽ lớn hơn và được gọi
là mạng sâu Chúng thường được huấn luyện bằng chiến lược lan truyền ngược Vì vậy, nó có thể xây dựng các hệ thống thông minh với độ chính xác rất cao [1]
Trước đây, đã có nhiều nghiên cứu về điều hướng cho xe tự hành đã đươc thực hiện Bao gồm các phương pháp như: phát hiện làn đường theo thời gian thực để điều hướng tự động [2], hệ thống theo dõi làn đường cho ứng dụng xe thông minh [3], phát hiện làn đường với xe di chuyển trong cảnh quan giao thông [4] hoặc các phương pháp liên quan đến hướng nghiên cứu này là: [5], [6] Mặc dù các phương pháp này mang lại độ chính xác thuyết phục về phát hiện làn đường nhưng có một số lý do khiến việc phát hiện không thành công Lý do đầu tiên là chủ quan Sau khi phát hiện hai vạch kẻ đường chúng ta cần tính toán và xây dựng một đường ảo tại tâm của làn
xe, sau đó ước tính góc lệch giữa thân xe và đường ảo đó, tiếp đến điều chỉnh góc lái
Trang 18của xe sao cho xe luôn ở vị trí chính giữa làn đường Các tính toán của góc lái được
đề cập ở trên là vô cùng phức tạp và có thể gây ra nhiều sai số Lý do thứ hai là khách quan Một số con đường mà vạch kẻ không có hoặc bị mờ Thậm chí, khi các xe đang chạy trên đường dốc, máy ảnh được gắn ở phía trước sẽ hướng lên trời và không theo kịp làn đường ở phía trước Điều này cũng có thể dẫn đến việc phát hiện sẽ không chính xác
Ngoài ra, phương pháp GPS cũng được áp dụng để điều hướng xe tự lái Nếu GPS được sử dụng độc lập, nó sẽ gây ra lỗi khá cao nên việc áp dụng phương pháp này trên mô hình xe không người lái sẽ rất khó khăn và yêu cầu sự điều chỉnh sai số [7], [8]
Nhận thấy với những hạn chế nêu trên, tác giả đề xuất một phương pháp sử dụng mạng nơ-ron tích chập để điều hướng các phương tiện tự lái
Trong nghiên cứu này, chúng tôi xây dựng một mô hình xe tự hành bằng cách
dự đoán góc lái từ hình ảnh thô được đào tạo qua mạng CNN Dữ liệu được thu thập
từ một máy ảnh được gắn phía trước xe sau đó được tiền xử lý và đưa vào mạng CNN
để tính toán giá trị góc lái Giá trị góc lái sau khi tính toán được so sánh với giá trị góc lái mong muốn cho hình ảnh đó và trọng số của CNN được điều chỉnh để thu được kết quả tốt hơn
1.2 Mục tiêu đề tài
Mục tiêu của đề tài là huấn luyện một mô hình xe tự lái có thể tự động điều hướng theo thời gian thực trong môi trường ngoài trời với nhiều điều kiện lái xe khác nhau
Trang 19chưa chạy được trong môi trường ban đêm, sương mù và quỹ đạo di chuyển còn khá đơn giản
1.4 Nội dung đề tài
Đề tài “Điều hướng xe tự hành dung trí tuệ nhân tạo” bao gồm các chương sau:
Chương I: Tổng quan: Chương này trình bày tổng quan sơ bộ về các yêu cầu
của cuốn báo cáo như đặt vấn đề, mục tiêu, giới hạn và nội dung đề tài
Chương II:Cơ sở lý thuyết: Chương này trình bày về giới thiệu xe tự hành,
các công nghệ khác nhau được sử dụng trong xe tự hành, tổng quan về trí tuệ nhân
tạo và lý thuyết và mạng nơ-ron tích chập (CNN)
Chương III: Thiết kế phần cứng và lựa chọn thiết bị: Chương này trình bày
về thiết kế phần cứng và lựa chọn thiết bị phần cứng cho mô hình xe tự hành
Chương IV: Giải thuật điều khiển xe tự hành : Chương này sẽ trình bày giải
thuật, lưu đồ thu thập dữ liệu huấn luyện, điều hướng xe tự hành bằng mô hình đã được huấn luyện, cấu trúc mạng và tối ưu hóa các thông số
Chương V: Thực nghiệm: Chương này sẽ trình bày về việc thực hiện điều
hướng cho xe tự hành theo hai quỹ đạo hình bầu dục và hình số 8
Chương VI: Kết quả: Kết luận chung về ưu điểm và hạn chế của đề tài, khẳng
định những kết quả đóng góp đạt được, đề xuất ý kiến để cải thiện khuyết điểm và định hướng phát triển đề tài
Trang 20Chương 2: CƠ SỞ LÝ THUYẾT CỦA XE TỰ HÀNH
2.1 Giới thiệu về xe tự hành
Xe tự hành là phương tiện được thiết kế để di chuyển giữa các điểm đến mà không cần người lái xe phải liên tục theo dõi đường Công nghệ của xe tự hành phải đạt được các mục tiêu sau:
- Xử lý một lượng dữ liệu rất lớn và sử dụng nó để đưa ra quyết định thông minh
- Có khả năng thích nghi với môi trường đã biết hoặc chưa biết
Nhìn vào tương lai, chúng ta tin rằng vô lăng của xe sẽ biến mất hoàn toàn và chiếc xe sẽ tự hành một cách tự động kết hợp với việc sử dụng một số hệ thống cảm biến, radar và bản đồ GPS Xe ô tô ngày càng thông minh hơn được minh họa trong hình 2.1
Những chiếc xe tự hành sử dụng nhiều công nghệ tự động khác nhau để cung cấp một phương thức di chuyển thông minh Việc cung cấp loại phương thức này đòi hỏi sự đồng bộ hài hòa giữa các cảm biến thu thập thông tin về môi trường xung quanh và các thuật toán phức tạp xử lý dữ liệu điều khiển xe trong thời gian thực
Những công nghệ này có thể nhận biết đối tượng, con người, ô tô, đánh dấu đường, biển báo và đèn giao thông, tuân thủ các quy tắc của luật giao thông đường
bộ và cảnh báo nhiều mối nguy hiểm không thể đoán trước
Hình 2.1: Sự phát triển của xe tự hành trong tương lai
Trang 212.2 Tổng quan về trí tuệ nhân tạo
2.2.1 Trí tuệ nhân tạo (Artificial Intelligence- AI)
Trí tuệ nhân tạo (AI) có sức mạnh phân chia nhiều ngành công nghiệp, và không có gì ngạc nhiên khi nó là một trong những chủ đề đáng chú ý nhất trong hầu hết các vấn đề về khoa học, kinh tế và xã hội hiện nay Tuy nhiên, AI cũng rất hoài nghi và các ứng dụng của nó: ngoài việc được áp dụng mạnh mẽ trong quy trình vận hành cũng như sản xuất của các công ty tiên tiến, AI còn được cho là sẽ thay thế công nhân của con người và phá hủy ngành công nghiệp như chúng ta biết
Trí tuệ nhân tạo được hiểu đơn giản là máy móc sử dụng các quá trình ra quyết định hoặc tính toán bắt chước nhận thức của con người Trong thực tế, điều này đòi hỏi một loại máy có cấu hình phải hiểu thông tin về môi trường của nó, cho dù đó là một không gian vật lý hay thông tin liên quan từ cơ sở dữ liệu Sau đó, một hệ thống thông minh nhân tạo có thể sử dụng dữ liệu này để tối ưu hóa các hành động giúp đạt được mục tiêu cụ thể, như thực hiện lại một hoạt động đã được huấn luyện trước đó hay chiến thắng một ván cờ
Trí tuệ nhân tạo là một lĩnh vực rộng bao gồm một số trường con, kỹ thuật và thuật toán Lĩnh vực trí tuệ nhân tạo dựa trên mục tiêu tạo ra một cỗ máy thông minh như con người Đó thực sự là mục tiêu bao trùm ban đầu Quay trở lại năm 1956, các nhà nghiên cứu đã đến với nhau tại Dartmouth với mục tiêu rõ ràng là lập trình máy tính để hành xử giống như con người Đây là sự ra đời hiện đại của trí tuệ nhân tạo như chúng ta biết ngày nay
Để giải thích thêm về các mục tiêu của trí tuệ nhân tạo, các nhà nghiên cứu đã
mở rộng mục tiêu chính của họ sang sáu mục tiêu chính sau:
- Lý luận logic: Cho phép máy tính thực hiện các loại nhiệm vụ tinh thần phức tạp mà con người có khả năng thực hiện Ví dụ về giải quyết các vấn đề lý luận logic này bao gồm chơi cờ và giải các bài toán đại số
Trang 22- Trình bày kiến thức: Cho phép máy tính mô tả các đối tượng, con người và ngôn ngữ Ví dụ về điều này bao gồm ngôn ngữ lập trình hướng đối tượng, chẳng hạn như Smalltalk
- Lập kế hoạch và điều hướng: Cho phép một robot đi từ điểm A đến điểm B
Ví dụ, robot tự lái đầu tiên được chế tạo vào đầu năm 1960
- Xử lý ngôn ngữ tự nhiên: Cho phép máy tính hiểu và xử lý ngôn ngữ Một trong những dự án đầu tiên liên quan đến vấn đề này, đã cố gắng dịch tiếng Anh sang tiếng Nga và ngược lại
- Nhận thức: Cho phép máy tính tương tác với thế giới thông qua thị giác, thính giác, xúc giác và khứu giác
Ngay cả với những mục tiêu chính này, điều này không phân loại các thuật toán và kỹ thuật trí tuệ nhân tạo cụ thể Đây chỉ là sáu trong số các thuật toán và kỹ thuật chính trong trí tuệ nhân tạo:
- Machine Learning là lĩnh vực trí tuệ nhân tạo cung cấp cho máy tính khả năng học mà không cần lập trình rõ ràng
- Tìm kiếm và tối ưu hóa: Các thuật toán như Gradient Descent để lặp lại tìm kiếm tối đa hoặc tối thiểu cục bộ
- Sự thỏa mãn ràng buộc là quá trình tìm giải pháp cho một tập hợp các ràng buộc áp đặt các điều kiện mà các biến phải thỏa mãn
- Lý luận logic: Một ví dụ về lý luận logic trong trí tuệ nhân tạo là một hệ thống máy tính chuyên gia mô phỏng khả năng ra quyết định của một chuyên gia về con người
- Lý luận xác suất là kết hợp lý thuyết xác suất để xử lý sự không chắc chắn với năng lực logic suy diễn để khai thác cấu trúc của lập luận chính thức
- Lý thuyết điều khiển là một cách tiếp cận chính thức để tìm các bộ điều khiển
có các thuộc tính có thể chứng minh được Điều này thường liên quan đến một hệ thống các phương trình vi phân, thường mô tả một hệ thống vật lý như robot hoặc máy bay
Trang 23Hình 2.2: Mối quan hệ giữa AI, Machine Learning và Deep Learning
Trí tuệ nhân tạo, học máy và học sâu là mỗi tập hợp con của trường trước đó như trong Hình 2.2 Trí tuệ nhân tạo là thể loại bao quát cho Machine Learning Ngoài
ra, Machine Learning là danh mục bao quát cho Deep Learning
2.2.2 Machine Learning
Machine Learning là một tập hợp con của trí tuệ nhân tạo Trí tuệ nhân tạo nhằm mục đích làm cho máy tính trở nên thông minh, khái niệm Machine Learning được hiểu rằng chúng ta nên cung cấp dữ liệu cho máy tính và để máy tính tự học Ý tưởng cho rằng máy tính có thể tự học được đã được Arthur Samuel đưa ra vào năm
1959
Một bước đột phá lớn đã dẫn đến sự xuất hiện của Machine Learning với tư cách là động lực thúc đẩy trí tuệ nhân tạo là phát minh của internet Internet đi kèm với một lượng lớn thông tin về kỹ thuật số đang được tạo ra, lưu trữ và cung cấp để phân tích Đây là khi bạn bắt đầu nghe về dữ liệu lớn (big data) Hơn nữa, các thuật toán Machine Learning đã có hiệu quả nhất trong việc tận dụng tất cả dữ liệu lớn này
Mạng nơ-ron là một phần quan trọng và thành công nhất của một số thuật toán Machine Learning Sự phát triển của mạng lưới thần kinh là chìa khóa để dạy máy tính suy nghĩ và hiểu thế giới theo cách mà con người làm Về cơ bản, một mạng lưới thần kinh mô phỏng bộ não của con người Các tế bào não, hay tế bào thần kinh, được kết nối thông qua các khớp thần kinh Điều này được trừu tượng hóa như một biểu
Trang 24đồ của các nút (nơ ron) được kết nối bởi các cạnh có trọng số (khớp thần kinh) Cấu trúc của một tế bào thần kinh sinh học được minh họa trong hình 2.3
Bộ não của chúng ta sử dụng các mạng nơ-ron liên kết cực lớn để xử lý thông tin và mô hình hóa thế giới chúng ta đang sống Các đầu vào được truyền qua mạng lưới các nơ-ron này tạo ra đầu ra Trong trường hợp não sinh học, điều này có thể dẫn đến việc co thắt cơ bắp hoặc báo hiệu tuyến mồ hôi của bạn tiết ra mồ hôi Một nơ-ron thu thập các đầu vào bằng cách sử dụng một cấu trúc gọi là đuôi gai, nơ-ron tổng hợp một cách hiệu quả tất cả các đầu vào này từ các sợi nhánh và nếu giá trị kết quả lớn hơn ngưỡng loại bỏ của nó, thì nơ-ron sẽ xuất ra Khi tế bào thần kinh xuất ra, nó
sẽ gửi một xung điện qua sợi trục của tế bào thần kinh đến các nút của nó Những nút này sau đó có thể được nối mạng với hàng ngàn tế bào thần kinh khác thông qua các kết nối được gọi là khớp thần kinh Có khoảng một trăm tỷ (100.000.000) tế bào thần kinh bên trong não người, mỗi bộ có khoảng một nghìn kết nối khớp thần kinh Đó là cách hiệu quả mà các khớp thần kinh này có dây mang lại cho bộ não của chúng ta khả năng xử lý thông tin theo cách chúng làm
Hình 2.3: Cấu trúc của một tế bào thần kinh sinh học
Trang 25Các mô hình nơ-ron ở các mô hình đơn giản hóa của chúng cốt lỗi dựa trên các nơ-ron sinh học Điều này cho phép họ nắm bắt được bản chất của một tế bào thần kinh sinh học hoạt động như thế nào Chúng ta thường gọi những tế bào thần kinh nhân tạo này là “nhận thức” (perceptions)
Như được hiển thị trong Hình 2.4, một tri giác (perceptron) điển hình sẽ có nhiều đầu vào và các đầu vào này đều có trọng số riêng Các trọng số perceptron có thể khuếch đại hoặc khử tín hiệu đầu vào ban đầu Ví dụ: nếu đầu vào là 1 và trọng
số của đầu vào là 0,2 thì đầu vào sẽ giảm xuống 0,2 Các tín hiệu có trọng số này sau
đó được thêm vào với nhau và được chuyển vào chức năng kích hoạt Chức năng kích hoạt được sử dụng để chuyển đổi đầu vào thành đầu ra hữu ích hơn Có nhiều loại chức năng kích hoạt khác nhau nhưng một trong những cách đơn giản nhất sẽ là chức năng bước Hàm bước thường sẽ xuất 1 nếu đầu vào cao hơn ngưỡng nhất định, nếu không, đầu ra của nó sẽ là 0
Chi tiết về một số thành phần này:
- Tế bào thần kinh: một mạng lưới thần kinh là một biểu đồ của các tế bào thần kinh Tương tự, một mạng lưới thần kinh có đầu vào và đầu ra Các đầu vào và đầu
ra của một mạng nơ ron được thể hiện bằng các nơ ron đầu vào và các nơ ron đầu ra
Tế bào thần kinh đầu vào không có tế bào thần kinh tiền thân nhưng có đầu ra Tương
tự, một nơ-ron đầu ra không có nơ-ron kế tiếp nhưng không có đầu vào
- Kết nối và trọng số: Một mạng lưới thần kinh bao gồm các kết nối, mỗi kết nối chuyển đầu ra của một nơron sang đầu vào của một nơron khác Mỗi kết nối được gán một trọng số
- Chức năng lan truyền: Chức năng lan truyền tính toán đầu vào của một nơron
từ đầu ra của các nơ ron tiền thân Chức năng nhân giống được tận dụng trong giai đoạn nhân giống về phía trước của đào tạo
Trang 26Hình 2.4: Cấu trúc tế bào thần kinh nhân tạo
- Quy tắc học tập: Quy tắc học tập là một chức năng sửa đổi trọng số của các
kết nối Điều này phục vụ để tạo ra một đầu ra phù hợp cho một đầu vào nhất định cho mạng thần kinh Quy tắc học tập được tận dụng trong giai đoạn lan truyền ngược
- Các loại hình học tập: Có nhiều thuật toán khác nhau có thể được sử dụng khi
đào tạo các mạng lưới thần kinh nhân tạo như học tập có giám sát, học tập không giám sát, học tập tăng cường, mỗi loại có những ưu điểm và nhược điểm riêng Quá trình học tập trong các mạng thần kinh nhân tạo là kết quả của việc thay đổi trọng số của mạng, với một số loại thuật toán học tập Mục tiêu là tìm ra một tập hợp các ma trận trọng số mà khi áp dụng vào mạng nên ánh xạ bất kỳ đầu vào nào thành một đầu
ra chính xác
• Học có giám sát: 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ì?
Trang 27Như 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ó (Hình 2.5)
• Học tập không giám sát: Trong mô hình này, mạng lưới thần kinh chỉ được cung cấp một bộ đầu vào và mạng lưới thần kinh có trách nhiệm tìm một số kiểu mẫu trong các đầu vào được cung cấp mà không cần bất kỳ sự trợ giúp bên ngoài nào Kiểu mô hình học tập này thường được sử dụng trong khai thác dữ liệu và cũng được
sử dụng bởi nhiều thuật toán đề xuất do khả năng dự đoán sở thích của người dùng dựa trên sở thích của những người dùng tương tự khác mà họ đã nhóm lại với nhau (Hình 2.6)
• Học tăng cường: Học tăng cường tương tự như học có giám sát ở chỗ một số phản hồi được đưa ra, tuy nhiên thay vì cung cấp đầu ra mục tiêu, phần thưởng được đưa ra dựa trên mức độ hệ thống hoạt động tốt Mục đích của học tập củng cố là để tối đa hóa phần thưởng mà hệ thống nhận được thông qua thử và sai Mô hình này liên quan mạnh mẽ đến cách học tập hoạt động trong tự nhiên, ví dụ, một con vật có thể nhớ những hành động mà nó đã thực hiện trước đó giúp nó tìm thức ăn (phần thưởng) (Hình 2.7)
Hình 2.5: Học có giám sát
Trang 28Hình 2.6: Học không giám sát
Hình 2.7: Học tăng cường
2.2.3 Deep Learning
Deep Learning là ưu thế của những gì máy móc có thể làm, các nhà phát triển
và lãnh đạo doanh nghiệp hoàn toàn cần phải hiểu nó là gì và hoạt động như thế nào Loại thuật toán độc đáo này đã vượt xa mọi tiêu chuẩn trước đây để phân loại hình ảnh, văn bản và giọng nói
Nó cũng cung cấp năng lượng cho một số ứng dụng thú vị nhất trên thế giới, như xe tự hành và dịch thuật thời gian thực Chắc chắn có rất nhiều sự ngạc nhiên xung quanh việc AlphaGo dựa trên Deep Learning của Google để đánh bại người chơi cờ vây giỏi nhất thế giới, nhưng các ứng dụng kinh doanh cho công nghệ này ngay lập tức và có khả năng tác động mạnh hơn, ví dụ như dự đoán giá cổ phiếu
Trang 29Deep learning là một tập hợp con cụ thể của Machine Learning, là một tập hợp con cụ thể của trí tuệ nhân tạo Đối với định nghĩa cá nhân:
• Trí tuệ nhân tạo là nhiệm vụ rộng lớn của việc tạo ra những cỗ máy có thể suy nghĩ thông minh
• Machine Learning là một cách để làm điều đó, bằng cách sử dụng các thuật toán để thu thập thông tin chuyên sâu về dữ liệu
• Deep Learning là một cách để làm điều đó, bằng cách sử dụng một thuật toán
cụ thể được gọi là mạng thần kinh
Deep Learning chỉ là một loại thuật toán dường như hoạt động thực sự tốt để
dự đoán mọi thứ Deep Learning và Neural Nets, đối với hầu hết các mục đích, đồng nghĩa một cách hiệu quả Mạng lưới thần kinh được lấy cảm hứng từ cấu trúc của vỏ não Ở cấp độ cơ bản là nhận thức, biểu diễn toán học của một tế bào thần kinh sinh học Giống như trong vỏ não, có thể có một vài lớp tri giác liên kết với nhau
Các giá trị đầu vào, hay nói cách khác là dữ liệu cơ bản của chúng ta, được truyền qua mạng này của các lớp ẩn cho đến khi chúng hội tụ đến lớp đầu ra Lớp đầu
ra là dự đoán của chúng ta: nó có thể là một nút nếu mô hình chỉ xuất ra một giá trị hoặc một vài nút nếu nó có vấn đề phân loại đa lớp Các lớp ẩn của mạng thần kinh thực hiện các sửa đổi trên dữ liệu để cuối cùng cảm nhận được mối quan hệ của nó với biến mục tiêu là gì Mỗi nút có trọng số và nó nhân giá trị đầu vào của nó với trọng số đó Làm điều đó qua một vài lớp khác nhau và mạng nơ-ron có thể điều khiển
dữ liệu thành một thứ gì đó có ý nghĩa
Deep Learning chỉ quan trọng vì một lý do duy nhất: chúng có thể đạt được độ chính xác có ý nghĩa, hữu ích cho các nhiệm vụ quan trọng Machine Learning đã được sử dụng để phân loại trên hình ảnh và văn bản trong nhiều thập kỷ nhưng nó đã phải vật lộn để vượt qua ngưỡng nhất định, có một độ chính xác cơ bản mà các thuật toán cần phải hoạt động Deep Learning cuối cùng đã cho phép vượt qua ranh giới đó
ở những nơi mà trước đây chúng không thể đạt được
Trang 30Hình 2.8: So sánh hiệu suất giữa DL với các thuật toán học theo thứ tự
Tầm nhìn máy tính là một ví dụ tuyệt vời về một nhiệm vụ mà Deep Learning
đã biến thành một cái gì đó thực tế cho các ứng dụng Hình 2.8 cho thấy rằng sử dụng Deep Learning để phân loại và gắn nhãn hình ảnh không chỉ tốt hơn bất kỳ thuật toán truyền thống nào khác: nó bắt đầu tốt hơn hành động con người
Deep Learning Models:
Convolutional Neural Network:
Convolutional Neural Network viết tắt của từ CNN, là một loại mạng thần kinh
nhân tạo thuộc kiểu feed-forward, trong đó mô hình kết nối giữa các nơ-ron của nó
được lấy cảm hứng từ hệ thống vỏ não thị giác như trong Hình 2.9
Recurrent Neural Network:
- Hình 2.10 cho thấy một mô hình trình tự thường được thiết kế để chuyển đổi một chuỗi đầu vào thành một chuỗi đầu ra trong một miền khác Recurrent Neural Network, viết tắt của từ RNN, phù hợp cho mục đích này và đã cho thấy sự cải thiện
to lớn trong các vấn đề như nhận dạng chữ viết, nhận dạng giọng nói và dịch máy
- Một mô hình Recurrent Neural Network được sinh ra với khả năng xử lý dữ liệu dài một cách tuần tự và để giải quyết các nhiệm vụ với bối cảnh trải rộng theo thời gian Mô hình xử lý một phần tử trong chuỗi ở mỗi bước một lần Sau khi tính toán, trạng thái đơn vị mới được cập nhật được chuyển sang bước tiếp theo để tạo thuận lợi cho việc tính toán của phần tử tiếp theo Hãy tưởng tượng trường hợp khi một mô hình RNN đọc tất cả các bài viết Wikipedia, theo từng ký tự, và sau đó nó có thể dự đoán các từ sau được đưa ra theo ngữ cảnh
Trang 31Hình 2.9: Tổ chức của hệ thống vỏ não thị giác
Hình 2.10: Mô hình RNN Autoencoders:
Khác với các mô hình trước đó, autoencoders, được hiển thị trong Hình 2.11, dành cho việc học tập không giám sát Nó được thiết kế để tìm hiểu và biểu diễn chiều thấp của tập dữ liệu chiều cao, tương tự như Principal Components Analysis (PCA)
Mô hình bộ mã hóa tự động cố gắng tìm hiểu hàm xấp xỉ f (x) xf (x) ≈ x để tái tạo dữ liệu đầu vào Tuy nhiên, nó bị hạn chế bởi một lớp nút cổ chai ở giữa với số lượng nút rất nhỏ Với khả năng hạn chế, mô hình buộc phải hình thành một mã hóa dữ liệu rất hiệu quả, về cơ bản là mã chiều thấp mà chúng ta đã học
Trang 32Hình 2.11: Kiến trúc mạng autoencoders
2.3 Convolutional Neural Network (CNN)
Mạng nơron thần kinh (CNN) là mô hình học tập sâu hàng đầu cho thị giác máy tính Thị giác máy đã trở nên tốt đến nỗi hiện nay nó đang đánh bại cả con người trong những nhiệm vụ khó nhất và CNN đóng một vai trò quan trọng trong câu chuyện thành công này 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 loại, 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 (tích chập)
Pooling (gộp chung)
ReLU (tinh chỉnh các đơn vị tuyến tính)
Fully connected (liên kết đầy đủ)
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ừ đó rút ra tác dụng của các thành phần có trong mạng CNN
Hình 2.12 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 200x200 đượ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
Trang 33ước lượng lên đến 1.6 tỉ Điều này gây khó khăn cho việc huấn luyện ANN trên hai yếu tố: thứ nhất là chi phí để xây dựng dữ liệu huấn luyện lớn và thứ hai 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 convolution được áp dụng – ý tưởng chính là mỗi neural 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 (hình 2.13)
Hình 2.12: Ví dụ cách thức xử lý của ANN với cấu trúc kết nối đầy đủ
Hình 2.13: Ý tưởng thiết kế CNN
W
Trang 34Hình 2.14: Minh họa tích chập
2.3.1.1 Lớp tích chập (Convolution layer)
Tầng Convolution (Conv) là tầng quan trọng nhất trong cấu trúc của CNN Conv 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 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ố
Để 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 2.14 Ma trận bên trái à một bức ảnh trắng đen 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, feature hoặc filter Ở đây, ta dùng một ma trận với bộ lọc có kích thước 3x3 nhân từng thành phần tương ứng với ma trận ảnh bên trái Giá trị đầu ra là tổng của các tích này cộng lại Kết quả của phép tích chập cũng 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 một lúc lên toàn bộ ma trận ảnh bên trái
Khi được áp dụng phép tính Conv vào xử lý ảnh người ta thấy rằng Conv sẽ giúp biến đổi các thông tin đầu vào thành các yếu tố đặc trưng (nó tương ứng như bộ phát hiện – detector các đặc trưng về cạnh, hướng, đốm màu…) Hình 2.15 là minh họa việc áp dụng phép tính Conv trên ảnh trong đó (a) là kết quả biến đổi hình ảnh khi thực hiện phép Conv khác nhau cho ra kết quả khác nhau, (b) là trực quan hóa các kernel dùng để detector các đặc trưng về cạnh, hướng, đốm màu
Trang 35Hình 2.15: Ví dụ ứng dụng tích chập
Để dễ hình dung, ta xét bài toán thực hiện tính giá trị đầu ra của một ảnh có kích thước 𝑊1*𝐻1* 𝐷1 Khi đó một lớp tích chập sẽ có một cửa sổ trượt – cửa sổ này thực chất cũng là một ma trận có kích thước F*F thực hiện trên mỗi chiều của ảnh đầu vào(ta sử dụng K bộ lọc) Trong quá trình xử lý sẽ dịch chuyển các bộ lọc trên toàn bộ
bức ảnh theo S (stride) bước (tính bằng pixel)
Ta gọi mỗi vùng mà bộ lọc áp đặt lên ma trận đầu vào là receptive field Trong một số trường hợp để cân bằng giữa số bước dịch chuyển và kích thước của ảnh người
ta có thể chèn thêm P pixel với một giá trị màu cho trước (thường là 0) xung quanh viền của ảnh khi đó ta được ma trận đầu ra (feature map) là 𝑊2* 𝐻2*𝐷2 trong đó:
Đây cũng là tính chất quan trọng (dùng chung bộ trọng số – shared weights) làm giảm thêm số tham số cần học trong quá trình huấn luyện mạng Từ đó tổng số tham