1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

61 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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ác giả Nguyễn Tuấn Anh
Người hướng dẫn PGS.TS Phạm Ngọc Hùng, TS. Trần Trọng Hiếu
Trường học Đại học Quốc gia Hà Nội
Chuyên ngành Kỹ thuật phần mềm
Thể loại luận văn thạc sĩ
Năm xuất bản 2018
Thành phố Hà Nội
Định dạng
Số trang 61
Dung lượng 101,41 KB

Cấu trúc

  • CHƯƠNG 1: MỞ ĐẦU (11)
    • 1.1. Hoàn cảnh (11)
    • 1.2. Đặt vấn đề và đề xuất phương pháp (11)
    • 1.3. Tổng quan luận văn (12)
  • CHƯƠNG 2: MẠNG NƠRON NHÂN TẠO TRUYỀN THẲNG NHIỀU TẦNG (13)
    • 2.1. Mạng nơron nhân tạo (13)
    • 2.2. Mạng nơron truyền thẳng nhiều tầng (16)
    • 2.3. Các phương pháp học phổ biến (18)
  • 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 (20)
    • 3.1. Bài toán dự đoán điểm đích của taxi (20)
    • 3.2. Phương pháp của MILA lab (21)
    • 3.3. Bài toán tìm số lượng đầu vào tối ưu (27)
    • 3.4. Các phương pháp giải quyết hiện nay (29)
    • 4.1. Mô hình đề xuất (35)
    • 4.2. Xây dựng thử nghiệm (39)
    • 4.3. Kịch bản thực nghiệm (49)
    • 4.4. Kết quả thực nghiệm (50)
  • KẾT LUẬN (56)
  • TÀI LIỆU THAM KHẢO (58)
  • PHỤ LỤC (60)

Nội dung

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 G[.] 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

MẠNG NƠRON NHÂN TẠO TRUYỀN THẲNG NHIỀU TẦNG

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ình2.1 sau:

Hàm truyền x Đầu ra x Đầu vào Trọng số liên kết bk

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:

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.

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à:

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.

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 x1 x2 xp

Tầng ẩn n-1 Tầng ra y1 y2 yq

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.

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.

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

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

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

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.

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.

Phương pháp của MILA lab

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 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, unit- 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 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ảng3.1 sau [1].

Thông tin meta Số giá trị có thể Kích thước nhúng

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]:

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: ŷ ∑

Thời gian, id khách, … Thông tin sẽ được nhúng p =i 𝐶 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

Chuỗi các điểm Thông tin meta

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

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 (√ 𝑎(𝑥,𝑦) )

𝑎(𝑥,𝑦)−1 Trong đó: a(x,y) = sin 2 ( 𝑙𝑎 𝑦 − 𝑙𝑎 𝑥 ) + cos(la ) cos(la ) sin 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]: d eqrec

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.

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:

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

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

Chú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 từ 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ọ.

Các phương pháp giải quyết hiện nay

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 hiệ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.

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

+ nếu tập siêu tham số có số lượng lớn thì thời gian chạy lâu, đôi khi là không thể thực hiện Giả sử ta cần tối ưu 3 siêu tham số, mỗi siêu tham số ta có

10 trường hợp, như vậy có tới 1000 trường hợp Giả sử một mạng huấn luyện mất 100 phút thì cần tới gần 3 tháng để chạy hết các trường hợp Như vậy 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 vì huấn luyện 1000 trường hợp, ta chỉ huấn luyện 10 trường hợp ngẫu nhiên thôi Điều này sẽ rút ngắn thời gian thực thi xuống Ta luôn luôn mong muốn các giá trị ngẫu nhiên mà ta sinh ra sẽ phủ đều không gian của siêu tham số, để từ đó kết quả huấn luyện sẽ mang tính chất đại diện hơn Ta không hề mong muốn việc có hai giá trị ngẫu nhiên được sinh ra ở gần nhau Vì vậy đã có nhiều kỹ thuật sinh ngẫu nhiên khác nhau nhằm đảm bảo việc này [13]. Ưu điểm:

+ có thể sử dụng cho các bài toán mà tập siêu tham số có nhiều phần tử. + cung cấp cái nhìn tổng quan về kết quả mà tập siêu tham số mang lại. Nhược điểm:

