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

Nghiên cứu và đề xuất giải pháp lấy mẫu đa luồng phục vụ bài toán phân tích dữ liệu

47 0 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 đề Nghiên Cứu Và Đề Xuất Giải Pháp Lấy Mẫu Đa Luồng Phục Vụ Bài Toán Phân Tích Dữ Liệu
Tác giả Phạm Anh Dũng
Người hướng dẫn PGS.TS Thoại Nam
Trường học Trường Đại học Bách Khoa – ĐHQG-HCM
Chuyên ngành Khoa Học Máy Tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2023
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 47
Dung lượng 1,47 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với 2 phương pháp Biased Reservoir Sampling và Biased Stratified Reservoir Sampling,nghiên cứu đã chỉ ra cách thức lấy mẫu trực tuyến trên các nút cạnh, giải quyết vấn đề nên lựachọn nhữ

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Trang 2

Công trình được hoàn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM

Cán bộ hướng dẫn khoa học: PSG.TS Thoại Nam

Cán bộ chấm nhận xét 1: TS Lê Thanh Vân

Cán bộ chấm nhận xét 2: PGS.TS Huỳnh Trung Hiếu

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.HCM ngày 08 tháng 02 năm 2023

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

1: PGS.TS Trần Văn Hoài

2: TS Lê Thành Sách

3: TS Lê Thanh Vân

4: PGS.TS Huỳnh Trung Hiếu

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: Phạm Anh Dũng MSHV: 2070093

Ngày, tháng, năm sinh: 29/01/1998 Nơi sinh: Bà Rịa Vũng Tàu Chuyên ngành: Khoa Học Máy Tính Mã số : 8480101

I TÊN ĐỀ TÀI: Nghiên cứu và đề xuất giải pháp lấy mẫu đa luồng phục vụ bài toán phân

tích dữ liệu

II NHIỆM VỤ VÀ NỘI DUNG: (1) Nghiên cứu và đề xuất giải pháp lấy mẫu đa luồng.

(2) Đề xuất và phát triển giải pháp lấy mẫu trong điều kiện các dòng dữ liệu cân bằng

và mất cân bằng (3) Đánh giá giải pháp và đề xuất hướng cải thiện

V.CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): PGS.TS Thoại Nam

Trang 4

Lời cảm ơn

Lời đầu tiên, em muốn gửi lời cảm ơn chân thành sâu sắc nhất đến Thầy hướng dẫn làPGS.TS.Thoại Nam đã luôn tận tình và giành tâm huyết hướng dẫn em trong suốt chặng đườngvừa qua Trong suốt chặng đường hơn 6 tháng, được làm việc cùng Thầy là một niềm vinh hạnhcủa em Thầy luôn là người tận tình chỉ bảo, hướng dẫn mặc dù nhiều khi em vẫn chưa hiểunhưng vẫn cố gắng giải thích nhiều lần đến lúc em hiểu mới thôi Em cảm ơn Thầy vì đã dànhthời gian quý báu để hướng dẫn và hỗ trợ em trong suốt thời gian qua Không có sự hướng dẫntận tình từ Thầy, chắc chắn em không thể nào làm tốt được những công việc trong báo cáo này

Em cảm ơn Thầy rất nhiều

Em cũng muốn dành lời cảm ơn đến quý Thầy Cô trong khoa, luôn luôn hỗ trợ em trong suốtquá trình học tập cũng như quá trình làm luận văn Có thắc mắc gì quý Thầy Cô cũng hỗ trợnhiệt tình Và em cảm ơn hội đồng bảo vệ đề cương đã cho em những góp ý sửa đổi, mang tínhxây dựng để em có những cải thiện tốt nhất cho bài luận văn này của em

Cảm ơn tất cả các bạn, anh chị trong khoa luôn đồng hành hỗ trợ và giúp đỡ trong suốt quá trìnhhọc tập Đặc biệt trong quá trình làm luận văn này, những thủ tục, tài liệu liên quan mọi người

đã tận tình hỗ trợ và hướng dẫn em rất nhiều Từ tiếng anh, quy trình làm đề cương đến luận văncho đến các điều nhỏ nhặt trong quá trình

Cảm ơn tất cả mọi người đã luôn bên em, ủng hộ và đồng hành cùng em

Trang 5

Tóm tắt nội dung

Việc đựa một lượng dữ liệu lớn được lưu trữ phân tán ở các vị trí khác nhau về một nơi trungtâm để huấn luyện mô hình sẽ dẫn đến tốn kém về chi phí vận chuyển, lưu trữ, xử lý và thời gianhuấn luyện mô hình Đặc biệt, việc cập nhật huấn luyện mô hình được thực hiện nhiều lần dẫnđến chi phí sẽ rất lớn

Từ vấn đề đó, đề tài nhằm nghiên cứu cách thức tối ưu chi phí cũng như mang lại hiệu quả

mô hình tốt hơn thông qua việc lấy mẫu Bằng cách chỉ mang về trung tâm những mẫu nào cógiá trị cho việc cập nhật và huấn luyện mô hình Những mẫu nào có giá trị cho việc huấn luyệnlại mô hình sẽ được xác định bằng việc sử dụng mô hình đã được huấn luyện ở trung tâm trướcđó

Với 2 phương pháp Biased Reservoir Sampling và Biased Stratified Reservoir Sampling,nghiên cứu đã chỉ ra cách thức lấy mẫu trực tuyến trên các nút cạnh, giải quyết vấn đề nên lựachọn những mẫu nào để đưa về trung tâm cập nhật mô hình sau một khoảng thời gian xác định.Ngoài ra, giải quyết vấn đề xác định số lượng phân bổ mẫu cần lấy hợp lý đối với trường hợpcác dòng dữ liệu mất cân bằng

Biased Reservoir Sampling và Biased Stratified Reservoir Sampling mang lại kết quả tốthơn so với lần lượt hai giải pháp cơ sở Reservoir Sampling và Stratified Reservoir Sampling,bên cạnh đó mô hình được huấn luyện bằng các mẫu được lấy bằng 2 phương pháp đề xuất cótính ổn định về độ chính xác qua thời gian Và trong khi chỉ gửi về trung tâm 10% số lượng mẫunhưng hiệu quả mô hình tính bằng R2 qua mỗi lần huấn luyện lại tiệm cận so với cách thức gửitoàn bộ mẫu về trung tâm

