Một số kỹ thuật học máy

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp phát hiện mã độc dựa trên các kỹ thuật học máy (Trang 27 - 36)

Từ khía cạnh học máy, việc phát hiện mã độc cĩ thể được coi là một vấn đề thuộc bài tốn phân lớp: từ tập dữ liệu huấn luyện được dán nhãn độc hại và lành tính, phân loại các tệp tin mới để phát hiện mã độc. Phần này sẽ giới thiệu về các thuật tốn được sử dụng trong luận văn.

2.1.2.1 K-Nearest Neighbors

K-Nearest Neighbors (KNN) là một trong những thuật tốn đơn giản nhất (mà hiệu quả trong một vài trường hợp) trong số các thuật tốn của học máy. KNN là một thuật tốn phi tham số, tức là nĩ khơng đưa ra bất kỳ dự đốn nào về cấu trúc của dữ liệu. Khi huấn luyện, thuật tốn này khơng học một điều gì từ dữ liệu huấn luyện (đây cũng là lý do thuật tốn này được xếp vào loại lazy learning).

KNN cĩ thể áp dụng được vào cả hai loại của bài tốn học cĩ giám sát là Phân lớp và Hồi quy. Trong cả hai bài tốn, kết quả dự đốn của một điểm dữ liệu mới được suy ra trực tiếp từ k điểm dữ liệu gần nhất trong tập dữ liệu huấn luyện. Đối với bài tốn phân lớp, kết quả đầu ra sẽ là lớp mà dữ liệu thuộc về, dựa trên việc bình chọn (majority vote) của k điểm gần nhất. Trong bài tốn hồi quy, đầu ra của một điểm dữ liệu sẽ bằng trung bình của đầu ra của k điểm gần nhất.

Cĩ nhiều phương pháp đo khoảng cách giữa các điểm để tìm ra điểm gần nhất. Các phương pháp phổ biến nhất bao gồm khoảng cách Hamming, khoảng cách Manhattan, khoảng cách Minkowski:

Khoảng cách Hamming:𝑑𝑖𝑗 = ∑𝑝𝑘=1| 𝑥𝑖𝑘 − 𝑥𝑗𝑘 | (2.1)

Khoảng cách Manhattan: 𝑑1(𝑝, 𝑞) = ||𝑝 − 𝑞||1 = ∑𝑛𝑖=1| 𝑝𝑖− 𝑞𝑖 | (2.2)

Khoảng cách Minkowski =(∑𝑛𝑖=1| 𝑥𝑖− 𝑦𝑖|𝑝)1/𝑝 (2.3) Phương pháp phổ biến nhất đối với các biến liên tục là khoảng cách Euclidean, được định nghĩa bởi cơng thức (2.4) dưới đây:

dEuclidean = √∑𝑛 (𝑞𝑖− 𝑝𝑖)2

𝑖=1 ; p và q là các điểm trong khơng gian n (2.4) Khoảng cách Euclidean phù hợp với các bài tốn cĩ đặc trưng cùng kiểu, với các bài tốn cĩ đặc trưng thuộc nhiều kiểu khác nhau, nên sử dụng khoảng cách Manhattan.

Đối với các bài tốn phân lớp, đầu ra cĩ thể được biểu diễn dưới dạng tập các xác suất mà mỗi điểm thuộc về lớp nào đĩ. Ví dụ, với bài tốn nhị phân, xác suất cĩ thể được tính theo cơng thức 𝑃(0) = 𝑁0

𝑁0+ 𝑁1 , với P(0) là xác suất một điểm thuộc lớp 0 và N0, N1 là số các điểm lân cận thuộc lớp 0 hoặc 1 [27].