+ để đạt được độ phủ mong muốn thì số lượng giá trị ngẫu nhiên sử dụng cũng cần tỷ lệ với số lượng siêu tham số có thể, do đó phương pháp này không thể sử dụng cho các bài toán mà tập siêu tham số có quá nhiều phần tử.

+ không đảm bảo tìm được giá trị tối ưu nhất.

+ cần sử dụng thêm các kỹ thuật sinh để đảm bảo độ phủ

Phương pháp tìm kiếm ngẫu nhiên cũng mang ý nghĩa lý thuyết nhiều hơn là thực tiễn, vì trong thực tế khi giải quyết các bài toán, ta đều cần một phương pháp tin cậy để chắc chắn tìm ra siêu tham số tối ưu.

Dựa trên kinh nghiệm (heristic-based) là phương pháp dựa trên chủ nghĩa kinh nghiệm Đầu tiên ta thực hiện huấn luyện với vài giá trị siêu tham số ngẫu nhiên Sau đó, dựa vào các kết quả huấn luyện này, ta thực hiện việc lựa chọn siêu tham số tiếp theo sẽ huấn luyện Siêu tham số tiếp theo này sau khi huấn luyện sẽ được đưa vào tập các siêu tham số đã huấn luyện để từ đó tìm ra siêu tham số tiếp theo Ta tiếp tục thực hiện như vậy cho đến khi lặp lại siêu tham số đã nằm trong tập huấn luyện rồi hoặc đến khi đạt kết quả mong muốn thì dừng lại Trong hướng này có hai phương pháp phổ biến là: tối ưu dựa trên gradient(gradient-based optimization) và tối ưu tiến hóa (evolutionary optimization).

Tối ưu dựa trên gradient là phương pháp dựa trên độ sai lệch của các kết quả đã thử trước đó để tìm ra siêu tham số tiếp theo đưa vào huấn luyện Đến khi nào đạt được độ hội tụ mong muốn thì dừng lại Giả sử để lựa chọn số tầng ẩn tối ưu cho một mạng nơron, ban đầu ta chọn số tầng là 10 và cho độ chính xác là 65% Kết quả này khá thấp nên ta quyết định tăng số tầng lên, giả sử tăng lên

110 tầng (việc tăng lên bao nhiêu là do người huấn luyện quyết định) và đạt được độ chính xác là 85% Vậy ta có nhận xét khi số tầng tăng lên thì kết quả cũng tốt hơn, do đó ta tiếp tục tăng số tầng lên 210 và độ chính xác thu được là 88% Lúc này dù ta đã tăng số tầng lên gần gấp đôi nhưng độ chính xác chỉ tăng 3% Mức độ tăng này là không nhiều so với số tầng ta tăng nên mặc dù nếu tiếp tục tăng số tầng ẩn thì độ chính xác còn được nâng cao hơn, ta vẫn quyết định dừng lại ở số tầng 210.

Ta có thể thấy được kết quả tốt lên sau mỗi lần thay đổi siêu tham số, điều này hiển nhiên đạt được do ta đã sử dụng chủ nghĩa kinh nghiệm khi thực hiện lưu lại và phân tích kết quả phía trước, từ đó giúp ta lựa chọn các siêu tham số tiếp theo tốt hơn Phương pháp lựa chọn siêu tham số bằng tay cũng dựa trên phương pháp này.

Phương pháp tối ưu tiến hóa cũng hoạt động tương tự phương pháp tối ưu dựa trên gradient nhưng thay vì chỉ đánh giá một tập các siêu tham số một lần, phương pháp này thực hiện đánh giá nhiều tập các siêu tham số (các tập này ban đầu cũng được sinh ngẫu nhiên) Sau đó những tập siêu tham số cho kết quả kém nhất sẽ bị loại bỏ và thay bằng các tập mới Các tập mới này không phải được sinh ngẫu nhiên mà được sinh ra thông qua thuật toán xuyên chéo (crossover) và biến đổi (mutation), có thể hiểu đơn giản là các tập siêu tham số mới được sinh ra dựa trên các tập siêu tham số cho kết quả tốt nhất. Ưu điểm:

+ không cần huấn luyện nhiều siêu tham số mà vẫn tìm ra được giá trị siêu tham số tối ưu trong mức cho phép.

+ phù hợp cho mọi loại bài toán

+ giá trị tối ưu tìm thấy thường là giá trị tối ưu cục bộ, chứ không đảm bảo tìm được giá trị tối ưu nhất.

