Tải bản đầy đủ (.pdf) (61 trang)

Điều hướng xe tự hành dùng trí tuệ nhân tạo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.39 MB, 61 trang )

MỤ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

vii


3.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

viii


DANH 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

ix


DANH 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

x


DANH 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: Q 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

xi


Hì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

xii


Hì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ự đốn .....................................................................49

xiii



Chươ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 tố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 tố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

1


của xe sao cho xe ln ở vị trí chính giữa làn đường. Các tính tố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.
Ngồ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ự đố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 tốn giá trị góc lái. Giá trị góc lái sau khi tính tố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 ngồi trời với nhiều điều kiện lái xe khác
nhau.
1.3. Giới hạn đề tài
Do hạn chế chính của phương pháp dựa trên thị giác là không bền vững với
những thay đổi về ánh sáng cũng như tác động của nhiễu từ môi trường bên ngồi.

Vì vậy đề tài “Điều hướng xe tự hành dung trí tuệ nhân tạo” có những giới hạn như:

2


chư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.

3


Chươ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 hồn tồ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 tố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ể đốn trước.

Hình 2.1: Sự phát triển của xe tự hành trong tương lai

4


2.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ó: ngồ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 q trình ra quyết
định hoặc tính tố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 tố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ố.

5


- 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
tốn và kỹ thuật trí tuệ nhân tạo cụ thể. Đây chỉ là sáu trong số các thuật tố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 tố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.

6


Hì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
tố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

7


đồ 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

8


Cá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.

9


Hì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 tố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à q 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ì?

10



Như 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 ngồ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ự đố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

11


Hì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 hồn tồ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ự đốn giá cổ phiếu...

12


Deep 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
tố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ự đố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
tố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.

13


Hình 2.8: So sánh hiệu suất giữa DL với các thuật tố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 tố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
tố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 tố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ự đốn các từ sau được đưa ra theo ngữ cảnh.

14


Hì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.

15


Hì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 tố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

16


ướ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 tồ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

17


Hì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.

18



×