Giải thuật Bayesian cho bài toán đa mục tiêu

Một phần của tài liệu Phát triển công cụ giả lập hệ thống content delivery netwwork (Trang 36)

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

3.5 Giải thuật Bayesian cho bài toán đa mục tiêu

3.5.1 Cơ sở lý thuyết cho giải thuật Bayesian tổng quát

3.5.1.1 Tổng quan

Giải thuật Bayesian là cách tiếp cận phổ biến và hiệu quả nhất để giải quyết các bài toán có hàm mục tiêu “đắt giá”. Hàm mục tiêu “đắt giá” nghĩa là việc tính toán, đánh giá mục tiêu cho mỗi điểm đầu vào có thể tốn nhiều thời gian hay các chi phí khác. Một trong những ưu điểm của giải thuật Bayesian là giải thuật này chỉ cần tính toán hàm này với một số lượng ít lần nhưng vẫn đạt được một kết quả chấp nhận được. Giải thuật Bayesian là một giải thuật lặp. Mỗi vòng lặp sẽ xây dựng và huấn luyện một surrogatemodel để có thể xấp xỉ được phân bố của hàm mục tiêu. Từ đó, thay vì tính toán hàm mục tiêu “đắt giá” để đánh giá một điểm dữ liệu mới, ta có thể sử dụng surrogate model. Một khác biệt chính giữa surrogate model và hàm mục tiêu là surrogate model trả về một phân bố xác suất cho các giá trị có thể có của hàm mục tiêu cho mỗi giá trị đầu vào, trong khi đó hàm mục tiêu trả về một giá trị hằng. Sau khi đã huấn luyện surrogate model, một acquisition function kết hợp với một tiêu chí lựa chọn được sử dụng để tìm điểm dữ liệu có tiềm năng mới. Điểm dữ liệu mới này sẽ được thêm vào tập huấn luyện cho surrogate model trong vòng lặp kế. Acquisition function sử dụng chính trong luận văn này là EI và UCB. Hình 6 mô tả giải thuật tối ưu hóa Bayesian tổng quát cho bài toán đơn mục tiêu.

Hình 6: Mã giả giải thuật tối ưu hóa Bayesian tổng quát.

Phần này sẽ giới thiệu phần nền tảng lý thuyết cho thuật toán Bayesian trong trường hợp bài toán đơn mục tiêu và sẽ được mở rộng cho nhiều hàm mục tiêu trong phần kế tiếp.

3.5.1.2 Gaussian Process Regression (GPR)

Một mô hình GP được định nghĩa như một phân bố xác suất tiên nghiệm trên hàm mục tiêu. Giả sử ta có một hàm mục tiêu f và một tập gồm k điểm giá trị đã quan sát được , , … , ∈ , các giá trị hàm mục tiêu tương ứng được viết dưới dạng vector [ ( ), ( ), … , ( )]. Ta giả sử giá trị vector này được lấy ngẫu nhiên từ một phân bố xác suất tiên nghiệm có dạng phân phối chuẩn đa chiều. Phân phối chuẩn này được đặc trưng bởi vector chứa giá trị trung bình cộng và ma trận hiệp phương sai.

Ta xây dựng vector trung bình cộng bởi đánh giá một hàm trung bình cộng µ0

cho mỗi giá trị xi. Ma trận hiệp phương sai được tính dựa trên một hàm hiệp phương

sai hay còn gọi là kernel K cho mỗi cặp giá trị xi và xj. Hàm kernel được chọn sao cho

nếu cặp điểm xi, xj càng gần nhau thì hệ số tương quan giữa chúng càng cao. Điều này

nhằm ngụ ý rằng nếu những điểm càng gần nhau thì càng nên có giá trị hàm mục tiêu giống nhau hơn những điểm ở xa chúng. Một đặc trưng cần lưu ý là ma trận hiệp phương sai phải là một ma trận nửa xác định dương và K không phải là một hàm đối xứng. Phân phối tiên nghiệm nhận được là:

Trong đó, : là chuỗi giá trị , , … , , ta có:

( : ) =[ ( 1), 2), … , ( ],

µ ( 1: )=[µ ( ), µ ( ), … , µ ( )],

( 1: , 1: )=[ ( , ), ( , ), … , ( , )].

Giả sử rằng ( : ) không có nhiễu, dựa trên k điểm dữ liệu đã quan sát được, ta cần dự đoán giá trị ( )với điểm dữ liệu tiềm năng mới xk+1.Ta có phân phối tiên nghiệm trên hàm [ ( : ), ( )] được tính như (1), vậy nên ta có thể tính phân phối hậu nghiệm dựa trên quan sát có được theo định lý Bayes như công thức sau:

( )| ( 1: )~ µ ( +1), 2( +1)

µ ( +1)= ( +1, 1: ) −1( +1, 1: ) ( 1: )−µ ( 1: ) +µ ( +1)

( ) = ( , ) − ( , : ) ( : , : ) ( : , )

Trong đó, giá trị trung bình hậu nghiệm µ ( +1) đơn giản là trung bình cộng có trọng số giữa giá trị trung bình tiên nghiệm µ ( +1) và dự đoán dựa trên tập dữ liệu đã quan sát ( : ). Phương sai hậu nghiệm ( ) bằng hiệp phương sai tiên nghiệm ( , ) trừ cho một đại lượng liên quan đến phần phương sai bị trừ bởi dữ liệu quan sát cũ ( : ). Đây là cách tính truyền thống để sử dụng GPR.

Luận văn này sử dụng một trong những kernel phổ biến nhất hàm Matèrn [45]. Hàm Matérn được tính như sau với Γ(.) là hàm gamma, α là tham số của kernel và là hàm Bessel [46].

( 1, 2)=α ( ) (√2 | 2− 1| ) (√2 | 2− 1|)

Đối với hàm tính mean µ , luận văn sử dụng lựa chọn đơn giản nhất là sử dụng hàm hằng µ ( ) = µ. Một vấn đề cần lưu ý là các tham số của kernel, cụ thể ở đây là α cần được tối ưu. Luận văn sử dụng phương pháp Maximum Likelihood Estimate (MLE) [23] để tìm tham số α tối ưu.

3.5.1.3 Acquisition function

Nhân tố chính ảnh hưởng đến hiệu năng và khả năng hội tụ của giải thuật

Bayesianacquisition function (. ). Hàm này sử dụng phân phối xác suất hậu nghiệm trả về từ surrogate model để tính một đại lượng đánh giá về độ “tốt” của hàm mục tiêu với mỗi điểm giá trị đầu vào. Mục tiêu của hàm này là lựa chọn điểm giá trị có độ “tốt” tối ưu nhất và thêm điểm này vào tập dữ liệu cho vòng lặp kế tiếp. Giả sử giải thuật Bayesian đã thực hiện n vòng lặp trước đó. Điểm dữ liệu sẽ được

acquisitionfunction chọn sẽ được tính dưới dạng biểu thức sau: = ( ) (2)

Một điều đáng lưu ý ở đây là hàm (. ) không phụ thuộc trực tiếp vào hàm mục tiêu gốc, thay vào đó nó phụ thuộc vào phân phối hậu nghiệm của hàm này từ

surrogate model tại một điểm giá trị tiềm năng. Luận văn này sẽ sử dụng 2 acquisition function nổi tiếng là EI và UCB.

Hàm EI được tính bởi giá trị kỳ vọng của hàm u(y) = max(0, v − ) dưới phân bố xác suất hậu nghiệm của surrogate model với biến ngẫu nhiên y. Trong đó,

v = min(0, { } ) là giá trị quan sát được tốt nhất tới thời điểm hiện tại (giả sử bài toán tối ưu hóa là cực tiểu hóa). Do đó, hàm EI thực ra là phép đo trung bình về độ “tốt” hơn so với giải pháp tốt nhất hiện tại bởi việc thực hiện đánh giá cho mỗi điểm giá trị đầu tiềm năng. Hàm EI có thể được tính như sau:

(u(y)) = EI(u(y)) = E(u(y)) = σ(x)(γ(x)ϕ(γ(x) + φ(γ(x)))) (3) Trong đó, γ(x) =( µ( ) )( ) , với ϕ (.) và φ(.) lần lượt là hàm mật độ xác suất và hàm phân phối tích lũy của phân phối chuẩn Gaussian. Tham số là tham số cân bằng giữa exploration và exploitation. Thông thường, tham số này được gán là = 0.

Một acquisition function khác được đề xuất dựa trên ý tưởng về cận trên của khoảng tin cậy để cực đại hóa giá trị regret của việc lựa chọn giá trị tiềm năng. Cách

Trong đó, tham số được sử dụng để cân bằng exploitation và exploration của giải thuật. Có nhiều hướng tiếp cận heuristic để lựa chọn tham số này. Trong đó, lựa chọn phổ biến nhất là = ( ) với là số lượng mẫu trong tập giá trị tiềm năng tại vòng lặp thứ t.

3.5.2 Giải thuật Bayesian cho bài toán đa mục tiêu

Như đã đề cập ở phần phần 2.3.1, để áp dụng giải thuật Bayesian cho bài toán đa mục tiêu có hai hướng tiếp cận chính:

 Đưa về bài toán đơn mục tiêu bằng cách trọng số hóa các hàm mục tiêu như giải thuật ParEGO.

 Luận văn này theo hướng tiếp cận thứ hai là sẽ giải quyết bài toán theo dựa trên ý tưởng xấp xỉ true Pareto front của bài toán đa mục tiêu.

Cụ thể hơn, luận văn này sử dụng hai giải thuật SOTA là USeMO và TSEMO. Phần này sẽ đề cập đến ý tưởng cơ bản của hai giải thuật này. Giả sử ta có bài toán tối ưu k mục tiêu. Giải thuật Bayesian cho bài toán đa mục tiêu là giải thuật lặp gồm 4 bước chính như sau:

 Bước 1: Đối với bài toán có k mục tiêu : (. ), ta sẽ xây dựng k mô hình GPR

, , … , . Mỗi mô hình này ứng với mỗi hàm mục tiêu của bài toán. Để huấn luyện các mô hình này ta sử dụng một tập dữ liệu đã quan sát được Dt với

t là thứ tự của vòng lặp hiện tại. Cụ thể hơn, luận văn này sử dụng hàm Matérn với tham số = . Sau mỗi vòng lặp, các tham số của kernel này sẽ được tối ưu theo phương pháp MLE như đã đề cập ở phần 3.6.1.2.

 Bước 2: Thay vì phải giải quyết bài toán gốc với các hàm mục tiêu tốn chi phí, ta có thể quy về một bài toán đa mục tiêu mới “tiết kiệm hơn”, tận dụng mô hình GPR như một hàm xấp xỉ hàm mục tiêu gốc và vận dụng các giải thuật tối ưu hóa đa mục tiêu theo hướng tiếp cận Pareto như các giải thuật NSGA-II. Bài toán đa mục tiêu mới này gồm k mục tiêu ( ), ( ), … , ( ). Với

(. ) có thể là bất kì acquisition function nào trong giải thuật Bayesian cho bài toán đơn mục tiêu. Cụ thể, đối với giải thuật USeMO ta có thể sử dụng EI và

UCB. Đối với giải thuật TSEMO, acquisition function là Thompson Sampling [38].

 Bước 3: Để lựa chọn giá trị tiềm năng mới xt giải thuật USeMO sử dụng tiêu chí về tối ưu hóa mức độ không chắc chắn (Uncertainty) [37]. Trong khi đó giải thuật TSEMO sử dụng tiêu chí cực đại hóa HVI [38].

 Bước 4: Tập dữ liệu huấn luyện được cập nhật với các giá trị tiềm năng mới,

CHƯƠNG 4: THIẾT KẾ CỦA BỘ GIẢ LẬP