+ việc cài đặt thuật toán phức tạp hơn.

Phương pháp dựa trên kinh nghiệm đã cho thấy sự vượt trội so với phương pháp tìm kiếm grid và tìm kiếm ngẫu nhiên Phương pháp hoàn toàn có tính ứng dụng trong các bài toán thực tiễn Tuy nhiên để tránh chỉ tìm được giá trị tối ưu cục bộ đôi khi ta cần phải thực hiện bước nhảy giá trị cho siêu tham số.

Mô hình đề xuất

Với bài toán tìm giá trị siêu tham số tối ưu, hiện nay có bốn hướng giải pháp chính là tìm kiếm grid, tìm kiếm ngẫu nhiên (có hoặc không có các giải pháp đảm bảo các giá trị ngẫu nhiên phủ đều không gian giá trị), dựa theo kinh nghiệm và dựa trên thống kê Trong đó phương pháp tìm kiếm grid và tìm kiếm ngẫu nhiên không mang nhiều giá trị thực tiễn nhưng là cơ sở nền tảng quan trọng Phương pháp dựa theo kinh nghiệm được sử dụng phổ biến do nó là nền tảng cho việc lựa chọn (tuning) giá trị siêu tham số tối ưu bằng tay Còn phương pháp dựa trên thống kê, hiện nay được chú ý nhiều nhất do nó có thể mô tả bằng mô hình, thực hiện một cách tự động Do đó trong luận văn này tôi xin đề xuất sử dụng một mô hình theo hướng dựa trên thống kê để giải quyết bài toán tìm số đầu vào tối ưu (gọi là tham số k) của mạng nơron nhân tạo khi sử dụng mạng nơron này trong bài toán dự đoán điểm đích của một chuyến taxi.

Trong hướng dựa trên thống kê, phương pháp tối ưu Bayes nổi lên như một lựa chọn tốt và đang được sử dụng phổ biến và mô hình trình bày trong luận văn này cũng áp dụng phương pháp tối ưu Bayes Phương pháp tối ưu Bayes sẽ gồm hai phần: mô hình xấp xỉ và hàm thu (acquisition function) Mô hình xấp xỉ có vai trò để lưu trữ và cập nhật, trích xuất các đặc trưng của mối quan hệ giữa siêu tham số và kết quả huấn luyện Dựa trên đặc trưng mà mô hình xấp xỉ cung cấp, hàm thu thực hiện tính giá trị tối ưu tiếp theo [14] Trong luận văn này, tôi đề xuất sử dụng Gaussion Process cho vai trò mô hình xấp xỉ và Expected Improvement cho vai trò hàm thu.

Mô hình đề xuất được thể hiện bằng hình 4.1 sau: giá trị k tiếp theo luyện Huấn kết quả huấn luyện của giá trị k

Process đặc trưng của các cặp (k, kết quả)

Hình 4.1 Mô hình sử dụng tối ưu Bayes đề xuất

Tối ưu Bayes là một thuật toán dựa trên mô hình để giải quyết các bài toán tối ưu hộp đen (black box optimization) mà hàm mục tiêu f(x) là hàm hộp đen. Mọi thông tin về biểu thức hay đạo hàm của hàm f(x) đều không được biết Việc tìm hiểu về hàm số này chỉ thông qua giá trị của hàm tại một số điểm x.

Tối ưu Bayes thường chỉ được áp dụng cho các bài toán mà việc tính toán hàm f là phức tạp, tốn thời gian, nguồn lực Lúc này tối ưu Bayes sẽ giúp giảm số lần phải lấy mẫu từ đó giảm số lần thực hiện hàm f [5] Thuật toán này được gọi là Bayes vì việc lựa chọn giá trị tiếp theo được thực hiện bằng việc tính toán toàn bộ phân phối hậu nghiệm (posterior distribution) của hàm f với tập đầu vào x thông qua:

 giả thiết biết trước về hàm f

 xác suất để toàn bộ các giá trị x đã lấy mẫu trước xảy ra (likelihood)

Từ đó việc lựa chọn giá trị tiếp theo tùy thuộc vào việc ta muốn chọn giá trị lớn nhất hay nhỏ nhất.