Trang 6

One of the most common architectures to train a machine learning model is central learning

In that architecture, data which is stored in a distribution manner is sent to a central place to trainthe model But sending the big data to the centre will cause a big problem regarding transmissioncost, storage cost, processing cost and the time needed to train the model, especially in casewhen we have to re-train our model frequently

So this thesis is to research and and propose solution to reduce the cost by applying pling methods Specifically, we select tuples which are valuable for updating and re-trainingthe model We define if a new coming tuple is valuable for the model by using the model havetrained at that time

sam-We propose 2 sampling methods which are Biased Reservoir Sampling and Biased StratifiedReservoir Sampling In the methods, we showed how to conduct online sampling at the edgenodes (where data is stored) Solving the 2 primary problems when handling the online samplingfor streaming data, the first one is to select the "right" tuples to send the to centre and secondone is to allocate optimally the number of samples should be selected for each sub-stream

The performance of Biased Reservoir Sampling and Biased Stratified Reservoir Sampling

is better than the base-line solutions which are Reservoir Sampling and Stratified ReservoirSampling respectively Besides, the performance of the 2 methods is stable over time compared

to the 2 baseline approaches While sending just 10% of the total data, the R2of the 2 proposedsampling methods is nearly the same with the sending total data approach after 10 rounds ofre-training model

Trang 7

Lời cam đoan

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn

của PSG.TS Thoại Nam Nội dung nghiên cứu và các kết quả đều là trung thực Các

số liệu được sử dụng cho quá trình phân tích, nhận xét được chính chúng tôi thu thập

từ nhiều nguồn khác nhau và sẽ được ghi rõ trong phần tài liệu tham khảo

Ngoài ra, chúng tôi cũng có sử dụng một số nhận xét, đánh giá và số liệu của các

tác giả khác, cơ quan tổ chức khác Tất cả đều có trích dẫn và chú thích nguồn gốc

Nếu phát hiện có bất kì sự gian lận nào, tôi xin hoàn toàn chịu trách nhiệm về nội

dung luận văn tốt nghiệp của mình Trường đại học Bách Khoa thành phố Hồ Chí

Minh không liên quan đến những vi phạm tác quyền, bản quyền do chúng tôi gây ra

trong quá trình thực hiện

Trang 8

3 Giải pháp lấy mẫu đa luồng phục vụ bài toán phân tích dữ liệu 15

3.1 Vấn đề 1: Những mẫu nào sẽ được chọn trên mỗi dòng dữ liệu con? 163.2 Vấn đề 2: Số lượng mẫu cần lấy cho mỗi dòng dữ liệu con 193.3 Thảo luận và đánh giá 22

4.1 Thiết kế và cài đặt hệ thống thực nghiệm 254.2 Kết quả thực nghiệm 28

Trang 9

Danh sách hình vẽ

2.1 Lấy mẫu theo phương pháp lựa chọn ngẫu nhiên 6

2.2 Lấy mẫu theo phương pháp phân tổ 6

2.3 Mô phỏng kiến trúc học tập trung (centralized learning) 8

2.4 Kiến trúc phân tán dữ liệu trong phân tán (distributed learning) 9

2.5 Kiến trúc mô hình học liên kết (Federated learning) 10

2.6 Kiến trúc của hệ thống trong liệu dạng dòng (tham khảo [1]) 11

2.7 Mô hình publish/subscribe (tham khảo [1]) 12

2.8 Các thành phần cơ bản trong hệ thống hàng đợi (tham khảo [1]) 12

2.9 Cửa sổ trượt (tham khảo [1]) 13

2.10 Cửa sổ lật (tham khảo [1]) 14

3.1 Kiến trúc hệ thống 16

3.2 Các dòng dữ liệu có số lượng như nhau qua mỗi ∆t 16

3.3 Các dòng dữ liệu mất cân bằng về mặt số lượng và như nhau qua mỗi ∆t 19

3.4 Tính toán phân bổ số lượng cho mỗi dòng dữ liệu vào cuối mỗi ∆t 20

3.5 Tính toán phân bổ số lượng cho mỗi dòng dữ liệu liên tục trong mỗi khoảng ∆t 21 4.1 Kiến trúc mô phỏng cho hệ thống thực nghiệm 25

4.2 Phân bố dữ liệu sử dụng thực nghiệm 27

4.3 Bộ dữ liệu sau khi xử lý 28

4.4 Kết quả trong điều kiện các dòng dữ liệu con cân bằng 29

4.5 Kết quả trong điều kiện 2 dòng dữ liệu mất cân bằng 31

4.6 Kết quả trong điều kiện 3 dòng dữ liệu mất cân bằng 32

4.7 Kết quả trong điều kiện 4 dòng dữ liệu mất cân bằng 33

Trang 10

Chương 1

Giới thiệu

Ngày nay lượng dữ liệu ở các doanh nghiệp được sinh ra liên tục và rất lớn Với nhu cầu rúttrích và sử dụng giá trị từ lượng dữ liệu lớn đó vào các hoạt động kinh doanh thường ngày củacác doanh nghiệp Thông thường, dữ liệu sinh ra sẽ được lưu trữ phân tán ở nhiều nơi và lúc cần

sử dụng sẽ đưa những dữ liệu cần thiết về một nơi tập trung để tiến hành phân tích Và các môhình học máy ngày nay cũng được triển khai chủ yếu dựa vào kiến trúc đó, được gọi là mô hìnhhọc tập trung Nghĩa là, dữ liệu sinh ra và lưu trữ tại các nút biên cục bộ, sau đó dữ liệu sẽ đượcđưa về một nơi tập trung để thực hiện huấn luyện mô hình cũng như huấn luyện lại mô hình quathời gian