Giá trị của k cũng đĩng vai trị quan trọng trong độ chính xác của thuật tốn dự đốn. Tuy nhiên, việc chọn k lại là một nhiệm vụ khơng hề đơn giản. Nếu k quá nhỏ thì độ chính xác sẽ giảm, đặc biệt là với các tập dữ liệu cĩ nhiều giá trị nhiễu. Cịn k quá lớn sẽ giảm hiệu năng của thuật tốn. Ngồi ra, nếu giá trị k quá lớn sẽ khiến cho mơ hình bị quá tải, làm cho ranh giới giữa các lớp trở nên ít khác biệt, dẫn đến độ chính xác cũng bị giảm. Thơng thường, k thường được chọn theo cơng thức (2.5) dưới đây:

𝑘 = √𝑛 (2.5)

Với các bài tốn cĩ số lớp là chẵn, nên chọn k lẻ để quá trình bình chọn khơng cĩ kết quả hịa.

Hạn chế của thuật tốn KNN là hiệu suất kém trên các bộ dữ liệu được phân phối khơng đồng đều. Nếu một lớp cĩ nhiều điểm dữ liệu hơn các lớp khác, một điểm

dữ liệu mới sẽ cĩ nhiều điểm lân cận thuộc lớp đĩ và từ đĩ dẫn đến kết quả dự đốn khơng chính xác [14].

2.1.2.2 Support Vector Machines

Support Vector Machines (SVM) là một thuật tốn phổ biến thường được dùng trong các bài tốn phân lớp. Ý tưởng chính là tìm kiếm một siêu mặt phẳng phân chia các lớp một cách tối ưu nhất. Cụm từ ‘support vector’ chỉ các điểm nằm gần siêu mặt phẳng nhất, ảnh hưởng đến vị trí của siêu mặt phẳng nếu bị xĩa bỏ. Khoảng cách giữa support vector và siêu mặt phẳng được gọi là biên (margin).

Nếu siêu mặt phẳng càng nằm xa các lớp thì dự đốn càng chính xác. Vì thế, mặc dù cĩ thể tìm được rất nhiều siêu mặt phẳng đối với mỗi bài tốn, mục đích của SVM là tìm một siêu mặt phẳng sao cho biên là lớn nhất.

Hình 2.4 Mơ hình SVM

Trên hình 2.4, tập dữ liệu được chia thành hai lớp, bài tốn nằm trong khơng gian hai chiều, siêu mặt phẳng được biểu diễn dưới dạng đường thẳng. Thuật tốn cĩ thể được mơ tả như sau:

 Gọi hai tập XY là tập đầu vào và nhãn tương ứng. (x1, y1),…, (xN,yN) là tập

huấn luyện; với vector xi∈𝑅𝑑, d là số chiều của dữ liệu và N là số điểm dữ liệu. Ví dụ, xét trường hợp khơng gian hai chiều ở hình 2.5 dưới đây (các phép tốn cĩ thể được tổng quát lên khơng gian nhiều chiều):

Hình 2.5 Bài tốn SVM với khơng gian hai chiều

 Giả sử nhãn của mỗi điểm được xác định bởi yi = 1 hoặc yi = -1. Các điểm

vuơng thuộc lớp 1 (+), điểm trịn thuộc lớp -1 (-) và mặt wTx + b = w1x1 + w2x2

+ b = 0 là mặt phân chia giữa hai lớp.

 Khoảng cách từ một cặp dữ liệu (xn, yn) bất kỳ tới mặt phân chia là:

𝑦𝑛(𝑤𝑇𝑥𝑛+ 𝑏) ||𝑤||2

(2.6) Margin sẽ là khoảng cách gần nhất từ một điểm tới mặt phân chia:

𝑚𝑎𝑟𝑔𝑖𝑛 = min

𝑛

𝑦𝑛(𝑤𝑇𝑥𝑛+ 𝑏) ||𝑤||2