Trong các mô hình của thuật toán tối ưu Bayes, Gaussian process là một mô hình phổ biến Ý tưởng của mô hình Gaussian process là với mỗi đầu vào x ta có một đầu ra y = f(x) mà f là một hàm biến thiên ngẫu nhiên (stochastic function) [6] Mô hình này coi rằng với mỗi đầu vào x sẽ có tương ứng một phân phối gaussian (phõn phối chuẩn) được đặc trưng bằng giỏ trị trung bỡnh à và độ lệch chuẩn σ [10] Do đó với mỗi đầu vào x, Gaussian process sẽ định nghĩa một phõn phối xỏc suất cho giỏ trị cú thể của f(x) Vỡ giỏ trị trung bỡnh à và độ lệch chuẩn σ có thể khác nhau cho mỗi giá trị x, nên ta định nghĩa phân phối xác suất như sau:

Trong đó N là một phân phối chuẩn tắc (standard normal distribution). Để ước lượng giỏ trị của à(x) và σ(x), cần phải điều chỉnh mụ hỡnh Gaussian process sao cho phù hợp với dữ liệu mẫu đang có Vì mỗi giá trị f(x) được lấy mẫu từ phân phối chuẩn nên giả sử ta có t mẫu dữ liệu như sau: f(x1), f(x2), …, f(xt) thì vector [f(x1), f(x2), …, f(xt)] là một mẫu từ một phân phối chuẩn nhiều chiều [4] Phân phối chuẩn nhiều chiều này sẽ được đặc trưng bởi một vector trung bình và một ma trận hiệp phương sai Do đó một Gaussian process là sự tổng quát của một phân phối chuẩn cho n biến, với n là số mẫu đang có.

Ma trận hiệp phương sai thể hiện sự tương quan giữa các mẫu Với giả thiết ban đầu rằng hàm f mịn (smooth) dẫn tới các mẫu mà ở gần nhau sẽ có tương quan mạnh và các mẫu ở xa nhau thì độ tương quan sẽ thấp Ma trận hiệp phương sai sẽ được định nghĩa thông qua một hàm hiệp phương sai k(xi, xj) (còn gọi là hàm nhân, hàm kernel).

Cho trước tập f(x1:t) và một tham số lấy mẫu nhiễu σ 2 noise (tham số nhiễu này bằng không nếu tập dữ liệu huấn luyện không có nhiễu, còn không nó sẽ có giá trị lớn hơn 0) thì Gaussian process cho giá trị x sẽ được mô tả như sau: t t f f f

I là ma trận định danh (identity matrix) có kích thước t x t

Với Gaussian process có nhiều lựa chọn cho hàm nhân (hàm hiệp phương sai) Trong luận văn này ta chọn hàm Squared Exponential, hàm này được định nghĩa như sau [7]: k(x i , x j ) = σ 2 exp(- (𝑥 𝑖 2𝑙 − 𝑥 2 𝑗 ) 2 ) với σ 2 và 𝑙 là hai tham số cần được cấu hình bằng tay Tham số chiều dài 𝑙 đặc trưng cho độ mịn của hàm (thông thường tham số 𝑙 được cài đặt bằng 1 và bằng nhau cho toàn bộ giá trị x) Tham số σ 2 đặc trưng cho độ biến thiên theo chiều dọc (thường được cài đặt bằng 1)

Hàm thu định nghĩa tập siêu tham số cho lần huấn luyện tới của mạng nơron Có rất nhiều hàm khác nhau có thể tính toán giá trị tốt nhất cho siêu tham số Nhưng ở trong mô hình đề xuất này, tôi sử dụng hàm Expected Improvement Hàm này có hai cách tính, nếu ta đang muốn tìm giá trị nhỏ nhất, ta sẽ sử dụng công thức sau: g min (x) = max(0, y min – y giá trị mong muốn nhỏ nhất ) trong đó ymin là giá trị nhỏ nhất của y mà ta đã thấy và y giá trị mong muốn nhỏ nhất là giá trị nhỏ nhất có thể.

Nếu ta muốn tìm giá trị lớn nhất thì sử dụng công thức sau: g max (x) = max(0, y giá trị mong muốn lớn nhất - y max ) trong đó ymax là giá trị lớn nhất của y mà ta đã thấy và y giá trị mong muốn lớn nhất là giá trị lớn nhất có thể.

Trong bài toán hiện tại, chúng ta đang mong muốn sai số của việc dự đoán điểm đích là nhỏ nhất nên ta sẽ sử dụng công thức g min (x)

Xây dựng thử nghiệm