Tuy nhiên vấn đề là nếu đưa tất cả lượng dữ liệu lớn được lưu trữ ở các nút cạnh đó về mộtnơi trung tâm để huấn luyện mô hình thì chi phí sẽ rất lớn và quá tải hệ thống Chi phí tải, vậnchuyển, lưu trữ, tính toán và thời gian xử lý, cũng như những giới hạn về băng thông sẽ là tháchthức lớn khi triển khai theo cách tiếp cận này

Để giải quyết những vấn đề đó, kĩ thuật lấy mẫu sẽ được áp dụng Và trong ngữ cảnh dữ liệulớn, nghiên cứu này đề xuất những giải pháp lấy mẫu đa luồng và trực tuyến tại các nút cạnh

để tránh nút thắt cổ chai (bottleneck) và quá tải hệ thống nếu thực hiện đơn luồng Không cầnphải đưa toàn bộ dữ liệu về trung tâm huấn luyện, chỉ cần đưa một lượng nhỏ mẫu được chọnlọc nhưng vẫn đảm bảo tính chính xác của mô hình Nghiên cứu đóng góp những điểm sau:

1.1 Đóng góp của nghiên cứu

Kĩ thuật lấy mẫu đa luồng trên dữ liệu dòng: Những nghiên cứu về lấy mẫu cho dữ liệu

dòng chủ yếu tập trung vào đơn luồng Tuy nhiên trong thực tế dữ liệu được sinh ra đa luồng

và làm thế nào để lấy mẫu trực tuyến trên mỗi luồng đó, để khi được kích hoạt, ngay lập tứcnhững mẫu này sẽ được gửi về trung tâm để thực hiện phân tích và xây dựng mô hình Với vấn

đề nên lựa chọn những mẫu nào ở mỗi dòng để mang lại giá trị tốt nhất cho mô hình ở trungtâm, nghiên cứu cứu đề xuất giải pháp Biased Reservoir Sampling Giải pháp này tập trung vàoviệc ưu tiên những mẫu mà mô hình dự đoán sai để đưa về trung tâm cập nhật mô hình

Giải pháp cho vấn đề mất cân bằng dữ liệu giữa các dòng dữ liệu: Mặc dù giải quyết

được vấn đề nên lựa chọn những mẫu nào ở mỗi dòng dữ liệu Chúng ta cần phải xác định thêmmỗi dòng cần lấy là bao nhiêu, cụ thể trong trường hợp các dòng dữ liệu mất cân bằng, khi đóviệc phân bố hợp lý số lượng cần lấy cho mỗi dòng là quan trọng để đảm bảo phân bổ dữ liệutrong tập mẫu so với tổng thể Để giải quyết vấn đề tối ưu trong phân bố số lượng dữ liệu cầnlấy cho mỗi dòng, nghiên cứu đề xuất giải pháp Biased Stratified Reservoir Sampling, giải phápnày cũng ưu tiên lấy những mẫu mà mô hình dự đoán sai Và sẽ có cơ chế giao tiếp giữa các vị

Trang 11

trí cục bộ với trung tâm để từ đó tính toán số lượng phân bổ cho mỗi dòng cho phù hợp.

1.2 Nghiên cứu liên quan

Có nhiều kiến trúc trong việc huấn luyện một mô hình học máy, học sâu Có thể học theo

mô hình phân tán, mang việc huấn luyện mô hình về cục bộ mỗi vị trí Hoặc một cách khác cóthể thực hiện huấn luyện ở một nơi trung tâm, nhưng chỉ sử dụng tập dữ liệu con từ tập dữ liệutổng thể để phục vụ cho việc huấn luyện Nghiên cứu [2] đã sử dụng cách tiếp cận thứ 2, nghĩa

là thực hiện lấy mẫu dựa vào 2 tiêu chí là độ chính xác (correctness) và độ tin cậy (confidence)

Ở nghiên cứu này, tác giả đã nghiên cứu vấn đề khi dữ liệu nằm phân tán ở nhiều vị trí khácnhau, và việc đưa dữ liệu về trung tâm bị hạn chế bởi giới hạn của băng thông Để giải quyết vấn

đề đó, nghiên cứu đã đề xuất các phương pháp lấy mẫu như lấy theo một cách đồng bộ (uniformsampling), dựa hoàn toàn vào tiêu chí độ tin cậy (confidence obvious), dựa vào cả 2 tiêu chí là

độ chính (correctness) xác và độ tin cậy (confidence) Tác đã đã so sánh độ hiệu quả của cácphương pháp lấy mẫu nêu trên với nhau và so sánh với việc không lấy mẫu, nghĩa là gửi toàn bộ

dữ liệu về trung tâm để huấn luyện Tuy nhiên nghiên cứu này chưa đề cập đến vấn đề lấy mẫutrên dữ liệu dòng (streaming data)

Cũng cùng mục đích là làm sao để lấy mẫu một cách hiệu quả gửi về một nơi trung tâm

và phục vụ cho việc huấn luyện lại mô hình một cách liên tục trong ứng dụng về internet vạnvật (IoT) như xe tự lái, camera nhận diện khuân mặt, vv Nghiên cứu [3] đã đề xuất giải phápHARVESTNET nhằm giải quyết việc tối ưu hoá độ chính xác của mô hình với chi phí là thấpnhất (chi phí về truyền dữ liệu về trung tâm, chi phí lưu trữ trên cloud, chi phí tính toán, vv)

Ý tưởng chính của HARVESTNET là tập trung khai thác thêm nhiều mẫu huấn luyện về cácđiểm mà mô hình đang dự đoán sai (known weakpoints) để từ đó cải thiện mô hình Nghiên cứukhông tập trung vào việc lấy những mẫu mà giúp mô hình có thể cải thiện được vấn đề dự đoánsai ở các điểm mà mô hình cũng không biết trước được (unknown weakpoints) Tác giả cũng

so sánh giải pháp HARVESTNET với những phương pháp lấy mẫu khác đối với dữ liệu robotsnhư Oracle, Non-adaptive, ngẫu nhiên (random) và HNetPrioQue Nghiên cứu này, chưa xemxét đến việc mất cân bằng giữa những dòng dữ liệu (streams) và đó là điểm sẽ được trình bày ởnghiên cứu của chúng tôi