(2.7)

 Mục tiêu của thuật tốn SVM là tìm wb sao cho margin đạt giá trị lớn nhất: (𝑤, 𝑏) = 𝑎𝑟𝑔 max 𝑤,𝑏 {min 𝑛 𝑦𝑛(𝑤𝑇𝑥𝑛+ 𝑏) ||𝑤|| 2 } = 𝑎𝑟𝑔 max 𝑤,𝑏 { 1 ||𝑤||2min𝑛 [𝑦𝑛(𝑤𝑇𝑥𝑛+ 𝑏)]} (2.8) Thuật tốn SVM thường cho kết quả khá chính xác, đặc biệt là đối với các tập dữ liệu “sạch”. Hơn nữa, nĩ cịn phù hợp với các tập dữ liệu nhiều chiều, kể cả khi số chiều nhiều hơn số lượng mẫu. Nĩ cũng hiệu quả với các tập dữ liệu cĩ nhiều nhiễu hoặc chồng chéo nhau. Tuy nhiên, thời gian huấn luyện cĩ thể rất lâu [24].

2.1.2.3 Nạve Bayes

Nạve Bayes là thuật tốn phân lớp dựa trên định lý Bayes về lý thuyết xác suất. Nĩ cĩ thể được dùng cho các bài tốn nhị phân hoặc phân lớp nhiều lớp. Ý tưởng chính của thuật tốn là xử lý từng đặc trưng một cách độc lập. Nạve Bayes tính tốn xác suất của mỗi đặc trưng, sau đĩ đưa ra dự đốn dựa trên định lý Bayes.

Xác suất tiên nghiệm (xác suất lớp) là xác suất của một lớp trong tập dữ liệu, khơng phụ thuộc vào các yếu tố khác. Nĩi cách khác, nếu chọn một điểm bất kỳ trong tập dữ liệu, xác suất lớp là xác suất mà điểm thuộc về một lớp nhất định. Xác suất cĩ điều kiện là xác suất để giá trị đặc trưng của một điểm dữ liệu thuộc một lớp nhất định khi biết xác suất của lớp đĩ.

Gọi xác suất tiên nghiệm của lớp là P(C), xác suất cĩ điều kiện là P(V|C). Ta cĩ:

𝑃(𝐶) = 𝑆ố đ𝑖ể𝑚 𝑑ữ 𝑙𝑖ệ𝑢 𝑐ĩ 𝑡𝑟𝑜𝑛𝑔 𝑙ớ𝑝 𝐶 𝑇ổ𝑛𝑔 𝑠ố đ𝑖ể𝑚 𝑑ữ 𝑙𝑖ệ𝑢

(2.9)

Xác suất cĩ điều kiện được tính theo cơng thức (2.10): 𝑃(𝑉|𝐶) = 𝑆ố đ𝑖ể𝑚 𝑑ữ 𝑙𝑖ệ𝑢 𝑐ĩ 𝑔𝑖á 𝑡𝑟ị 𝑉 𝑡ℎ𝑢ộ𝑐 𝑙ớ𝑝 𝐶

𝑇ổ𝑛𝑔 𝑠ố đ𝑖ể𝑚 𝑑ữ 𝑙𝑖ệ𝑢 𝑐ĩ 𝑔𝑖á 𝑡𝑟ị 𝑉

(2.10)

Với các xác suất cho trước, cĩ thể tính xác suất một điểm dữ liệu mới thuộc về lớp nào đĩ theo định lý Bayes như sau:

𝑃(𝐴|𝐵) = 𝑃(𝐵|𝐴) ∗ 𝑃(𝐴) 𝑃(𝐵)

(2.11) Xác suất để một điểm thuộc từng lớp sẽ được tính tốn và so sánh, lớp nào cĩ xác suất cao nhất sẽ được lựa chọn là kết quả.

Ưu điểm của thuật tốn là đơn giản và dễ hiểu. Hơn nữa, nĩ phù hợp với các tập dữ liệu cĩ nhiều đặc trưng khác nhau, bởi dự đốn phụ thuộc vào xác suất của các đặc trưng. Ngồi ra, thuật tốn tiêu tốn ít tài nguyên, cĩ hiệu năng cao, khơng cần tính tốn các hệ số phụ như các thuật tốn khác. Tuy nhiên, như đã đề cập, các đặc

