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

Ứng Dụng Random Forest Nhận Dạng Lỗi Cho Cloud Computing Iaas (LV thạc sĩ)

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.8 MB, 49 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN VĂN QUÝ

ỨNG DỤNG RANDOM FOREST NHẬN DẠNG LỖI CHO
CLOUD COMPUTING IAAS

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

THÀNH PHỐ HỒ CHÍ MINH - 2017


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN VĂN QUÝ

ỨNG DỤNG RANDOM FOREST NHẬN DẠNG LỖI CHO
CLOUD COMPUTING IAAS

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

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. TRẦN CÔNG HÙNG

THÀNH PHỐ HỒ CHÍ MINH - 2017




i


i

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả
nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công
trình nào khác.

Tp. Hồ Chí Minh, ngày….tháng….năm 2017
Học viên thực hiện luận văn

Nguyễn Văn Qúy


ii

LỜI CẢM ƠN


Tôi xin gửi lời cảm ơn chân thành nhất đến Thầy PGS.TS Trần Công Hùng,
người đã tận tình hướng dẫn, hỗ trợ và giúp đỡ tôi rất nhiều trong nghiên cứu luận
văn. Thầy đã đưa ra những định hướng, nhận xét và góp ý quý giá để luận văn này
được hoàn thành tốt nhất. Cùng với đó là sự hướng dẫn tận tình, góp ý và định
hướng luận văn nghiên cứu của ThS. Bùi Thanh Khiết, anh đã dõi theo và giúp đỡ
rất nhiều trong quá trình thực hiện luận văn.
Kính gửi lời cảm ơn sâu sắc đến quý Thầy, Cô giảng viên trong thời gian qua

đã nhiệt tình giảng dạy và truyền đạt những kiến thức chuyên môn cần thiết trong
quá trình tôi được học tập tại Học viện Công nghệ Bưu chính Viễn thông – Cơ sở II,
Thành phố Hồ Chí Minh.
Xin gửi lời cảm ơn sâu sắc đến Ban giám đốc Học viện Bưu chính Viễn
thông, Cán bộ Phòng Đào tạo của trường đã nhiệt tình giúp đỡ và tạo điều kiện
thuận lợi để tôi có được môi trường học tập tốt và hoàn tất khóa học.
Xin gửi lời biết ơn vô hạn đến gia đình đã không ngừng quan tâm, động viên,
ủng hộ về mặt tinh thần lẫn vật chất trong suốt thời gian tôi tham gia khóa học và
thực hiện luận văn này.
Cảm ơn các anh chị đồng nghiệp, bè bạn lớp Cao học Hệ thống thông tin
khóa 2015-2017 đã giúp đỡ và đồng hành cùng tôi trong những năm tháng học tập
tại nhà trường.
Tp. Hồ Chí Minh, ngày….tháng….năm 2017
Học viên thực hiện luận văn

Nguyễn Văn Qúy


iii

MỤC LỤC
LỜI CAM ĐOAN.............................................................................................. i
LỜI CẢM ƠN ................................................................................................... ii

MỤC LỤC ...................................................................................................... iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT .......................................... v
DANH MỤC CÁC HÌNH VẼ............................................................................ v
DANH SÁCH BẢNG ..................................................................................... vii
MỞ ĐẦU......................................................................................................... 1
CHƯƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG LỖI TRONG CLOUD .............. 3

1.1. Giới thiệu .................................................................................................. 3
1.1.1. Dịch vụ cơ sở hạ tầng IaaS ...................................................................... 3
1.1.2. Lỗi trong cloud IaaS ................................................................................ 4
1.2. Một số phương pháp nhận dạng lỗi trên điện toán đám mây ........................... 5
1.3. Các tham số đo lường các phương pháp nhận dạng lỗi cho cloud computing ... 8
1.4. Kết luận Chương 1 ..................................................................................... 8
CHƯƠNG 2 - THUẬT TOÁN RANDOM FOREST ........................................... 9
2.1. Nguồn gốc ra đời của thuật toán ................................................................. 9
2.2. Thuật toán Random Forest ........................................................................ 9
2.2.1. Giới thiệu thuật toán Random Forest ........................................................ 9
2.2.2. Lịch sử của thuật toán Random Forest .................................................... 10
2.2.3. Thuật toán Random Forest..................................................................... 10
2.2.4. Đặc tính của thuật toán Random Forest................................................... 11
2.2.5. Tóm tắt giải thuật .................................................................................. 12
2.2.6. Đặc điểm của Random Forest ................................................................. 13
2.2.7. Mô hình phân lớp với Random Forest...................................................... 14
2.3. Các độ đo đánh giá thuật toán phân loại: .................................................... 14


iv

2.3.1. Tiêu chí ROC ....................................................................................... 14
2.3.2. Tiêu chí CE .......................................................................................... 15
2.4. Kết luận chương 2 .................................................................................... 16
CHƯƠNG 3 - SỬ DỤNG RANDOM FOREST DỰ ĐOÁN LỖI GOOGLE
CLUSTER ..................................................................................................... 17
3.1. Tổng quan về Google cluster ..................................................................... 17
3.1.1. Kỹ thuật cluster ..................................................................................... 17
3.1.2. Google cluster trace .............................................................................. 20
3.2. Xây dựng tập dữ liệu dataset .................................................................... 22