Và ở nghiên cứu [4] cũng đã để xuất giải pháp lấy mẫu đối với dữ liệu dòng và tập trung vào

dữ liệu có nhiều dòng khác nhau và các dòng này sẽ không đồng nhất về mặt thống kê Nghĩa

là tại mỗi thời điểm, các dòng dữ liệu con sẽ khác nhau cả về mặt số lượng lẫn độ lớn thống kê.Nghiên cứu tập trung vào vấn đề là làm sao với sự không đồng nhất của các dòng qua thời gian

đó, sau khi lấy mẫu, mẫu vẫn phải giữ được tính đồng bộ (uniformity) Đảm bảo tính đồng bộ

và làm sao tối ưu số lượng phân bố cho các dòng con, và Stratified Reservoir Sampling là giảipháp cho các vấn đề đã nêu Tuy nhiên với nghiên cứu này, tác giả chưa đề cập đến việc sử dụngnhững dữ liệu đã lấy mẫu đó phục vụ cho việc huấn luyện mô hình học máy thì sẽ như thế nào?

và chúng ta có thể tận dụng những sai số qua những vòng học để cải thiện mô hình không? Vànghiên cứu của chúng tôi, sẽ không xem xét chi tiết đến việc dữ liệu từ các dòng con sẽ thayđổi cả về mặt số lượng lẫn thống kê, mà chỉ xem xét sự mất cân bằng về số lượng Bên cạnh đó,nghiên cứu của chúng tôi xem xét việc sử dụng kết quả lấy mẫu phục vụ cho việc huấn luyện

mô hình và từ đó nhắm đến mục tiêu cải thiện mô hình với độ chính xác tốt nhất

Lấy mẫu theo tổ cho dữ liệu tĩnh đã biết trước tổng thể đã được nghiên cứu từ lâu Đối vớidạng dữ liệu này, sẽ có 2 lần duyệt qua toàn bộ dữ liệu để làm 2 việc Thứ nhất là phân bổ sốlượng cần lấy cho mỗi tổ và thứ 2 là với tỷ lệ phân bố số lượng đó, thực hiện lấy mẫu cho mỗi

tổ [5] Phương pháp tính toán phân bố số lượng được trình bày ở [6] (Neyman) và [7] (Power

Trang 12

allocation) Và đôi với giai đoạn 2, các phương pháp có thể được áp dụng như hồ chứa mẫu(Reservoir Sampling) như trình bày ở [8] hay hồ chứa mẫu có trọng số (Weighted ReservoirSampling) được trình bày ở [9] Ngoài ra có nghiên cứu như [10], sử dụng mô hình máy học để

dự đoán xác suất được lựa chọn vào tập mẫu cho mỗi mẫu dữ liệu bằng cách phân tích nhữngcâu truy vấn dữ liệu trước đó (query workload)

Đối với lấy mẫu theo tổ cho dữ liệu dòng (streaming stratified random sampling) đượcnghiên cứu và trình bày ở [5] Tại đây tác giả đã đề xuất những giải pháp tối ưu cho việc làm thếnào để thực hiện tính toán phân bố số lượng cần lấy cho mỗi tổ và thực hiện lấy mẫu cho mỗi

tổ 2 bước này được thực hiện đồng thời như thế nào cho hiệu quả trên dữ liệu dòng và tối ưu Để tối ưu việc phân bố số lượng cần lấy cho mỗi tổ, thay vì dùng phương pháp phổ biến nhưNeyman, nghiên cứu đề xuất giải pháp S-VOILA và SW-VOILA Tuy nhiên nghiên cứu này chỉxét trên dữ liệu đến từ 1 dòng, và khác với nghiên cứu chúng tôi là thực hiện trên dữ liệu dòng

đa luồng

Reservoir sampling và stratified reservoir sampling là những giải thuật lấy mẫu đã đượcnghiên cứu từ lâu, Reservoir Sampling (1985) và Stratified Reservoir Sampling (2010) Nhiềubiến thể của giải thuật được phát triển như Weighted Reservoir Sampling [9, 11, 12, 13], trong

đó các dòng dữ liệu hoặc các mẫu dữ liệu được đánh trọng số khác nhau Hay Adaptive ReservoirSampling [14, 15], trong đó độ dài của mẫu R cần lấy thay đổi trong quá trình lấy mẫu Ứngdụng của những giải thuật này rất đa dạng, từ đó đến nay nhiều nghiên cứu giải quyết nhữngvấn như: tính toán gần đúng (approximate computing) [16, 17], thay vì tính toán chính xác và

xử lý trên toàn bộ lượng dữ liệu rất lớn, thì chỉ cần tính toán gần đúng trên các mẫu đại diện.Nghiên cứu [18] sử dụng Reservoir Sampling để lưu lại những mẫu có xác suất cao trong ứngdụng nhận dạng mẫu (Pattern Recognition) và nhận diện sự kiện (Event Detection) trên một hệthống IoT data-streams Hay nghiên cứu [19], ứng dụng Adaptive Stratified Sampling để linhhoạt thay đổi số lượng mẫu cần lấy ở mỗi tổ dựa vào sự thay đổi của phương sai trên tổ đó, vàtriển khai giải thuật này trong kiến trúc hệ thống tính toán biên trên dữ liệu IoT Rất nhiều ứngdụng sử dụng những giải thuật Reservoir-Based và đề tài này cũng là một trong những ứng dụng

sử dụng phương pháp lấy mẫu theo Reservoir

Trang 13

Cấu trúc của bài nghiên cứu sẽ được chia làm 5 phần chính Đầu tiên là phần cơ sở lý thuyết,

ở phần này, các kiến thức nền cần thiết để hiểu những thuật ngữ và những kỹ thuật được trìnhbày trong bài nghiên cứu Tại đây sẽ trình bày sơ bộ về các lý thuyết lấy mẫu, các phương pháp,kiến trúc sử dụng để huấn luyện các mô hình học máy ngày nay và những kiến thức cơ bản về