trưng được xử lý độc lập nên kết quả cĩ thể khơng chính xác trong một số trường hợp [5].

2.1.2.4 J48 Decision Tree

J48 Decision Tree (Cây quyết định J48) là một cây phân cấp cĩ cấu trúc được dùng để phân lớp các đối tượng dựa vào dãy các luật. Khi cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nĩ, cây quyết định sẽ sinh ra các luật để dự đốn lớp của các đối tượng chưa biết. Mục đích của thuật tốn là đạt được kết quả chính xác nhất với số lần lựa chọn ít nhất. Một ví dụ về tập dữ liệu được cho trong bảng 2.1:

Bảng 2.1 Ví dụ dữ liệu huấn luyện của cây quyết định

Thuộc tính Phân loại

Thời tiết Nhiệt độ Độ ẩm Giĩ? Chơi tennis

Mưa Nĩng Cao Khơng NO

Mưa Nĩng Cao Cĩ NO

Âm u Nĩng Cao Khơng YES

Nắng Trung bình Cao Khơng YES

Nắng Lạnh Trung bình Khơng YES

Âm u Lạnh Cao Cĩ NO

Mưa Lạnh Cao Cĩ YES

Mưa Trung bình Cao Khơng NO

Hình 2.6 Ví dụ về cây quyết định

Dựa trên mơ hình huấn luyện tập dữ liệu như trên hình 2.6, hành động chơi tennis sẽ được phân loại là “yes” hoặc “no”. Ở đây, cây quyết định bao gồm nút gốc, nhánh và các nút lá. Các nút lá đại diện cho các câu trả lời hoặc lớp phân loại.

Thuật tốn thường dùng trong cây quyết định là ID3 (Iterative Dichotomiser 3). Thuật tốn này dựa trên khái niệm Entropy và Information Gain (Độ lợi thơng tin). Ở đây entropy chỉ mức độ khơng chắc chắn của dữ liệu. Ví dụ, entropy của việc tung đồng xu sẽ là khơng xác định do khơng cĩ cách nào để xác định chính xác kết quả. Ngược lại, nếu cả hai mặt của đồng xu đều là hình thì kết quả sẽ là 0 entropy, do ta đã biết kết quả chính xác trước mỗi lần tung đồng xu [19].

Nĩi ngắn gọn, thuật tốn ID3 cĩ thể được mơ tả như sau: bắt đầu từ nút gốc, tại mỗi bước, thuộc tính tốt nhất sẽ được chọn ra sao cho độ lợi thơng tin là lớn nhất. Với mỗi thuộc tính được chọn, ta chia dữ liệu vào các nút con tương ứng với các giá trị của thuộc tính đĩ rồi tiếp tục áp dụng phương pháp này cho mỗi nút con [25]. Các bước thực hiện của thuật tốn này như sau:

Thời tiết Nắng Âm u Mưa Giĩ YES Độ ẩm Cao Trung bình Cĩ Khơng YES NO NO YES

1. Giả sử tập dữ liệu SN phần tử và C lớp khác nhau, trong đĩ Nc điểm thuộc

lớp c. Entropy của nút này sẽ được tính theo cơng thức: 𝐻(𝑆) = − ∑𝑁𝑐 𝑁 log ( 𝑁𝑐 𝑁) 𝐶 𝑐=1 (2.12)

Giả sử thuộc tính được chọn là x, các điểm dữ liệu trong S được phân thành

K nút con với số điểm trong mỗi nút con tương ứng là m1, m2,…, mK. Ta cĩ:

𝐻(𝑥, 𝑆) = ∑𝑚𝑘 𝑁 𝐻(𝑆𝑘 𝐾 𝑘=1 ) (2.13)

2. Độ lợi thơng tin G(x,S) sẽ được tính dựa vào sự chênh lệch giữa entropy ban đầu và entropy của mỗi nhánh.