3.3 Kỹ thuật phân lớp...................................................................................... 26
3.4. Kết luận chương 3 .................................................................................... 30
CHƯƠNG 4 - ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC VÀ PHƯƠNG HƯỚNG
PHÁT TRIỂN ................................................................................................ 31
4.1. Các kết quả đạt được: ............................................................................... 31
4.1.1. Môi trường thực nghiệm ........................................................................ 31
4.1.2. Đánh giá dựa theo các độ đo................................................................... 32
4.1.3 Kết quả tổng thể ....................................................................................355
4.2. Phương hướng phát triển..........................................................................355
KẾT LUẬN………………………………………………………...………………37
DANH MỤC TÀI LIỆU THAM KHẢO..........................................................388


v

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

IaaS

Infrastructure as a Service Hạ tầng như một dịch vụ

ML

Maching learning

Kỹ thuật máy học


RF

Random Forest

Rừng ngẫu nhiên

CPU

Central Processing Unit

Bộ xử lý trung tâm

HDD
RAM

Hard Disk Drive
Random Access Memory

QoS
f(z)

Quality of Service
Logistic Function

Ổ cứng
Bộ nhớ truy cập ngẫu
nhiên
Chất lượng dịch vụ
Hàm mục tiêu


{⊖k}

Vectors

Tập các véctơ

TP

True Postisive

Dương tính thật

FN

False negatives

Âm tính giả

TPR

True positive rates

Tỉ lệ Dương tính thật

FPR

False positive rates

Tỉ lệ Âm tính thật


TN
ROC

True negatives
Receiver operating
characteristic
Cost effectiveness

Dương tính giả
Đường cong ROC

PR

The area under a ROC
Curve
Precision-Recall

Khu vực dưới đường
ROC
Dự đoán- Độ phủ

AUPR

The area under a PR

Khu vực dưới đường PR

CSV

Comma Separated Values


Định dạng tập tin

CPI

Cycles per instruction

Chu kỳ theo hướng dẫn

MAI
SD

Memory access per
instruction extracted
Standard deviation

Truy cập bộ nhớ cho mỗi
lệnh trích ra
Độ lệch chuẩn

CV

Coefficient of variation

Hệ số biến thể

BQ

Big Query


Truy vấn Cơ Sở Dữ Liệu

TTR

Time to remove

Thời điểm xóa

CE
AUROC

Tiếng Việt

Hiệu quả chi phí


vi

DANH MỤC CÁC HÌNH VẼ
Hình 1.1. Kiến trúc dịch vụ cơ sở hạ tầng ........................................................... 1
Hình 2.1. Mô hình phân lớp ............................................................................. 12
Hình 3.1. Trạng thái dịch chuyển giữa các job và các task .................................. 20
Hình 3.2. Biểu đồ CPU kể từ lúc bắt đầu theo dõi .............................................. 23
Hình 3.3. Phương pháp xác nhận chéo. ............................................................. 26
Hình 4.1. AUROC và AUPR trong các lần đánh giá .......................................... 29
Hình 4.2. Biểu đồ đánh giá lần chạy thứ 4 cho kết quả xấu nhất .......................... 31
Hình 4.3. Biểu đồ đánh giá lần chạy thứ 14 cho kết quả xấu nhất ........................ 31
Hình 4.4. Ngưỡng dao động giữa FAIL và SAFE .............................................. 33



vii

DANH SÁCH BẢNG
Bảng 3.1. Thời gian chạy của BigQuery .......................................................... 20
Bảng 3.2. Quy mô tập huấn và kiểm tra đối với dữ liệu huấn luyện .................... 30


1

MỞ ĐẦU
Trong những năm gần đây, Điện toán đám mây đã đang phát triển chóng mặt
đạt được nhiều thành tựu về mặt nghiên cứu và ứng dụng thực tế. Vào năm 2008,
Amazon đẩy mạnh nghiên cứu và triển khai Điện toán đám mây. Tiếp bước đó, các
tập đoàn lớn như Microsoft, Google, IBM,… thúc đẩy Điện toán đám mây phát
triển nhanh chóng. Hiện nay đã có rất nhiều nhà cung cấp dịch vụ cloud IaaS
(Infrastructure as a Service) cung cấp cho rất nhiều khách hàng. Một trong những
vấn đề quan trọng phải quan tâm khi xây dựng cũng như cung cấp dịch vụ điện toán
đám mây là tính sẵn sàng của dịch vụ. Một dịch vụ Iaas tốt phải có khả năng nhận
diện và phản ứng kịp thời để đảm bảo tính thông suốt cũng như chất lượng dịch vụ
khi có sự cố. Từ đó đặt ra nhu cầu cần phải xây dựng một hệ thống nhận diện lỗi
(fault detection) chính xác để xây dựng một hệ thống kháng lỗi (fault tolerance)
hiệu quả.
Bên cạnh đó việc tiếp tục dựa vào sự điều hành trực tiếp từ con người để
quản lý các trung tâm dữ liệu là một trở ngại lớn vì quy mô cơ sở dữ liệu của các hệ
thống ngày càng lớn. Các hệ thống máy tính trên điện toán đám mây nói chung và
các trung tâm dữ liệu nói riêng có xu hướng dần được quản lý bởi các mô hình tính
toán và mô hình thực thi dự đoán và quản lý tự động. Sự can thiệp của con người sẽ
được giới hạn ở cấp cao như đặt mục tiêu và quản lý các chính sách cấp cao hơn và
việc thực thi ở dưới sẽ do hệ thống tự động điều khiển quyết định. Việc tự động hóa
dữ liệu sẻ quản lý và kiểm soát dữ liệu dựa trên các mô hình dự đoán tổng thể, các