dữ liệu dạng dòng Kế đến là phần các nghiên cứu liên quan, tại đây những nghiên cứu về việclấy mẫu phục vụ cho việc huấn luyện mô hình, lấy mẫu trên dữ liệu dạng dòng và những nghiêncứu về huấn luyện mô hình theo kiến trúc tập trung, phân tán sẽ được trình bày Sau đó, phần 4

sẽ trình bày những vấn đề trong việc lấy mẫu và các giải pháp đề xuất Ở phần này, sẽ trình bàychi tiết vấn đề mà nghiên cứu giải quyết trong việc lấy mẫu đối với dữ liệu dạng dòng Và phần

5 sẽ trình bày kết quả đánh giá qua việc xây dựng hệ thống thực nghiệm, và mô phỏng giải thuật

để từ đó đánh giá kết quả của các giải pháp đề xuất Và cuối cùng là phần kết luận của nghiêncứu cũng như nêu ra những hướng cải thiện trong tương lai

Trang 14

Thứ hai, phương pháp huấn luyện mô hình học máy Có nhiều kiến trúc và phương phápđược sử dụng trong việc huấn luyện mô hình Chúng tôi sẽ trình bày 3 phương pháp chính, để

từ đó người đọc có thể hình dung được kiến trúc học tập trung mà nghiên cứu sử dụng Và hiểuđược sự khác biệt giữa những phương pháp là như thế nào

Và cuối cùng là những kiến thức liên quan đến dữ liệu dòng Những kiến thức này sẽ giúpngười đọc hiểu rõ hơn cách thức lưu trữ và dữ lý đối với dữ liệu dòng Sự khác biệt giữa dữ liệudòng và dữ liệu tĩnh là như thế nào Và hiểu được, những kỹ thuật lấy mẫu mà nghiên cứu đềxuất cho dữ liệu dòng

Ở mỗi phần lý thuyết được trình bày, sẽ có nêu phần ứng dụng những lý thuyết đó trong nghiêncứu này Để hiểu rõ chi tiết, chúng ta sẽ đi vào các phần lý thuyết chính được trình bày bên dưới

Có rất nhiều phương pháp lấy mẫu từ tập tổng thể, được phân thành 2 nhóm chính là lấy mẫuphi xác suất (Nonprobability Sampling) và lấy mẫu dựa theo xác suất (Probability Sampling)[20]

Những phương pháp lấy mẫu trong bài nghiên cứu thuộc nhóm dựa trên xác suất, nhữngphương pháp bên dưới là cơ sở, nền tảng cho những phát triển của các giải thuật lấy mẫu khác

Cụ thể được trình bày như sau:

Chọn mẫu ngẫu nhiên (Simple Random sampling)

Đây là một trong những phương pháp lẫy mẫu đơn giản và được sử dụng phổ biến nhất trongviệc chọn một số mẫu từ tập tổng thể [21] Đối với phương pháp này, tất cả các mẫu trong tập

dữ liệu tổng thể sẽ có xác suất là như nhau để được chọn vào tập mẫu Ví dụ, khi lấy 10% mẫu

từ tập tổng thể, mỗi mẫu sẽ có cơ hội được chọn là 10% như nhau Hình 2.1 là ví dụ minh hoạtrong việc chọn mẫu theo phương pháp ngẫu nhiên đơn giản

Trang 15

Hình 2.1: Lấy mẫu theo phương pháp lựa chọn ngẫu nhiên

Một trong những ưu điểm của cách thức lấy mẫu này là đơn giản dễ triển khai trong thực tế.Tuy nhiên, khi sử dụng phương pháp này với dữ liệu có nhiều nhóm khác nhau, thì những mẫuthuộc nhóm có tỉ trọng thấp sẽ có thể sẽ không được xuất hiện trong tập mẫu [20] Xem xét đếntrường hợp có 5 nhóm dữ liệu khác nhau, nhưng 1 trong 5 nhóm chỉ chiếm 0.01% so với tổngthể của tập Nếu chọn 1% mẫu từ tập tổng thể, thì khả năng cao các mẫu dữ liệu thuộc nhómhiếm này sẽ không xuất hiện trong tập mẫu

Chọn mẫu phân tổ (Stratified sampling)

Để khắc phục những nhược điểm của giải pháp lấy mẫu ngẫu nhiên đơn giản Chọn mẫuphân tổ sẽ chia tổng thể thành các nhóm khác nhau gọi là "strata" [20]

Như ví dụ trong hình minh hoạ 2.2, có 3 nhóm khác nhau là trắng, đen và xám, nếu chúng

ta lấy 33% của tổng thể 12 mẫu đồng nghĩa với việc chúng ta lấy 33% của mẫu trắng, 33% củamẫu đen và 33% của mẫu xám Với cách lấy này, đảm bảo mẫu lấy ra sẽ chứa tất cả các nhóm

có trong tổng thể, cho dù đó là nhóm "thiểu số" hay nói cách khác là chiếm tỉ trọng thấp

Hình 2.2: Lấy mẫu theo phương pháp phân tổMỗi một mẫu trong tập tổng thể chỉ thuộc duy nhất về 1 tổ duy nhất, mẫu chỉ có thể thuộctrắng, hoặc đen hoặc xám như trong ví dụ hình 2.2 Nếu gọi tổng thể là R và các nhóm trắng,

Trang 16

đen và xám lần lượt là R1, R2và R3thì ta có Ri∩ Rj= /0 (i ̸= j và i, j ∈ {1,2,3}) và R1+ R2+ R3

= R

Khái quát lên trường hợp có n tổ khác nhau, nêu chúng ta muốn lấy r mẫu từ tổng thể R, kýhiệu là |r| thì sẽ có 1 ràng buộc là số lượng mẫu từ một tổ nào đó sẽ không được lớn hơn tổng sốmẫu cần lấy:

Có 2 cách phổ biến để chúng ta có thể phân bổ số lượng mẫu từ các tổ, phân bổ theo tỷ lệ(proportional allocation) hoặc phân bổ theo phương pháp Neyman (Neyman allocation) [4] Đốivới phương pháp phân bổ theo tỷ lệ, số lượng mẫu của các tổ sẽ được chọn phụ thuộc vào phân

Trong đó σilà độ lệch chuẩn của Ri

