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

Nghiên cứu hệ thống khối máy học MLBlocks và ứng dụng vào dự đoán lộ trình tối ưu trong giao thông

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 (1.18 MB, 26 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM

ĐẶNG THÁI DUY

NGHIÊN CỨU HỆ THỐNG KHỐI MÁY HỌC
MLBLOCKS VÀ ỨNG DỤNG VÀO DỰ ĐOÁN LỘ
TRÌNH TỐI ƯU TRONG GIAO THÔNG

Chuyên ngành: Hệ thống thông tin
Mã số : 60.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN

Đà Nẵng - Năm 2017


Công trình được hoàn thành tại
Trường Đại học Sư phạm - ĐHĐN

Người hướng dẫn khoa học: PGS.TSKH. TRẦN QUỐC CHIẾN

Phản biện 1: TS. Nguyễn Hoàng Hải
Phản biện 2: GS.TS. Nguyễn Thanh Thủy

Luận văn đã được bảo vệ trước Hội đồng chấm Luận văn tốt
nghiệp Thạc sĩ Hệ thống thông tin họp tại Trường Đại học Sư
phạm – ĐHĐN vào ngày 30 tháng 07 năm 2017

Có thể tìm hiểu luận văn tại:
- Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng;


- Thư viện trường Đại học Sư phạm, Đại học Đà Nẵng.


1
MỞ ĐẦU
Hiện nay, chúng ta đang sống trong một thế giới tràn ngập bởi
các dữ liệu. Mỗi ngày một lượng dữ liệu lớn được tạo ra trên nhiều
thiết bị và những dữ liệu đó là nền tảng để chúng ta rút trích thông tin.
Với lượng dữ liệu rất lớn, vấn đề được đặt ra ở đây là: “Làm thế nào
có thể sử dụng dữ liệu này một cách có ý nghĩa để cải thiện và tác động
vào cuộc sống của chúng ta?”, “Làm thế nào có thể trích xuất thông tin
có ý nghĩa để phân tích hoặc xây dựng các thuật toán để giải quyết các
vấn đề xã hội như chống gian lận, hỗ trợ chăm sóc sức khỏe qua y học,
hỗ trợ giải quyết vấn đề giao thông hoặc cải thiện giáo dục”.
Máy học là một lĩnh vực quan trọng trong tin học. Mục tiêu
chính của máy học là tạo ra các phương pháp làm cho máy tính có thể
học như con người. Lĩnh vực máy học có quan hệ mật thiết với lĩnh
vực phát hiện tri thức, từ đó nó rút trích và đưa ra những thông tin hay
những dự báo cần thiết, có ý nghĩa.
Để sử dụng các dữ liệu một cách có ý nghĩa và thiết thực, tôi
ứng dụng sức mạnh của công nghệ thông tin trong lĩnh vực máy học
để làm việc với tập dữ liệu. Đề tài “Nghiên cứu hệ thống các khối
máy học MLBlocks và ứng dụng vào dự đoán lộ trình tối ưu trong
giao thông” sẽ đi sâu nghiên cứu về khối máy học và ứng dụng vào
thực tiễn bằng việc áp dụng khối máy học MLBlocks để dự đoán lộ
trình tối ưu trong giao thông thành phố Đà Nẵng.
Báo cáo của luận văn dự kiến tổ chức thành 3 chương chính như
sau:
Chương 1: Tổng quan về máy học
Chương 2: Thiết kế và thực thi khối máy học mlblocks

Chương 3: Ứng dụng mlblocks trong việc dự đoán lộ trình tối


2
ưu trong giao thông tại thành phố đà nẵng
Luận văn được hoàn thành trong khoảng thời gian không dài với
tài liệu tham khảo mới và ít nên không thể tránh khỏi thiếu xót. Tôi rất
mong nhận được sự đánh giá, nhận xét, góp ý của các thầy, cô trong
hội đồng để luận văn có thể hoàn thiện hơn. Em xin trân trọng cảm ơn
thầy giáo – PGS, TSKH. Trần Quốc Chiến đã tận tình hướng dẫn em
hoàn thành luận văn này.


3
CHƯƠNG 1. TỔNG QUAN
1.1. KHÁI NIỆM MÁY HỌC
Học máy (Machine Learning) là một ngành khoa học nghiên cứu
các thuật toán cho phép máy tính có thể học được các khái niệm
(concept).
Phân loại: Có hai loại phương pháp học máy chính:
 Phương pháp quy nạp: Máy học/phân biệt các khái niệm dựa
trên dữ liệu đã thu thập được trước đó. Phương pháp này cho phép tận
dụng được nguồn dữ liệu rất nhiều và sẵn có.
 Phương pháp suy diễn: Máy học/phân biệt các khái niệm dựa
vào các luật. Phương pháp này cho phép tận dụng được các kiến thức
chuyên ngành để hỗ trợ máy tính.
Hiện nay, các thuật toán đều cố gắng tận dụng được ưu điểm của
hai phương pháp này.
Các nhóm giải thuật học máy:
 Học có giám sát: Máy tính được xem một số mẫu gồm đầu vào

(input) và đầu ra (output) tương ứng trước. Sau khi học xong các mẫu
này, máy tính quan sát một đầu vào mới và cho ra kết quả.
 Học không giám sát: Máy tính chỉ được xem các mẫu không
có đầu ra, sau đó máy tính phải tự tìm cách phân loại các mẫu này và
các mẫu mới.
 Học nửa giám sát: Một dạng lai giữa hai nhóm giải thuật trên.
 Học tăng cường: Máy tính đưa ra quyết định hành động
(action) và nhận kết quả phản hồi (response/reward) từ môi trường
(environment). Sau đó máy tính tìm cách chỉnh sửa cách ra quyết định
hành động của mình.


4
1.2. CÁC ỨNG DỤNG MÁY HỌC
Ứng dụng: Học máy có ứng dụng rộng khắp trong các ngành
khoa học/sản xuất, đặc biệt những ngành cần phân tích khối lượng dữ
liệu khổng lồ. Một số ứng dụng thường thấy
 Xử lý ngôn ngữ tự nhiên (Natural Language Processing): xử
lý văn bản, giao tiếp người – máy…
 Nhận dạng (Pattern Recognition): nhận dạng tiếng nói, chữ
viết tay, vân tay, thị giác máy (Computer Vision) …
 Tìm kiếm (Search Engine)
 Chẩn đoán trong y tế: phân tích ảnh X-quang, các hệ chuyên
gia chẩn đoán tự động.
 Sinh học: phân loại chuỗi gene, quá trình hình thành
gene/protein.
 Vật lý: phân tích ảnh thiên văn, tác động giữa các hạt …
 Phát hiện gian lận tài chính (financial fraud): gian lận thẻ tỉn
dụng.
 Phân tích thị trường chứng khoán (stock market analysis)

 Chơi trò chơi: tự động chơi cờ, hành động của các nhân vật ảo.


5
Các Quy trình cơ bản của học máy:

Các phần chính của một Quy trình Machine learning bao gồm:
Mô hình (Model) – là hệ thống mô phỏng các mẫu hình từ thực
tế giúp đưa ra dự báo hoặc nhận dạng.
Các thông số (Parameter) – là những tín hiệu hoặc yếu tố được
cho là có khả năng gây ảnh hưởng đến kết quả mô hình, sử dụng để
đưa ra quyết định.
Cơ chế học hỏi (Learner) – là quá trình đánh giá, đối chiếu khác
biệt giữa các dự báo và kết quả thực tế, tiến hành các điều chỉnh thông
số hợp lý cho đến khi mô hình đạt được mức độ chính xác đặt ra.
Giả sử trong thực tế phát sinh một nhu cầu như sau: Một giảng
viên muốn xác định được lượng thời gian tối đa sinh viên cần dành
cho việc học để đạt được điểm số cao nhất có thể.
Nhu cầu này được cụ thể hóa thành bài toán: Tạo ra một cơ chế
giúp dự báo điểm số kiểm tra khi biết được thời gian dành cho việc
học, qua đó cũng giúp xác định thời gian học tối ưu để đạt kết quả tốt nhất.


6
Dĩ nhiên một giảng viên có thể thực hiện điều tra một nhóm sinh
viên, sau đó xác định một mẫu hình chung cho nhóm này và thực hiện
các ước lượng một cách thủ công. Tuy nhiên trong thống kê, mẫu cần
phải đủ lớn để cho độ chính xác nhất định. Bên cạnh đó, Quy trình mô
phỏng thực tế này đòi hỏi quá trình điều chỉnh lặp đi lặp lại không
ngừng với lượng lớn dữ liệu. Điều này gây lãng phí thời gian, công sức

và nhiều khi vượt quá khả năng của con người. Chính lúc này một quá
trình Machine learning sẽ phát huy hiệu quả tốt nhất.
Bước 1 – Thiết lập mô hình (Model)
Để bắt đầu quá trình, giảng viên phải là người đưa ra những giả
định đầu tiên vào mô hình, bao gồm:
Các biến (x) nào tác động lên kết quả mô hình (y): Ở đây chỉ có
một yếu tố gây ảnh hưởng (x) là ‘thời gian học tập’, còn đầu ra (y)
chính là ‘kết quả kiểm tra’.
Mối quan hệ giữa x và y: Ở đây giả định x tác động lên y theo
mối quan hệ tuyến tính. Có nghĩa là phương trình biểu diễn mối quan
hệ là hàm bậc nhất: y = Wx + b. Hiểu nôm na là: khi ‘thời gian học
tập’ tăng lên 1 đơn vị thì ‘kết quả kiểm tra’ sẽ tăng lên (W +b) đơn vị;
các thông số W, b này không đổi nên khi biểu diễn trên đồ thị y sẽ là
đường thẳng.
Ngoài ra, dựa trên phỏng đoán chủ quan, giảng viên có thể đưa
ra các giả định ban đầu như: W = 1, b = 5 (y = x + 5). Theo đó thời
gian học và điểm số đạt được có thể diễn giải như sau:
0 giờ = 5 điểm
1 giờ = 6 điểm
2 giờ = 7 điểm
3 giờ = 8 điểm
4 giờ = 9 điểm


7
5 giờ = 10 điểm
Dựa vào những giả thiết ban đầu trên, máy tính sẽ khái quát vấn
đề thành phương trình toán học được mô tả như đồ thị bên dưới.

Bước 2 – Cung cấp dữ liệu đầu vào thực tế (Parameter)

Sau khi mô hình được thiết lập, các thông tin thực tế sẽ được
đưa vào. Giáo viên sẽ cung cấp các dữ liệu thực tế về ‘kết quả kiểm tra
– x’ và ‘thời gian học tập – y’ được thu thập từ các sinh viên nằm trong
mẫu nghiên cứu.
Biểu diễn tập (x, y) của mỗi sinh viên lên đồ thị ở trên và quan
sát sơ bộ. Kết quả thực tế không khớp với dự báo: từng điểm chấm (thể
hiện cho từng sinh viên với số điểm và thời gian học cụ thể) không
nằm ngay trên đồ thị mà phân bổ rải rác bên trên hoặc bên dưới. Điều
này chứng tỏ các giả định ban đầu của giảng viên ở bước 1 là không
chính xác và cần sự điều chỉnh. Đây chính là lúc quá trình ‘tự học’ của
máy tính được kích hoạt.


8

Bước 3 – Quá trình điều chỉnh tự động (Learner)
Cơ chế Learner của hệ thống sẽ nhìn vào dữ liệu và các thông
số, đánh giá độ chênh lệch giữa thực tế và mô hình, sau đó sử dụng
nhiều công thức toán để điều chỉnh các giả định ban đầu, chẳng hạn
như W=1, b=4 (y = x + 4). Khi đó:
0 giờ = 4 điểm
1 giờ = 5 điểm
2 giờ = 6 điểm
3 giờ = 7 điểm
4 giờ = 8 điểm
5 giờ = 9 điểm
6 giờ = 10 điểm
Với giả định này, máy tính đang điều chỉnh theo hướng cần có
nhiều thời gian học hơn (6 giờ) để đạt được điểm số tốt nhất.
Bây giờ chạy lại mô hình với các giả định mới. Số liệu thực tế

tiếp tục được so sánh với mô hình được chỉnh sửa. Nếu mô hình thành


9
công thì dữ liệu thực tế phải gần với các số liệu dự báo. Tuy nhiên theo
quan sát, dữ liệu thực tế vẫn tiếp tục phân bổ rời rạc thay vì nằm tập
trung gần đường mô phỏng. Do đó cơ chế tự học sẽ tiếp tục lặp đi lặp
lại các thay đổi cho đến khi mô hình dự báo đạt được độ tin cậy cao
nhất – khi đó với mỗi thời gian học nhất định, giảng viên có thể dự
đoán gần chính xác điểm số kiểm tra trong thực tế.

1.3. CÁC PHƯƠNG PHÁP MÁY HỌC
1.3.1. Phương pháp học không giám sát (Unsupervised
Learning)
Khái niệm học không giám sát: Học không giám sát là học với
tập dữ liệu huấn luyện ban đầu hoàn toàn chưa được gán nhãn. Học
không giám sát là phương pháp học sử dụng cho lớp bài toán gom cụm,
phân cụm (Clustering).
1.3.2. Phương pháp học bán giám sát (Semi-Supervised
Learning)
Trong thực tế, để có được một tập dữ liệu có chất lượng và đã
được gán nhãn của một lĩnh vực, thường được thực hiện thủ công bằng
tay bởi người có nhiều kinh nghiệm về lĩnh vực đó. Vì vậy, dữ liệu đã


10
được gán nhãn thường ít và đắt. Trong khi đó, dữ liệu chưa được gán
nhãn lại rất nhiều và phong phú. Phương pháp học bán giám sát (hay
học nửa giám sát) được đặt ra để tận dụng cả hai nguồn dữ liệu này.
Khái niệm học bán giám sát: Học bán giám sát là học với tập dữ

liệu huấn luyện gồm cả dữ liệu đã được gán nhãn và dữ liệu chưa được
gán nhãn. Tuỳ vào từng mục đích cụ thể, học bán giám sát có thể được
áp dụng cho bài toán phân lớp hoặc phân cụm.
1.3.3. Phương pháp học có giám sát (Supervised Learning)
Học có giám sát là học với tập dữ liệu huấn luyện ban đầu hoàn
toàn được gán nhãn từ trước. Học có giám sát là phương pháp học sử
dụng cho lớp bài toán phân lớp, phân loại (Classification).
1.3.4. Học tăng cường (reinforcement learning)
Trong ngành khoa học máy tính, học tăng cường (tiếng
Anh: reinforcement learning) là một lĩnh vực con của học máy, nghiên
cứu cách thức một tác nhân trong một điều kiện cụ thể nên chọn thực
hiện các hành động nào để đạt thành công tốt nhất đối với một mục
tiêu nào đó về lâu dài. Các thuật toán học tăng cường cố gắng tìm
một chiến lược ánh xạ các hành động của thế giới tới các hành động
mà tác nhân nên chọn trong các hành động đó. Các thuật toán học tăng
cường cho ngữ cảnh này có liên quan nhiều đến các kỹ thuật quy hoạch động.
Khác với học có giám sát, trong học tăng cường không có các
cặp dữ liệu đầu vào/đầu ra, các hành động tối ưu hóa cũng không được
đánh giá đúng/sai một cách tường minh.
Học tăng cường đặc biệt thích hợp cho các bài toán có sự được
mất giữa các ‘mục tiêu’ ngắn hạn và dài hạn. Học tăng cường đã được
áp dụng thành công cho nhiều bài toán, trong đó có điều khiển robot,
điều hành thang máy, viễn thông, các trò chơi backgammon và cờ vua.


11
CHƯƠNG 2. THIẾT KẾ VÀ THỰC THI KHỐI MÁY
HỌC MLBLOCKS
2.1. KHÁI NIỆM MLBLOCK
MLBlocks là một hệ thống máy học cho phép các nhà khoa học

dữ liệu có thể khám phá không gian dữ liệu dựa trên các kỹ thuật mô
hình hóa một cách dễ dàng và hiệu quả. Khối trong MLBlocks cung
cấp khả năng tái sử dụng các thuật toán khai phá dữ liệu trong việc xây
dựng và đào tạo mạng nơ ron nhân tạo. Khái niệm MLBlocks ra đời từ
năm 2015 và hiện nay vẫn đang được các nhà khoa học dữ liệu nghiên
cứu, phát triển theo hướng xây dựng như một khung phát triển
(framework) cho các hệ thống máy học sau này.
Một số phương pháp thông dụng của kỹ thuật mô hình hóa:
 Mô hình phân biệt: Các mô hình thuộc thể loại này có thể kể
đến như: SVMs, Logistic Regression, Perceptron, Passive Aggressive.
Mô hình này áp dụng nhiều trong các bài toán xác suất, kỹ thuật mô
hình này cố gắng để mô hình hóa xác suất P có điều kiện (x | y), trong
đó Y là "nhãn" (giá trị muốn dự đoán) và X là “mẫu” truy vấn.
 Mô hình sản sinh: Kỹ thuật mô hình này cố gắng phân phối
những điểm chung của 𝑃 (𝑋, 𝑌), nó được gọi là "sản sinh" vì mô này
có thể tạo ra những mẫu có giá trị dự đoán tốt hơn.
 Mô hình phân nhóm: Một kỹ thuật học không giám sát, hệ
thống sẽ tự học tập bằng cách sử dụng trực tiếp các giá trị đã có để dự
đoán một giá trị kế tiếp. Nó nhóm dữ liệu dựa theo các điểm "tương tự
như" và mỗi nhóm dữ liệu này được xem như tham số trong quá trình
phân nhóm kế tiếp.
 Mô hình hóa phân cụm: Một sự kết hợp của ba kỹ thuật trước
đó. Đầu tiên, hệ thống sẽ áp dụng mô hình phân nhóm đối với các tập


12
dữ liệu, sau đó sử dụng mô hình phân biệt hoặc mô hình sản sinh cho
từng cụm dữ liệu khác nhau. Mô hình này có hiệu năng xử lý tốt hơn
bởi vì đối với từng loại dữ liệu khác nhau thì sẽ được áp dụng phương
pháp mô hình hóa khác nhau.

2.2. CÁC ỨNG DỤNG MLBLOCK
Hiện nay, các hệ thống máy học đã và đang được áp dụng rộng
rãi khi con người cố gắng giảm bớt những khó khăn trong quản lý, tìm
kiếm dữ liệu hỗ trợ trong nhiều lĩnh vực trong cuộc sống như: hỗ trợ
quyết định phát đồ điều trị trong y khoa, dự đoán kết quả kinh doanh,
dự đoán trong vấn đề tắc nghẽn giao thông....
MLBlocks ra đời để giải quyết những vấn đề khó khăn trong
khai phá dữ liệu, với mục đích giúp các nhà khoa học dữ liệu tìm kiếm
giải pháp tốt nhất trong thời gian nhanh nhất trong việc khai thác dữ
liệu đồ sộ trên.
2.2.1. Một số công cụ khai phá dữ liệu
Có rất nhiều sản phẩm và các công cụ cho các nhà khoa học dữ
liệu sử dụng, một số các công cụ đặc biệt như: Theano & Pylearn2,
Caffe, Torch & OverFeat, Cuda, Deeplearning4j.
2.2.2. Công cụ thế hệ 2.0
Google Prediction API:
Dự án API7 Google là một ví dụ về khả năng cung cấp hệ thống
máy học như là dịch vụ (MLaaS). Google Machine Learning sử dụng
các kỹ thuật phân loại dữ liệu và hồi quy đơn giản và được dùng nhiều
trong lĩnh vực phân tích dữ liệu, thăm dò và dự đoán xu hướng bất
động sản. Nhược điểm của Google Machine Learning là nó bị giới hạn
kiểu dữ liệu và người sử dụng không thể biết được các kỹ thuật mô
hình được áp dụng trên các tập dữ liệu của họ.


13
Amazon Machine Learning:
Amazon Machine Learning cho phép thiết lập web service để
đưa ra dự đoán trong thời gian thực, nhưng việc cấu hình sẽ tương đối
phức tạp. Bên cạnh đó, hiệu suất của hệ thống dự báo trên nền tảng

Mlaas của Amazon sẽ dựa nhiều vào kỹ năng cấu hình được thực hiện
bởi người sử dụng, điều này làm mất tính linh hoạt của hệ thống.
Nhược điểm của giải pháp này là người dùng cũng chỉ có thể sử dụng
kỹ thuật đơn giản với rất ít tùy biến như phân loại hoặc hồi quy
Azure Machine Learning:
Azure Machine Learning là một dịch vụ phân tích dữ liệu và đưa
ra dự đoán dựa trên nền tảng điện toán đám mây của Microsoft. Azure
Machine Learning được xây dựng dựa trên hệ thống phần mềm phức
tạp, hệ thống máy tính cao cấp và các nhà khoa học đầy kinh nghiệm.
Do vậy, chi phí của nó khá đắt đỏ đối với các công ty vừa và nhỏ hoặc
ngay cả các doanh nghiệp lớn.

Hình 2.1. Vai trò của Azure trong quy trình Machine Learning.


14
2.3. MÔ HÌNH MLBLOCK
Mô hình khối máy học MLBlocks

Hình 2.3. Mô hình chung của khối máy học
Mô hình trên có thể diễn giải như sau: Bước thứ nhất, hệ thống
sẽ thu thập, trích xuất và tổng hợp dựa trên dữ liệu thô ban đầu. Sau
khi thu thập dữ liệu và hoàn thành các bước tiền xử lý, quá trình tiếp
theo là sử dụng các phương pháp kỹ thuật được gọi là: "Trích xuất,
tổng hợp" và "mô phỏng", kết quả của bước này sẽ là ma trận các đối
tượng. Các hàng của ma trận này biểu diễn các đối tượng, và cột tương
ứng được xem như là "thuộc tính" của dữ liệu.

Hình 2.4. Mô hình khối máy học biểu diễn dạng đồ thị có hướng



15
Mô hình MLBlocks sẽ được xây dựng như một đồ thị có hướng,
các đường đi đều xuất phát từ nút triết xuất ban đầu. Từ nút này, dữ
liệu sẽ được diễn giải và tổng hợp. Sau đó, dữ liệu rút trích sẽ được
phân loại, rồi chúng sẽ được đưa vào huấn luyện và từ đó rút ra các dự
đoán cần thiết
2.4. THIẾT KẾ VÀ THỰC THI MLBLOCK CHO DỰ ĐOÁN LỘ
TRÌNH GIAO THÔNG
Với bài toán dự đoán lộ trình Giao thông. Mỗi đối tượng dữ liệu
trong tập huấn luyện là một trường hợp giao thông với điều kiện nhất
định. Dữ liệu huấn luyện sẽ là thông tin tại rất nhiều thời điểm khác
nhau. Một lớp chính là một tập hợp dữ liệu được đánh giá theo giá trị
bao gồm từ 1 đến 5 tương ứng với mật độ giao thông từ thưa thớt cho
tới đông đúc. Mỗi một dữ liệu phân lớp sẽ có các giá trị khác nhau,
dựa vào các giá trị này, áp dụng các thuật toán phân lớp sẽ phân tích
dữ liệu đầu vào và phân các giá trị đó vào các lớp tương ứng.
Mô hình đề xuất
Mục tiêu: xây dựng một mô hình mô tả một tập các lớp dữ liệu
hay các khái niệm định trước.
Ta có mô hình áp dụng với bài toán mật độ Giao thông
Tạo dữ liệu

Dự đoán lộ trình
giao thông

Diễn giải

Triết xuất dữ
liệu


Tổng hợp

Huấn luyện

MODEL

Thực hiện Phân
lớp

DATA
70% (trainning)

Chia dữ liệu
training

30% (test)

Hình 2.5. Mô hình Dự đoán lộ trình Giao thông


16
Sử dụng mô hình
Một số kỹ thuật phân lớp được sử dụng và phát triển với đề tài
dự đoán lộ trình Giao thông:
 Máy vector hỗ trợ (Support Vector Machine – SVM);
 K láng giềng gần nhất (K Nearest Neighbours – KNN);
 Tiếp cận xác suất thống kê (Naïve Bayes – NB);
 Cây quyết định (Decision Tree – DT);
 Sử dụng mạng nơron (Neural Network – Nnet);

 Dựa trên vector trọng tâm (Centroid–base vector);
 Tuyến tính bình phương nhỏ nhất (Linear Least Square Fit –
LLSF)
Mỗi kỹ thuật phân lớp có ưu điểm và đặc điểm riêng. Độ chính
xác của các kỹ thuật cũng khác nhau.


17
CHƯƠNG 3: ỨNG DỤNG MLBLOCKS TRONG VIỆC
DỰ ĐOÁN LỘ TRÌNH TỐI ƯU TRONG GIAO THÔNG TẠI
THÀNH PHỐ ĐÀ NẴNG

3.1. THỰC TRẠNG VÀ GIẢI PHÁP
3.1.1. Thực trạng giao thông tại thành phố Đà nẵng
Là thành phố được xem là trung tâm kinh tế của miền trung với
mật độ dân số ngày càng tăng, phương tiện tham gia giao thông ngày
càng nhiều nên vào giờ cao điểm, tại một số tuyến đường ở thành phố
thường xuyên xảy ra ùn tắc giao thông cục bộ.
3.1.2. Giải pháp
+ Phương pháp dùng học máy (Machine learning): Giải thuật có
thể ứng dụng cho bài toán dự đoán lưu lượng giao thông là các giải
thuật phân lớp. Khi ta xác định một số mức của lưu lượng như: Mức 1
(tắc nghẽn), mức 2 (rất đông, vận tốc di chuyển chậm < 12km/h), mức
3 (đường đông, vận tốc di chuyển vừa phải từ 12km/h – 25km/h), mức
4 (đường thoáng, tốc độ di chuyển từ 25km/h đến 35km/h), mức 5
(đường rất thoáng tốc độ di chuyển > 35km/h), thì ta có thể xây dựng
một bộ phân lớp để xác định trạng thái giao thông của một tuyến đường
thuộc vào mức nào nếu ta coi mỗi mức tương ứng với một lớp. Ưu
điểm của phương pháp này là động, nó thay đổi theo tình trạng thực tế
của các tham số đầu vào, do vậy trong luận văn này, tác giả lựa chọn

đi theo hướng này.
Việc Dự đoán lộ trình Giao thông cần phải dựa vào nhiều nguồn
thông tin khác nhau. Mỗi nguồn thông tin là một điều kiện cũng như
một căn cứ để từ đó xác định ra mật độ giao thông tại một thời điểm
để có thể xác định một lô trình giao thông tối ưu nhất. Để có thể có
được dự đoán chính xác nhất, chúng ta cần phải căn cứ các thông tin


18
đã có (ngày, giờ, cung đường gì ,…) để từ đó đưa ra được dự đoán
chính xác nhất. Khi có được một tập hợp các thông tin là chúng ta đã
có được một tập dữ liệu, để có thể từ tập dữ liệu này phân tích và đưa
ra các kết quả dự đoán ta có thể sử dụng kết hợp nhiều mô hình học
máy khác nhau tạo thành một khối máy học (MLBlocks).
Mô hình bài toán thực nghiệm:
Giả sử ta cần tìm một lộ trình giao thông tối ưu để đi từ điềm A
đến điểm B như hình vẽ. Yêu cầu bài toán là xây dựng một khối máy
học để dự đoán lộ trình tối ưu này. Với bài toán như hình vẽ ta phải
làm 3 bước như sau:
1. Liệt kê danh sách các lộ trình có thể đi đến điểm B
2. Cảnh báo các lộ trình đang sảy ra tắc đường ở thời điểm hiện
thời
3. Tìm một lộ trình tối ưu nhất trong các lộ trình đã liệt kê ra

Hình 3.2. Minh họa giải pháp tìm lộ trình giao thông
Với mỗi bước trên sẽ phải kết hợp nhiều phương pháp máy
học để giải bài toán. Ở đây luận văn đề xuất sử dụng kết hợp 2 phương


19

pháp là phân lớp dữ liệu và phương pháp tìm đường đi ngắn nhất để
chọn ra lộ trình tối ưu. Các bước sẽ thực hiện như sau.
3.2. CÁC BƯỚC XÂY DỰNG MÔ HÌNH DỰ ĐOÁN LỘ TRÌNH
GIAO THÔNG
Bước 1: Dữ liệu thực nghiệm
a) Trích xuất dữ liệu
Dữ liệu để đưa vào thực nghiệm được lấy từ rất nhiều nguồn
ứng dụng khác nhau, nó không dùng được cho các hệ thống máy học.
Do đó việc dư thừa dữ liệu là rất nhiều. Vì vậy công việc đầu tiên đó
là phải trích xuất dữ liệu từ các nguồn dữ liệu thô đó vào một kho dữ
liệu lưu trữ để tạo thành dữ liệu thực nghiệm. Bước này làm giảm sự
phức tạp của khối dữ liệu mà ta thu được.
b) Diễn giải dữ liệu
Sau khi dữ liệu đã được trích xuất cho ứng dụng dự đoán lộ trình
giao thông. Công việc tiếp theo đó là diễn giải dữ liệu. Chúng ta phải
phân tích các trường dữ liệu có nghĩa và diễn giải được chúng sao cho
chúng có ý nghĩa cho quá trình huấn luyện sau này.
c) Tổng hợp các trường dữ liệu
Số liệu cụ thể liên quan đến các đoạn đường, thời điểm tắc
đường thường không được công bố nên không có số liệu thật để kiểm
thử chương trình. Tuy nhiên, dữ liệu liên quan đến địa điểm tắc đường
thường có tính quy luật, nên dựa vào các quy luật này ta có thể sinh ra
bộ dữ liệu sát với số liệu thật.
Cụ thể các thông tin được dựa vào để sinh số liệu bao gồm:
 Các trường hợp tắc đường thường xuất hiện ở trên những