𝐺(𝑥, 𝑆) = 𝐻(𝑆) − 𝐻(𝑥, 𝑆) (2.13) 3. Thuộc tính cĩ độ lợi thơng tin lớn nhất sẽ được chọn làm nút quyết định. 4. Nếu một trong các nhánh của nút quyết định được chọn cĩ entropy bằng 0, nĩ

sẽ trở thành nút lá. Các nhánh khác sẽ tiếp tục được phân chia. 5. Thuật tốn sẽ chạy đến khi khơng thể phân chia được nữa thì dừng.

J48 là thư viện cài đặt của thuật tốn ID3 cĩ trong gĩi ngơn ngữ R, được sử dụng ở chương 3.

Cây quyết định là một thuật tốn phổ biến bởi nĩ đơn giản và cĩ thể xử lý tốt các tập dữ liệu lớn và cĩ nhiều dữ liệu nhiễu. Một ưu điểm khác của cây quyết định là người ta cĩ thể theo dõi quá trình lựa chọn một cách tường minh. Điều này khiến cho thuật tốn này trở nên phổ biến cho các bài tốn như chuẩn đốn y tế, lọc thư rác, sàng lọc an ninh,… [19]

2.1.2.5 Random Forest

Random Forest là một trong các thuật tốn thơng dụng nhất trong học máy. Thuật tốn này hầu như khơng yêu cầu tiền xử lý dữ liệu và lập mơ hình nhưng thường cho kết quả khá chính xác. Random Forest dựa trên tính ngẫu nhiên (random) và được tạo nên từ nhiều cây quyết định (forest – “rừng”).

Ý tưởng cơ bản của thuật tốn là xây dựng các cây quyết định dựa trên các tập con độc lập nhau thuộc tập dữ liệu cho trước. Tại mỗi nút, một số giá trị đặc trưng sẽ được lựa chọn ngẫu nhiên cho tới khi tìm thấy cách phân chia tốt nhất. Tĩm lại, thuật tốn cĩ thể được mơ tả như sau [4]:

1. Các cây được xây dựng dựa trên 2/3 dữ liệu của tập dữ liệu huấn luyện (62.3%). Dữ liệu được lựa chọn ngẫu nhiên.

2. Một số biến dự đốn được chọn ngẫu nhiên từ tổng số các biến dự đốn. Sau đĩ, cách phân chia tốt nhất của các biến được lựa chọn sẽ được dùng để phân chia nút. Theo mặc định, số lượng biến được chọn sẽ là căn bậc hai của tổng số các thuộc tính dùng để dự đốn và khơng đổi đối với các cây.

3. Tỉ lệ dự đốn sai được tính tốn dựa vào phần dữ liệu cịn lại (dữ liệu out-of- bag).

4. Mỗi cây huấn luyện sẽ đưa ra một kết quả phân loại, được gọi là “bỏ phiếu”. Lớp nhận được nhiều “phiếu” nhất sẽ được chọn là kết quả cuối cùng. Sơ đồ thuật tốn được thể hiện ở hình 2.7.

Random Forest thừa kế rất nhiều ưu điểm của thuật tốn cây quyết định. Random Forest cĩ thể dùng cho cả hai bài tốn phân loại và hồi quy, bởi nĩ đơn giản và dễ thích nghi, kết quả đưa ra cũng chính xác hơn. Tuy nhiên, khơng như cây quyết định, cấu trúc của Random Forest rất phức tạp nên khơng thể hiểu được cơ chế hoạt động bên trong của thuật tốn. Ngồi ra, Random Forest cũng ổn định hơn so với cây quyết định. Đối với cây quyết định, chỉ cần dữ liệu bị sửa đổi một chút thì cả cây cũng sẽ bị thay đổi, làm giảm độ chính xác. Cịn với thuật tốn Random Forest, do nĩ được kết hợp từ rất nhiều cây quyết định nên nĩ sẽ ổn định hơn [16].

Hình 2.7 Sơ đồ thuật tốn Random Forest

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp phát hiện mã độc dựa trên các kỹ thuật học máy (Trang 27 - 36)