Hồ chứa mẫu (Reservoir sampling)

Đây là một trong những giải thuật lấy mẫu phổ biến được sử dụng đối với dữ liệu dạng dòng(streaming data) Sự khác biệt đối với dạng dữ liệu này là chúng ta lấy mẫu từ tập dữ liệu khôngbiết trước tổng thể sẽ có bao nhiêu mẫu Giả sử lấy r mẫu từ dòng dữ liệu S, giải thuật này đượcthực hiện qua các bước cơ bản như sau:

• Lưu r mẫu đầu tiên của dòng dữ liệu S

• Giả sử chúng ta đã thấy k − 1 mẫu dữ liệu, và xét mẫu dữ liệu thứ kth (k > r) Sẽ giữ lạimẫu dữ liệu thứ kth nếu xác suất là kr, và ngược lại thì bỏ qua mẫu thứ kth đó Và nếumẫu thứ kth được giữ lại, sẽ chọn ngẫu nhiên 1 mẫu có sẵn trong r để thay thế

• Đối với giải thuật lấy mẫu theo hồ chứa dữ liệu (reservoir sampling), tất cả các mẫuđược sinh ra sẽ có xác suất được lựa chọn cuối cùng nằm trong r là như nhau và bằngr

n [4]

Ứng dụng vào nghiên cứu:Reservoir Sampling là giải pháp cơ sở được sử dụng để phát triểnlên giải pháp đề xuất Biased Reservoir Sampling và Biased Stratified Reservoir Sampling Bêncạnh đó, lý thuyết lấy mẫu theo tổ sẽ được sử dụng để từ đó áp dụng vào việc lấy mẫu đa luồng,xem mỗi luồng hay mỗi dòng là một tổ dữ liệu Giải thuật lấy mẫu theo tổ sẽ nêu ra những kháiniệm và cách tính tỷ lệ mẫu cần lấy cho mỗi tổ từ đó có thể đưa ra công thức tính toán hợp lý sốlượng cần lấy cho mỗi dòng dữ liệu

2.2 Phương pháp huấn luyện mô hình

Ngày nay, có nhiều kiến trúc trong việc huấn luyện một mô hình học máy hay học sâu Cáckiến trúc đó được phân thành 3 nhóm chính: học tập trung (centralized learning), học phân tán(distributed training) và học liên kết (federated learning) [22]

Trang 17

Algorithm 1 Giải thuật reservoir sampling

Require: |r| //size of a reservoir r

decide with the probability rk whether to accept the tuple

if the tuples is accepted then

replace a randomly selected tuple in the reservoir with the accepted tuple

end if

end if

end for

Học tập trung (Centralized learning)

Một trong những yếu tố quyết định độ chính xác và tính ứng dụng của các mô hình học máyhọc sâu ngày nay, là liên tục cập nhật lượng dữ liệu khổng lồ từ các thiết bị, ứng dụng về mộtnơi tập trung như ở đám mây (cloud), nơi mà các thuộc tính được rút trích, mô hình được cậpnhật liên tục trên các máy chủ hiệu suất cao [22] Mô hình huấn luyện theo kiến trúc như vậyđược gọi là học tập trung và được mô phỏng như hình 2.3

Hình 2.3: Mô phỏng kiến trúc học tập trung (centralized learning)

Với kiến trúc này, thông tin từ các thiết bị người dùng và các ứng dụng không ngừng đượcđưa về một nơi trung tâm Sau khi huấn luyện, mô hình sẽ được triển khai ở nơi trung tâm đó,

và các thiết bị muốn sử dụng thì sẽ giao tiếp liên tục tới máy chủ ở trung tâm Việc giao tiếp liêntục với máy chủ để truyền dữ liệu và nhận lại những dự đoán của mô hình máy học sẽ dẫn đếnnhững lo ngại về mặt bảo mật thông tin người dùng Như những thông tin về bảo mật cá nhân,thông tin ngân hàng cũng như những thông tin nhạy cảm khác Ngoài ra việc giao tiếp liên tục

sẽ dẫn đến vấn đề chi phí để vận hành hệ thống Chính vì thế, kiến trúc học phân tán là mộttrong những giải pháp để giải quyết những vấn đề đó

Trang 18

Học phân tán (Distributed learning)

Đối với học phân tán, câu hỏi đặt ra là làm thế nào để có thể sử dụng nhiều nhất có thể cácmáy đang khả dụng phục vụ cho việc huấn luyện Có hai cách chính là phân tán dữ liệu (dataparallelism) và phân tán mô hình (model parallelism) [23]

Phân tán dữ liệu: Đây là mô hình phổ biến được sử dụng trong việc huấn luyện mô hìnhphân tán Với cách tiếp cận này, dữ liệu sẽ được chia thành nhiều phần khác nhau, số lượng phần

sẽ bằng với số lượng nốt đang sẵn có Và mỗi cụm máy (worker node) chỉ thực hiện huấn luyện

mô hình dựa trên tập dữ liệu được chia đó Hình 2.4 bên dưới mô phỏng trực quan cách hoạtđộng của cách tiếp cận này [24]

Hình 2.4: Kiến trúc phân tán dữ liệu trong phân tán (distributed learning)

Mỗi mô hình sẽ được độc lập huấn luyện và cập nhật những thông số (parameters) qua mỗivòng Và mỗi thay đổi sẽ được chia sẻ và cập nhật ở những nốt khác Để việc cập nhật cácthông số (parameters) được nhất quán, thông thường một máy chủ quản lý thông số tập trung(centralized parameter server) sẽ được sử dụng để quản lý công việc này [23]

Phân tán mô hình:Đối với cách tiếp cận này, mô hình sẽ được phân mảnh thành nhiều phầnkhác nhau, và mỗi phần sẽ được huấn luyện đồng thời trên mỗi nốt khác nhau Việc huấn luyệncác phần của mô hình được thực hiện trên cùng một tập dữ liệu như nhau Và các thông số saukhi được huấn luyện sẽ được chia sẻ để cập nhật thành một mô hình nhất quán [24]

Học liên kết (Federated learning)