Nhắc lại bài toán: Trong bài toán dự đoán điểm đích của một chuyến taxi, MILA lab 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 đề Để thực hiện training mạng nơron này, MILA lab chỉ sử dụng k điểm đầu tiên và k điểm cuối cùng của chuyến taxi làm dữ liệu đầu vào MILA lab cài đặt k có giá trị là 5 mà không có giải thích nào, trong khi đó tham số k ảnh hưởng trực tiếp đến việc bao nhiêu dữ liệu mà mạng nơron có thể học được nên tham số này là một siêu tham số quan trọng ảnh hưởng đến độ chính xác khi dự đoán điểm đích Do đó mô hình mà luận văn xây dựng nhằm mục đích xác định được giá trị k tối ưu đảm bảo cho sai số dự đoán là nhỏ nhất.

Việc huấn luyện mạng nơron của MILA lab là cần nhiều thời gian Với một giá trị k và cài đặt số vòng lặp là 2 triệu, thực hiện huấn luyện trên một máy tính cơ bản sẽ mất gần một ngày, nên để tối ưu thời gian chạy thì mọi bước khi thực hiện mô hình luận văn đề xuất cần phải được thực hiện liên tục, hoàn toàn tự động để đảm bảo thời gian chạy là ít nhất và cũng giảm thiểu sức lao động Bản thân phương pháp của MILA lab cũng là phương pháp duy nhất trong các đội thi mà chạy hoàn toàn tự động, không cần thực hiện bất cứ thao tác bằng tay nào.Cách thức triển khai thử nghiệm được biểu diễn ở hình 4.2 sau:

Dự đoán điểm đích với tập đánh giá

Lưu kết quả dự đoán vào Đẩy tệp dự đoán lên Kaggle website

Kaggle tính sai số dự đoán Lấy tập dữ liệu k-sai-số làm đầu vào cho Gausian process

Sai k mới đã tồn tại trong tập k-sai-số? Đúng Tìm sai số nhỏ nhất trong tập k-sai-số, giá trị k tương ứng là tối ưu Kết thúc

Hình 4.2 Cách thức triển khai thử nghiệm

Hàm thu tính giá trị k mới

Lấy đẩu ra của Gausian process cho vào hàm thu

Sinh ra tập dữ liệu k-sai-số gồm các cặp (k, sai số)

Lấy sai số từ Kaggle vềHuấn luyện mô hình MILAXác định giá trị k Cài đặt mô hình MILA với giá trị k

Trình tự triển khai mô hình như sau:

+ Cài đặt và chạy được mô hình của MILA lab [11]

+ Xác định vị trí cấu hình tham số k trong mã nguồn của MILA lab

+ Cài đặt thuật toán tối ưu Bayes mà cụ thể là cài đặt Gaussion Process cho vai trò mô hình xấp xỉ và Expected Improvement cho vai trò hàm thu.

+ Chú ý để mô hình Gaussion Process có thể hoạt động ta cần ít nhất 2 cặp giá trị tham số k và kết quả huấn luyện tương ứng để mồi, vì mô hình hoạt động dựa trên thống kê cùng các đặc trưng như giá trị trung bình, phương sai Kết quả huấn luyện là giá trị trung bình của tất cả các sai lệch khi dự đoán điểm đích của toàn bộ chuyến taxi Sau khi đã có 2 cặp giá trị mồi, thực hiện tính toán giá trị k tối ưu tiếp theo.

+ Nếu giá trị k tiếp theo nằm trong tập các giá trị k đã huấn luyện thì mô hình đã hội tụ Thực hiện dừng việc huấn luyện, tìm giá trị kết quả nhỏ nhất trong các kết quả đã huấn luyện (vì kết quả là sai số nên giá trị càng nhỏ càng tốt) Giá trị tham số k tương ứng với giá trị này chính là tham số k tối ưu mà mô hình đã tìm ra Kết thúc chương trình chạy.

+ Nếu giá trị k tiếp theo không nằm trong tập các giá trị k đã huấn luyện, thực hiện huấn luyện mạng nơron với giá trị k này.

+ Sau khi huấn luyện xong, đưa dữ liệu đánh giá là tập các chuyến taxi vào mạng nơron nhân tạo để mạng dự đoán Kết quả dự đoán sẽ được lưu vào tệp csv.