mô hình này được xây dựng và cập nhật bằng các dữ liệu có sẵn trước đó. Điều này
sẽ hỗ trợ rất lớn trong việc quản lý hệ thống. Đây sẽ là thách thức mới cho các nhà
nghiên cứu.
Dựa trên lĩnh vực nghiên cứu này, mục tiêu và phạm vi nghiên cứu của luận
văn là ứng dụng kĩ thuật học máy (maching learning), cụ thể là thuật toán Random
Forest để xây dựng mô hình dự đoán lỗi máy cho hệ thống Google Cluster (một
Cloud Computing lớn) dựa trên bộ dữ liệu công bố của Google được thu thập trong
một cụm gồm hơn 12000 máy chủ với mục đích xây dựng và đánh giá mô hình dự
báo lỗi của các máy chủ trong cụm máy chủ.


2

Nội dung luận văn gồm 4 chương:
-

Chương 1: Tổng quan về nhận dạng lỗi trên cloud computing

-

Chương 2: Thuật toán Random Forest

-

Chương 3: Sử dụng Random Forest dự báo lỗi cho Google cluster

-

Chương 4: Đánh giá kết quả đạt được và phương hướng phát triển



3

CHƯƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG LỖI
TRONG CLOUD
1.1. Giới thiệu
1.1.1. Dịch vụ cơ sở hạ tầng IaaS [1]
IaaS cloud được dùng để cung cấp hạ tầng ảo (infrastructure) cho người
dùng, giúp cho người dùng sử dụng dịch vụ theo nhu cầu một cách tự động. Nhà
cung cấp dịch vụ sẽ triển khai hạ tầng ảo trên các hệ thống phân tán, cung cấp thêm
một hoặc nhiều dịch vụ để đảm bảo các tính năng của IaaS và đảm bảo chất lượng
dịch vụ. Điều này hơn hẳn việc cho thuê máy chủ, không gian luu trữ hay thiết bị
mạng, máy trạm. Những dịch vụ này thông thường được tính chi phí trên cơ sở tính
toán chức năng và lượng tài nguyên sử dụng. Những đặc trưng tiêu biểu: cung cấp
tài nguyên điện toán như dịch vụ bao gồm cả máy chủ, thiết bị mạng, bộ nhớ, CPU,
không gian đĩa cứng, trang thiết bị trung tâm dữ liệu…; chi phí thay đổi tùy theo
nhu cầu thực tế; nhiều người thuê có thể cùng dùng chung, chia sẻ tài nguyên điện
toán trên cùng một hệ thống; linh động trong xử lý lỗi; linh động trong vận hành và
kiểm soát, thay đổi phần cứng. Sau đây là kiến trúc của dịch vụ cơ sở hạ tầng:

Hình 1.1: Kiến trúc dịch vụ cơ sở hạ tầng


4

Trong đó
 Cụm máy vật lý: 1 cụm máy vật lý gồm nhiều máy chủ vật lý
 Máy chủ vật lý: được triển khai công nghệ ảo hóa để thực thi các máy chủ ảo
 Cơ sở dữ liệu: nơi lưu trữ thông tin cụm máy vật lý, máy chủ vật lý, máy chủ ảo,
các gói dịch vụ;

Hệ thống quản lý ảo hóa tập trung: đây là phần cốt lỗi của hệ thống, đảm bảo
việc vận hành hệ thống được thông suốt từ trên giao diện người dùng xuống tới máy
chủ vật lý bên dưới.
 Giao diện điện toán đám mây: đây là giao diện Web cung cấp cho người dùng
khả năng quản lý máy ảo, cung cấp cho nhà cung cấp dịch vụ khả năng quản lý
hệ thống tập trung cả hệ thống máy chủ vật lý, máy ảo, mạng ảo. Được hiện thực
dựa trên công nghệ dịch vụ web.

1.1.2. Lỗi trong cloud IaaS
Lỗi trong IaaS có thể được phân loại dựa vào vị trí xuất hiện, vị trí
module chức năng. Lỗi có thể xuất hiện từ phần cứng vật lý, xuất hiện trong máy
chủ ảo hóa, hoặc trong các máy ảo….
Lỗi trong điện toán đám mây có các khái niệm như sau [2-4]:
 Fault: là một điều kiện bất thường trong một hoặc nhiều thành phần của hệ
thống. Một fault có thể hoặc không thể là nguyên nhân làm hệ thống không
thực thi theo như thiết kế ban đầu.
 Error: là sự trái ngược nhau giữa lý thuyết và thực tế của một thành phần bên
trong hệ thống khi hệ thống được thực thi. Một Error có thể là nguyên nhân
hệ thống không thực thi theo như thiết kế ban đầu.
 Failure: là trạng thái của hệ thống thực thi không đúng như thiết kế ban đầu.