Được Google phát minh vào năm 2016, và đã trở thành 1 trong những lĩnh vực phát triển,thu hút nhiều nghiên cứu của giới học thuật cũng như công nghiệp [22] Với học liên kết, dữ liệu

và huấn luyện mô hình được thực hiện tại cục bộ các thiết bị Không cần chia sẻ dữ liệu cục bộnhưng phương pháp này cũng tận dụng được việc chia sẻ kiến thức từ những thiết bị khác nhau,thông qua một nơi tập trung tích hợp lại những kiến thức, kinh nghiệm của các mô hình đượchuấn luyện cục bộ từ đó cải thiện hiệu suất của tất cả các mô hình ở các cục bộ khác nhau Môphỏng kiến trúc học liên kết được trình bày trong hình 2.5

Ứng dụng vào nghiên cứu:Lý thuyết kiến trúc của mô hình học tập trung (centralized ing) được tình bày vì phương pháp huấn luyện mô hình trong nghiên cứu là theo mô hình này

Trang 19

learn-Hình 2.5: Kiến trúc mô hình học liên kết (Federated learning)

Ngoài ra những lý thuyết liên quan về học phân tán và học liên kết được trình bày để từ đó phânbiệt sự khác nhau giữa các mô hình huấn luyện

2.3 Dữ liệu dòng (streaming data)

Kiến trúc hệ thống trong xử lý dữ liệu dòng (streaming data)

Ngày nay rất nhiều ứng dụng có yêu cầu hệ thống phản hồi trong thời gian thực, tuỳ vào loạiứng dụng sẽ có mức độ khác nhau về thời gian phản hồi Thông thường được phân thành 3 cấp

độ, cấp độ cao nhất yêu cầu thời gian phản hồi, độ trễ của hệ thống phải từ micro giấy cho đếnmilli giây, thường yêu cầu này sẽ có ở các ứng dụng như hệ thống xe tự lái, hay các máy được sửdụng trong y học như máy tạo nhịp tim, vv Ở cấp độ thứ 2, độ trễ của hệ thống yêu cầu từ milligiây đến giây, ở cấp độ này các ứng dụng như những hệ thống như đặt vé máy bay, hệ thốngthông báo về giá chứng khoán, các ứng dụng gọi điện online (VoIP), vv Và cấp độ cuối cùng,

ví dụ như đường hình của các ứng dụng gọi điện online, hay các hệ thống điều khiển tự độngtrong nhà Ở cấp độ này mức yêu cầu của hệ thống cũng thấp nhất, độ trễ được tính từ giây đếnphút

Để đáp ứng được những yêu cầu về mặt độ trễ như nêu trên, chúng ta sẽ cần 1 kiến trúc cho

hệ thống để đạt được những yêu cầu đó, hình 2.6 trình bày chi tiết những cấu phần của kiến trúc

hệ thống

Kiến trúc được chia thành nhiều tầng khác nhau Lớp đầu tiên Đầu tiên là giai đoạn thu thập

dữ liệu (collection tier) Sau khi thu thập được dữ liệu, chúng ta sẽ có lớp phân tích dữ liệu(analysis tier) Và để lớp thu thập dữ liệu kết nối được với lớp phân tích dữ liệu, ở đó sẽ có lớphàng đợi (mesage queuing tier) Khác với hệ thống thông thường, là sau khi thu thập được là xử

lý ngay, nhưng trong hệ thống dữ liệu dạng dòng phải cần thiết một lớp hàng đợi mục đích là đểgiải quyết vấn đề chênh lệch về tốc độ xử lý của lớp thu thập dữ liệu và lớp phân tích dữ liệu.Nếu không có lớp hàng đợi này, trong trường hợp tốc độ thu thập dữ liệu lớn hơn nhiều so vớitốc độ phân tích, thì sẽ dẫn đến tình trạng tràn bộ nhớ của hệ thống Ngoài ra, lớp hàng đợi cũnggiúp cho việc chia sẻ, phân tích dữ liệu được tiện lợi hơn Sau khi xử lý ở tầng phân tích, dữ liệu

Trang 20

Hình 2.6: Kiến trúc của hệ thống trong liệu dạng dòng (tham khảo [1])

có thể sẽ được lưu trữ xuống đĩa, phục vụ cho mục đích lâu dài sau này Ngoài ra, các kết quảphân tích sẽ được lưu trữ trên bộ nhớ để tạo nên một lớp chia sẻ dữ liệu cho các ứng dụng (ví dụnhư những hệ thống kho dữ liệu (data warehouse))

Công cụ phổ biến được sử dụng tại các tầng của kiến trúc rất đa dạng, phụ thuộc vào quy

mô và yêu cầu của từng ứng dụng Trong đó 2 công cụ phổ biến nhất là Kafka, sử dụng tại lớpthu thập dứ liệu và Spak, sử dụng tại lớp phân tích dữ liệu Kafka là một công cụ mã nguồn mởđược sử dụng rất rộng rãi trong công nghiệp, và được thiết kế chuyên biệt cho việc thu thập vàgửi dữ liệu về tầng xử lý, công cụ xây dựng sẵn lớp hàng đợi theo mô hình publish/subcribe VềSpark, đây là một trong những công cụ mạnh về xử lý dữ liệu lớn, dữ liệu dàng dòng với thưviện Spark Streaming từ đó kết nối với Kafka để có thể thực hiện nhận dữ liệu từ Kafka phục vụcho việc xử lý dữ liệu dạng dòng

Mô hình chia sẻ/đăng ký (publish/subcribe)

Để hiểu rõ hơn cách thức mà Kafka thu thập và chia sẻ dữ liệu, chúng ta sẽ đi qua mộtvài điểm cơ bản của mô hình chia sẻ/đăng ký (publish/subcribe) được triển khai trong công cụKafka

Mô hình chia sẻ/đăng ký (publish/subscribe) là một mô hình mà ở đó sẽ có nguồn chia sẻ

dữ liệu (publish) và những thiết bị hay ứng dụng sử dụng những dữ liệu đó thông qua việc đăng

Trang 21

Hình 2.7: Mô hình publish/subscribe (tham khảo [1])