+ Thực hiện đẩy tệp kết quả csv này lên máy chủ Kaggle, máy chủ Kaggle sẽ trả lại giá trị sai lệch Ta sử dụng trực tiếp tập dữ liệu đánh giá của Kaggle để đảm bảo giống với các đội thi từ đó có được so sánh khách quan Đồng thời dữ liệu đánh giá của Kaggle là ở thời điểm một năm sau dữ liệu huấn luyện nên kết quả đánh giá sẽ mang lại ý nghĩa thực tiễn hơn so với việc tách một phần tập dữ liệu huấn luyện ra làm tập dữ liệu đánh giá.

+ Kết quả sai lệch là một số thực, nếu sai lệch bằng 0, có nghĩa là đây chính là giá trị tối ưu nhất, do đó dừng chương trình, giá trị k tương ứng với kết quả này chính là giá trị tối ưu nhất Nếu sai lệch khác 0 thì giá trị sai lệch này và giá trị k sẽ tạo thành cặp giá trị (k, sai số).

+ Cặp giá trị (k, sai số) mới cùng với những cặp giá trị (k, sai số) cũ tạo thành tập (k, sai số) mới Tập này được đưa vào mô hình Gausian process để tính toán, cập nhật lại các đặc trưng.

+ Hàm thu sẽ sử dụng các đặc trưng lấy từ Gausian process cũng yêu cầu về độ tin cậy để tính toán giá trị k tiếp theo.

+ Thực hiện lặp lại quá trình trên đến khi nào kết thúc hoặc độ sai lệch đạt mức yêu cầu thì dừng lại.

Toàn bộ dữ liệu sử dụng trong phần thực nghiệm đều được cung cấp bởi cuộc thi Kaggle và nó giống nhau cho mọi đội thi, do đó đảm bảo tính khách quan khi so sánh kết quả giữa mô hình luận văn đề xuất và MILA lab cũng như các đội thi khác Các dữ liệu mà cuộc thi cung cấp gồm:

- Tập dữ liệu tên và vị trí GPS các điểm chờ taxi nhưng ở bài toán này, ta hoàn toàn không cần sử dụng đến tập dữ liệu này,

- Tập dữ liệu gồm hơn 1.7 triệu chuyến taxi hoàn chỉnh, thu thập liên tục trong suốt một năm hoàn chỉnh (từ ngày 01/07/2013 đến ngày 30/06/2014) của