Luận văn được thực hiện dựa trên nhu cầu cần thiết về một môi trường giả lập thống CDN giúp các nhà cung cấp dịch vụ CDN đưa ra các quyết định đầu tư tối ưu. Họ cần có một môi trường thử nghiệm có độ tin cậy chấp nhận được và tính ổn định để đánh giá chi phí đầu tư, hiệu năng mong đợi của hệ thống dưới các thiết lập tài nguyên, cũng như phân tích hành vi của hệ thống trong các kịch bản khác nhau. Những công cụ mô phỏng trước đó thưởng chỉ mô phỏng lại hành vi của hệ thống ở mức luận lý và không cung cấp khả năng tái triển khai lại các ứng dụng thực tế cũng như các độ đo đánh giá về độ trễ và chất lượng dịch vụ của hệ thống. Bên cạnh đó, những test-bed chuyên dụng được xây dựng để thí nghiệm đã hiện thực lại toàn bộ hệ thống trên hệ thống máy thực thường cồng kềnh khi triển khai và tốn nhiều chi phí. Một trong những mục tiêu chính của luận văn này nhắm tới phát triển một công cụ giả lập có khả năng mô phỏng gần giống với môi trường thực tế nhất, đồng thời đem lại độ tin cậy và đa dạng các độ đo đánh giá chất lượng hệ thống. Chương này sẽ mô tả chi tiết các thành phần chính, module, cũng như cách hiện thực công cụ này.

4.1 Các thành phần chính

Thư viện Mininet cung cấp chức năng định tuyến và theo dõi gói tin trong mạng với các bộ SDN controller. Tuy nhiên, việc chạy thêm một bộ SDN controller trong ngữ cảnh công cụ giả lập CDN có thể tốn thêm tài nguyên không cần thiết. Trong luận văn này, thay vì định tuyến bằng các bộ controllers, tôi phát triển các routers ảo để mô phỏng hành vi của các routers trong môi trường thật. Cụ thể hơn, các routers ảo sử dụng giao thức Open Shortest Path First (OSPF) để định tuyến. Đồng thời, để giảm thời gian khởi tạo mạng, công cụ sẽ xây dựng trước ở mỗi routers ảo một bảng định tuyến tĩnh. Cụ thể hơn, công cụ này có 5 thành phần chính:

Client: Là các máy ảo trong công cụ được sử dụng để mô phỏng người dùng cuối. Để có thể minh họa cho việc mô phỏng môi trường thực, luận văn này sử dụng một tập dữ liệu được trích xuất từ hệ thống log file của một hệ thống CDN thực ở Việt Nam [4]. Cụ thể hơn, mỗi mẫu dữ liệu là thông tin của một yêu cầu được gửi từ một người dùng tới hệ thống. Thông tin thô này bao gồm:

thời gian gửi, độ trễ, nội dung, kích thước nội dung, trạng thái cache, địa chỉ IP. Từ những thông tin thô này, luận văn trích xuất vị trí địa lý và gom cụm nhiều người dùng thực thành một số lượng ít hơn các client ảo. Một client ảo sẽ đại diện và mô phỏng hành vi của các người dùng thực trong cùng khu vực. Hơn thế nữa, công cụ cung cấp hai cơ chế gửi yêu cầu là chế độ đồng bộ và bất đồng bộ. Chế độ bất đồng bộ được sử dụng để bắt chước tính đồng thời của nhiều yêu cầu được gửi bởi nhiều người dùng trong môi trường thực. Trong chế độ này, nhiều yêu cầu được gửi bất đồng bộ từ một client ảo theo từng khung thời gian. Ngược lại, trong chế độ đồng bộ, yêu cầu sẽ được client ảo gửi tuần tự. Cụ thể hơn của cơ chế này sẽ được mô tả trong phần 4.2.3.