cung đường nhất định, vậy nên Tên đường chính là 1 thông tin để xác
định tình hình mật độ giao thông.
 Các trường hợp tắc đường thường xuất hiện trong những



20
ngày nhất định trong nằm (ngày lễ, ngày nghỉ, …) vậy nên thời gian
Ngày/Tháng là 1 thông tin để xác định mật độ giao thông.
 Trong một ngày, mật độ giao thông ở các khoảng thời gian
là khác nhau, nhưng tình trạng tắc đường thường chỉ xuất hiện ở những
khung giờ nhất định, vậy nên Giờ là 1 thông tin để xác định mật độ
giao thông.
 Trong một tuần, mật độ giao thông ở các ngày trong tuần là
khác nhau, thứ 2 đầu tuần sẽ đông hơn và các ngày trong tuần sẽ có
mật độ giao thông cao hơn các ngày thứ 7 và chủ nhật. Vậy nên Ngày
trong tuần là 1 thông tin để xác định mật độ giao thông
 Mật độ giao thông trên 1 cung đường thường giống nhau ở
cùng khoảng thời gian, ví dụ khoảng 5h sáng ở cung đường A mật độ
giao thông thường ở mức thấp. Tuy nhiên trong một số trường hợp đột
biến phát sinh (do thời tiết, do sửa chữa, do tai nạn giao thông,…) mà
mật độ thỉnh thoảng sẽ có sự đột biến khác với những ngày còn lại. Tỉ
lệ phát sinh đột biến được lựa chọn là 20%. Như vậy việc sinh mật độ
giao thông tại 1 thời điểm trên 1 cung đường sẽ có tỉ lệ 20% đột biến
so với các ngày còn lại.
Như vậy, các Đặc tính (Attribute) được lựa chọn để xây dựng
bộ kiểm thử bao gồm: Tên cung đường (RoadId); Ngày (Date); Tháng
(Month); Giờ (Hour); Ngày trong tuần (Day)
Trong đó Trạng thái giao thông (state) chính là mục tiêu phân
lớp mà bài toán Dự đoán lộ trình Giao thông hướng đến.
d) Kho dữ liệu
i. Thực hiện sinh dữ liệu
Dựa vào các đặc tính được lựa chọn để sinh dữ liệu, các bước
để sinh dữ liệu bao gồm: Sinh thông tin theo giờ, theo ngày, theo tháng,
theo đường, theo thông tin ngày nghỉ lễ.