442 taxi hoạt động tại thành phố Porto thủ đô của Bồ Đào Nha Dữ liệu này được cung cấp cho mỗi đội tham gia cuộc thi Kaggle và lưu ở định dạng file CSV Dữ liệu này được MILA lab sử dụng trong quá trình huấn luyện mạng nơron Do đó trong phần chạy thử nghiệm của mô hình luận văn đề xuất, dữ liệu này cũng được sử dụng để huấn luyện mạng nơron Dữ liệu này sẽ được tách làm hai phần, một phần cho tập phê chuẩn (validation) và phần còn lại cho tập huấn luyện Các thuộc tính trong tệp csv là: (trip_id, call_type, origin_call, origin_stand, taxi_id, timestamp, day_type, missing_data, polyline) Một trường mẫu trong file CSV như sau: trip_id: T1 call_type: B origin_call: NA origin_stand: 15 taxi_id: 20000542 timestamp: 1408039037 day_type: A missing_data: FALSE polyline: [ [-8.585676,41.148522], [-8.585712,41.148639],

Một trường dữ liệu này mô tả đầy đủ thông tin cho một hành trình hoàn thiện của chuyến taxi, trong đó:

+ trip_id: được biểu diễn dưới dạng xâu, là một định danh duy nhất cho mỗi chuyến taxi

+ call_type: được biểu diễn dưới dạng ký tự, dùng để xác định kiểu gọi xe của hành khách cho chuyến taxi này Trường này là một trong ba giá trị sau:

- ‘A’: nếu chuyến taxi được điều đi từ trung tâm vận hành

- ‘B’: nếu chuyến taxi được gọi trực tiếp từ điểm đón taxi

- ‘C’: trong các trường hợp khác (như khách đón taxi ngay trên đường)

+ origin_call: được biểu diễn dưới dạng số tự nhiên, thể hiện một định danh độc nhất cho mỗi số điện thoại khách hàng đã từng phục vụ Khi call_type là ‘A’ thì trường này sẽ có giá trị, ngược lại nó có giá trị NULL.

+ origin_stand: được biểu diễn dưới dạng số tự nhiên, thể hiện một định danh độc nhất cho điểm chờ taxi Trường này sẽ là vị trí bắt đầu của chuyến đi, nếu call_type là ‘B’, ngược lại nó có giá trị NULL.

+ taxi_id: được biểu diễn dưới dạng số tự nhiên, thể hiện một định danh độc nhất cho tài xế đang thực hiện chuyến đi

+ timestamp: được biểu diễn dưới dạng số tự nhiên dưới định dạng thời gian của hệ điều hành Unix, thể hiện thời gian bắt đầu của chuyến đi.

+ day_type: được biểu diễn dưới dạng ký tự, thể hiện loại của ngày mà chuyến taxi này đang chạy Trường này là một trong ba giá trị sau:

- ‘B’: nếu chuyến taxi chạy trong ngày lễ hoặc một ngày đặc biệt nào đó (ngày nghỉ lễ bù)

- ‘C’: nếu chuyến taxi chạy trước ngày kiểu ‘B’

- ‘A’ trong những trường hợp còn lại (ngày thường, ngày cuối tuần, )

+ missing_data: được biểu diễn dưới dạng boolean, mang giá trị sai (false) nếu luồng dữ liệu GPS là hoàn thiện, mang giá trị đúng (true) nếu một hoặc nhiều vị trí GPS bị mất.

Kịch bản thực nghiệm

Trong phần thực nghiệm, mô hình đề xuất của luận văn cần sử dụng hai giá trị mồi ban đầu Giá trị đầu tiên ta chọn bằng 5 (bằng với giá trị MILA lab) còn giá trị thứ hai ta lựa chọn ngẫu nhiên Nhưng việc lựa chọn ngẫu nhiên như vậy không đảm bảo tính khách quan của mô hình Đồng thời nếu chỉ thực nghiệm trên một cặp giá trị duy nhất thì không thể đánh giá hiệu quả của mô hình chính xác được Chúng ta cần nhiều giá trị k tối ưu mà mô hình luận văn đề xuất tìm ra, càng nhiều giá trị k tối ưu tìm thấy thì việc đánh giá hiệu quả của mô hình càng tối ưu.

Do k nằm trong khoảng [2,50], nên ta cần huấn luyện tối đa là 49 mô hình mạng nơron Mỗi lần huấn luyện với cấu hình máy đã đưa ra ở phần 4.2 thì mất khoảng 21 giờ nên tổng thời gian cần thực hiện để huấn luyện hết các giá trị k là

43 ngày Tổng thời gian này là có thể thực hiện được đối với luận văn này Nếu có thể tạo nhiều máy ảo thì thời gian chờ có thể giảm xuống.

Sau khi đã huấn luyện được 49 mô hình, ta có tương ứng 49 file dự đoán cho tập dữ liệu đánh giá và sau đó thực hiện lấy giá trị sai số thông qua Kaggle website cho từng trường hợp Vì hai giá trị k mồi ban đầu cần khác nhau nên ta chỉ có 48 trường hợp tìm giá trị k tối ưu Với mỗi cặp mồi, mô hình sẽ đi tìm giá trị k tối ưu đến khi nào sai lệch bằng 0 hoặc giá trị k đã được huấn luyện Cuối cùng khi có 48 dãy giá trị k, ta đánh giá hiệu quả của mô hình luận văn đề xuất.

Kết quả thực nghiệm

Bảng 4.1 sau thể hiện sai lệch dự đoán của mô hình mạng nơron với từng giá trị k trong khoảng [2, 50].

Giá trị Sai số (km) Giá trị Sai số (km) Giá trị k Sai số (km)

Bảng 4.1 Sai lệch dự đoán của mô hình với từng giá trị k

Trong cuộc thi, mô hình mạng nơron nhân tạo của MILA lab chưa được huấn luyện đủ hai triệu vòng lặp nên cho độ sai lệch là 2.03489 km Còn trong bản kết quả của chúng ta, khi thực hiện huấn luyện mạng nơron này (vẫn với giá trị k là 5) cho đủ hai triệu vòng lặp thì độ sai lệch khi dự đoán là 2.00669 km. Kết quả này tốt hơn kết quả MILA lab công bố, điều đó cũng dễ hiểu khi mạng nơron đã được huấn luyện lâu hơn, vì vậy ta lấy con số 2.00669 km là kết quả của mô hình MILA lab với k bằng 5 để đánh giá độ tối ưu của mô hình luận văn đề xuất.

Trong bảng 4.1 ta có thể thấy với k = 23, mạng nơron cho kết quả tốt nhất khi với sai lệch chỉ là 1.89386 km (bằng 94.38% so với kết quả 2.00669 của MILA lab) Giá trị tốt thứ 2 là k = 11 với sai lệch là 1.92488, bằng 95.92% so với kết quả của MILA lab) Giá trị tốt thứ 3 là k = 20 với sai lệch là 1.93285, bằng 96.32% so với kết quả của MILA lab).