Một cách hiểu khác cụ thể hơn, lỗi trên điện toán đám mây có thể là các
loại lỗi [5]:
 Lỗi mạng (Network fault): lỗi liên quan tới mạng lưới như: bị cô lập mạng,
mất gói, gói tin lỗi, đích đến mất kết nối, lỗi link….
 Lỗi do phần cứng: Loại lỗi do các thiết bị phần cứng của server gây ra như:
lỗi nguồn, lỗi CPU, lỗi RAM, HDD, storage, CPU fan, mainboard, ...


5


 Lỗi truyền tải media: lỗi do media bị lỗi trong quá trình truyền hoặc nhận.
 Lỗi bộ xử lý: lỗi xảy ra trong bộ xử lý vì hệ điều hành bị lỗi.
 Lỗi tiến trình: Một lỗi do hết tài nguyên hoặc lỗi của phần mềm.
 Lỗi dịch vụ hết hạn: hết thời gian phục vụ của một tài nguyên trong khi ứng
dụng đang dùng nó. Lỗi xảy ra trong suốt quá trình tính toán trên tài nguyên
hệ thống có thể được phân loại như: lỗi bỏ sót, lỗi định thời, lỗi trả lời và lỗi
crash.
Còn có thể phân loại lỗi dựa vào thời gian như:
 Lỗi lâu dài (permanent): lỗi xảy ra như do bị đứt dây mạng, nguồn điện bị
mất, thảm họa…. Đặc điểm của loại lỗi này là dễ tái tạo lại lỗi. Những lỗi
này có thể gây ra những hậu quả lớn cho hệ thống hoặc là làm cho một phần
hệ thống hoạt động không như mong đợi.
 Những lỗi gián đoạn: là những lỗi hiếm khi xuất hiện. Hầu hết những lỗi này
được bỏ qua trong hệ thống thử nghiệm và chỉ xuất hiện khi hệ thống có tải.
Vì vậy khó dự đoán sự thiệt hại của những lỗi này có thể gây ra.
 Lỗi tạm thời: Những lỗi xảy ra bởi một vài lỗi vốn có từ trước, tuy nhiên,
những lỗi này được sửa sai bằng cách cố gắng roll back hệ thống đến trạng
thái trước đó như là khởi động lại phần mềm hoặc gửi một thông báo [6,7].
Từ những khái niệm lỗi trên đã có những nghiên cứu về phương pháp
nhận dạng lỗi cho ĐTĐM như: sử dụng phương pháp phân lớp (classification) và
phương pháp suy luận (inference). Trong luận văn này sẽ tập trung nghiên cứu
phương pháp phân lớp trong lĩnh vực học máy (maching learning) để ứng dụng
nhận dạng lỗi cho điện toán đám mây, cụ thể ứng dụng thuật toán Random Forest.

1.2. Một số phương pháp nhận dạng lỗi trên điện toán đám mây
Có một số cách tiếp cận khác nhau trong việc dự đoán một thành phần nào
đó của hệ thống phần mềm có lỗi hay không. Do luận văn chỉ tập trung vào cách
tiếp cận dựa trên học máy nên trong phần này sẽ giới thiệu ngắn gọn về một số
phương pháp học máy có thể sử dụng để nhận dạng lỗi trên cloud computing.



6

1.2.1. Phương pháp ứng dụng cây quyết định [8]
Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự đoán
(predictive model), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới
các kết luận về giá trị mục tiêu của sự vật/hiện tượng. Kỹ thuật học máy dùng trong
cây quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn
gọn là cây quyết định.
Cây quyết định là cây mà những nút bên trong của nó bao gồm việc kiểm
tra một thuộc tính xác định và những nút lá của nó đưa ra sự phân lớp mà được áp
dụng cho tất cả các mẫu đạt đến nút lá, hoặc một tập của sự phân lớp, hoặc một xác
xuất phân tán qua tất cả các lớp có thể. Để phân lớp cho một mẫu chưa biết, nó
được định tuyến xuống dưới cây dựa theo giá trị của thuộc tính được kiểm tra lần
luợt theo các nút, và khi một nút lá được tìm thấy một mẫu được phân lớp dựa theo
lớp mà được gán cho nút lá. Cây quyết định cũng là một phương tiện có tính mô tả
dành cho việc tính toán các xác suất có điều kiện. Thuật toán cây quyết định là một
trong các thuật toán mà được sử dụng rộng rãi nhất trong các thuật toán học máy
trong việc xây dựng các mẫu phân lớp từ các nguồn dữ liệu. Nó có thể được chọn
cho việc thu thập những tri thức và tạo những quy tắc quyết định từ kho lưu trữ dữ
liệu dựa trên một vài đặc điểm sau:
 Cây quyết định có thể được chọn để tạo các quy tắc dễ hiểu.
 Đạt đến sự phân lớp mà không cần những tính toán chuyên sâu.
 Có thể được chọn để làm việc với cả những biến liên tục và biến phân
loại,cung cấp sự định hướng rõ ràng, và phạm vi nào là quan trọng
nhất cho việc dự đoán hoặc phân lớp.
 Tự động lựa chọn thuộc tính tương ứng.
 Có thể sử dụng truy vấn SQL để truy cập cơ sở dữ liệu.
 Khi thực hiện phân lớp thì độ chính xác cũng có thể được so sánh với
các phương pháp khác.



