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

Tối ưu việc lựa chọn số lượng đầ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 TỐN TÌM SỐ ĐẦU VÀO TỐI ƯU KHI DỰ ĐỐN ĐIỂM
ĐÍCH CỦA CHUYẾN TAXI ............................................................................. 11
3.1. Bài tốn dự đốn điểm đích của taxi ........................................................ 11
3.2. Phương pháp của MILA lab ..................................................................... 12
3.3. Bài tố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 hồ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 tồn thể bạn bè những người đã ln 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 tốn dự đố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 hồn tồ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 tố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ự đố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 để 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 hồn tồn có thể áp dụng cho bài tố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. Hồ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 tồn có thể áp dụng cho bài tốn dự đố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ề hồ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 tốn dự đố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 tố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 tố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ự đốn,... Nó hoạt động thơng qua
một q 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à q
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
tố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 q trình khơng dễ thiết lập một cách tường minh.
Mơ hình tố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 tốn học của một nơron
Cấu trúc của một nơron k được mơ tả tố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 q 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 qt 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 tố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 tốn huấn luyện mạng. Q trình học cịn gọi là
q 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ẻ, ln ln 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à q trình học mà khơng có bất kỳ một người giám
sát nào. Trong bài tố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 TỐN TÌM SỐ ĐẦU VÀO TỐI ƯU
KHI DỰ ĐỐN ĐIỂM ĐÍCH CỦA
CHUYẾN TAXI
3.1. Bài tốn dự đốn điểm đích của taxi
Bài tố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ự đố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 tố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 tố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ự đố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
hồ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ự đố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à hồn tồ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 u cầu dự đố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 hồ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ự đố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ự
đố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ỉ 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ự đố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 tố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
qt 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ự đố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 tố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:


×