Trong khi đa phần các sai lệch chỉ dưới 2.2 km thì với k = 9, ta có kết quả sai lệch rất lớn lên tới 270.15953 km, điều này có thể là do dữ liệu đã không được tiền xử lý trước nên đã xảy ra ngoại lệ Ngoài ra ta cũng có 3 giá trị của k là 8, 15 và 18 có độ sai lệch hơn 2.2 km.

Trong tổng số 49 giá trị k, có 23 giá trị k cho kết quả dự đoán tốt hơn giá trị k = 5 Như vậy có thể nói giá trị k = 5 chỉ là giá trị trung bình Giá trị này không thuộc nhóm đầu những giá trị k tối ưu.

Bảng 4.2 sau thể hiện kết quả tìm kiếm các giá trị k tối ưu của mô hình luận văn đề xuất Có 48 kết quả tương ứng với 48 cặp giá trị k ban đầu dùng để mồi.Mỗi một kết quả là một chuỗi các giá trị k mà mô hình tìm được Hai giá trị k đầu tiên dùng để mồi sẽ nằm ở đầu dãy, do đó dãy luôn bắt đầu bằng số 5 Giá trị thứ 2 sẽ chạy lần lượt từ 2 đến 50 và bỏ qua giá trị 5 (vì trùng với giá trị đầu tiên).

STT Dãy giá trị k tối ưu tìm được

Bảng 4.2 Dãy giá trị k tối ưu tìm được

Cần chú ý rằng các dãy ở bảng 4.2 có giá trị cuối là giá trị đã xuất hiện ở trong dãy Giá trị cuối này thể hiện dãy số là hoàn thiện khi mô hình đề xuất đưa ra giá trị k đã xuất hiện ở trong dãy Từ đó ta thấy rằng có 87.5% dãy có đội dài nhỏ hơn 10 Đây là một kết quả chấp nhận được khi mô hình cần 18.37% số giá trị k để có thể kết thúc tìm kiếm dãy tối ưu.

Ta biết rằng với giá trị k bằng 23 thì kết quả dự đoán là tốt nhất Mà trong

48 trường hợp trên, có tới 25 trường hợp giá trị k bằng 23 này được tìm thấy tương đương với tỷ lệ 52.08% Đây là một kết quả rất tốt, cho thấy hiệu quả của mô hình luận văn đề xuất Với tỷ lệ này, ta chỉ cần thử 2 trường hợp là có thể có

1 trường hợp cho kết quả tối ưu nhất Thậm chí có tới 21 trường hợp là giá trị k bằng 23 chỉ nằm ở vị trí thứ 4 hoặc nhỏ hơn của dãy Điều này có nghĩa là nếu ta chỉ thực hiện tìm tối đa 4 giá trị tối ưu trong một dãy chứ không chạy đến khi dãy hoàn thiện thì tỷ lệ tìm thấy giá trị tối ưu nhất lên tới 43.75% Đây là kết quả thực sự tốt.

Sau giá trị k bằng 23 cho kết quả dự đoán tốt nhất thì giá trị k bằng 11 và

20 lần lượt giữ vị trí thứ hai và thứ ba Nếu ta mong kết quả tìm thấy nằm trong top hai giá trị tối ưu nhất thì xác xuất tìm thấy là 60.42% Còn nếu ta mong kết quả tìm thấy nằm trong top ba giá trị tối ưu nhất thì xác xuất lên tới 64.58%.

Vậy kết quả thực nghiệm đã cho thấy mô hình luận văn đề xuất mang lại hiệu quả tốt trong việc nâng cao độ chính xác của mạng nơron nhân tạo mà MILA lab sử dụng khi dự đoán điểm đích của chuyến taxi.

Ngày đăng: 30/03/2023, 19:58

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w