Luận văn đã cho thấy việc sử dụng Gaussian process và Acquisition function trong việc tìm giá trị tối ưu của số lượng đầu vào là thành công. Kết quả đã cho thấy tồn tại những giá trị k khác mà cho sai số dự đoán nhỏ hơn giá trị lựa chọn bằng tay ban đầu.
Trang 1ĐẠ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
Trang 2ĐẠ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
Trang 3Mụ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
Trang 4CHƯƠ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
Trang 5LỜ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
Trang 6LỜ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 …
Trang 7Danh 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
Trang 8Danh 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
Trang 9Danh sách mã nguồn
Mã nguồn 4.1 Gaussian process… ………37
Mã nguồn 4.2 Hàm thu………38
Trang 10TÓ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
Trang 11CHƯƠ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)
Trang 121.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
Trang 13CHƯƠ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:
Trang 14Hì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𝑤𝑘𝑗𝑥𝑗 và
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
Ngưỡng Đầu vào Trọng số liên kết
Trang 155 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
Trang 162.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
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
x2
xp
x1
Tầng ra
Trang 17
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ô
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
Trang 182.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ụ
Trang 19củ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
Trang 20CHƯƠ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
Trang 21Tậ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
Trang 22phi 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, variance) Khi số lượng điểm trong một hành trình ít hơn 2k điểm thì k điểm đầu
unit-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 unit-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]
Trang 23Thông tin meta Số giá trị có thể Kích thước nhúng
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:
Trang 24pi = exp(𝑒𝑖)
∑𝐶𝑗=1exp(𝑒𝑗)
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]:
Hình 3.1 Kiến trúc của mạng nơron MILA lab
Cụm (ci)1≤i≤c
…
Trang 253.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(√ 𝑎(𝑥,𝑦)
𝑎(𝑥,𝑦)−1)
Trong đó: a(x,y) = sin2 (𝑙𝑎𝑦 − 𝑙𝑎𝑥
2 ) + 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
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:
Trang 26 Dữ liệu mà cuộc thi đưa ra đã không được tiền xử lý trước khi đưa vào mạng nơron nhân tạo Các dữ liệu thu thập thực tế đều chứa những thông tin sai lệch do những sai sót của con người, sai lệch của máy móc và trong trường hợp này, dữ liệu của cuộc thi Kaggle cũng không phải là ngoại lệ Các điểm dữ liệu GPS bị thiếu, thời gian bắt đầu chuyến taxi bị sai (một
số chuyến taxi có thời gian chạy hơn 5 tiếng mà chỉ có vài điểm GPS), quỹ đạo chuyến đi không thực tế khi có một điểm ngược với hành trình đang đi [8] Những sai lệch này không những làm khó cho việc dự đoán
và còn làm giảm độ chính xác của kết quả dự đoán Nhưng điều này là không thể tránh khỏi khi sử dụng dữ liệu thực tế Với MILA lab họ đã không cần tiền xử lý dữ liệu như một số đội thi khác nhưng vẫn cho kết quả tốt nhất, điều này giúp ta tin tưởng rằng nếu dữ liệu được tiền xử lý kết quả sẽ tốt hơn nữa Đồng thời điều này cũng cho thấy độ thích nghi tốt với dữ liệu thực tế của mô hình MILA lab sử dụng
Khi chạy với dữ liệu cuộc thi, mô hình của MILA lab cho độ sai lệch là 2.035 km Mặc dù đây là kết quả tốt nhất trong các đội thi nhưng ta có thể thấy độ sai lệch này còn cao Chúng ta kỳ vọng một sự cải tiến với mô hình MILA lab để mang đến độ sai lệch dưới 2 km
Trong mô hình mạng nơron nhân tạo của MILA lab, để thỏa mãn yêu cầu của mạng nơron nhân tạo nhiều tầng truyền thẳng là số đầu vào phải cố định, họ đã chọn chỉ sử dụng năm điểm đầu và năm điểm cuối để huấn luận mạng Điều này là khá hay và hợp lý khi mà thông thường các điểm bắt đầu và các điểm kết thúc sẽ ảnh hưởng nhiều nhất đến việc dự đoán điểm đích của chuyến taxi Nhưng MILA lab không giải thích vì sao họ lại lựa chọn con số 5 chứ không phải một con số khác Do các điểm GPS được lấy cách nhau 15 giây, nên với 5 điểm đầu và 5 điểm cuối thì tổng thời gian của chuyến taxi để đưa vào huấn luyện là 150 giây (2.5 phút)
Mà trung bình một chuyến taxi có thời gian từ 15 đến 20 phút, nên ta có thể nhận xét rằng con số này là nhỏ Liệu một giá trị khác có giúp tăng độ chính xác khi dự đoán của mô hình mạng nơron nhân tạo này
Trang 273.3 Bài toán tìm số lượng đầu vào tối ưu
3.3.1 Phát biểu bài toán
Để giải quyết nhược điểm của mô hình mạng nơron nhân tạo của MILA lab khi lựa chọn chỉ 5 điểm đầu và 5 điểm cuối của chuyến taxi để đưa vào mạng nơron huấn luyện, để trả lời cho câu hỏi liệu con số 5 đã là tốt, tôi xin đề xuất bài toán tìm giá trị số lượng này tối ưu (ta gọi tham số này là k) Tôi tin tưởng rằng đây là một tham số quan trọng cần được tinh chỉnh để mang lại kết quả dự đoán tốt hơn Kỳ vọng bài toán này sẽ tìm ra giá trị tối ưu nhất từ đó cho kết quả
dự đoán chính xác hơn 10% so với kết quả hiện tại của MILA lab
Luận văn sẽ tập trung nghiên cứu bài toán 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 Tổng quát hơn, đây chính là bài toán tìm số lượng đầu vào tối ưu cho mạng nơron truyền thẳng nhiều tầng Bài toán này thuộc lớp bài toán tìm kiếm siêu tham số tối ưu, được cộng đồng nghiên cứu biết đến với tên gọi hyperparameter searching, hyperparameter optimization hay hyperparameter tuning Mục tiêu của bài toán là lựa chọn một (hoặc nhiều) siêu tham số tối ưu từ tập (hoặc nhiều) siêu tham số để cho kết quả huấn luyện tốt nhất
Đầu vào của bài toán gồm:
+ mô hình mạng nơron nhân tạo truyền thẳng nhiều tầng của MILA lab
+ tập dữ liệu các chuyến taxi dùng để huấn luyện
+ tập dữ liệu các chuyến taxi dùng để đánh giá
+ khoảng giá trị tham số k, trong luận văn này k thuộc khoảng [2, 50] (chú ý
k là số tự nhiên)
Đầu ra của bài toán là giá trị k tối ưu trong khoảng giá trị [2, 50] đã chọn Bài toán được giải quyết trong phạm vi tập dữ liệu được cho bởi cuộc thi Kaggle và khoảng giá trị tham số k cho trước
Kết quả mong muốn của luận văn là tìm được giá trị k cho kết quả dự đoán chính xác nhất trong khoảng giá trị [2, 50]
Trang 28Chúng ta cần phân biệt giữa tham số mô hình (model parameter) và siêu tham số (hyperparameter) Tham số mô hình là các giá trị của mô hình được sinh
ra từ dữ liệu huấn luyện giúp thể hiện mối liên hệ giữa các đại lượng trong dữ liệu Tham số mô hình sẽ được cập nhật trong quá trình học Còn siêu tham số là các tham số được cấu hình khi bắt đầu thực hiện việc huấn luyện Nó hoàn toàn nằm ngoài mô hình và không phụ thuộc và tập dữ liệu huấn luyện Siêu tham số được sử dụng trong quá trình huấn luyện để giúp mô hình tìm ra được các tham
số mô hình hợp lý nhất Thông thường nó được lựa chọn thủ công bởi người thực hiện huấn luyện mô hình và nó có thể được định nghĩa dựa trên một vài chiến lược Siêu tham số có thể là số lượng đầu vào của mạng nơron, chỉ số tốc
độ học khi huấn luyện, số lượng tầng ẩn, …
3.3.2 Bài toán số đầu vào cố định
Nhu cầu của bài toán xuất phát từ yêu cầu mạng nơron nhân tạo truyền thẳng nhiều tầng cần vector đầu vào có kích thước cố định (fixed-length feature vector) Điều này khác với mạng nơron hồi quy (recurrent neutral network) khi cho phép số lượng đầu vào là có thể thay đổi Trong thực tiễn, các bài toán phần lớn là có số lượng đầu vào không cố định: như bài toán chúng ta đang giải, số điểm trong chuyến hành trình taxi, mỗi chuyến taxi lại có số điểm khác nhau hay bài toán liên quan đến đoạn văn, mỗi đoạn văn lại có số lượng và số loại từ khác nhau Do đó các nhà nghiên cứu hiện đã đưa ra nhiều phương pháp để chuyển đổi số lượng đầu vào từ không cố định (variable-length input) sang số lượng đầu vào cố định Một số phương pháp phổ biến như:
+ Túi từ (Bag of word): các từ trong đoạn văn sẽ được tách riêng biệt và đếm số lần xuất hiện, lúc này thứ tự sắp xếp các từ đã không còn, các cặp từ và
số lần xuất hiện của nó trở nên vô hướng, do đó ngữ nghĩa sẽ không còn được giữ nguyên
+ Sử dụng vector từ (word vector), vector đoạn (paragraph vector): đây
cũng là hai phương pháp được sử dụng trong lĩnh vực xử lý ngôn ngữ tự nhiên Với vector từ thì mỗi từ sẽ được biểu diễn bằng một vector có kích thước cố định (fixed size vector) Vector này ban đầu có thể được sinh ra ngẫu nhiên Sau
đó các vector tiếp theo sẽ được sinh ra bằng giá trị trung bình của các vector xung quanh Điều này sẽ giúp giữ được mối liên hệ giữa các từ Cuối cùng các
Trang 29từ giống nhau sẽ được biểu diễn bởi các vector gần giống nhau Phương pháp vector đoạn cũng tương tự như vậy nhưng lúc này mỗi đoạn văn sẽ có thêm một vector biểu diễn cho một đoạn văn Khi thực hiện các tác vụ như học hay dự đoán từ bên cạnh, vector đoạn đều tham gia vào để tăng độ chính xác của thuật
toán
+ Băm không gian đầu vào: toàn bộ không gian đầu vào sẽ được băm để
đưa về tập giá trị hữu hạn và tập này sẽ là đầu vào của mạng nơron
+ Sử dụng pool: với mô hình pool, ta sẽ chia dữ liệu đầu vào ra thành nhiều tập con có kích thước giống nhau và đưa vào pool, sau đó thực hiện lấy dữ liệu
lần lượt từ pool ra để đưa vào mô hình
+ Lấy giá trị số lượng lớn nhất: với phương pháp này, ta thực hiện tìm giá trị số lượng lớn nhất có thể của đầu vào và cài đặt mạng nơron theo số lượng đầu vào lớn nhất này Với trường hợp các dữ liệu mà có số đầu vào nhỏ hơn giá trị lớn nhất thì ta có thể bổ sung các giá trị còn lại bằng giá trị 0 hoặc bằng giá trị trung bình hoặc bằng giá trị cuối của dữ liệu
+ Trích xuất các đặc trưng: trong tập dữ liệu đầu vào, ta thực hiện tìm các đặc trưng quan trọng ảnh hưởng tới kết quả đầu ra Sau đó lựa chọn số lượng các đặc trưng cần trích xuất và thực hiện trích xuất tập các đặc trưng này cho tất cả các mẫu đầu vào, như vậy ta sẽ có số lượng đầu vào của mạng nơron là cố định Như vậy cách giải quyết của MILA lab với bài toán dự đoán điểm đích của chuyến taxi là họ đã sử dụng phương pháp “trích xuất các đặc trưng” MILA lab cho rằng chỉ những điểm đầu và những điểm cuối là có ảnh hưởng nhiều nhất đến việc dự đoán điểm đích của chuyến taxi nên họ chỉ sử dụng các điểm trong một chuyến taxi (bao gồm 5 điểm đầu tiên và 5 điểm kết thúc) để làm đầu vào cho mạng nơron của họ
3.4 Các phương pháp giải quyết hiện nay
3.4.1 Tìm kiếm Grid
Thuật toán đơn giản nhất có thể áp dụng để tìm siêu tham số tối ưu là tìm kiếm grid Ý tưởng của thuật toán rất cụ thể, ta thực hiện huấn luyện mạng nơron cho tất cả các trường hợp có thể xảy ra Với một siêu tham số, ta thực
Trang 30hiện huấn luyện cho tất cả các giá trị thuộc tập siêu tham số, với nhiều siêu tham
số, ta thực hiện huấn huyện cho tất cả các tập siêu tham số có thể phối hợp với nhau Sau đó, ta so sánh các kết quả để tìm kết quả tốt nhất, siêu tham số (hoặc tập các siêu tham số) cho kết quả tốt nhất chính là siêu tham số (hoặc tập các siêu tham số) tối ưu
Ưu điểm:
+ huấn luyện được tất cả các trường hợp có thể có của các siêu tham số, do
đó đảm bảo kết quả tìm ra sẽ là kết quả tối ưu nhất
+ thực hiện đơn giản
+ phù hợp với bài toán có số lượng siêu tham số nhỏ hoặc mạng nơron có thể huấn luyện trong thời gian ngắn
phương pháp này không phù hợp với các bài toán có số lượng siêu tham số lớn
+ đa phần các mạng nơron cần nhiều thời gian hơn rất nhiều để huấn luyện nên phương pháp này cần được cân nhắc kỹ
+ không phù hợp với các mạng nơron có thời gian huấn luyện lâu và có số lượng siêu tham số nhiều
Phương pháp tìm kiếm grid mang ý nghĩa lý thuyết nhiều hơn là thực tiễn,
vì trong thực tế các bài toán cần giải quyết mà có sử dụng đến mạng nơron nhân tạo thì đều có thời gian huấn luyện mạng tính bằng ngày và số trường hợp siêu tham số có thể xảy ra là nhiều
3.4.2 Tìm kiếm ngẫu nhiên
Ý tưởng của phương pháp này giống với tìm kiếm grid, nhưng thay vì thử tất cả các trường hợp có thể, ta chỉ thực hiện trên một tập con ngẫu nhiên Thay