21
Bước 2: Chia dữ liệu training và test
Phương tức test 70-30 là phương thức test mà Bộ dữ liệu huấn
luyện được chia làm 2 phần:
 70% dữ liệu được sử dụng để tranning
 30% dữ liệu được sử dụng để test
Bước 3: Huấn luyện
Sau khi có được dữ liệu thực nghiệm ta sẽ tiến hành huấn luyện
dữ liệu trên công cụ Weka.
Bước 4: Thực hiện phân lớp
Bước 5: Tìm đường đi ngắn nhất
Dùng giải thuật tìm đường đi ngắn nhất không qua các điểm tắc
đường đã dự báo. Cụ thể ở đây ta dùng giải thuật Dijkstra.

Biểu đồ so sánh Dữ liệu thông thường và
Dữ liệu có ngày nghỉ lễ
100
80
60
40
20
0
Navie Bayes

SVM

Dữ liệu thông thường

Neural Network


Decision Tree

Dữ liệu có ngày nghỉ lễ

Biểu đồ 3.1. So sánh Dữ liệu thông thường và Dữ liệu có ngày nghỉ lễ


22
3.3. KẾT QUẢ THỰC NGHIỆM
3.3.1 Thực nghiệm với các mức độ tắc đường khác nhau
a. Thực nghiệp với số lớp (mức độ tắc đường) là 3
Decision