đóng vai trò là tiếp nhận và chia sẻ cho những thiết bị tiêu thụ (consumer) Và muốn tiêu thụthông tin, thì các thiết bị tiêu thụ (consumer) cần phải đăng ký với người trung gian (broker).Trong thực tế, những dữ liệu được chia sẻ từ nhà sản xuất (producer) sẽ không phải đượctổng hợp về một luồng (như mình hoạ ở hình 2.7 - trái) mà nó sẽ được chia thành nhiều nhóm

dữ liệu khác nhau và được quản lý bởi nhiều chủ đề (topic) khác nhau ở nơi trung gian (broker)(minh hoạ ở hình 2.7 - phải)

Kiến trúc hàng đợi (message queue)

Có nhiều cách thức trong việc chia sẻ và đăng ký sử dụng dữ liệu, có thể theo mô hình 1chiều (one-way) hay mô hình dòng (stream), vv Trong đó có 1 mô hình phổ biến là theo hàngđợi (message queue), như đã đề cập nhằm giải quyết vấn đề chênh lệch tốc độ xử lý giữa nhàsản xuất (producer) với tiêu thụ (consumer)

Hình 2.8: Các thành phần cơ bản trong hệ thống hàng đợi (tham khảo [1])

Một hàng đợi sẽ bao gồm các thành phần chính như:

• Nhà sản xuất (producer): gửi dữ liệu dưới dạng các thông điệp (message) về nơi trunggian (broker)

Trang 22

• Nơi trung gian (broker): tiếp nhận những thông điệp và sắp xếp vào hàng đợi.

• Tiêu thụ: Đăng ký và đọc những thông điệp từ nơi trung gian

Trong thực tế, để một hàng đợi có thể vận hành trơn tru thì cần có một bộ nhớ tương đối lớn

để có thể lưu trữ, đặc biệt trong trường hợp nơi tiêu thụ (consumer) sử dụng dữ liệu rất chậm sovới tốc độ sinh ra dữ liệu Và thông thường trong Kafka, hàng đợi sẽ được triển khai trên nhiềumáy (Kafka cluster) để đảm bảo được việc xử lý

Cửa sổ dữ liệu

Và để tối ưu hoá việc lưu trữ, thì hàng đợi không thể nào lưu trữ hết tất cả những dữ liệuđược gửi về từ nguồn dữ liệu Mà sẽ lưu và xử lý dữ liệu trên một đơn vị được gọi là "cửa sổ dữliệu" (window of data) Cửa sổ là đơn vị lưu trữ dữ liệu được gửi về từ nguồn và để thông báocho hệ thống xử lý tiêu thụ dữ liệu đó chúng ta cần định nghĩa cơ chế kích hoạt (trigger policy),nghĩa là định nghĩa khi nào sẽ xử lý lượng dữ liệu có trên cửa sổ Và những dữ liệu trên cửa sổnày sẽ được xoá đi bằng cách định nghĩa cơ chế xoá (eviction policy) Có nhiều cách định nghĩa

cơ chế kích hoạt và cơ chế xoá phụ thuộc vào cách triển khai các dạng cửa sổ khác nhau Có 2dạng cửa sổ chính thường được sử dụng: cửa sổ trượt (sliding window) và cửa sổ lật (tumblingwindow)

Cửa sổ trượt:Trong cửa sổ trượt, cơ chế kích hoạt và cơ chế xoá sẽ được định nghĩa dựa vàothời gian Nghĩa là sau một khoảng thời gian t nào đó, hệ thống sẽ được kích hoạt và xử lý dữliệu đang có ở trên cửa sổ Và dữ liệu trên cửa sổ sẽ được trượt đàn, xoá đi những dữ liệu cũ

để chừa chỗ cho những mấu mới đang đến Ví dụ vì giới hạn bộ nhớ, chúng ta chỉ giữ lại được100,000 mẫu dữ liệu gần nhất, để có chỗ cho những mẫu dữ liệu mới, chúng ta buộc phải xoá đinhững mẫu cũ

Hình 2.9: Cửa sổ trượt (tham khảo [1])

Như ví dụ trong hình 2.9, chúng ta có một cửa sổ chỉ lưu trữ được 6 đơn vị dữ liệu Và cứ 1giây sẽ có 3 mẫu dữ liệu đến Vậy cứ 1 giây, cửa sổ sẽ được trượt sang phải và bỏ đi 3 mẫu dữliệu

Cửa sổ lật:Đối với cửa sổ lật, cơ chế kích hoạt và cơ chế xoá sẽ dựa vào việc đầy của cửa sổ

dữ liệu Nghĩa là khi dữ liệu trên cửa sổ đầy, cơ chế kích hoạt sẽ kích hoạt hệ thống xử lý lượng

dữ liệu đó, sau đó sẽ lật và xoá toàn bộ dữ liệu hiện đang có trên cửa sổ dữ liệu

Việc định nghĩa "đầy" trên cửa sổ dữ liệu có thể dựa vào việc đếm số lượng dữ liệu based) như trên hình 2.10 - trên Cứ cửa sổ đủ 2 đơn vị dữ liệu là sẽ lật Một cách khác, đầycũng có thể được định nghĩa theo thời gian (temporal-based), ví dụ như ở hình 2.10 - dưới, là cứ

Trang 23

(count-Hình 2.10: Cửa sổ lật (tham khảo [1])

sau 2 giây thì sẽ lật cửa sổ, bất kể trong cửa sổ có bao nhiêu mẫu dữ liệu

Ứng dụng vào nghiên cứu:Dữ liệu mà nghiên cứu thực hiện là dữ liệu dòng (streaming data)

Vì thế những kiến thức như mô hình chia sẻ/đăng ký được trình bày để nắm rõ bằng cách nào

dữ liệu sinh ra ở các nguồn được đưa về các nút cạnh Các kiến thức về công cụ, cũng như kiếntrúc để xây dựng và triển khai cho dữ liệu dạng dòng được sử dụng để từ đó nghiên cứu đưa rakiến trúc hợp lý, cho các tầng lưu trữ, lấy mẫu và xử lý dữ liệu

Ngày đăng: 20/06/2023, 21:46

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w