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

Tối ưu việc lựa chọn số đầu vào khi áp dụng mạng nơron nhân tạo trong bài toán dự đoán điểm đích của một chuyến taxi

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 (898.23 KB, 61 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN TUẤN ANH

TỐI ƯU VIỆC LỰA CHỌN SỐ ĐẦU VÀO KHI ÁP
DỤNG MẠNG NƠRON NHÂN TẠO TRONG BÀI
TOÁN DỰ ĐOÁN ĐIỂM ĐÍCH CỦA MỘT CHUYẾN
TAXI

LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀM

Hà Nội, 10/2018


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN TUẤN ANH

TỐI ƯU VIỆC LỰA CHỌN SỐ ĐẦU VÀO KHI ÁP
DỤNG MẠNG NƠRON NHÂN TẠO TRONG BÀI
TOÁN DỰ ĐOÁN ĐIỂM ĐÍCH CỦA MỘT CHUYẾN
TAXI
Ngành: Kỹ thuật Phần mềm
Chuyên ngành: Kỹ thuật Phần mềm
Mã số: 8480103.01

LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀM

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS PHẠM NGỌC HÙNG


TS. TRẦN TRỌNG HIẾU

Hà Nội, 10/2018


i

Mục lục
LỜI CẢM ƠN ...................................................................................................... iii
LỜI CAM ĐOAN................................................................................................. iv
Danh sách hình ảnh ............................................................................................... v
Danh sách bảng biểu ............................................................................................ vi
Danh sách mã nguồn ........................................................................................... vii
TÓM TẮT ............................................................................................................. 1
CHƯƠNG 1: MỞ ĐẦU ........................................................................................ 2
1.1. Hoàn cảnh ................................................................................................... 2
1.2. Đặt vấn đề và đề xuất phương pháp ........................................................... 2
1.3. Tổng quan luận văn..................................................................................... 3
CHƯƠNG 2: MẠNG NƠRON NHÂN TẠO TRUYỀN THẲNG NHIỀU TẦNG
............................................................................................................................... 4
2.1. Mạng nơron nhân tạo .................................................................................. 4
2.2. Mạng nơron truyền thẳng nhiều tầng.......................................................... 7
2.3. Các phương pháp học phổ biến .................................................................. 9
CHƯƠNG 3: BÀI TOÁN TÌM SỐ ĐẦU VÀO TỐI ƯU KHI DỰ ĐOÁN ĐIỂM
ĐÍCH CỦA CHUYẾN TAXI ............................................................................. 11
3.1. Bài toán dự đoán điểm đích của taxi ........................................................ 11
3.2. Phương pháp của MILA lab ..................................................................... 12
3.3. Bài toán tìm số lượng đầu vào tối ưu........................................................ 18
3.4. Các phương pháp giải quyết hiện nay ...................................................... 20



ii
CHƯƠNG 4: MÔ HÌNH ĐỀ XUẤT VÀ THỰC NGHIỆM .............................. 26
4.1. Mô hình đề xuất ........................................................................................ 26
4.2. Xây dựng thử nghiệm ............................................................................... 30
4.3. Kịch bản thực nghiệm ............................................................................... 40
4.4. Kết quả thực nghiệm ................................................................................. 41
KẾT LUẬN ......................................................................................................... 47
TÀI LIỆU THAM KHẢO ................................................................................... 49
PHỤ LỤC ............................................................................................................ 51


iii

LỜI CẢM ƠN
Trước tiên tôi xin dành lời cảm ơn chân thành và sâu sắc đến hai thầy giáo
PGS.TS Phạm Ngọc Hùng và TS. Trần Trọng Hiếu – những người đã hướng
dẫn, khuyến khích, chỉ bảo và tạo cho tôi những điều kiện tốt nhất từ khi bắt đầu
cho tới khi hoàn thành công việc của mình.
Tôi xin dành lời cảm ơn chân thành tới các thầy cô giáo khoa Công nghệ
thông tin, trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội đã tận tình đào
tạo, cung cấp cho tôi những kiến thức vô cùng quý giá và đã tạo điều kiện tốt
nhất cho tôi trong suốt quá trình học tập, nghiên cứu tại trường.
Đồng thời tôi xin cảm ơn tất cả những người thân yêu trong gia đình tôi
cùng toàn thể bạn bè những người đã luôn giúp đỡ, động viên tôi những khi vấp
phải những khó khăn, bế tắc.
Cuối cùng, tôi xin chân thành cảm ơn các bạn trong lớp K22KTPM đã
giúp đỡ, tạo điều kiện thuận lợi cho tôi học tập và nghiên cứu chương trình thạc
sĩ tại Đại học Công nghệ, Đại học Quốc Gia Hà Nội.



iv

LỜI CAM ĐOAN
Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “Tối ưu việc
lựa chọn số đầu vào khi áp dụng mạng nơron nhân tạo trong bài toán dự đoán
điểm đích của một chuyến taxi” là công trình nghiên cứu của riêng tôi, không
sao chép lại của người khác. Trong toàn bộ nội dung của luận văn, những điều
đã được trình bày hoặc là của chính cá nhân tôi hoặc là được tổng hợp từ nhiều
nguồn tài liệu. Tất cả các nguồn tài liệu tham khảo đều có xuất xứ rõ ràng và
hợp pháp.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy
định cho lời cam đoan này.
Hà Nội, ngày …. tháng … năm …..


v

Danh sách hình ảnh
Hình 2.1 Mô hình toán học của một nơron ........................................................... 5
Hình 2.2 Mạng nơron truyền thẳng nhiều tầng………………………………….7
Hình 3.1 Kiến trúc của mạng nơron MILA lab………………………………...15
Hình 4.1 Mô hình sử dụng tối ưu Bayes đề xuất……………………………….27
Hình 4.2 Cách thức triển khai thử nghiệm……………………………………..31


vi

Danh sách bảng biểu
Bảng 3.1. Thông tin meta chi tiết………………………………………………14

Bảng 4.1 Sai lệch dự đoán của mô hình với từng giá trị k……………………..41
Bảng 4.2 Dãy giá trị k tối ưu tìm được…………………………………………43


vii

Danh sách mã nguồn
Mã nguồn 4.1 Gaussian process…..……………………………………………37
Mã nguồn 4.2 Hàm thu…………………………………………………………38


1

TÓM TẮT
Nền công nghiệp taxi đang thay đổi nhanh chóng. Các đối thủ mới cùng
những công nghệ mới đang thay đổi cách các doanh nghiệp taxi vận hành. Một
thay đổi lớn đang diễn ra là các công ty taxi chuyển từ hệ thống điều phối taxi
bằng bộ đàm sang hệ thống điều phối điện tử. Với hệ thống mới, mỗi taxi sẽ
được gắn một thiết bị GPS để xác định vị trí cũng như trao đổi thông tin liên lạc
với trung tâm. Hệ thống điều phối điện tử giúp cho việc xác định vị trí taxi đã đi
qua và hiện tại là dễ dàng nhưng không biết rõ địa điểm chiếc taxi đang đi tới vì
thông thường, lái xe sẽ không nhập điểm đến của hành trình. Đồng thời phương
thức thông báo về khách gọi xe mới cho các taxi cũng thay đổi, từ việc phát
thanh thông tin cho tất cả các xe bằng việc hệ thống sẽ tự động tìm một xe phù
hợp nhất để yêu cầu đón khách. Do đó nếu biết được gần đúng vị trí mà mỗi taxi
đang hướng tới thì hệ thống sẽ có thể tìm được chiếc taxi phù hợp nhất. Đặc biệt
trong khung giờ cao điểm, việc có một chuyến taxi sắp đến điểm trả khách mà
ngay gần vị trí trả khách này lại có một khách vừa yêu cầu xe là thường xuyên
xảy ra.
Hướng tiếp cận phổ biến trong việc dự đoán điểm đích của chuyến taxi là sử

dụng mạng nơron nhân tạo nhiều tầng truyền thẳng. Nhưng một vấn đề gặp phải
nằm ngay tại tầng đầu vào là số lượng các điểm GPS mà taxi đã đi qua là không
cố định, điều này thì không phù hợp với điều kiện kích thước tầng đầu vào của
mạng nơron nhiều tầng là phải cố định. Do đó các nhà nghiên cứu thường chọn
cố định số lượng đầu vào bằng cách chỉ lấy k điểm đầu tiên và k điểm cuối cùng
của chuyến đi. Tuy nhiên, chưa có nghiên cứu nào đề cập đến việc làm thế nào
để xác định giá trị k tối ưu nhất.
Trong đề tài này, tôi đề xuất phương pháp lựa chọn số đầu vào tối ưu trong
bài toán dự đoán điểm đến của một chuyến taxi khi cho trước tập các điểm ban
đầu. Đề tài hoàn toàn có thể áp dụng cho bài toán tìm siêu tham số tối ưu
(hyperparameter) khi có yếu tố số lượng đầu vào thay đổi.
Keywords: fixed-length output, variable-length sequence, taxi destination
prediction, multi-layer perceptron, hyperparameter optimization


2

CHƯƠNG 1: MỞ ĐẦU
1.1. Hoàn cảnh
Nền công nghiệp taxi đang thay đổi nhanh chóng, các đối thủ mới cùng
những công nghệ mới đang thay đổi cách các doanh nghiệp taxi vận hành. Sự
thay đổi này mang lại nhiều thuận lợi nhưng nó cũng gây nên nhiều vấn đề. Một
thay đổi lớn đang diễn ra là các công ty taxi chuyển từ hệ thống điều phối taxi
bằng bộ đàm sang hệ thống điều phối điện tử. Với hệ thống mới, mỗi taxi sẽ
được gắn một thiết bị GPS để xác định vị trí cũng như trao đổi thông tin liên lạc
với trung tâm. Hệ thống điều phối điện tử giúp cho việc xác định vị trí taxi đã đi
qua và hiện tại là dễ dàng nhưng không biết rõ địa điểm chiếc taxi đang đi tới vì
thông thường, lái xe sẽ không nhập điểm đến của hành trình. Đồng thời phương
thức thông báo về khách gọi xe mới cho các taxi cũng thay đổi, từ việc
broadcast thông tin cho tất cả các xe bằng việc hệ thống sẽ tự động tìm một xe

phù hợp nhất để yêu cầu đón khách. Do đó nếu biết được gần đúng vị trí mà mỗi
taxi đang hướng tới thì hệ thống sẽ có thể tìm được chiếc taxi phù hợp nhất [15].

1.2. Đặt vấn đề và đề xuất phương pháp
Một cuộc thi về dự đoán điểm đến của một hành trình taxi đã được tổ chức
vào năm 2015 với chiến thắng thuộc về đội MILA lab ở Canada bằng việc sử
dụng mạng nơron nhân tạo nhiều tầng truyền thẳng. Nhưng một vấn đề gặp phải
nằm ngay tại tầng đầu vào là số lượng các điểm GPS mà taxi đã đi qua là không
cố định, điều này thì không phù hợp với điều kiện kích thước tầng đầu vào của
mạng nơron nhiều tầng là phải cố định. Do đó các tác giả đã cố định số lượng
đầu vào bằng cách chỉ lấy k điểm đầu tiên và k điểm cuối cùng của chuyến đi.
Với mô hình chiến thắng trong cuộc thi, k có giá trị là năm. Tuy nhiên, trong bài
báo các tác giả chưa đề cập đến việc làm thế nào để xác định giá trị k tối ưu nhất
[1].
Trong đề tài này, tôi đề xuất phương pháp lựa chọn số đầu vào tối ưu trong
bài toán dự đoán điểm đến của một chuyến taxi khi cho trước tập các điểm ban
đầu. Đề tài hoàn toàn có thể áp dụng cho bài toán dự đoán số lượng đầu ra cố
định (fixed-length output) từ số lượng đầu vào thay đổi (variable-length input).


3

1.3. Tổng quan luận văn
Phần còn lại của luận văn được trình bày như sau.
Chương 1 giới thiệu về hoàn cảnh, đặt vấn đề, mô tả phương pháp đề xuất, và
cách nội dung trong luận văn được trình bày.
Chương 2 trình bày về kiến thức nền tảng về mạng nơron nhân tạo truyền
thẳng nhiều tầng.
Chương 3 trình bày về bài toán dự đoán điểm đích của chuyến taxi và
phương pháp đội MILA lab giải quyết vấn đề cũng như bài toán tìm số lượng

đầu vào tối ưu cho mạng nơron nhân tạo nhiều tầng truyền thẳng để cải tiến mô
hình của đội MILA lab..
Chương 4 trình bày mô hình đề xuất, xây dựng thử nghiệm và kết quả thực
nghiệm của phương pháp.
Phần kết luận đưa ra kết quả của luận văn và cũng như triển vọng và hướng
nghiên cứu trong tương lai.


4

CHƯƠNG 2: MẠNG NƠRON NHÂN TẠO TRUYỀN
THẲNG NHIỀU TẦNG
2.1. Mạng nơron nhân tạo
Mạng nơron nhân tạo (artificial neural network) là một mô hình tính toán xử
lý thông tin bằng cách mô phỏng theo cách thức hoạt động của hệ nơron sinh
học trong bộ não con người [2].
Mạng gồm một nhóm các phần tử (nơron nhân tạo) kết nối với nhau thông
qua các liên kết (liên kết được đánh trọng số). Nó làm việc như một thể thống
nhất bằng cách truyền thông tin theo các kết nối và tính giá trị mới tại các nơron.
Một mạng nơron nhân tạo sẽ được cấu hình để giải quyết một vấn đề cụ thể nào
đó như nhận dạng mẫu, phân loại dữ liệu, dự đoán,... Nó hoạt động thông qua
một quá trình học từ tập các mẫu huấn luyện. Việc học về bản chất chính là quá
trình đưa dữ liệu vào mạng nơron và thực hiện hiệu chỉnh trọng số liên kết giữa
các nơron thông qua kết quả có trước trong mẫu.
Mạng nơron nhân tạo được coi là một công cụ mạnh để giải quyết các bài
toán có tính phi tuyến, phức tạp và đặc biệt trong các trường hợp mà mối quan
hệ giữa các quá trình không dễ thiết lập một cách tường minh.
Mô hình toán học tiêu biểu cho một nơron nhân tạo được minh họa như hình
2.1 sau:



5
x1

Wk1
Hàm truyền

x2

Wk2

.

.

.

.

xN

WkN

Đầu vào



f(.)

yk

Đầu ra

Hàm tổng
bk

Trọng số liên kết

Ngưỡng

Hình 2.1 Mô hình toán học của một nơron
Cấu trúc của một nơron k được mô tả toán học bằng cặp biểu thức sau:

𝑢𝑘 = ∑𝑁
𝑗=1 𝑤𝑘𝑗 𝑥𝑗



yk = f(uk – bk)
Trong đó, cụ thể các thành phần của một nơron gồm:
1. Tập đầu vào: là các tín hiệu (dữ liệu) vào của nơron, thường được đưa
dưới dạng một vector N chiều (x1, x2, … xN).
2. Tập liên kết: là các liên kết từ tín hiệu đến nơron. Mỗi liên kết sẽ được
đánh trọng số, ví dụ như nơron thứ k sẽ có trọng số wk1 ở liên kết 1. Do đó với
mỗi nơron ta cũng có một vector trọng số liên kết N chiều (wk1,wk2, … wkN). Các
trọng số này thông thường sẽ được tạo ngẫu nhiên ở thời điểm tạo mạng, sau đó
qua quá trình học sẽ được hiệu chỉnh dần.
3. Hàm tổng: là tổng của tích các đầu vào với trọng số liên kết của nó, kí
hiệu cho hàm tổng của nơron thứ k là uk.
4. Ngưỡng: là một thành phần của hàm truyền, ký hiệu cho ngưỡng của
nơron thứ k là bk.



6
5. Hàm truyền: là một hàm số dùng để tính đầu ra của nơron từ hàm tổng
và ngưỡng, ký hiệu là f.
6. Đầu ra: là tín hiệu đầu ra của nơron. Mỗi nơron chỉ có một tín hiệu đầu
ra. Với nơron thứ k đầu ra ký hiệu là yk.
Khái quát lại, nơron nhân tạo cho một đầu ra từ tập tín hiệu đầu vào.
Một số hàm truyền phổ biến là:
* Hàm đồng nhất
f(t) = αt
* Hàm bước nhảy
f(t) = {

1 𝑘ℎ𝑖 𝑡 ≥ 𝛼
0 𝑘ℎ𝑖 𝑡 < 𝛼

* Hàm dấu
f(t) = {

1 𝑘ℎ𝑖 𝑡 ≥ 𝛼
−1 𝑘ℎ𝑖 𝑡 < 𝛼

* Hàm sigmoid
f(t) =

1
1+ 𝑒 −∝𝑡

* Hàm sigmoid lưỡng cực

f(t) =

1− 𝑒 −∝𝑡
1+ 𝑒 −∝𝑡

=

2
1+ 𝑒 −∝𝑡

−1

Có nhiều loại mạng nơron khác nhau trong đó mạng nơron truyền thẳng
nhiều tầng là một trong những mạng nơron thông dụng nhất.


7

2.2. Mạng nơron truyền thẳng nhiều tầng
Mạng nơron truyền thẳng nhiều tầng (multi layer perceptron - MLP) là mạng
có n tầng (n >= 2). Trong đó tầng nhận tín hiệu vào của mạng gọi là tầng vào
(input layer). Tầng vào chỉ làm chức năng nhận tín hiệu mà không thực hiện
việc chuyển đổi thông tin nên không được tính vào số lượng tầng của mạng. Tín
hiệu ra của mạng được đưa ra từ tầng ra (output layer). Các tầng ở giữa tầng vào
và tầng ra gọi là các tầng ẩn (có n–1 tầng ẩn). Các nơron ở một tầng nhất định
đều liên kết đến tất cả các nơron ở tầng tiếp theo. Với mạng nơron truyền thẳng
(feedforward network) không có nút nào mà đầu ra của nó là đầu vào của một
nút khác trên cùng tầng với nó hoặc tầng trước.
Tầng vào


Tầng ẩn 1
Tầng ẩn n-1

Tầng ra

x1

y1
...

x2
.
.
.

...
.
.
.

...

.
.
.

y2
.
.
.

yq

xp

Hình 0.2 Mạng nơron truyền thẳng nhiều tầng
Nếu mạng nơron truyền thẳng chỉ có tầng nơron đầu vào và tầng nơron đầu
ra thì được gọi là mạng nơron truyền thẳng 1 tầng.
Mạng nơron có phản hồi (feedback network) là mạng mà đầu ra của một
nơron có thể trở thành đầu vào của nơron trên cùng một tầng hoặc của tầng
trước đó. Mạng nơron có phản hồi có chu trình khép khín gọi là mạng nơron hồi
quy.


8
Kiến trúc của một mạng nơron truyền thẳng nhiều tầng tổng quát có thể mô
tả như sau:
+ Đầu vào là một các tập vector (x1, x2, … xp) p chiều, đầu ra là một tập các
vector (y1, y2, … yq) q chiều.
+ Mỗi nơron thuộc tầng sau sẽ liên kết với tất cả các nơron thuộc tầng ngay
trước nó. Như vậy đầu ra của nơron tầng trước sẽ là đầu vào của nơron thuộc
tầng liền sau.
Mạng nơron truyền thẳng nhiều tầng sẽ hoạt động như sau: tại tầng đầu vào
các nơron nhận tín hiệu vào xử lý, thực hiện việc tính tổng trọng số rồi gửi tới
hàm truyền, kết quả của hàm truyền sẽ được gửi tới các nơron thuộc tầng ẩn đầu
tiên. Nơi đây các nơron tiếp nhận các kết quả này như là tín hiệu đầu vào và xử
lý rồi gửi kết quả đến tầng ẩn thứ 2. Quá trình cứ tiếp tục như thế cho đến khi
các nơron ở tầng ra cho ra kết quả.
Về ứng dụng của mạng nơron truyền thẳng nhiều tầng, vài kết quả đã được
chứng minh cụ thể như sau:
+ Mọi hàm toán học bất kỳ đều có thể được biểu diễn xấp xỉ bằng một

mạng nơron truyền thẳng ba tầng trong đó các nơron ở tầng ra đều sử dụng hàm
truyền tuyến tính và tất cả các nơron ở tầng ẩn đều dùng hàm truyền sigmoid.
+ Tất cả các hàm toán học liên tục đều có thể được biểu diễn xấp xỉ bởi
một mạng nơron truyền thẳng hai tầng trong đó các nơron ở tầng ra đều sử dụng
hàm truyền tuyến tính với sai số nhỏ tùy ý và tất cả các nơron ở tầng ẩn đều
dùng hàm truyền sigmoid.
+ Bất kỳ một hàm toán học Boolean nào cũng có thể được mô tả bởi một
mạng nơron truyền thẳng hai tầng trong đó hàm truyền sigmoid được sử dụng
cho tất cả các nơron.
Mạng nơron truyền thẳng nhiều tầng đã được sử dụng nhiều trong bài toán dự
báo và cho kết quả khả quan. Điều này sẽ giúp hướng tiếp cận này phổ biến hơn
trong thời gian tới cho bài toán dự báo.


9

2.3. Các phương pháp học phổ biến
Trong cuộc sống tự nhiên, học được định nghĩa là quá trình tiếp thu cái mới
hoặc bổ sung, trau dồi các kiến thức, kỹ năng, kinh nghiệm, giá trị, nhận thức
hoặc sở thích và có thể liên quan đến việc tổng hợp các loại thông tin khác nhau.
Khả năng học hỏi là sở hữu của loài người, một số động vật. Việc học sẽ giúp
vật học tiến bộ theo thời gian.
Mạng nơron cũng được học thông qua các luật học. Luật học là một thủ tục
dùng để xác định việc cập nhật trọng số liên kết và ngưỡng của mạng nơron.
Luật học còn được gọi là thuật toán huấn luyện mạng. Quá trình học còn gọi là
quá trình huấn luyện. Một mạng nơron được huấn luyện sao cho với một tập các
vector đầu vào X, mạng sẽ cho ra tập các vector đầu ra Y mong muốn. Tập X
dùng để làm đầu vào huấn luyện cho mạng nên được gọi là tập huấn luyện
(training set). Các phần tử x thuộc X được gọi là các mẫu huấn luyện (training
example). Như đã được đề cập ở phần đầu, việc học bản chất là việc cập nhật

liên tục các trọng số liên kết trong mạng nơron. Trong quá trình này, các trọng
số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi đầu vào, mạng sẽ cho
đầu ra như ý muốn.
Với mỗi mạng nơron nhân tạo có hai vấn đề cần học đó là học tham số
(parameter learning) và học cấu trúc (structure learning). Học tham số là việc
điều chỉnh trọng số của các liên kết giữa các nơron trong mạng, còn học cấu trúc
là việc thay đổi cấu trúc của mạng bao gồm thay đổi số lớp nơron, số nơron của
mỗi lớp và cách liên kết giữa chúng. Hai vấn đề này có thể được thực hiện đồng
thời hoặc tách biệt.
Luật học của mạng nơron có thể chia làm 3 loại: học có giám sát (supervised
learning), học không có giám sát (unsupervised learning), học tăng cường
(reinforcement learning).
+ Học có giám sát: là quá trình học giống việc ta dạy cho trẻ, luôn luôn có
một người “thầy giáo”, muốn dạy cho trẻ chữ “a”, ta đưa chữ “a” ra và nói với
trẻ rằng đây là chữ “a”. Và thực hiện tương tự với tất cả các chữ cái khác. Cuối
cùng để kiểm tra việc học, ta sẽ đưa ra một chữ cái bất kỳ và hỏi đây là chữ gì.
Do đó với học có giám sát, số tầng cần phân loại đã được biết trước. Nhiệm vụ


10
của việc huấn luyện là phải xác định được một cách thức phân tầng sao cho với
mỗi vector đầu vào sẽ được phân loại chính xác vào tầng của nó.
+ Học không giám sát: là quá trình học mà không có bất kỳ một người giám
sát nào. Trong bài toán mà luật học không giám sát được áp dụng, với tập dữ
liệu huấn luyện D thì nhiệm vụ của thuật toán học là phải phân chia tập dữ liệu
D thành các nhóm con, mỗi nhóm chứa các giá trị đầu vào có đặc trưng giống
nhau. Do đó với học không giám sát, số tầng phân loại chưa được biết và tùy
theo yêu cầu về độ giống nhau giữa các mẫu mà ta có các tầng phân loại tương
ứng.
+ Học tăng cường: còn được gọi là học thưởng phạt vì phương pháp này hoạt

động như sau: với mỗi giá trị đầu vào, thực hiện đánh giá vector đầu ra mà mạng
tính được với kết quả mong muốn, nếu được xem là “tốt” thì mạng sẽ được
thưởng (chính là việc tăng các trọng số liên kết), ngược lại nếu “xấu” mạng sẽ bị
phạt (tức là giảm các trọng số liên kết). Vì vậy học tăng cường là học theo nhà
phê bình còn học giám sát là học theo thầy giáo.


11

CHƯƠNG 3: BÀI TOÁN TÌM SỐ ĐẦU VÀO TỐI ƯU
KHI DỰ ĐOÁN ĐIỂM ĐÍCH CỦA
CHUYẾN TAXI
3.1. Bài toán dự đoán điểm đích của taxi
Bài toán tìm đích đến của một chuyến taxi đang gây được sự chú ý của cộng
đồng nghiên cứu trong thời gian gần đây. Vì vậy vào năm 2015 tại hội nghị
ECML/PKDD đã tổ chức một cuộc thi dự đoán đích đến của một chuyến taxi
như là một cuộc thi của Kaggle [15]. Dữ liệu đầu vào của bài toán là những
điểm bắt đầu trong hành trình của một chuyến taxi (thường gọi là prefixes) và
những thông tin meta của chuyến taxi đó. Từ đó người tham gia cuộc thi phải
tìm ra điểm đích của cuộc hành trình đó (gồm kinh độ và vĩ độ). Ý nghĩa của
việc giải bài toán trên là sẽ giúp công ty taxi phân chia số lượng taxi tại mỗi
điểm đón, khu vực đón một cách tối ưu nhất.
Người tham gia cuộc thi sẽ phải xây dựng một mô hình dự đoán dựa trên tập
dữ liệu gồm tất cả các chuyến đi của 442 taxi hoạt động tại thành phố Porto thủ
đô của Bồ Đào Nha trong suốt một năm hoàn chỉnh (từ ngày 01/07/2013 đến
ngày 30/06/2014) [15]. Tập dữ liệu huấn luyện trên có hơn 1.7 triệu chuyến đi
hoàn chỉnh [1]. Mỗi chuyến đi sẽ bao gồm các thông tin sau:
+ Một chuỗi các vị trí (gồm kinh độ và vĩ độ) được đo bằng GPS mỗi 15
giây. Vị trí cuối cùng chính là đích đến của hành trình. Do độ dài của mỗi
chuyến taxi là khác nhau nên số lượng vị trí trong mỗi chuyến đi cũng sẽ khác

nhau.
+ Thông tin meta tương ứng với mỗi chuyến đi gồm:
1. Nếu khách hàng gọi taxi bằng điện thoại thì chúng ta sẽ có ID của khách
hàng. Nếu khách hàng bắt taxi tại điểm đón thì chúng ta sẽ có ID của điểm đón.
Ngược lại chúng ta sẽ không có thông tin gì cả.
2. ID của taxi.
3. Thời gian bắt đầu của chuyến đi dưới định dạng của hệ điều hành unix.


12
Tập dữ liệu đánh giá trong cuộc thi sẽ gồm 320 hành trình mà được lấy từ 5
snapshots của mạng lưới taxi tại 5 thời gian khác nhau. Tập dữ liệu đánh giá này
thực ra được chia thành 2 tập nhỏ có kích thước bằng nhau: tập dữ liệu mở và
tập dữ liệu kín. Tập dữ liệu mở sẽ được sử dụng trong suốt cuộc thi để so sánh
các mô hình dự đoán của các đội thi, trong khi tập dữ liệu kín sẽ chỉ được sử
dụng vào lúc kết thúc cuộc thi để đánh giá các đội lần cuối.

3.2. Phương pháp của MILA lab
3.2.1 Giới thiệu chung
MILA lab là đội thi mà có thành phần chính là từ MILA lab thuộc trường
đại học Montreal, Canada. Hướng tiếp cận của đội MIA có ưu điểm là các công
việc phải làm bằng tay là ít hơn so với các đội thi khác. Nó gần như là hoàn toàn
tự động và đương nhiên là dựa trên mạng nơron nhân tạo truyền thẳng nhiều
tầng. Chính mô hình dự trên mạng nơron này đã giúp cho MILA lab chiến thắng
tại cuộc thi. Nhưng ngoài ra MILA lab cũng thực hiện nghiên cứu và thử một số
kiến trúc thay thế khác, tuy nhiên nó không thực hiện tốt lắm với bài toán này.
Do cuộc thi yêu cầu dự đoán điểm đích của một chuyến taxi dựa trên một
số lượng điểm đầu (prefix) của cuộc hành trình, mà tập dữ liệu cho trước lại bao
gồm tập đầy đủ các điểm của chuyến taxi, nên MILAB phải thực hiện tạo ra tập
điểm đầu. Tập dữ liệu huấn luyện có trên 1.7 triệu hành trình hoàn thiện, các

hành trình này cho ra 83.480.696 điểm có thể là điểm đầu. MILA lab cần lấy các
điểm đầu sao cho phân phối của nó là gần nhất có thể với tập dữ liệu đánh giá để
đảm bảo đưa ra kết quả dự đoán chính xác nhất. Tập dữ liệu đánh giá được lấy
từ năm thời điểm khác nhau của mạng lưới các taxi, vì vậy xác suất mà một
điểm bất kỳ trong tập dữ liệu huấn luyện sẽ nằm trong tập đánh giá là như nhau.
Do đó MILA lab sẽ cho tất cả các điểm trong tất cả các hành trình vào tập huấn
luyện làm điểm đầu, như vậy phân phối (distribution) điểm đầu trong tập MILA
lab sinh ra để huấn luyện sẽ giống với tập dữ liệu đánh giá [1].
Khi sử dụng mạng nơron nhân tạo truyền thẳng nhiều tầng (MLP) thì tầng
dữ liệu vào là các điểm đầu và thông tin meta của chuyến taxi, tầng ra sẽ dự
đoán đích điến (là một tọa độ gồm kinh độ và vĩ độ) của hành trình này. Trong
các tầng ẩn của mạng nơron MILA lab sử dụng một phép nhân ma trận sau đó là
một phép điều chỉnh độ lệch (bias) và cuối cùng là một phép phi tuyết tính. Hàm


13
phi tuyến MILA chọn là Rectifier Linear Unit (ReLU), mà đơn giản thực hiện
max(0,x). Với mô hình chiến thắng cuộc thi, MILA lab đã sử dụng chỉ một tầng
ẩn gồm 500 nơron ReLU [9].
3.2.2. Tầng vào của mạng nơron
Do số lượng điểm trong các chuyến taxi là khác nhau, điều này lại không
phù hợp với mạng nơron nhân tạo truyền thẳng nhiều tầng, nơi mà tầng vào phải
có kích thước cố định. Để giải quyết vấn đề này MILA lab quyết định chỉ lấy k
điểm đầu tiên và k điểm cuối cùng của hành trình. Như vậy họ sẽ có 2k điểm
(gồm cả kinh độ và vĩ độ), tương ứng với 4k giá trị số. Với mô hình chiến thắng,
họ sử dụng k = 5. Tất cả các điểm này đều được chuẩn hóa (zero-mean, unitvariance). Khi số lượng điểm trong một hành trình ít hơn 2k điểm thì k điểm đầu
sẽ bị trùng một phần với k điểm sau. Còn khi số lượng điểm nhỏ hơn k thì ta sẽ
thực hiện lặp lại điểm đầu hoặc điểm cuối [1].
Với thông tin meta là loại thông tin rời rạc gồm: ID của khách hàng, ID của
taxi, thời gian, MILA lab thực hiện nhúng vào mô hình. Mỗi thông tin rời rạc sẽ

được ánh xạ với một vector có kích thước cố định. Sẽ có một bảng nhúng cho
mỗi thông tin meta với một dòng cho tất cả các giá trị có thể có của thông tin
meta. Với dữ liệu thời gian, MILA lab chia thành: một phần tư giờ của ngày,
ngày thứ mấy trong tuần, tuần thứ mấy trong năm. Những thông tin này cuối
cùng sẽ được nối vào chuỗi 4k giá trị số để hình thành nên vector đầu vào của
mạng nơron. Danh sách chi tiết các thông tin được nhúng được thể hiện ở bảng
3.1 sau [1].


14
Thông tin meta

Số giá trị có thể

Kích thước nhúng

ID khách hàng

57106

10

ID taxi

448

10

ID điểm đón


64

10

Một phần tư giờ trong này

96

10

Ngày thứ mấy trong tuần

7

10

Tuần thứ mấy trong năm

52

10

Bảng 3.1. Thông tin meta chi tiết
3.2.3. Tầng ra của mạng nơron
Cuộc thi chỉ yêu cầu tìm ra điểm đích của chuyến hành trình, tức chỉ gồm
hai giá trị số kinh độ và vĩ độ, nhưng MILA lab thấy rằng việc huấn luyện một
mô hình đơn giản như vậy, mà điểm đích lại không nằm trong bất kỳ một tập dữ
liệu nào là rất khó. Vì vậy MILA lab quyết định tìm thêm thông tin về tập đích
đến: thay vì dự đoán trực tiếp vị trí đích, họ sẽ sinh ra tập ci gồm vài nghìn tâm
của các mạng lưới các điểm đích (gọi là một cụm, một cluster). Từ đó sẽ có một

tầng ẩn thực hiện liên kết một giá trị vô hướng giống như xác suất pi với mỗi
cụm. Do mạng nơron phải sinh ra một điểm đích ŷ duy nhất nên ta sẽ thực hiện
tính giá trị trung bình của tập tâm cụm đã sinh ra [1]:
𝐶

ŷ = ∑𝑖=1 𝑝𝑖 𝑐𝑖
Về bản chất việc tính giá trị trung bình này giống như một tầng ra tuyến
tính mà ma trận trọng số sẽ được khởi tạo như là những tâm cụm và liên lục cập
nhật trong suốt quá trình học. Đương nhiên tổng các giá trị ẩn pi phải bằng 1 để
đảm bảo điểm ŷ sẽ là tương ứng với xác suất của các tâm cụm, do đó MILA lab
sử dụng tầng softmax để tính giá trị này:


15
pi =

exp(𝑒𝑖 )
∑𝐶
𝑗=1 exp(𝑒𝑗 )

trong đó (ej)j là giá trị đầu ra của tầng trước.
Các cụm ci được sinh ra bằng thuật toán mean-shift trên tất cả các hành
trình có trong tập huấn luyện, và cuối cùng cho ra tập C chứa 3392 cụm. Tổng
quát lại mô hình mạng nơron nhân tạo truyền thẳng nhiều tầng sử dụng trong
cuộc thi của MILA lab được mô tả ở hình sau [1]:

dự đoán điểm đích
𝐶

ŷ = ∑𝑖=1 𝑝𝑖 𝑐𝑖

Cụm (ci)1≤i≤c

centroid

(pi)i
softmax
(ei)i

Tầng ẩn

Thông tin sẽ được nhúng


Chuỗi các điểm

Thời gian, id khách, …
Thông tin meta

Hình 3.1 Kiến trúc của mạng nơron MILA lab


16
3.2.4. Thuật toán huấn luyện
Để đo độ chính xác giữa các đội thi, công thức tính khoảng cách giữa hai
điểm Haversine sẽ được áp dụng (với lox, lax lần lượi là kinh độ, vĩ độ của điểm
x, R là bán kính của trái đất):

dhaversine(x,y) = 2R arctan(√
Trong đó: a(x,y) = sin2 (


𝑙𝑎𝑦 − 𝑙𝑎𝑥
2

𝑎(𝑥,𝑦)
)
𝑎(𝑥,𝑦)−1

) + cos(lax) cos(lay) sin2(

𝑙𝑜𝑦 − 𝑙𝑜𝑥
2

)

Nhưng mô hình của MILA lab lại không cho kết quả tốt khi huấn luyện
trực tiếp với khoảng cách Haversine này, do đó họ đã sử dụng một công thức
tính khoảng cách equirectanglular đơn giản hơn, mà hoàn toàn phù hợp với quy
mô của thành phố Porto như sau [1]:
𝑙𝑎𝑦 − 𝑙𝑎𝑥

deqrec(x,y) = R√(𝑙𝑜𝑦 − 𝑙𝑜𝑥 ) cos(

2

))2 + (𝑙𝑎𝑦 − 𝑙𝑎𝑥 )2

MILA lab còn sử dụng giải thuật gradient descent ngẫu nhiên (stochastic
gradient descent – SGD), với momentum 0.9, tỷ lệ học là 0.01 và một mẻ
(batch) có kích thước 200 để tối thiểu độ sai lệch của khoảng cách
equirectanglular với khoảng cách thật.

3.2.5 Nhược điểm
Với bài toán dự đoán điểm đích của một chuyến taxi, MILA lab đã đưa ra mô
hình sử dụng mạng nơron nhân tạo nhiều tầng truyền thẳng để giải quyết vấn đề.
Mô hình này cho độ sai lệch 2.035km khi được đánh giá với tập dữ liệu kín của
cuộc thi, trong khi độ lệch trung bình của các đội thi là 3.11km [1]. Để đạt được
kết quả này mạng nơron nhân tạo của MILA lab đã được huấn luyện với gần hai
triệu vòng lặp. Dù số vòng lặp này chưa đủ để giúp mô hình hội tụ (MILA lab
kỳ vọng sau 20 triệu vòng lặp, mạng nơron sẽ hội tụ) nhưng kết quả này cũng
giúp cho MILA lab đạt được vị trí đứng đầu tại cuộc thi. Điều này cho thấy mô
hình thực sự hiệu quả. Bên cạnh đó, khi nghiên cứu kỹ phương pháp của MILA
lab, chúng ta có thể thấy một số nhược điểm sau đây:


×