Có rất nhiềuphươ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 đếnlĩnh vực trí tuệ
Trang 1BỘ 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
NGÀNH: KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA - 8520216
SKC006074
Trang 2BỘ 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
NGÀNH: KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA - 8520216
Tp Hồ Chí Minh, tháng 04/2019
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
NGÀNH: KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA - 8520216
Hướng dẫn khoa học:
TS LÊ MỸ HÀ
Tp Hồ Chí Minh, tháng 04/2019
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
Ngày, tháng, năm sinh: 22/06/1994
Quê quán: Bà Rịa Vũng Tàu
Giới tính: Nam Nơi sinh: 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.
III QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC:
9/2016-Công Ty TNHH Phần Mềm FPT Kỹ sư lập trình12/2017
10/2017- nay Đại Học Sư Phạm Kỹ Thuật Học viên cao học
Thành Phố Hồ Chí Minh
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ữngyế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ànhgử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ơronhọ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ĩnhvự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 đếnkhả 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ủaphươ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ộtcá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ạngnơron tích chập (CNN) đã được chứng minh rằng có hiệu suất đáng kể trong rấtnhiề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àngtriệ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ậptrung 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ácgó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ủamodel 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íatrướ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áytính và dùng để huấn luyện cho model điều hướng xe Cuối cùng, thực nghiệmmodel đó trên máy tính Raspberry để xe tự chạy trong môi trường ngoài trời, xungquanh đường tròn và đường số 8 có biển báo giao thông Kết quả thực nghiệm chothấy tính hiệu quả và sự mạnh mẽ của model lái tự động trong việc giữ làn đườngtrong 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áikhác nhau, bất kể vạch đường có bị che khuất hay không
Trang 9In this thesis, a monocular vision-based self-driving car prototype using DeepNeural Network on Raspberry Pi is proposed Self-driving cars are one of the mostincreasing interests in recent years as the definitely developing relevant hardware andsoftware technologies toward fully autonomous driving capability with no humanintervention Level-3/4 autonomous vehicles are potentially turning into a reality innear future It involves the use of Mechatronics and Artificial Intelligence (AI) tocontrol the vehicle, thereby taking the responsibilities of the driver, providing a moremanageable control over it And a swarm of autonomous vehicles could just be thesolution to our traffic problems: no traffic jam, no road accidents, no delayed journey.Convolutional Neural Networks (CNNs) have been shown to achieve significantperformance 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 tolearn millions of parameters using a large amount of labeled data In this work, weconcentrate on finding a model that directly maps raw input images to a predictedsteering angle as output using a deep neural network
The technical contributions of this work are three-fold First, the CNN modelparameters were trained by using data collected from vehicle platform built with a1/10 scale RC car, Raspberry Pi 3 Model B computer and front-facing camera Thetraining data were road images paired with the time-synchronized steering anglegenerated by manually driving Second, the stored data is then transferred to adesktop 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 environmentaround oval-shaped and 8-shaped with traffic sign lined track The experimentalresults demonstrate the effectiveness and robustness of autopilot model in real-timelane keeping task Vehicle’s top speed is about 5-6km/h in a wide variety of drivingconditions, 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 29Bảng 3.2: Thông số của board Arduino Uno 33Bả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ớptích chập thứ 1,2 và 3 48Hình 5.7: Độ chính xác của mạng CNN được đề xuất 49Hì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ư giaothông vận tải, nhiều phương tiện được trang bị chế độ tự lái để hỗ trợ người lái xeduy 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íacạ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ềuphươ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 đếnlĩ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íchchậ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 (MachineLearning) 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ạngsâu đặc biệt như vậy là mạng nơ-ron tích chập, thường được gọi là CNN hoặcConvNet Sự khác biệt của CNN so với mạng thần kinh truyền thống là số lượngnơ-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à đượcgọ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ựchiệ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ềuhướng tự động [2], hệ thống theo dõi làn đường cho ứng dụng xe thông minh [3], pháthiệ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ápliê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áthiệ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 đó ướctí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ếuGPS đượ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ápnà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ằngcá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 thuthập từ một máy ảnh được gắn phía trước xe sau đó được tiền xử lý và đưa vàomạ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ánhvới giá trị góc lái mong muốn cho hình ảnh đó và trọng số của CNN được điềuchỉnh để thu được kết quả tốt hơn
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ềuhướ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 xekhá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ươngsau:
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ântạ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ôngminh
- 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ảmbiến, radar và bản đồ GPS Xe ô tô ngày càng thông minh hơn được minh họa tronghình 2.1
Những chiếc xe tự hành sử dụng nhiều công nghệ tự động khác nhau để cungcấ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 xungquanh 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ầuhế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àinghi 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ậnhà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 raquyế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ềunà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ấnluyệ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ôngminh 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ậptrì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ầnphứ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ậnlogic 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ộttrong những dự án đầu tiên liên quan đến vấn đề này, đã cố gắng dịch tiếng Anh sangtiế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ậttoá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
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ạonhằ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àonă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ớimộ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ântí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ánMachine 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ánMachine 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ínhsuy 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ầnkinh 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ếtnố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ấutrú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ôngtin 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ạnglướ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ộtnơ-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ơ-rontổ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 kinhxuấ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 kinhkhá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ìnkế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âymang 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êncá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àothầ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ầnkinh 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àysau đó được thêm vào với nhau và được chuyển vào chức năng kích hoạt Chứcnă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ảnnhấ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ưỡngnhấ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àothầ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ếtnố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 đượcgá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
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ạngthần kinh Quy tắc học tập được tận dụng trong giai đoạn lan truyền ngược
đà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ônggiá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 matrậ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átcủ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 ramộ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ếthơ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ỗivector đầu vào sẽ được phân loại chính xác vào lớp của nó (Hình 2.5)
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ườidù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ớinhau (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àyliê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ầnthưở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ạihì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ênxung quanh việc AlphaGo dựa trên Deep Learning của Google để đánh bại ngườichơ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àyngay 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ậttoá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ĩamộ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, đượctruyề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ầnkinh 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ềukhiể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ậtlộ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ầnphả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à DeepLearning đã biến thành một cái gì đó thực tế cho các ứng dụng Hình 2.8 cho thấyrằng sử dụng Deep Learning để phân loại và gắn nhãn hình ảnh không chỉ tốt hơnbấ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
Convolutional Neural Network viết tắt của từ CNN, là một loại mạng thầnkinh nhân tạo thuộc kiểu feed-forward, trong đó mô hình kết nối giữa các nơ-roncủ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
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ácvấ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 theothờ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ínhtoán, trạng thái đơn vị mới được cập nhật được chuyển sang bước tiếp theo để tạothuậ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 khimộ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ễnchiề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áytí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 trongnhững nhiệm vụ khó nhất và CNN đóng một vai trò quan trọng trong câu chuyện thànhcô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ệnnay 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ảnCNN là một kiểu mạng ANN truyền thẳng, trong đó kiến trúc chính gồm nhiều thànhphần được ghép nối với nhau theo cấu trúc nhiều tầng đó là
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ácdụ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ước200x200 được xử lý bằng ANN với kết nối đầy đủ giữa hai tầng liên tiếp (fullconnected) 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 haiyế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 gianhuấ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ầngiả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êntoàn bộ ảnh (hình 2.13)
W
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
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 đượcnhững thông tin quan trọng từ dữ liệu Nhờ vào nguyên lý biến đổi thông tin, cácnhà 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 (SlidingWindow) á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ìnhminh 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ậntương đương với một điểm ảnh (pixel), 0 là màu đen, 1 là màu trắng (nếu là ảnhxá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ùngmộ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 matrậ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éptí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 quanhó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 đó:
2 =( 1 – F+2P)/S+1
H 2 =( H 1 – F+2P)/S+1
D 2 =K
Giá trị tại các ô trong ma trận của bộ lọc có kích thước (F*F* 1 ) +1 (cộng 1 ở đây là tham số ngưỡng của filter)
sẽ tương ứng là trọng số, các giá trị này của mỗi bộ lọc không đổi trong quá trình dịch chuyển trên toàn bộ bức ảnh đầu vào.
Đây cũng là tính chất quan trọng (dùng chung bộ trọng số – shared weights) làmgiả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
19