7

1.2.2. Kỹ thuật hồi quy logistic (logistic regression)
Trong thống kê, hồi quy logistic (mô hình logit) được sử dụng cho dự
đoán khả năng xuất hiện lỗi của một hệ thống bằng một hàm logit. Kỹ thuật hồi quy
logit được phát triển trong những năm 1970 mô hình tuyến tính tổng quát hóa sử
dụng cho hồi quy nhị phân (chỉ có 2 giá trị). Giống như các dạng của phân tích hồi
quy, hồi quy tuyến tính tạo ra vài biến dự đoán mà có thể là số hoặc tên thể loại.
Hồi quy logit là một kiểu hồi quy mà các biến phụ thuộc là nhị phân hoặc số.Ví dụ:
một người bị đau tim trong một khoảng thời gian thời gian cụ thể có thể được dự
đoán dựa trên những hiểu biết về tuổi, giới tính, chỉ số cơ thể. Thuật toán hồi quy
logit được sử dụng rộng rãi trong các ngành y tế, xã hội hoặc các ứng dụng kinh
doanh tiếp thị, ví dụ như dự đoán xu hướng khách hàng sẽ mua sản phẩm nào hoặc
không mua sản phẩm nào trong năm. Hàm logit f(z) có dạng:

1.2.3. Kỹ thuật mạng nơ ron (neural net works)
Mạng nơ ron nhân tạo (Artificial neural network – ANN) là một mô
phỏng xử lý thông tin, được nghiên cứu ra từ hệ thống thần kinh của sinh vật, giống
như bộ não để xử lý thông tin. Nó bao gồm số lượng lớn các mối gắn kết cấp cao để
xử lý các yếu tố làm việc trong mối liên hệ giải quyết vấn đề rõ ràng. Thuật toán máy
tính mô phỏng các kiến trúc sinh học này thường được gọi là mạng nơron nhân tạo
để phân biệt với các phần mềm trong cơ thể động vật. ANNs hoạt động giống như bộ
não con người, được học bởi kinh nghiệm, lưu những kinh nghiệm hiểu biết và sử
dụng trong những tình huống phù hợp. Đầu tiên ANN được giới thiệu năm 1943 bởi
nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits. Mạng nơron hoạt
động dựa trên nguyên lý học máy. Thông qua các mẫu có sẵn và tập mục tiêu (với
phương pháp học có thầy) để đưa ra kết luận khi có một mẫu mới được đưa vào.
Mạng nơron nhân tạo là một kỹ thuật mô phỏng lại bộ não và hệ thần kinh của con

người. Nó cũng có khả năng học từ các kinh nghiệm trong quá khứ, tổng quát hóa
các kinh nghiệm này để đưa ra một nhận định mới nhờ rút ra được các đặc trưng cơ


8

bản của tập mẫu. Các việc này được thực hiện thông qua việc xử lý tín hiệu giữa các
nơron cùng với các trọng số của chúng.

1.3. Các tham số đo lường các phương pháp nhận dạng lỗi cho cloud
computing
Các phương pháp, thuật toán nhận dạng lỗi đã có trước đây trong cloud
computing thường xem xét các tham số khác nhau như: thông lượng (throughput),
thời gian phản hồi (response-time), khả năng mở rộng, hiệu năng, khả năng sẵn sàng,
độ khả dụng, độ tin cậy, độ an toàn, và phí tổn kết hợp [9]:
 Thông lượng (throughput): nó định nghĩa số lượng tác vụ đã được hoàn thành.
Hệ thống tốt thì thông lượng càng có giá trị cao.
 Thời gian phản hồi: thời gian phản hồi, đáp ứng của thuật toán, giá trị này
càng thấp càng tốt.
 Khả năng mở rộng: Số lượng node trong hệ thống mà thuật toán kháng lỗi còn
có thể hoạt động tốt. - Hiệu năng: tham số này kiểm tra sự ảnh hưởng về hiệu
năng của hệ thống khi áp dụng thuật toán. Hiệu năng của hệ thống cần được
cải thiện với một chi phí hợp lý.
 Độ sẵn sàng: độ sẵn sàng của hệ thống là một yếu tố ảnh hưởng đến độ tin cậy.
 Độ khả dụng: khả năng kết hợp với các sản phẩm khác một cách hiệu quả và
dễ dàng.
 Độ tin cậy: xem xét khả năng đạt được kết quả chính xác hoặc chấp nhận được
trong một khoảng thời gian.
 Phí tổn kết hợp: (overhead associated): là phí tổn trong khi thực thi những tác
vụ, tiến trình trong thuật toán. Phí tổn có thể được gây ra bởi các tiến trình di

chuyển dữ liệu, trong nội tại tiến trình và trong nội tại bộ xử lý. Một thuật toán
kháng lỗi hiệu quả thì phí tổn phải nhỏ.

1.4. Kết luận Chương 1
Trong chương này đã tổng quan được các định nghĩa về lỗi, kiến trúc dịch
vụ cơ sở hạ tầng điện toán. Tổng quát được một số phương pháp nhận dạng lỗi trên
cloud computing có liên quan đến luận văn. Từ đó để nắm được nền tảng để ứng
dụng thuật toán khác để giải quyết vấn đề bài toán đặt ra.


9

