TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 54
NGHIÊN CỨU MỘT SỐ KỸ THUẬT CẢI THIỆN ĐỘ CHÍNH XÁC
CHO BÀI TOÁN PHÂN LOẠI MÃ ĐỘC SỬ DỤNG HỌC MÁY
STUDYING SOME TECHNIQUES TO IMPROVE ACCURACY FOR MALICIOUS
CODE CLASSIFICATION PROBLEM USING MACHINE LEARNING
Nguyễn Tuấn Anh1, Nguyễn Trọng Hoàng1, Lê Thị Anh2,*
1Lớp KHMT 01 - K15, Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
2Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
*Email: leanh@haui.edu.vn
TÓM TẮT
Mã độc là một chương trình đặc biệt được thiết kế để gây hại cho các thiết bị đầu cuối và hệ thống thông tin với mục
đích đánh cắp thông tin, phá hủy dữ liệu và hệ thống, theo dõi hoạt động của người dùng. Được coi là công cụ không thể
thiếu của các cuộc tấn công an ninh mạng, mã độc với các biến thể khác nhau, sự gia tăng về số chủng loại và cách thức
gây hại của độc ngày càng gây ra những hậu quả nghiêm trọng đối với các hệ thống thông tin cũng như người dùng.
Việc thu thập, phát hiện, nhận dạng mã độc những bước đầu tiên trong phòng chống, phân tích hành vi của độc. Bên
cạnh đó, với sự phát triển của các kỹ thuật học y đã tăng cường hiệu quả cải thiện độ chính xác cho c bài toán phân
loại và ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau. Phân loại mã độc sử dụng kỹ thuật học máy đã góp phần vào
thực hiện phát hiện các mẫu mã độc hại, đặc biệt là phát hiện cả những mẫu mã độc mới. Trong bài báo này, chúng tôi đã
thu thập dữ liệu độc, thực hiện tiền xử lý, chỉnh sửa các trọng số của dữ liệu sử dụng các hình học máy khác
nhau để phân loại các mẫu mã độc. Kết quả đánh giá cho thấy, với các kỹ thuật mà chúng tôi đề xuất đã cải thiện đáng kể
độ chính xác cho bài toán phân loại mã độc.
Từ khóa: Mã độc; Phân loại mã độc; Học máy.
ABSTRACT
Malware is a special program designed to harm end devices and information systems by stealing information,
destroying data and systems, and monitoring user activities. Malware is considered an indispensable tool for cyber security
attacks, with its different variations, an increase in the number of types and harmful methods of malware is increasingly
causing severe consequences for information systems and users. Collecting, detecting, and identifying malicious code are
the first steps in preventing and analyzing the behavior of malicious code. Moreover, developing machine learning
techniques has increased efficiency and improved accuracy for classification problems and widespread applications in
many fields. Classifying malicious code using machine learning techniques has contributed to detecting malicious code
samples, especially detecting new malicious code samples. In this paper, we collected samples of malicious code types,
performed preprocessing, edited the data weights, and used different machine-learning models to classify malicious code
samples. Evaluation results show that our proposed techniques have significantly improved the accuracy of the problem
of classifying malware.
Keywords: Malware; Malware classification; Machine learning.
1. GIỚI THIỆU
độc (Malware- Malicious software) tên gọi chung
cho các phần mềm được thiết kế, lập trình đặc biệt để gây
hại cho máy tính hoặc làm gián đoạn môi trường hoạt động
mạng. Mã độc có thể được phát triển với các mục tiêu độc
hại như đánh cắp thông tin nhân, gây hỏng hóc hệ thống,
hoặc theo dõi hoạt động người dùng mà không được sự cho
phép của họ [1].
Theo phân loại của Viện tiêu chuẩn quốc gia của Mỹ
(NIST), mã độc được phân loại thành nhiều loại khác nhau
dựa vào hành vi cách thức lây nhiễm của mã độc [2]. Đầu
tiên phải kể đến vi-rút (virus), đây là một loạiđộc hại
khả năng tự nhân bản lây nhiễm chính nó vào các file,
chương trình hoặc máy tính. Loại độc tiếp theo sâu
máy tính (worm), là một chương trình có khả năng tự nhân
bản tự lây nhiễm trong hệ thống tuy nhiên khả năng
“tự đóng gói”, điều đó có nghĩa là sâu máy tính không cần
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 55phải có “file chủ” để mang nó khi nhiễm vào hệ thống. Mã
độc cửa hậu (Backdoor) một loại độc được thiết kế để
tạo ra một lối vào mật vào hệ thống hoặc ứng dụng
không được phát hiện. Thông qua lối vào này, tin tặc thể
quyền truy cập kiểm soát hệ thống từ xa không
cần thông qua chế xác thực bình thường. độc ghi
nhận thông tin từ bàn phím (keylogger), được thiết kế để
ghi lại tất cả hoặc một phần các phím được nhấn trên bàn
phím của máy tính không được sự cho phép của người
sử dụng. độc tiếp theo ngựa troy (trojan horse), loại
loại độc được giấu trong các chương trình hoặc tệp tin
hợp lệ, thường được phân phối qua email độc hại hoặc các
trang web độc hại. Bên cạnh đó còn độc tống tiền
(ransomware), loại mã độc mã hoá dữ liệu của nạn nhân
yêu cầu một khoản tiền chuộc để giải mã. Khi máy tính bị
nhiễm ransomware, tất cả hoặc một phần lớn dữ liệu của
người dùng sẽ bị hoá trở nên không thể truy cập được
cho đến khi thanh toán một khoản tiền chuộc cho tin tặc.
Ngoài ra còn nhiều loại độc khác NIST cũng phân
loại như độc quảng cáo (adware), độc gián điệp
(spyware), mã độc botnet, mã độc rootkit, downloader...
Phần mềm mã độc đang ngày một gia tăng về số lượng,
chủng loại với các kỹ thuật và phương thức tấn công ngày
càng tinh vi hơn. Để thực hiện các cuộc tấn công an ninh
mạng, độc là công cụ không thể thiếu, theo thống của
Cybersecurity Ventures, trong năm 2023, thiệt hại bởi các
vụ tấn công mạng khoảng 8 nghìn tỷ USD tương đương
gần 196 triệu tỷ VNĐ trên toàn thế giới [3]. Cũng ghi nhận
con số trong năm 2023, hãng bảo mật Checkpoint đã thống
sự tấn công rộng khắp của độc hóa tống tiền
Ransomware đã khiến cho nhiều trường đại học ở Mỹ, các
sở y tế, bệnh viên, phải tạm thời đóng cửa [4]. Mặc
các quốc gia, chính phủ, các tổ chức đang nỗ lực xây
dựng các giải pháp bảo vệ các cơ chế an ninh, nhưng c
phần mềm độc hại vẫn lây nhiễm mối đe dọa hàng đầu
với các hệ thống máy tính. Vì vậy tiến hành phân loại, phát
hiện độc thu thập độc, phân loại độc, sau đó
phân tích mã độc để nhận diện hành vi của mã độc, đưa ra
những cảnh báo biện pháp phòng chống để giảm thiệt hại
do mã độc gây ra là nhiệm vụ cực kỳ quan trọng của ngành
An toàn thông tin.
Bài toán phân loại độc sử dụng các kỹ thuật khác
nhau đã được công bố trong nước cũng như trên thế giới.
Cụ thể, các tác giả trong [3] đã nghiên cứu bài toán phân
loại và phát hiện mã độc sử dụng lập trình Gen. Trong [4],
các tác giả cũng đề xuất ứng dụng học máy cho bài toán
phân loại độc với kỹ thuật n-gram. Thêm vào đó, các
tác giả trong [7] cũng đã công bố bài toán phân loại các mã
độc dựa vào PE32 sử dụng Import table các mạng nơ-
ron học sâu. Hầu hết các nghiên cứu đều đề xuất các giải
pháp khác nhau cho bài toán phân loại phát hiện mã độc,
tuy nhiên vẫn còn một số hạn chế về bộ dữ liệu mã độc và
trích chọn đặc trưng.
Trong bài báo này, chúng tôi dựa vào bộ dữ liệu có sẵn
[7] bộ dữ liệu sẵn trên Kaggle - một nền tảng trực
tuyến cho cộng đồng Machine Learning (ML) và Khoa học
dữ liệu. Trước khi sử dụng bộ dữ liệu, chúng tôi đã tiến hành
một số kỹ thuật để tiền xử dữ liệu trước khi đưa vào huấn
luyện trong một số mô hình học máy. Kết quả cho thấy với
bộ dữ liệu được xử chỉnh sửa các trọng số dữ liệu đã
mang lại kết quả chính xác hơn với bộ dữ liệu gốc.
2. C HÌNH HỌC MÁY CHO BÀI TOÁN PHÂN
LOẠI MÃ ĐỘC
2.1. Mạng nơ-ron tích chập CNN (Convolutional Neural
Network)
Mạng nơ-ron tích chập CNN là một dạng kiến trúc mạng
nơ-ron nhân tạo được thiết kế đặc biệt cho việc xử lý dữ liệu
có cấu trúc ruỗng như hình ảnh [8]. CNN nổi tiếng với khả
năng phát hiện trích xuất các đặc trưng từ dữ liệu hình
ảnh một cách hiệu quả, từ đó giúp trong các nhiệm vụ như
nhận diện, phân loại và phát hiện vật thể trong hình ảnh.
Mô hình hoạt động của mạng nơ-ron tích chập được mô
tả trong hình 1 và cụ thể như sau:
Lớp tích chập (Convolutional layer): Lớp này sử dụng
các bộ lọc (filters) để trượt qua từng vùng của ảnh đầu vào
và tính toán các đặc trưng mỗi vùng đó. Quá trình này tạo
ra một bản đồ đặc trưng (feature map) biểu diễn các đặc
trưng quan trọng của hình ảnh.
Lớp gộp (Pooling layer): Lớp này giúp giảm kích
thước của bản đồ đặc trưng bằng cách chọn ra giá trị quan
trọng nhất từ các vùng của bản đồ đặc trưng. Phổ biến nhất
là lớp gộp theo max (max pooling) hoặc lớp gộp theo trung
bình (average pooling).
Lớp kích hoạt (Activation layer): Lớp này áp dụng một
hàm kích hoạt phi tuyến nh (thường hàm ReLU) vào các
giá trị của bản đồ đặc trưng sau khi tích chập và gộp.
Lớp kết nối đầy đủ (Fully connected layer): Lớp này
kết nối các nút của lớp trước với tất cả các nút của lớp sau,
giúp học các mối quan hệ phức tạp giữa các đặc trưng đã
được trích xuất.
Lớp đầu ra (Output layer): Lớp này tính toán xác suất
hoặc điểm số của các lớp đối tượng mong muốn dựa trên
đầu ra của lớp kết nối đầy đủ.
Hình 1. Cấu trúc hoạt động của CNN
2.2. Mạng nơ-ron hồi tiếp RNN (Recurrent Neural
Network)
Mạng nơ-ron hồi tiếp RNN là một dạng kiến trúc mạng
nơ-ron nhân tạo được thiết kế để xử dữ liệu dạng chuỗi
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 56hoặc tuần tự [8]. RNN khả năng xử thông tin từ dữ
liệu đầu vào và lưu trữ trạng thái bên trong để giúp dự đoán
hoặc phân loại dữ liệu tiếp theo trong chuỗi.
hình hoạt động của mạng nơ-ron hồi tiếp được
tả trong Hình 2 và cụ thể như sau:
Đầu vào: Dữ liệu từ mỗi bước thời gian trong chuỗi
được truyền vào mạng nơ-ron RNN qua các lớp nơ-ron. Mỗi
nút trong lớp này biểu diễn cho một đặc trưng hoặc phần
của dữ liệu đầu vào.
Trạng thái ẩn: RNN lưu trữ một trạng thái ẩn hoặc bộ
nhớ bên trong mạng để lưu trữ thông tin từ các bước thời
gian trước đó. Trạng thái ẩn được tính toán dựa trên đầu vào
hiện tại và trạng thái ẩn từ bước thời gian trước đó.
Cập nhật trạng thái ẩn: Trạng thái ẩn mới được tính
toán dựa trên đầu vào hiện tại và trạng thái ẩn trước đó, kết
hợp với các trọng số được học trong quá trình huấn luyện.
Đầu ra: Kết quả dự đoán hoặc phân loại được tính toán
dựa trên trạng thái ẩn và đầu vào hiện tại. Đầu ra này có th
được sử dụng để dự đoán các giá trị tiếp theo trong chuỗi
hoặc để phân loại dữ liệu.
Hình 2. Cấu trúc hoạt động của mạng RNN
2.3. Mạng nơ-ron hồi tiếp với nút có cổng GRU (Gated
Recurrent Unit)
GRU một dạng kiến trúc mạng nơ-ron hồi tiếp (RNN)
được thiết kế để giải quyết các vấn đề biến mất gradient và
cải thiện hiệu suất so với các kiến trúc RNN truyền thống
[8]. GRU cung cấp một cách tiếp cận đơn giản hóa so với
LSTM, nhưng vẫn giữ được khả năng học các phụ thuộc dài
hạn trong dữ liệu chuỗi.
Hoạt động của GRU được mô tả trong hình 3 và chi tiết
như sau:
Cổng cập nhật (Update gate): Cổng này quyết định
thông tin nào từ trạng thái trước đó sẽ được cập nhật
thông tin nào sẽ bị loại bỏ. Nó có vai trò tương tự như cổng
quên trong LSTM.
Cổng khôi phục (Reset gate): Cổng này quyết định
thông tin nào trong trạng thái trước đó sẽ được bỏ qua để
học các biểu diễn mới. giúp hình quyết định xem
nên xem xét thông tin cũ hay nên cập nhật thông tin mới.
Trạng thái ẩn (Hidden state): Trạng thái ẩn của GRU
biểu diễn thông tin trạng thái tạm thời của mạng nơ-ron.
được cập nhật dựa trên đầu vào hiện tại và trạng thái trước
đó, và được sử dụng để tạo ra đầu ra của mạng.
Các hàm kích hoạt: GRU sử dụng các hàm kích hoạt
như hàm sigmoid để kiểm soát các cổng cập nhật khôi
phục, cũng như hàm tanh để tạo ra đầu ra.
Hình 3. Cấu trúc hoạt động của GRU
2.4. Các hàm kích hoạt [8]
- Hàm ReLU (Rectified Linear Activation)
Công thức hàm ReLu : ()=(0, )
Hàm kích hoạt ReLu ưu điểm đơn giản, hiệu quả
tính toán, khá chống lại hiện tượng biến mất đạo hàm. Tuy
nhiên, nhược điểm nơ-ron thể bị "chết" khi đầu vào
âm (vanishing gradient).
- Hàm Sigmoid
Công thức hàm kích hoạt Sigmoi: ()=
 
