Có nhiều nhà nghiên cứu cũng như các nhà phát triển đã đầu tư vào phương pháp co giãn tài nguyên mới cho điện toán đám mây đó là xây dựng mô hình dự đoán tài nguyên sử dụng trong tương
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
CHU THỊ THƯƠNG
MÔ HÌNH DỰ BÁO CHO KHẢ NĂNG MỞ RỘNG TÀI NGUYÊN
TRONG MÔI TRƯỜNG PHÂN TÁN
Chuyên ngành : CÔNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN:
TS NGUYỄN BÌNH MINH
Hà Nội – Năm 2018
Trang 22
LỜI CAM ĐOAN
Tôi – Chu Thị Thương – xin cam đoan
Luận văn tốt nghiệp (LVTN) Thạc sĩ này là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của Tiến sĩ Nguyễn Bình Minh
Các kết quả nêu trong Luận văn tốt nghiệp là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác
Hà Nội, ngày 08 tháng 09 năm 2018
Tác giả LVThS
Chu Thị Thương
Trang 33
LỜI CẢM ƠN
Đầu tiên, tôi xin được gửi lời cảm ơn sâu sắc nhất tới Thầy giáo – Tiến sĩ Nguyễn Bình Minh – Phó trưởng bộ môn Hệ thống thông tin, Viện Công nghệ thông tin và Truyền thông, Trường Đại học Bách Khoa Hà Nội Thầy đã tận tình hướng dẫn và cho tôi những lời khuyên quý báu trong quá trình thực hiện luận văn này
Tiếp theo, tôi xin chân thành cảm ơn các thầy cô trong Viện Công nghệ thông tin
và truyền thông, Viện đào tạo sau đại học, Trường Đại học Bách Khoa Hà Nội đã tạo điều kiện cho tôi trong quá trình học tập và nghiên cứu tại trường
Cuối cùng, tôi xin bày tỏ lòng cảm ơn tới những người thân trong gia đình, bạn bè
đã động viên và giúp đỡ để tôi hoàn thành bản luận văn này
Hà Nội, ngày 08 tháng 09 năm 2018
Tác giả LVThS
Chu Thị Thương
Trang 44
MỤC LỤC
LỜI CAM ĐOAN 2
LỜI CẢM ƠN 3
MỤC LỤC 4
DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 6
DANH MỤC CÁC BẢNG 7
DANH MỤC HÌNH VẼ, ĐỒ THỊ 8
1 Đặt vấn đề 9
2 Phương pháp đề xuất 10
3 Bố cục luận văn 11
CHƯƠNG 1: TỔNG QUAN CÁC NGHIÊN CỨU 12
1.1 Tổng quan về điện toán đám mây 12
1.2 Nhu cầu thực tế về cung cấp tài nguyên điện toán đám mây 14
1.3 Các nghiên cứu liên quan 15
1.3.1 Tổng quan 15
1.3.2 Các mô hình dự đoán tuyến tính 18
1.3.3 Phương pháp sử dụng mạng nơ-ron 20
1.4 Các kiến thức cơ sở 21
1.4.1 Mạng bộ nhớ dài ngắn (LSTM) 21
1.4.2 Mạng nơ-ron liên kết chức năng (FLNN) 26
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 31
2.1 Mô tả bài toán 31
2.2 Mô hình hệ thống 31
2.2.1 Thu thập dữ liệu 33
2.2.2 Tiền xử lý dữ liệu 33
2.2.3 Huấn luyện mô hình 36
2.2.4 Mô đun dự đoán 36
CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ 38
Trang 55
3.1 Công nghệ sử dụng và độ đo đánh giá mô hình 38
3.1.1 Ngôn ngữ lập trình 38
3.1.2 Thư viện và môi trường sử dụng 38
3.1.3 Độ đo đánh giá mô hình 39
3.2 Dữ liệu 39
3.3 Các tiêu chí đánh giá 42
3.4 Cài đặt và kết quả thử nghiệm 42
3.4.1 Thử nghiệm FLNN 42
3.4.2 Thử nghiệm thay đổi các hàm mở rộng FLNN 45
3.4.3 Thử nghiệm LSTM 50
3.3.4 Thử nghiệm thay đổi tham số cho mô hình LSTM 53
3.5 Nhận xét chung 56
KẾT LUẬN 57
1 Tổng kết 57
2 Hướng phát triển 57
TÀI LIỆU THAM KHẢO 58
Trang 66
DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt
FLNN Functional Linked Neural
Network
Mạng nơ-ron liên kết chức năng
LSTM Long Short Term Memory
Networks
Mạng bộ nhớ dài ngắn
RNN Recurrent Neural Network Mạng nơ-ron hồi quy
MAE Mean Absolute Error Sai số tuyệt đối trung bình RMSE Root Mean Square Error Căn bậc hai của sai số bình
phương trung bình
Trang 77
DANH MỤC CÁC BẢNG
Bảng 1: Ví dụ dữ liệu dạng chuỗi thời gian và dạng học có giám sát 34
Bảng 2: Ví dụ chuyển dữ liệu về dạng học có giám sát dùng phương pháp "lag feature" 34
Bảng 3: Ví dụ chuyển dữ liệu về dạng học có giám sát dùng phương pháp "sliding window" 35
Bảng 4: Ví dụ chuyển dữ liệu về dạng học có giám sát dùng phương pháp "rolling window statistics" 35
Bảng 5: Bộ dữ liệu thực nghiệm 40
Bảng 6: Độ chính xác dự đoán CPU mô hình FLNN với kích thước cửa sổ trượt khác nhau 43
Bảng 7: Kết quả thử nghiệm so sánh các hàm mở rộng trên bộ dữ liệu 3 phút 46
Bảng 8: Kết quả thử nghiệm so sánh các hàm mở rộng trên bộ dữ liệu 5 phút 46
Bảng 9: Kết quả thử nghiệm so sánh các hàm mở rộng trên bộ dữ liệu 10 phút 47
Bảng 10: So sánh độ chính xác dự đoán CPU giữa mô hình FLNN và LSTM với kích thước cửa sổ trượt khác nhau 51
Bảng 11: So sánh thời gian thử nghiệm mô hình trên bộ dữ liệu 10 phút 53
Bảng 12: Kết quả thay đổi thử nghiệm batch_size trong LSTM bộ dữ liệu 10 phút 54
Bảng 13: Kết quả thay đổi thử nghiệm cửa sổ trượt trong LSTM bộ dữ liệu 10 phút 55
Trang 88
DANH MỤC HÌNH VẼ, ĐỒ THỊ
Hình 1: Mô tả mạng nơ-ron truyền thẳng 21
Hình 2: Mô đun lặp của mạng RNN chuẩn một tầng (nguồn [4]) 22
Hình 3: Mô đun lặp của mạng LSTM 4 tầng tương tác (nguồn [4]) 22
Hình 4: Trạng thái tế bào 23
Hình 5: Cổng 23
Hình 6: Tầng cổng quên (Forget gate layer) 24
Hình 7: Tầng cổng vào 25
Hình 8: Trạng thái hiện tại 25
Hình 9: Tầng ra (Output layer) 26
Hình 10: Mô hình mạng nơ-ron FLNN (nguồn [6]) 28
Hình 11: Mô hình hệ thống dự đoán tài nguyên 32
Hình 12: Dữ liệu CPU của bộ dữ liệu 3 phút 40
Hình 13: Dữ liệu CPU của bộ dữ liệu 5 phút 41
Hình 14: Dữ liệu CPU của bộ dữ liệu 10 phút 41
Hình 15: Kết quả dự đoán mô hình FLNN với bộ dữ liệu 3 phút 43
Hình 16: Kết quả dự đoán mô hình FLNN với bộ dữ liệu 5 phút 44
Hình 17: Kết quả dự đoán mô hình FLNN với bộ dữ liệu 10 phút 45
Hình 18: Kết quả thử nghiệm các hàm mở rộng FLNN trên bộ dữ liệu 3 phút 48
Hình 19: Kết quả thử nghiệm các hàm mở rộng FLNN trên bộ dữ liệu 5 phút 49
Hình 20: Kết quả thử nghiệm các hàm mở rộng FLNN trên bộ dữ liệu 10 phút 50
Hình 21: Kết quả dự đoán mô hình FLNN và LSTM bộ dữ liệu 3 phút 52
Hình 22: Kết quả dự đoán mô hình FLNN và LSTM bộ dữ liệu 5 phút 52
Hình 23: Kết quả dự đoán mô hình FLNN và LSTM bộ dữ liệu 10 phút 53
Hình 24: So sánh sai số khi thay đổi batch_size trong LSTM bộ dữ liệu 10p 55
Hình 25: So sánh sai số khi thay đổi cửa sổ trượt trong LSTM bộ dữ liệu 10p 55
Trang 99
MỞ ĐẦU
1 Đặt vấn đề
Điện toán đám mây đã nổi lên như một lựa chọn tối ưu cho hầu như tất cả các bài toán cần tài nguyên tính toán hiện nay Điện toán đám mây mang lại nhiều lợi ích cho người sử dụng nó, bao gồm chính là khả năng cung cấp tài nguyên ảo hóa một cách nhanh chóng và linh hoạt Hiện nay, các nhà cung cấp dịch vụ điện toán đám mây thường sử dụng cơ chế co giãn tài nguyên dựa trên giá trị ngưỡng tiêu thụ Tuy nhiên, trong thực tế là phương pháp này có nhược điểm to lớn là tài nguyên cung cấp thường khá chậm, lúc cần dùng thì chưa cung cấp được, đặc biệt trong các trường hợp có biến cố xảy ra đột ngột Ngoài ra, tài nguyên vẫn được sử dụng chưa chính xác dẫn đến lãng phí do khó xác định các thời điểm cung cấp thêm tài nguyên Những điều trên ngoài gây nên sự lãng phí, còn giảm chất lượng dịch vụ và tăng chi phí của người dùng và nhà cung cấp
Có nhiều nhà nghiên cứu cũng như các nhà phát triển đã đầu tư vào phương pháp co giãn tài nguyên mới cho điện toán đám mây đó là xây dựng mô hình dự đoán tài nguyên sử dụng trong tương lai để tự động tăng giảm tài nguyên Dù phương pháp này mang nhiều tính chất hứa hẹn song trong thực tế thì sử dụng ngưỡng được sử dụng rộng rãi nhất vì việc dự đoán tài nguyên đòi hỏi độ chính xác cao Đây chính
là yếu tố quan trọng nhất của phương pháp mở rộng tài nguyên tự động trong môi trường phân tán
Do vậy, việc tìm ra mô hình dự báo nào có độ chính xác cao kết hợp với hệ thống tự động mở rộng tài nguyên điện toán đám mây là rất cần thiết Mặc dù đã có nhiều mô hình mô hình dự báo điện toán đám mây được đề xuất như mô hình LSTM-RNN sử dụng dữ liệu lượng yêu cầu gửi đến máy chủ NASA, hay mô hình sử dụng mạng nơ-ron nhiều tầng để dự đoán năng lượng bức xạ của mặt trời sử dụng bộ dữ liệu năng lượng bức xạ ở San Jose, Califolia từ 2005 đến 2010, …
Trang 1010
Mục tiêu của luận văn này là tập trung so sánh và đánh giá một số mô hình dự đoán cho bài toán co giãn tài nguyên Sau đó áp dụng mô hình dự báo tốt cho hệ thống co giãn tài nguyên trong môi trường phân tán
Phạm vi của luận văn so sánh và đánh giá 2 dạng mạng nơ-ron áp dụng cho bài toán
xử lý dữ liệu chuỗi thời gian, bao gồm mạng học sâu được đại diện bởi mạng bộ nhớ dài ngắn (Long Short Term Memory Networks - LSTM) và mạng nơ-ron bậc cao, đại diện bởi mạng nơ-ron liên kết chức năng (Functional Linked Neural Network - FLNN)
Các kết quả thực nghiệm với các tập dữ liệu tài nguyên thu thập từ Google Cluster cho thấy mô hình mạng bộ nhớ dài ngắn – LSTM cho hiệu quả tốt hơn
Tuy nhiên, thời gian chạy thử nghiệm để ra kết quả lại lâu hơn so với mô hình mạng nơ-ron liên kết chức năng – FLNN
2 Phương pháp đề xuất
Bài toán dự báo lượng tài nguyên cần cung cấp trong tương lai cho các dịch vụ điện toán đám mây đã có nhiều cách giải quyết và sử dụng mạng nơ-ron là một trong số
đó Luận văn này sẽ sử dụng mạng bộ nhớ dài ngắn (LSTM) và mạng nơ-ron liên kết chức năng (Functional Linked Neural Network) – một mạng nơ-ron có cấu trúc đơn giản, đã được áp dụng trong rất nhiều bài toán như bài toán phân loại, hệ thống nhận dạng … trong đó có bài toán dự đoán
Trong các chương sau sẽ đề xuất mô hình hệ thống cho quá trình huấn luyện và đưa
ra dự đoán cho bài toán Mô hình hệ thống bao gồm 4 mô đun: thu thập và lưu trữ
dữ liệu, tiền xử lý dữ liệu, huấn luyện mô hình, dự đoán trong dó 3 mô đun đầu phục
vụ cho quá trình huấn luyện mô hình và mô đun cuối cùng sử dụng mô hình đã được huấn luyện để đưa ra dự đoán
Mô đun đầu tiên thu thập và lưu trữ dữ liệu là mô đun thu thập chuỗi dữ liệu lịch sử cần thiết cho bài toán
Trang 1111
Mô đun tiền xử lý có nhiệm vụ xử lý dữ liệu thô, đưa dữ liệu về miền [0, 1] để thuận lợi cho quá trình huấn luyện Ngoài ra cũng sử dụng các kỹ thuật chuyển đổi dữ liệu dạng chuỗi thời gian về dạng học có giám sát để phù hợp với mô hình mạng nơ-ron
Mô đun thứ 3 dùng để huấn luyện mạng nơ-ron để tìm ra tập trọng số tốt nhất Sau khi quá trình huấn luyện kết thúc tập trọng số của mạng được lưu lại để phục vụ quá trình dự đoán sau này
Mô đun dự đoán là mô đun cuối cùng sử dụng mô hình vừa học được kết hợp với dữ liệu tại thời điểm hiện tại để dự đoán các giá trị tài nguyên sử dụng trong tương lai
Mô hình hệ thống trên được thử nghiệm để đánh giá hiệu năng dự đoán Trong phần thử nghiệm em sử dụng dữ liệu được thu thập từ Google năm 2011 và thử nghiệm
để so sánh hiệu năng của mô hình
3 Bố cục luận văn
Sau đây là bố cục luận văn:
Chương 1: sẽ giới thiệu các nghiên cứu liên quan
Chương 2: sẽ mô tả chi tiết bài toán, xây dựng hệ thống kết hợp với các phương pháp đề xuất để giải quyết bài toán
Chương 3: sẽ thực hiện thử nghiệm mô hình hệ thống đưa ra Đầu tiên sẽ đưa ra
dữ liệu thử nghiệm, môi trường thực nghiệm, các độ đo đánh giá và các công nghệ
sử dụng Sau đó đánh giá kết quả giữa các mô hình với nhau
Kết luận: đưa ra kết luận những kết quả đạt được trong luận văn và định hướng phát triển cho bài toán
Trang 1212
CHƯƠNG 1: TỔNG QUAN CÁC NGHIÊN CỨU
1.1 Tổng quan về điện toán đám mây
Hiện nay chúng ta nghe nói về điện toán đám mây (Cloud Computing) khá nhiều Đây là mô hình điện toán sử dụng các công nghệ mạng máy tính và phát triển dựa vào mạng Internet Các máy tính được cấu hình để làm việc cùng nhau, các ứng dụng khác nhau sử dụng sức mạnh điện toán tập hợp như đang chạy trên một hệ thống thống nhất Trong vài năm gần đây, điện toán đám mây đã tạo ra một cuộc cách mạng trong ngành công nghiệp máy tính, thay đổi cơ bản cách thức sử dụng các nguồn tài nguyên, cơ cấu vận hành cũng như việc lưu trữ, phân phối và xử lý thông tin Ở mô hình điện toán, mọi khả năng liên quan đến công nghệ thông tin được cung cấp dưới dạng dịch vụ, cho phép người sử dụng truy cập vào dịch vụ từ một nhà cung cấp mà không cần phải có kiến thức, kinh nghiệm về công nghệ đó cũng như không cần quan tâm đến cơ sở hạ tầng phục vụ công nghệ đó Tính linh hoạt của điện toán đám mây là chức năng phân phối tài nguyên theo yêu cầu Trước đây, khi triển khai một ứng dụng cần phải mua hay thuê một hay nhiều máy chủ, thì nay điện toán đám mây cho phép giản lược quá trình này Các lợi ích
mà nó đem lại như cung cấp những gì cần thiết một cách tức thời các tài nguyên, tốc độ
xử lý nhanh, cắt giảm chi phí, mở rộng linh hoạt, tiếp cận từ xa, bảo mật tích hợp, cài đặt và bảo trì tài nguyên thay vào đó xác định nhu cầu của mình sau đó các nhà cung cấp dịch vụ sẽ cung cấp
Hiện nay, Google, Amazon.com và Salesforce.com đang dẫn đầu trong cộng đồng và phát triển không gian điện toán doanh nghiệp Có ba mức độ chính của các dịch vụ điện toán đám mây: Hạ tầng được cung cấp như một dịch vụ (Infrastructure as a Service - IaaS), nền tảng được cung cấp như một dịch vụ (Platform as a Service), phần mềm được cung cấp như một dịch vụ (Software as a Service - SaaS)
Hạ tầng được cung cấp như một dịch vụ theo Amazon là mức cơ bản nhất của điện toán đám mây, thường thì nhà cung cấp dịch vụ sẽ cung cấp các dịch vụ về mạng, máy tính
Trang 1313
(máy ảo hoặc máy thật tùy nhu cầu) cũng như nơi lưu trữ dữ liệu Cụ thể bạn có thể thuê một hệ thống cung cấp máy chủ trên mây với lượng CPU, RAM, ổ cứng (SSD hoặc HDD) tùy theo nhu cầu người dùng Như vậy bạn đã có một máy chủ còn các vấn đề như máy chủ đặt đâu hay việc bảo trì ra sao thì người sử dụng không cần quan tâm đến Như vậy IaaS không được thiết kế cho người dùng cuối mà chủ yếu cho những người muốn một nơi để triển khai phần mềm của mình như lập trình viên, công ty… Dịch vụ điện toán đám mây thứ hai phổ biến hiện nay là nền tảng được cung cấp như một dịch
vụ ( Platform as a Service - PaaS) là mức độ cao hơn so với IaaS Trong trường hợp mua dịch vụ IaaS bạn sẽ được cung cấp một máy chủ Nhưng để triển khai ứng dụng web của bạn, bạn phải tự cài đặt nhiều thứ liên quan như máy chủ web, cơ sở dữ liệu… sau đó mới có thể triển khai ứng dụng của mình Đối với PaaS cho phép bạn chọn một nền tảng đã được cài đặt sẵn và phù hợp cho ứng dụng của mình Có nhiều nhà cung cấp dịch vụ không cho phép bạn sở hữu máy chủ, họ chỉ đơn giản cung cấp cho bạn một nền tảng để bạn triển khai ứng dụng của mình, trong trường hợp này bạn đang sử dụng chung một máy chủ với nhiều người khác Và cơ sở dữ liệu của bạn cũng được cài đặt trong môi trường lưu trữ với hàng trăm cở sở dữ liệu khác Điều này làm giảm chi phí bạn phải trả, tuy nhiên gây ra các rủi ro, và là mục tiêu hàng đầu của các cuộc tấn công độc hại truy cập bất hợp pháp vào dữ liệu của bạn Dịch vụ thứ ba phổ biến hiện nay là phần mềm được cung cấp như một dịch vụ ( Software as a Service – SaaS ) đây là mức độ cao nhất trong các loại hình dịch vụ điện toán đám mây Đó là một sản phẩm hoàn thiện được vận hành và quản lý bở một nhà cung cấp Hầu hết các trường hợp thì dịch vụ SaaS cung cấp những phần mềm hoặc ứng dụng chạy trên Internet và có thể sử dụng ngay bởi người dùng cuối Các dịch vụ gửi thư điện tử như Gmail, Outlook … là một trong số các ví dụ điển hình của Saas bạn có thể ngay lập tức sủ dụng để gửi nhận thư mà không phải thiết lập máy chủ quản lý thư Google Docs hoặc Microsolf Online cũng là SaaS là những bộ phần mềm văn phòng trực tuyến và được cung cấp miễn phí Điện toán đám mây mang lại những lợi ích thiết thực trong đó lợi ích lớn nhất là tiết kiệm chi phí Chủ yếu là bạn
Trang 1414
sẽ giảm được chi phí đầu tư hạ tầng ban đầu, chi phí mua phần cứng, phần mềm bảo dưỡng, chi phí lắp đặt, vận hành… Theo sau đó là sự tiện lợi bạn có thể nhanh chóng sử dụng ngay một thứ gì đó mà không phải tốn công cài đặt phức tạp, có thể truy cập mọi lúc mọi nơi khi có Internet không phụ thuộc vào phần mềm hay phần cứng đang sử dụng Một lợi ích nữa là sự an toàn và tính liên tục, nếu ổ cứng của bạn bị hỏng, có thể bạn sẽ mất hết dữ liệu, trừ khi đã được sao lưu sang một ổ cứng khác Trong khi đó nếu dữ liệu được đưa lên Dropbox hay OneDrive thì tính an toàn sẽ cao hơn Dữ liệu của bạn được chăm sóc bởi nhà cung cấp dịch vụ bằng cách sao lưu định kì, nếu ổ cứng tại đó bị hỏng sẽ được thay thế bởi nhà cung cấp dịch vụ, và dữ liệu vẫn được an toàn Tính an toàn của dữ liệu cũng được xem như một lợi ích khi sử dụng điện toán đám mây Bên cạnh những lợi ích điện toán đám mây cũng gặp phải những hạn chế nhất định Khi sử dụng điện toán đám mây bạn phải tin tưởng rằng nhà cung cấp dịch vụ sẽ bảo mật thông tin cho mình, không làm rò rỉ thông tin ra ngoài và đảm bảo dữ liệu không bị bán cho các đối thủ cạnh tranh nhưng đôi khi các nhà cung cấp dịch vụ không làm được điều đó Mặt khác thời gian chết cũng là một hạn chế do không một nhà cung cấp nào đảm bảo rằng máy chủ của họ sẽ chạy liên tục 100% và không bao giờ ngừng
1.2 Nhu cầu thực tế về cung cấp tài nguyên điện toán đám mây
Trong lĩnh vực điện toán đám mây có một vấn đề mà nhà cung cấp gặp phải là máy chủ của họ không có khả năng cung cấp cho tất cả các yêu cầu tại một thời điểm nào đó làm cho người sử dụng dịch vụ rơi vào thời gian chết Nguyên nhân chính dẫn đến vấn đề này là khi chúng ta sử dụng dịch vụ điện toán đám mây, thông thường chúng ta sử dụng chung tài nguyên với nhiều người khác và nhà cung cấp có nhiệm vụ quản lý và phân phối tài nguyên cho người dùng nhưng do yêu cầu tăng cao đột ngột các nhà cung cấp không lường trước được Đối với các nhà cung cấp dịch vụ điện toán đám mây thì việc
dự đoán lượng tài nguyên cần phải cung cấp trong tương lai là rất cần thiết giúp các nhà cung cấp dịch vụ giảm được tối đa thời gian chết cho những người sử dụng dịch vụ Ví
Trang 1515
dụ như việc dự đoán nhu cầu sử dụng CPU hay RAM trong thời gian tới để trung tâm máy chủ có chiến lược cấp phát tài nguyên phù hợp là một bài toán rất phổ biến Tại một trung tâm máy chủ năng lượng tiêu tương thụ ứng với số lượng máy chủ hoạt động tại một thời điểm Nếu số lượng máy chủ hoạt động càng nhiều thì càng tiêu tốn năng lượng
Do nhu cầu sử dụng tài nguyên tại từng thời điểm là khác nhau rất thất thường, nên tại mỗi thời điểm số lượng máy chủ cần để đáp ứng tài nguyên cung cấp là rất khác nhau Nếu có thể sử dụng ít máy chủ nhất mà vẫn có thể đáp ứng được tất cả các yêu cầu tài nguyên thì trung tâm sẽ tiêu tốn ít năng lượng nhất Với một mô hình có thể dự đoán khá chính xác lượng tài nguyên sử dụng trong tương lai thì trung tâm có thể tập trung vào việc thay đổi trạng thái của các máy chủ (ngủ, hoạt động) từ đó tối ưu hóa số lượng máy chủ cần hoạt động tại một thời điểm và năng lượng cần sử dụng Nếu trong trường hợp
số lượng yêu cầu tài nguyên đến trung tâm tăng cao thì trung tâm sẽ có thể lường trước được và sẽ có thời gian để kích hoạt thêm máy chủ để đáp ứng nhu cầu này Bài toán dự đoán ngoài áp dụng cho điện toán đám mây còn có rất nhiều ứng dụng cho các lĩnh vực khác như dự đoán nhiệt độ, dự đoán sự tăng giảm cổ phiếu … Tuy rằng bài toán dự đoán cho thấy lợi ích không chỉ trong lĩnh vực điện toán đám mây mà còn trong nhiều lĩnh vực khác nhưng giải quyết bài toán trên vẫn gặp phải nhiều khó khăn do sự thay đổi bất thường liên tục của dữ liệu
1.3 Các nghiên cứu liên quan
1.3.1 Tổng quan
Mục đích chính của kỹ thuật phân phối tài nguyên chủ động là dự đoán chính xác tài nguyên sử dụng Có một số lượng lớn các nghiên cứu về các mô hình dự toán trong điện toán đám mây Và ARIMA (Autoregressive Intergrate Moving Average) là một trong những mô hình tuyến tính phổ biến, thường xuyên được sử dụng Trong mô hình này giả định rằng chuỗi dữ liệu là tuyến tính và tuân theo một phân phối thống kế nào
đó Mô hình ARIMA có các lớp mô hình con như mô hình tự hồi quy (Auto regressive -
Trang 1616
AR) , mô hình trung bình trượt (Moving average – MA), mô hình tự hồi quy và trung bình trượt ARMA (autoregressive-moving average) là mô hình kết hợp mô hình tự hồi quy và mô hình trung bình trượt Sự phổ biến của mô hình ARIMA chủ yếu là do sự mềm dẻo và khá dễ dàng triển khai trên thực tế Tuy nhiên hạn chế lớn nhất của các mô hình này là giả định chuỗi dữ liệu sử dụng là tuyến tính làm cho những mô hình này không phù hợp trong nhiều tình huống do trong thực tế các chuỗi thời gian thường ở dạng này phi tuyến tính và có độ phức tạp cao Do vậy đã có nhiều nghiên cứu áp dụng những mô hình phi tuyến cho bài toán này và mạng nơ-ron là một trong số đó
Gần đây, với sự phát triển của mạng nơ-ron nhân tạo, đã có thể áp dụng và giải quyết các bài toán với dữ liệu có tính phi tuyến, được biết đến nhiều nhất là mạng nơ-ron truyền thẳng (Feed-forward neural network - FFNN) sử dụng giải thuật lan truyền ngược sai số
- hay còn có tên gọi khác là back-propagation neural network (BPNN) Tuy nhiên do sự dụng giải thuật lan truyền ngược và sử dụng một tầng ẩn nên mạng ANN có rất nhiều nhược điểm Trong nghiên cứu 1, F Jabari và các cộng sự đã ứng dụng mạng nơ-ron nhiều tầng để dự đoán năng lượng bức xạ của mặt trời sử dụng bộ dữ liệu năng lượng bức xạ ở San Jose, Califolia từ 2005 đến 2010 Mạng nơ-ron nhiều tầng đã thành công
áp dụng cho nhiều vấn đề trong thực tế như dự đoán, phân loại, xử lý tín hiệu, nhận dạng hình ảnh, và đặc biệt là trong kinh doanh và khoa học Tuy nhiên bởi vì số lượng trọng
số tăng khi số tầng và số nơ-ron trong mỗi tầng tăng dẫn đến thời gian huấn luyện dài
Để có thể khắc phục nhược điểm đó, cấu trúc mạng nơ-ron Functional Linked Neural Network (FLNN) được giới thiệu FLNN lần đầu tiên được đề xuất bởi Pao, là cấu trúc mạng chỉ có hai tầng: tầng đầu vào và đầu ra nên số lượng trọng số trong mạng giảm dẫn đến thời gian huấn luyện giảm Trong FLNN sự cần thiết của các tầng ẩn thay vào đó sử dụng các tập hàm để mở rộng đầu vào FLNN có khả năng học được những quan hệ phi tuyến tính giữa đầu vào và đầu ra khi sử dụng tập hàm mở rộng phù hợp
1 Jabari, Farkhondeh & Masoumi, Amin & Mohammadi-ivatloo, Behnamz (2017)
Trang 1717
Gần đây, mạng nơ-ron hồi quy (Recurrent Neural Network - RNN) cho thấy sự hữu ích đối với các bài toán có dữ liệu theo chuỗi thời gian Mạng nơ-ron hồi quy (RNN) khác biệt so với mạng nơ-ron truyền thẳng do cấu trúc mạng cho phép nhận vào một chuỗi thông tin và thông tin của các điểm trong chuỗi được nhớ và sử dụng tại các điểm sau
đó Trong thực tế mạng nơ-ron hồi quy (RNN) chỉ có thể nhớ được thông tin ở đầu chuỗi khi chuỗi có độ dài ngắn Nếu độ dài chuỗi dài mạng chỉ có thể sử dụng được thông tin của một vài điểm trước đó Để khắc phục nhược điểm này LSTM được đề xuất bởi Hochreiter và Schmidhuber (1997) LSTM có 3 cổng: cổng vào, cổng quên, cổng ra Cổng vào giúp ta chỉ định được bao nhiêu thông tin của đầu vào sẽ ảnh hưởng tới trạng thái mới Cổng quên thì giúp ta bỏ đi bao nhiêu lượng thông tin ở trạng thái trước đó Còn cổng
ra sẽ điều chỉnh lượng thông tin trạng thái trong có thể ra ngoài và truyền tới các nút mạng tiếp theo Với sự cải thiện này, RNN có khả năng nhận diện và học các phụ thuộc trong khoảng thời gian dài Mạng nơ-ron LSTM đã được sử dụng trong bài toán dự đoán tài nguyên đám mây, Jitendra 2 và các cộng sự đã đề xuất mô hình LSTM-RNN sử dụng dữ liệu lượng yêu cầu gửi đến máy chủ NASA
Trong những nghiên cứu nêu ra bao gồm các mô hình tuyến tính và mạng nơ-ron
để mô hình hóa và dự đoán, mặc dù có điểm mạnh và điểm yếu khác nhau, các phương pháp trên đã khá thành công trong các ứng dụng vào bài toán dự doán Gần đây trong công trình 3 cho biết SVM (Support Vector Machine) nhận được nhiều sự quan tâm trong giải quyết bài toán phân loại và dự đoán SVM được xây dựng bởi Vapnik và các đồng nghiệp của ông tại phòng nghiên cứu năm 1995 Ban đầu SVM được thiết kế để giải quyết bài toán phân loại, như nhận diện chữ cái, nhận diện khuôn mặt, phân loại văn bản
… Nhưng sau đó họ tìm ra có thể sử dụng để giải quyết trên rất nhiều các lĩnh vực khác như xấp xỉ hàm số và dự đoán sử dụng chuỗi dữ liệu Đặc tính đặc biệt nhất của SVM là
nó không chỉ thiết kế để có thể có kết quả phân loại tốt mà còn đưa ra một mô hình có
2 Jitendra Kumar (2017)
3 Ratnadip Adhikari (2013)
Trang 1818
tính tổng quát tốt hơn khi sử dụng với những dữ liệu không dùng để huấn luyện Trong SVM, lời giải của vấn đề chỉ phụ thuộc vào một tập con các điểm trong tập dữ liệu huấn luyện Vì lý do đó SVM đã trở thành một phương pháp phổ biến, đặc biệt là vấn đề dự đoán trong những năm gần đây Hiện nay Least-square SVM (LS-SVM) và Dynamic Least-square SVM (LSSVM) là 2 mô hình SVM phổ biến sử dụng trong dự đoán với chuỗi dữ liệu
1.3.2 Các mô hình dự đoán tuyến tính
Giả sử chuỗi giá trị theo thời gian có dạng 𝑌 = {𝑌1, 𝑌2, … , 𝑌𝑡} Sau đây xét một số mô hình tuyến tính hay dùng trong bài toán dự đoán4
1.3.2.1 Mô hình tự hồi quy (AR)
Gọi 𝑌𝑡 là giá trị cần dự đoán tại thời điểm thứ t Xét mô hình sau:
(𝑌𝑡 − 𝛿) = 𝛼(𝑌𝑡−1− 𝛿) + 𝑢𝑡Với 𝛿 là giá trị trung bình của Y, 𝑢𝑡 là một số hạng sai số ngẫu nhiên không tương quan,
có giá trị trung bình bằng 0 và phương sai không đổi (được gọi là yếu tố ngẫu nhiên thuần túy – white noise) thì có thể nói rằng 𝑌𝑡 tuân theo quá trình ngẫu nhiên tự hồi quy bậc nhất hay AR(1) Giá trị Y tại thời điểm t phụ thuộc vào giá trị tại các thời điểm trước
đó t – 1 và vào một yếu tố ngẫu nhiên Mô hình này cho biết giá trị dự báo của Y tại thời điểm t chỉ đơn giản tỉ lệ với giá trị tại thời điểm t – 1 cộng với một yếu tố ngẫu nhiên, các giá trị của 𝑌𝑡 được biểu diễn xung quanh giá trị trung bình của Y Nếu xét mô hình sau:
Trang 19𝑌𝑡 = 𝜇 + 𝛽0𝑢𝑡 + 𝛽1𝑢𝑡−1+ 𝛽2𝑢𝑡−2+ ⋯ + 𝛽𝑞𝑢𝑡−𝑞
Quá trình trung bình trượt là một sự kết hợp tuyến tính của các số hạng ngẫu nhiên thuần túy
1.3.2.3 Mô hình tự hồi quy và trung bình trượt (ARMA) 6
Đương nhiên có nhiều khả năng Y có đặc điểm của cả AR và MA và do vậy sinh ra mô hình ARMA là sự kết hợp của 2 mô hình trên 𝑌𝑡 tuân theo quá trình ARMA(1,1) nếu có thể viết dưới dạng
𝑌𝑡 = 𝜇 + 𝛼𝑌𝑡−1+ 𝛽0𝑢𝑡 + 𝛽1𝑢𝑡−1
𝜇 là hằng số, mô hình có một số hạng tự hồi quy và một số hạng trung bình trượt Tổng quát quá trình ARMA(p, q) với p số hạng hồi quy và q số hạng trung bình trượt có dạng sau:
Trang 2020
Các mô hình tuyến tính đã nêu đều dựa trên giả thuyết là chuỗi thời gian được sử dụng
có tính dừng Chuỗi thời gian có tính dừng khi giá trị trung bình, phương sai, hiệp phương sai giữ nguyên không đổi cho dù chuỗi được xác định vào bất cứ thời điểm nào Nhưng đôi khi chuỗi không có tính dừng Để đưa chuỗi về dạng có tính dừng cần phải áp dụng một số lượng phép tính sai phân sau đó sử dụng mô hình ARMA Mô hình ARIMA(p,
d, q) là mô hình trung bình trượt tự kết hợp, với p biểu thị số các số hạng tự hồi quy, d biểu thị số lần chuỗi thời gian phải được tính sai phân cho tới khi có tính dừng, q là số các số hạng trung bình trượt Với mô hình ARIMA(2,1,2) phải được tính sai phân một lần Khi d = 0 thì mô hình tương đương ARMA(p, q) và chuỗi thời gian ban đầu có tính dừng Mô hình ARIMA(p, 0, 0) là mô hình AR(p) với chuỗi thời gian có tính dừng, mô
hình ARIMA(0,0,q) là mô hình MA(q) với chuỗi thời gian có tính dừng
1.3.3 Phương pháp sử dụng mạng nơ-ron
Mạng nơ-ron nhân tạo (Artificial neural networks-ANN) là mô hình phân lớp phi tuyến tính, hình thành dựa trên mô phỏng lại cấu tạo và hoạt động của mạng nơ-ron sinh học (Biological neural networks-BNN) bên trong bộ não con người
Hiện nay mô hình mạng nơ-ron nhiều lớp (MLP) được cấu tạo gồm các tầng khác nhau Tầng đầu tiên được gọi là tầng đầu vào (input layer), tiếp nhận thông tin đầu vào Tầng cuối cùng là tầng đầu ra (output layer) chứa thông tin đầu ra Xen giữa tầng input
và output gồm các tầng khác, gọi là là các tầng ẩn (hidden layers) Các nút ở các layer
kề nhau thường được kết nối toàn bộ với nhau Hình 1 (trái) mô tả mạng nơ-ron truyền thẳng có 1 tầng ẩn, hình 1 (phải) mô tả mạng nơ-ron truyền thẳng có 2 tầng ẩn
Khi áp dụng vào bài toán dự đoán chuỗi thời gian, đầu vào mạng nơ-ron sẽ được biểu diễn dưới dạng 𝑥1, 𝑥2, … , 𝑥𝑝 là các giá trị gần nhất trước đó Mạng nơ-ron sẽ xấp xỉ hàm quan hệ giữa đầu vào xi và đầu ra thực tế yi
𝑦 = 𝑓(𝑥1, 𝑥2, … , 𝑥𝑝)
Trang 2121
Hay nói cách khác, với bài toán chuỗi thời gian, đầu vào của mạng sẽ là các giá trị gần nhất của dữ liệu và đầu ra sẽ là giá trị dự đoán tương lai Mạng ANN sẽ thực hiện hàm ánh xạ: 𝑦(𝑡 + 1) = 𝑓(𝑦𝑡, 𝑦𝑡−1, … , 𝑦𝑡−𝑝)
Hình 1: Mô tả mạng nơ-ron truyền thẳng
Trong đó y(t+1) là giá trị quan sát tại thời điểm t Qua đây ta có thể thấy mạng nơ-ron nhân tạo có thể tương đương với mô hình trung bình trượt không tuyến tính trong bài toán dự đoán chuỗi thời gian
1.4 Các kiến thức cơ sở
1.4.1 Mạng bộ nhớ dài ngắn (LSTM)
Mạng bộ nhớ dài ngắn (Long Short Term Memory Networks - LSTM) là một dạng đặc biệt của mạng nơ-ron hồi quy RNN, nó có khả năng học được các phụ thuộc xa LSTM được giới thiệu bởi Hochreiter & Schmidhuber (1997), và sau đó đã được cải tiến và phổ biến bởi rất nhiều người trong ngành Chúng hoạt động cực kì hiệu quả trên nhiều bài toán khác nhau nên dần đã trở nên phổ biến như hiện nay
Tất cả mạng hồi quy RNN đều có dạng là một chuỗi các mô đun lặp đi lặp lại của mạng ron Với mạng RNN chuẩn, mô đun này có cấu trúc rất đơn giản, thường là một tầng tanh
Trang 22nơ-22
LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng mô đun bên trong khác với mạng RNN chuẩn Thay vì chỉ có một tầng mạng nơ-ron, nó có tới 4 tầng mạng nơ-ron tương tác với nhau một cách đặc biệt
Hình 3: Mô đun lặp của mạng LSTM 4 tầng tương tác (nguồn [4])
8 https://colah.github.io/posts/2015-08-Understanding-LSTMs/
Trang 2323
Ý tưởng cốt lõi của LSTM:
Chìa khóa của LSTM là trạng thái tế bào (cell state), là đường chạy thông ngang phía trên sơ đồ hình vẽ dưới
Hình 4: Trạng thái tế bào
Trạng thái tế bào là một dạng giống băng truyền, chạy xuyên suốt tất cả các mắt xích (các nút mạng) và chỉ tương tác tuyến tính đôi chút Vì vậy mà các thông tin có thể dễ dàng truyền đi thông suốt mà không sợ bị thay đổi
LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái tế bào, chúng được điều chỉnh cẩn thận bởi các nhóm được gọi là cổng (gate) Các cổng là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi một tầng mạng sigmoid và một phép nhân Tầng sigmoid sẽ cho đầu ra là một số trong khoảng [0,1], mô tả có bao nhiêu
thông tin có thể được thông qua Khi đầu ra là 0 thì có nghĩa là không cho thông tin nào
đi qua cả, còn khi là 1 thì có nghĩa là cho tất cả các thông tin đi qua nó
Hình 5: Cổng
Trang 24rằng toàn bộ thông tin sẽ bị bỏ đi
Hình 6: Tầng cổng quên (Forget gate layer)
Bước tiếp theo là quyết định xem thông tin mới nào sẽ lưu vào trạng thái tế bào Việc này gồm 2 phần:
Đầu tiên là sử dụng một tầng sigmoid được gọi là “tầng cổng vào” (input gate layer) để quyết định giá trị nào ta sẽ cập nhật
Tiếp theo là một tầng tanh tạo ra một véc-tơ cho giá trị mới 𝐶̃ t nhằm thêm vào cho trạng thái Trong bước tiếp theo, ta sẽ kết hợp 2 giá trị đó lại để tạo ra một cập nhập cho trạng thái
Trang 2525
Giờ là lúc cập nhập trạng thái tế bào cũ 𝐶̃t-1 thành trạng thái mới C t Nhân trạng thái cũ với f t
để bỏ đi những thông tin ta quyết định quên lúc trước Sau đó cộng thêm i t∗𝐶̃t Trạng thái mới thu được này phụ thuộc vào việc quyết định cập nhập mỗi giá trị trạng thái ra sao
Hình 8: Trạng thái hiện tại
Cuối cùng, ta cần quyết định xem ta muốn đầu ra là gì Giá trị đầu ra sẽ dựa vào trạng thái tế bào, nhưng sẽ được tiếp tục sàng lọc Đầu tiên, ta chạy một tầng sigmoid để quyết định phần nào của trạng thái tế bào ta muốn xuất ra Sau đó, ta đưa nó trạng thái tế bào qua một
hàm tanh để cho giá trị nó về khoảng [1,1], và nhân nó với đầu ra của cổng sigmoid để được
giá trị đầu ra mong muốn
Trang 2626
Hình 9: Tầng ra (Output layer)
1.4.2 Mạng nơ-ron liên kết chức năng (FLNN)
Mạng nơ-ron liên kết chức năng (Functional Linked Neural Network - FLNN) là mạng nơ-ron loại bỏ sự cần thiết của các tầng ẩn trong mạng nơ-ron truyền thẳng Mạng nơ-ron này được tạo ra bởi Pao và đã thành công ứng dụng trong nhiều bài toán như hệ thống nhận dạng, hệ thống phân loại, hệ thống nhận dạng khuôn mẫu và các bài toán dự đoán Trong mô hình mạng nơ-ron FLNN tất cả các tầng ẩn được loại bỏ và thay vào đó chỉ sử dụng mạng nơ-ron chỉ có một tầng để có thể loại bỏ sự phức tạp của các tầng ẩn trong mạng nơ-ron truyền thẳng Tuy nhiên, khi loại bỏ các tầng ẩn này thì cấu trúc mạng thường thất bại trong việc tạo ra các mô hình trong đó quan hệ giữa đầu vào và đầu ra là phi tuyến tính Để có thể giải quyết được vấn đề này, FLNN được đề xuất sử dụng mạng nơ-ron một tầng kết hợp với một tập hàm số để mở rộng đầu vào giúp mạng tránh khỏi vấn đề tuyến tính trên
Giả sử x là tập dữ liệu với 𝑥(𝑘) = [𝑥1(𝑘), 𝑥2(𝑘), … , 𝑥𝐼(𝑘)] trong đó 𝑘 = 1, 2, … , 𝑁 là
số lượng điểm dữ liệu trong tập dữ liệu x, I là số đặc tính có trong một điểm dữ liệu 𝑥(𝑘)
và tập m hàm mở rộng đầu vào 𝑓 = {𝑓1( ), 𝑓2( ), … , 𝑓𝑚( )} Nếu bộ dữ liệu trên được
sử dụng là đầu vào cho mạng nơ-ron FLNN, thì mỗi giá trị 𝑥𝑖(𝑘) sẽ được mở rộng sử
Trang 27ra của điểm dữ liệu thứ k là:
𝑦̂(𝑘) = 𝐹(𝑤𝑥′(𝑘))
= 𝐹(∑ 𝑤𝑖𝑣𝑖
𝑁 𝑖=0
Trang 2828
Các tập hàm số thường sử dụng trong FLNN
Trong mạng nơ-ron FLNN tập hàm mở rộng sử dụng đóng một vai trò quan trọng ảnh hưởng lớn đến hiệu năng của mạng Khi mạng nơ-ron FLNN được đề xuất tác giả cũng
đề xuất một phương pháp để mở rộng đầu vào Giả sử vector đầu vào là 𝑥, ta có 𝑥𝑖 có thể mở rộng thành 𝑥𝑖𝑥𝑗, 𝑥𝑖𝑥𝑗𝑥𝑘, 𝑥𝑖𝑥𝑗𝑥𝑘𝑥𝑙 … trong đó 𝑖 ≤ 𝑗 ≤ 𝑘 ≤ 𝑙 Ví dụ khi đầu vào
Tuy rằng cách mở rộng trên được sử dụng nhưng tùy bài toán cần giải quyết các tập hàm khác có thể cho kết quả tốt hơn Sau đây là một số tập hàm mở rộng phổ biến hay được
sử dụng 10
a) Chebyshev
Hàm Chebyshev được biết đến với khả năng có thể xấp xỉ các hàm không tuyến tính nên đã có đề xuất kết hợp hàm này với mạng FLNN và gọi mạng nơ-ron đó
9 Ganapati Panda, Debi Prasad Das (2003)
10 Dwiti Krishna Bebarta và Birendra Biswal (2012)
Trang 29Hàm Legendre có 𝐿0 = 1, 𝐿1 = 𝑥 các giá trị tiếp theo tính công thức sau:
Các giá trị tiếp theo được tính như công thức:
Tìm trọng số mạng FLNN sử dụng giải thuật lan truyền ngược
Giải thuật lan truyền ngược sai số là một phương pháp phổ biến được sử dụng để huấn luyện mạng nơ-ron được sử dụng kết hợp với một phương pháp tối ưu như gradient descent Thuật toán học lan truyền ngược có thể được chia thành hai giai đoạn
Giai đoạn 1 đầu vào được đưa vào mạng và thông qua các tính toán tính ra các giá trị tại tầng đầu ra