CHƯƠNG 2 - THUẬT TOÁN RANDOM FOREST
2.1. Nguồn gốc ra đời của thuật toán
Trong lĩnh vực nghiên cứu về khai phá dữ liệu nói chung cũng như trong
nghiên cứu về các thuật toán phân lớp nói riêng, vấn đề xử lý dữ liệu lớn ngày càng
trở thành vấn đề cấp thiết và đóng vai trò chủ đạo trong việc giải quyết các bài toán
thực tế. Phần lớn các thuật toán phân lớp đã phát triển chỉ có thể giải quyết với một
số lượng dữ liệu có hạn cũng như với một độ phức tạp dữ liệu giới hạn được. Trong
khi đó dữ liệu thu được càng trở nên đa dạng phong phú nhờ sự phát triển mạnh mẽ
của khoa học. Mặc dù kỹ thuật cây quyết định là công cụ khai phá dữ liệu mạnh
trong lĩnh vực học máy tuy nhiên kỹ thuật này không hoàn toàn hoàn hảo và thích
hợp với một số loại vấn đề. Các cây phân loại dữ liệu có thể ổn định và có sự biên
đổi nhỏ (các biến đổi này được tạo ra một cách ngẫu nhiên) có thể là cơ sở cho sự
khác nhau của các cây tìm kiếm được sinh ra. Đây là đặc điểm đặc biệt trong các
trường hợp mà các chia tách tối ưu cho các biến khác nhau gần với các biến khác về
mặt giá trị. Trong tường hợp này, một biến đổi nhỏ về mặt dữ liệu cũng đủ gây ảnh
hưởng tới việc lựa chọn trong việc phân tách các giá trị khác.

2.2. Thuật toán Random Forest [10-11]

2.2.1. Giới thiệu thuật toán Random Forest
Thuật toán RF - Random Forest là một thuật toán đặc biệt dựa trên kỹ
thuật lắp ghép, Về bản chất thuật toán RF được xây dựng dựa trên nền tảng thuật
toán phân lớp cây phân loại và hồi quy, sử dụng kỹ thuật có tên gọi là “bagging”
[12]. Thuật toán này cho phép lựa chọn một nhóm nhỏ các thuộc tính tại mỗi nút
của cây để phân chia cho mức tiếp theo của cây phân lớp. Bằng cách chia nhỏ
không gian tìm kiếm thành các cây nhỏ hơn như vậy cho phép thuật toán có thể
phân loại một cách rất nhanh chóng cho dù không gian thuộc tính rất lớn. Các tham
số đầu vào của thuật toán khá đơn giản bao gồm các thuộc tính được chọn trong mỗi
lần phân chia. Giá trị mặc định của tham số này là căn bậc hai của p với p là số
lượng các thuộc tính. Số lượng cây được tạo ra là không hạn chế và cũng không sử
dụng bất kỳ kỹ thuật nào để hạn chế mở rộng cây. Phải lựa chọn tham số cho biết số
lượng cây sẽ được sinh ra sao cho đảm bảo rằng sẽ mỗi một thuộc tính sẽ được


10

kiểm tra một vài lần. Thuật toán sử dụng kỹ thuật “out of bag” để xây dựng tập
huấn luyện và phương pháp kiểm tra trên nó [13].

2.2.2. Lịch sử của thuật toán Random Forest
Thuật toán tạo một rừng ngẫu nhiên được phát triển bởi Leo
Breiman và Adele Cutler, thuật ngữ Random Forest được lấy làm tên phổ
biến cho thuật toán này. Thuật ngữ RF được xuất lần đầu tiên năm 1995,
sau đó kết hợp với phương pháp “bagging” trong lựa chọn các thuộc tính ngẫu
nhiên của Leo Breiman năm 1996 để xây dựng phương pháp chọn các cây quyết
theo các thay đổi có thể kiểm soát được. Năm 2001 Breiman xây dựng thuật toán
RF có bổ sung thêm một lớp ngẫu nhiên để phân lớp. Ngoài việc xây dựng mỗi cây
sử dụng các mẫu dữ liệu khác nhau, các rừng ngẫu nhiên được thay đổi để xây dựng
các cây phân loại và hồi quy khác nhau. Các gói thư viện cài đặt thuẩt toán RF được