Hàm Sigmoid ưu điểm chuyển đổi đầu vào thành
một phạm vi từ 0 đến 1, thích hợp cho việc dự đoán xác
suất. Tuy nhiên, nhược điểm dễ bị tắc nghẽn hai đầu
phạm vi, dễ xảy ra hiện tượng biến mất đạo hàm (vanishing
gradient) khi đầu vào có giá trị lớn.
- Hàm Tanh (Hyperbolic Tangent)
Công thức hàm kích hoạt Tanh: ()=  
 
Hàm kích hoạt Tanh có ưu điểm chuyển đổi đầu vào
thành một phạm vi t-1 đến 1, tương tự như sigmoid nhưng
phạm vi đầu ra lớn hơn. Tuy nhiên, việc sử dụng hàm
Tanh thể gặp vấn đề về hiện tượng biến mất đạo hàm
(vanishing gradient).
- Hàm Softmax
Công thức hàm kích hoạt Softmax: ()= 
 
Hàm Softmax ưu điểm thể chuyển đổi các giá
trị thành một phân phối xác suất, thích hợp cho bài toán
phân loại nhiều lớp. Tuy nhiên, nhược điểm dễ bị tắc
nghẽn khi một giá trị đầu vào lớn hơn các giá trị khác.
2.5. Kỹ thuật SMOTE (Synthetic Minority Over-
sampling Technique)
Phương pháp SMOTE là một kỹ thuật quan trọng trong
xử bất cân bằng dữ liệu, đặc biệt trong bài toán phân
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 57loại. SMOTE được thiết kế để xử vấn đề khi một trong
các lớp (hay nhãn) của tập dữ liệu số lượng mẫu ít hơn
đáng kể so với lớp khác, gây ra hiện tượng hình phân
loại thiên về lớp đa số và bỏ qua lớp thiểu số.
Kỹ thuật SMOTE hoạt động cụ thể như sau:
Xác định lớp thiểu số: Đầu tiên, cần c định lớp thiểu
số trong tập dữ liệu của bạn, tức lớp ít mẫu hơn cần
được cân bằng.
Tìm lân cận gần nhất: Đối với mỗi mẫu trong lớp thiểu
số, sử dụng một độ đo khoảng cách (thường là khoảng cách
Euclid) để tìm các mẫu gần nhất từ lớp cùng chiều với mẫu
đó. Thông thường, một số lân cận (k) được chọn trước để
xác định số lượng mẫu gần nhất cần được sử dụng.
Tạo ra mẫu tổng hợp: Đối với mỗi mẫu trong lớp thiểu
số, chọn một trong các mẫu láng giềng gần nhất tạo ra
một mẫu tổng hợp mới bằng cách kết hợp các đặc trưng của
mẫu gốc và mẫu láng giềng theo một tỷ lệ ngẫu nhiên.
Công thức tạo mẫu tổng hợp là:

_

=

_

+
×(

_



_

) Trong đó:
o new_sample mẫu dữ liệu tổng hợp mới.
o sample_original là mẫu dữ liệu gốc từ lớp thiểu số.
o sample_neighbor mẫu láng giềng gần nhất từ lớp
cùng chiều.
o α là một số ngẫu nhiên trong khoảng [0, 1].
Lặp lại quá trình: Quá trình này được lặp lại cho đến
khi số lượng mẫu trong lớp thiểu số đạt đến một mức mong
muốn.
2.6. Kỹ thuật cGAN sinh dữ liệu mới (Conditional
Generative adversarial networks)
GAN viết tắt cho Generative Adversarial Networks.
Generative giống như trên, Network nghĩa mạng
(mô hình), còn Adversarial là đối nghịch. Tên gọi như vậy
do GAN được cấu thành từ 2 mạng gọi Generator
Discriminator, luôn đối nghịch đầu với nhau trong quá trình
train mạng GAN. GAN mô hình khả năng sinh ra dữ
liệu mới. Trong khi Generator sinh ra các dữ liệu giống như
thật thì Discriminator cố gắng phân biệt đâu dữ liệu được
sinh ra từ Generator và đâu là dữ liệu thật có.
Tóm lại GAN mạng để sinh dữ liệu mới giống với dữ
liệu trong dataset sẵn 2 mạng trong GAN
Generator Discriminator. Kiến trúc của cGAN cũng bao
gồm hai mạng Generator (nh 4) Discriminator (nh 5).
Hình 4. Mô hình Generator cGAN
cGAN - Conditional GAN vẫn hình GAN ban đầu
cộng thêm điều kiện y đầu vào, y một số nguyên giúp
cho mô hình sinh ra dữ liệu theo đúng thứ tự của mã độc.
Hình 5. Mô hình Generator cGAN
3. THỰC NGHIỆM VÀ ĐÁNH GIÁ
3.1. Công cụ thực nghiệm
Kết quả của bài báo được thực hiện trên Google Colab -
một phiên bản lưu tr trên đám mây giống với Jupyter
Notebook do Google Research phát triển (hình 4). Với ưu
điểm là không cần cài đặt nâng cấp phần cứng máy tính
nhân vẫn thể xử các công việc nặng về
CPU/GPU trong Python. Colab cung cấp miễn phí quyền
truy cập vào các hạ tầng điện toán đám mây như bộ lưu trữ,
bộ nhớ, GPU (đơn vị xử lý đồ hoạ), CPU (bộ não máy chủ)
và TPU (đơn vị xử lý tensor).
Hình 6. Giao diện của Google Colab
Cấu hình các bộ xử lý trong Google Colab được mô tả
trong bảng 1.
Bảng 1. Các bộ xử lý trong Google Colab
CPU GPU TPU
Bộ xử lý Intel
Xeon với 2 core
hoạt động ở tốc
độ 2.30 GHz
bộ nhớ RAM
13GB
Up to GPU Tesla
K80 với 12GB bộ
nhớ VRAM
GDDR5, bộ xử lý
Intel Xeon với 2
core hoạt động
tốc độ 2.20 GHz
và bộ nhớ RAM
13 GB
Cloud TPU với
180 teraflops
công suất tính
toán, bộ xử lý
Intel Xeon với 2
core hoạt động
tốc độ 2.30 GHz
và bộ nhớ RAM
13GB
Ngoài ra, chúng tôi còn sử dụng GPU để thực hiện
chương trình bởi ngoài khả năng tính toán song song một
cách nhanh chóng còn ưu điểm của về việc hiển thị
hình ảnh đồ họa trên màn hình cũng như các đồ thị
mô hình một cách hiệu quả.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 583.2. Mô tả dữ liệu mã độc
Chúng tôi đã tiến hành thu thập và nghiên cứu dựa trên
hai bộ dữ liệu khác nhau, bộ dữ liệu đầu tiên [7] bộ dữ
liệu chứa các mẫu độc khác nhau, trích xuất đặc trưng
dựa vào các hàm Import trong file PE32 để tạo ra bộ dữ liệu,
các đặc trưng của bộ dữ liệu được lưu trong tập tin
‘data.csv’ bộ thứ hai bộ dữ liệu
‘malimg_paper_dataset_imgs’ bộ dữ liệu này chứa dữ liệu
của độc đã chuyển đổi sang dạng ảnh [9]. Chi tiết về
tả các bộ dữ liệu được giới thiệu dưới đây.
- Bộ dữ liệu mã độc dựa vào tập tin PE32
Bộ dữ liệu bao gồm 387 mẫu và 1859 thuộc tính mô tả
như trong hình 7.
Hình 7. Dữ liệu trong file excel
Số lượng mẫu của Bộ dữ liệu này còn ít, nên để sử dụng
bộ dữ liệu này, chúng tôi đã tạo ra một bộ dữ liệu mới từ bộ
dữ liệu gốc. Sử dụng phương pháp tạo sinh dữ liệu, nhóm
đề tài đã lựa chọn phương pháp SMOTE để tạo mới bộ dữ
liệu. Bộ dữ liệu mới chứa 10000 mẫu chuẩn hóa các
thuộc tính dữ liệu ở các số nguyên.
Đối với bộ dữ liệu này, chúng tôi thực hiện tiền xử dữ
liệu bằng việc chuẩn hóa dữ liệu sử dụng phương pháp
StandardScaler (hình 8).
Hình 8. Chuẩn hóa dữ liệu bằng phương pháp StandardScaler
- Bộ dữ liệu mã độc dạng ảnh
Bộ dữ liệu này chứa dữ liệu dạng byte dạng ảnh PNG
(hình 9) của 25 loại độc khác nhau cụ thể được chứa
trong 25 thư mục, tên của thư mục cũng chính tên của
loại mã độc đó (hình 10).
Hình 9. dụ minh họa về một loại độc dưới dạng byte
dưới dạng ảnh PNG
Hình 10. Mô tả 25 thư mục chứa 25 loại mã độc khác nhau
Với dữ liệu ban đầu được biểu diễn dưới dạng hệ thập
lục phân được mã hóa từ file nhị phân. Mục tiêu là chuyển
đổi những file này về dạng ảnh PNG. Hình 11 tả hàm
thực hiện chuyển đổi dữ liệu từ dạng thập lục phân về dạng
ảnh PNG.
Hình 11. Hàm chuyển đổi về dạng ảnh
Với bộ dữ liệu dạng ảnh này, chúng tôi đã tiến hành
thống kê dữ liệu (hình 12), kết quả cho thấy mức độ chênh
lệch khá lớn về tỷ lệ của số lượng từng loại độc trong
bộ dữ liệu. Cụ thể, từ biểu đồ trên thể nhận ra rằng bộ
data này đang mất cân bằng về số lượng các loại độc
trong khi hầu hết độc thuộc về class 2: Allaple.A
class 3: Allaple.L trong khi class 5: Autorun.K và class 19:
Skintrim.N thì lại ngược lại. Kết qunày sẽ kéo theo sự mất
cân bằng trong quá trình huấn luyện hình sẽ xu
hướng học nhiều hơn từ những loại độc chiếm đa số
trong bộ dữ liệu cần phải khắc phục bằng cách điều chỉnh