Replica Server: Những ứng dụng thực của hệ thống CDN có thể được mô phỏng và triển khai lại trong công cụ thông qua Docker container. Đặc biệt là các HTTP framework như Nginx[47], Apache[48], Varnish[49],... đều có thể được triển khai trong công cụ mô phỏng này. Tuy nhiên, các công cụ này thường bị cố định trong cơ chế cache và định tuyến. Để phục vụ cho mục đích nghiên cứu, công cụ cũng hỗ trợ một module HTTP server ảo để có thể triển khai các chiến lược caching mới dễ dàng hơn. Về những vấn đề xác thực tính đúng đắn trong chức năng của server ảo này sẽ được thí nghiệm và đánh giá trong phần 6.1.2.

Link (Đường dẫn): Thư viện Mininet hỗ trợ Traffic Control (TC) link [50]. Điều đó nghĩa rằng ta có thể thiết lập tài nguyên của đường dẫn như banwidth, loss và delay. Mức độ tin cậy của chức năng này của Mininet cũng đã được đánh giá trong nghiên cứu [43].

Router: Trước khi công cụ bước vào quá trình mô phỏng hành vi, nó sẽ có một quá trình khởi tạo. Trong quá trình khởi tạo này, các tài nguyên mạng, network topology, định tuyến tĩnh,... sẽ được thực hiện. Bảng định tuyến tĩnh sẽ được khởi tạo trước trong quá trình này. Bên cạnh bảng định tuyến tĩnh này, công cụ

Origin Server: Server này có nhiệm vụ tạo ra nội dung và phản hồi yêu cầu từ

Client hoặc Replica Server. Các Origin Server trong môi trường thực tế thường có các ứng dụng video streaming hay xử lý đa phương tiện cồng kềnh. Các ứng dụng xử lý video, ảnh này thường rất tồn tài nguyên chạy. Việc triển khai lại các ứng dụng này trong môi trường giả lập là không cần thiết trong môi trường giả lập. Thay vào đó, trong luận văn này sẽ phát triển một bộ tạo nội dung đơn giản và ít tốn tài nguyên hơn. Origin Server là một multi-processing HTTP server được xây dựng dựa trên FastAPI [51]. FastAPI là một trong những framework về dịch vụ web có hiệu năng tốt nhất hiện nay.

Một điểm đáng lưu ý liên quan đến cơ chế cô lập tài nguyên. Đây là cơ chế giúp cấp phát tài nguyên CPU cho mỗi máy ảo của hệ thống một cách độc lập. Công cụ sử dụng cơ chế này của Mininet để cấp phát tài nguyên CPU cho Client và các Server.

4.2 Thiết kế tổng quan

Công cụ giả lập gồm bốn module chính: Main Module, Server Module, Client Module và Content Provider Module. Hình 7 minh họa thiết kế tổng quan của hệ thống. Về mặt tổng quát, quá trình chạy bộ giả lập có thể chia thành 3 giai đoạn chính:

khởi tạo, mô phỏng đánh giá.

4.2.1 Main Module

Tại giai đoạn khởi tại, bộ giả lập đọc và trích xuất thông tin như: network topology, các tham số về tài nguyên mạng, chiến lượng caching và các thiết lập khác từ một file thiết lập JavaScript Object Notation (JSON). Main Module sẽ có nhiệm vụ xây dựng mạng ảo, và khởi tạo các replica servers dựa trên thông tin từ file thiết lập. Sau khi đã khởi tạo xong hệ thống CDN và các servers, phụ thuộc vào thiết lập mà cơ chế định tuyến tĩnh hay động sẽ được triển khai cho các routers. Đối với bảng định tuyến tĩnh, công cụ sẽ xây dựng dựa trên giải thuật Dijkstra có trọng số để tìm đường đi ngắn nhất giữa các routers. Trọng số của các đường dẫn được xác định dựa trên bandwidth và delay của nó. Chiến lược định tuyến ở đây được triển khai ở các routers và dùng để mô phỏng cách định tuyến gói tin của nhà mạng ISP. Module này cũng có

Một phần của tài liệu Phát triển công cụ giả lập hệ thống content delivery netwwork (Trang 36)