SVM

Tree

Navie

Neural

Bayes

Network

Precision

80.5%


58.9%

57.5%

75.0%

Recall

80.5%

71.9%

69.7%

76.1%

F-Measure

80.5%

64.8%

63.0%

75.5%

b. Thực nghiệp với số lớp (mức độ tắc đường) là 4
Decision

SVM


Tree

Navie

Neural

Bayes

Network

Precision

80.1%

31.0%

48.7%

71.6%

Recall

80.2%

51.4%

56.2%

71.6%


F-Measure

80.1%

38.7%

52.2%

71.6%

c. Thực nghiệp với số lớp (mức độ tắc đường) là 5
Decision

SVM

Tree

Navie

Neural

Bayes

Network

Precision

82.3%


38.9%

49.9%

76.5%

Recall

81.7%

53.5%

58.6%

76.1%

F-Measure

82.0%

45.0%

53.9%

76.3%

d. Thực nghiệp với số lớp (mức độ tắc đường) là 6
Decision

SVM


Tree

Navie

Neural

Bayes

Network

Precision

78.6%

40.1%

54.8%

76.4%

Recall

80.0%

47.2%

51,3%

77.2%


F-Measure

79.3%

43.4%

53.0%

76.8%


23
3.3.2 Biểu đồ so sánh kết quả thực nghiệm với các mật độ
giao thông khác nhau

Kết quả thực nghiệm với các mật độ giao
thông khác nhau
100
50
0
Class = 3
Navie Bayes

Class = 4
Decision Tree

Class = 5

Class = 6


SVM

Neural NetWork

Biểu đồ 3.2. Kết quả thực nghiệm với các mật độ giao thông khác nhau
Dựa vào biểu đồ ta có thể thấy.
- Với bộ phân lớp Decision Tree J48, kết quả tương đối chính
xác (giữ ở mức 80%) và không bị phụ thuộc vào số lượng class
- Với bộ phân lớp Neural Network, độ chính xác thấp hơn, nhưng
giữ ổn định ở 76% và không bị ảnh hưởng nhiều vào số lượng class.
- Với bộ phân lớp SVM và Navie Bayes, độ chính xác thấp hơn
và SVM thể hiện rõ sự yếu khi chạy với số lượng class lớn hơn.
3.3.3 Thực nghiệm tìm đường đi ngắn nhất

Hình 3.15. Thực nghiệm tìm đường đi ngắn nhất


×