xây dựng bằng ngôn ngữ Fortran bởi Leo Breiman và Cutler có thể tham khảo tại
đường dẫn: ( />
2.2.3. Thuật toán Random Forest
Về cơ bản thuật toán Random Forest (RF) – rừng ngẫu nhiên dựa trên kỹ
thuật cây quyết định. Ý tưởng của RF chúng ta có thể liên tưởng tới việc bầu cử
theo nguyên tắc phổ thông đầu phiếu. Nếu sử dụng một cây quyết định chẳng khác
nào việc bầu cử mà chỉ có 1 người bỏ phiếu. Việc sinh các cây quyết định từ một
mẫu dữ liệu nhằm đa dạng hoá các “phiếu bầu” (giống như việc mọi thành phần,
tầng lớp, giai cấp đều được đi bỏ phiếu) cho kết luận. Việc áp dụng các kỹ thuật
sinh ra các mẫu dữ liệu hay việc lựa chọn rẽ nhánh ngẫu nhiên sẽ tạo ra các cây “dị
tật” trong rừng (giống việc cho phép công dân không cần phân biệt trình độ học
vấn, sức khỏe... đi bầu cử). Càng nhiều loại hình, càng nhiều phiếu bầu sẽ cung cấp
cho chúng ta cái nhìn đa chiều, chi tiết hơn và do đó kết luận sẽ có tính chính xác,
gần với thực tế hơn.
Định nghĩa: Một RF là một bộ phân loại gồm một tập các bộ phân loại có câu hình
cây{h(x, ⊖k), k=1,…} trong đó {⊖k} là các vecto ngẫu nhiên, độc lập, có cùng
phân bố xác suất, mỗi cây bầu cử một phiếu cho lớp phổ biến nhất tại đầu vào x [5].


11

2.2.4. Đặc tính của thuật toán Random Forest
Đối với rừng ngẫu nhiên, cận trên sẽ bắt nguồn cho các lỗi phát sinh dưới
dạng hai tham số, là cách xác định tính chính xác (Strength - Accuracy) và tính
tương quan (hay còn gọi là độ nhạy - Correlation) của các bộ phân loại riêng lẻ có
trong rừng ngẫu nhiên.
Hàm tương quan như sau:
Công thức thể hiện sự dao động của mr như sau:

Hàm tính độ chính xác như sau:


Giả sử s ≥0 ta có bất đẳng thức sau:

Công thức thể hiện sự dao động của mr như sau:
Nếu

Thì:

Như vậy: trong rừng ngẫu nhiên, hai tiêu chí đánh giá phương pháp phân
loại là: tính chính xác của từng cây và tính tương quan giữa các cây trong rừng tỷ lệ
nghịch với nhau. Nếu tính tương quan giữa các cây trong rừng càng cao thì độ chính
xác sẽ giảm. Độ chính xác và độ nhạy nếu đứng tách nhau thì không có ý nghĩa. Hai
độ đo này có sự tương quan nghịch: độ chính xác càng cao thì độ nhạy càng thấp và
ngược lại. Khi độ chính xác hoặc độ nhạy đạt giá trị tối thiểu thì cũng là lúc hệ
thống mất khả năng phân loại. Vì vậy người ta phải kết hợp hai độ đo trên trong một
độ đo thống nhất, vấn đề đặt ra là làm sao để có thể cân bằng hai tham số này khi
thực hiện phân loại để đạt hiệu quả cao nhất. Theo công thức độ chính xác là tỷ lệ
phần trăm các lớp phân loại đúng hoặc các lớp phân loại không lỗi: (TP/ (TP + FP)).
Độ nhạy là tỷ lệ phần trăm các lớp phân loại sai hoặc các lớp phân loại lỗi: (TP/ (TP
+ FN)). Ta có bảng mô tả mối tương quan hai tiêu chí này như ở dưới.


12

Trong đó:
 TPi là số lượng mẫu được phân loại đúng, và được phân vào lớp ci.
 FPi là số lượng mẫu bị phân loại sai, và được phân vào lớp ci.
 FNi là số lượng mẫu có nhãn thực là ci nhưng không được phân vào lớp ci.
 TNi là số lượng mẫu có nhãn thực khác ci và không được phân vào lớp ci.
Độ chính xác (pi) và độ nhạy (ri) tính theo từng phân lớp được định nghĩa như sau:


Độ chính xác chung là:

Độ sai chung là: E = 1 - A

2.2.5. Tóm tắt giải thuật
 Đầu vào là tập dữ liệu xây dựng được sau khi chọn lọc từ Google cluster
trace, gọi tập dữ liệu đầu vào là dataset.
 Đầu ra là mô hình Random Forest để phân loại, Random Forest là tập hợp
nhiều cây quyết định Ntree.
Với mỗi Cây Ntree được xây dựng bằng các sử dụng thuật toán sau:
 Với N là số lượng các trường hợp của dữ liệu huấn luyện, M là số lượng
các biến trong việc phân loại.
 Lấy m là số các biến đầu vào được sử dụng để xác định việc phân chia tại
1 Nút của cây, m < M.


13

 Chọn 1 tập huấn luyện cho cây bằng cách chọn n ngẫu nhiên với sự thay
thế từ tất cả các trường hợp huấn luyện có sẵn N. Sử dụng các phần còn
lại để ước lượng các lỗi của cây, bằng cách dự đoán các lớp của chúng.
 Với mỗi nút của cây, chọn ngẫu nhiên m là cơ sở phân chia tại nút đó
(độc lập với mỗi nút). Tính chia tốt nhất dựa trên các biến m trong tập
huấn luyện n.
 Mỗi cây được trồng hoàn toàn và không tỉa (có thể được sử dụng trong vệ
xây dựng một bộ phân loại như các cây bình thường).
Đối với mỗi dự doán mới được đưa vào. Nó được gán nhãn của mẫu đạo
tạo trong các nút cuối để kết thúc. Thủ tục sẽ được lập lại qua tất cả các cây
Ntree, và đa số phiếu bình chọn với phân lớp hay trung bình với hồi quy của các

cây Ntree là dự đoán mô hình.

2.2.6. Đặc điểm của Random Forest
Random forest có một đặc điểm như sau:
 Nó đạt chính xác cao trong các thuật toán hiện hành.
 Nó chạy hiệu quả trên các cơ sở dữ liệu lớn.
 Nó có thể xử lý hàng ngàn biến đầu vào mà không cần xóa biến.
 Nó cung cấp ước tính của các biến quan trọng trong việc phân loại.
 Nó tạo ra ước lượng không chênh lệnh giữa lỗi nội bộ và lỗi tổng quan
trong quá trình phát triển rừng.
 Nó có một phương pháp hiệu quả để ước lượng dữ liệu bị mất và duy trì
độ chính xác khi một tỷ lệ lớn dữ liệu bị mất.


14

2.2.7. Mô hình phân lớp với Random Forest

Hình 2.1: Mô hình phân lớp

Tạo ra n tập huấn luyện bằng cách sử dụng bootstrap.
Bootstrap là một phương pháp rất nổi tiếng trong thống kê được giới
thiệu bởi Bradley Efron vào năm 1979. Phương pháp này chủ yếu dùng để ước
lượng lỗi chuẩn (standard errors), độ lệch (bias) và tính toán khoảng tin cậy
(confidence interval) cho các tham số. Phương pháp này được thực hiện như sau: từ
một quần thể ban đầu lấy ra một mẫu L = (x1, x2,..xn) gồm n thành phần, tính toán
các tham số mong muốn. Trong các bước tiếp theo lặp lại b lần việc tạo ra mẫu Lb
cũng gồm n phần từ từ L bằng cách lấy lại mẫu với sự thay thế các thành phần trong
mẫu ban đầu sau đó tính toán các tham số mong muốn.


2.3. Các độ đo đánh giá thuật toán phân loại:
2.3.1. Tiêu chí ROC (receiver operating characteristic)
Việc đánh giá các mô hình dự đoán lỗi nhằm:
 Cung cấp sự so sánh toàn diện giữa các mô hình.
 Đánh giá sự ảnh hưởng của việc chọn lựa tiêu chí đánh giá sẽ tác động đến
thứ hạng của các mô hình đó như thế nào. Đường cong ROC mô tả lợi ích
của việc sử dụng mô hình (đại diện bằng thuộc tính Dương thật) và chi phí sử


15

dụng mô hình (đại diện bằng thuộc tính Dương tính giả). Đường cong ROC
cho phép đánh giá hiệu quả của một mô hình nói chung mà không phụ thuộc
vào giá trị ngưỡng cụ thể nào. Phần diện tích phía dưới đường cong ROC
(gọi là AUC - area under the curve) có thể được sử dụng như một thông số
thống kê mô tả. Ví dụ nếu chọn ngẫu nhiên 2 lớp (một lớp lỗi và một lớp
không lỗi) để kiểm thử bởi một mô hình có AUC = 0.85; thu được xác xuất
kết quả phát hiện lỗi của lớp lỗi thực sự cao hơn xác suất phát hiện lỗi của
lớp không bị lỗi 0.85 (hay là 85%). Do vậy, giá trị AUC của một mô hình có
thể sử dụng để xếp hạng các thành phần (hoặc lớp) một cách khá chính xác.
Một mô hình hoàn hảo, có nghĩa là mô hình đó phân loại các lớp một cách
chính xác hoàn toàn, sẽ có giá trị phần ROC = 100%.

2.3.2. Tiêu chí CE (cost effectiveness )
Vấn đề với các tiêu chí ma trận độ nhạy/ độ chính xác và đường cong
ROC là các tiêu chí này được tạo ra để áp dụng cho tất cả các bài toán phân loại và
chúng không được thiết kế một cách rõ ràng và trực tiếp liên quan đến hiệu quả chi
phí (cost effectiveness) khi việc sử dụng các mô hình phát hiện lỗi. Do vậy, trong
phần còn lại của luận văn này, chúng ta sẽ xem độ phức tạp để kiểm thử một số
lượng các lớp xấp xỉ hàm số mũ của kích thước của những lớp này. Dựa trên giả

thuyết ở trên, một mô hình dự đoán lỗi không mang lại nhiều ý nghĩa nếu mô hình
dự đoán lỗi chỉ thực hiện được công việc phát hiện lỗi và số lượng lỗi này tỉ lệ với
hàm mũ của kích cỡ lớp mà cần phải quan tâm đến hiệu quả chi phí của mô hình
này như thế nào. Với mỗi phiên bản, chúng ta không thể xác định được chính xác
trước vùng kiểm thử cho một mô hình tối ưu. Do vậy, trong thực tế, với mỗi bản
phát hành chúng ta tính diện tích vùng đó như sau:
 Đầu tiên chọn ra tất cả các lớp chứa lỗi sau đó sắp xếp các lớp có lỗi này
theo thứ tự tăng dần của kích thước các lớp chứa lỗi đó.
 Các lớp không có lỗi sau đó cũng sắp xếp theo thứ tự tăng dần của kích
thước các lớp không chứa lỗi đó. Thủ tục này nhằm tối đa hóa diện tích vùng
của bản phát hành trong lần này và tập các lớp lỗi với giả thiết tương lai có
thể dự đoán chính xác hoàn hảo. Sau khi đã được tính toán, với mỗi tỉ lệ
phần trăm NOS cụ thể, chúng ta có thể so sánh tỉ lệ phần trăm cực đại lỗi mà
chúng ta có thể thu được với một mô hình tối ưu và sử dụng nó như là đường


×