1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp An toàn thông tin: Phương pháp phát hiện sự tương đồng mã nhị phân trong chương trình phần mềm dựa trên nhúng hàm nhị phân và học sâu

72 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phương Pháp Phát Hiện Sự Tương Đồng Mã Nhị Phân Trong Chương Trình Phần Mềm Dựa Trên Nhúng Hàm Nhị Phân Và Học Sâu
Tác giả Nguyen Hung Thinh, Vu Hoang Thach Thiet
Người hướng dẫn ThS. Đỗ Thị Thu Hiền, ThS. Bùi Thanh Bình
Trường học Đại học Công nghệ Thông tin - DHQG TP.HCM
Chuyên ngành An toàn thông tin
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 72
Dung lượng 86,11 MB

Nội dung

Sau đó, chúng tôi sẽ đánh giá hiệu quả của mô hình đểxuất trên những kịch bản phát hiện tương đồng và so sánh các công cụ BCSD liênquan và đạt được một kết quả tương đối vượt trội so với

Trang 1

NGUYEN HUNG THINH - 20521963

VU HOANG THACH THIET - 20521957

KHÓA LUẬN TOTNGHIEP PHƯƠNG PHÁP PHÁT HIỆN SỰ TƯƠNG ĐÔNG MÃ NHỊ PHAN TRONG CHUONG TRINH PHAN MEM DUA TREN

NHUNG HAM NHI PHAN VA HOC SAUBINARY CODE SIMILARITY DETECTION IN SOFTWARE PROGRAM

USING FUNCTION EMBEDDING AND DEEP LEARNING

CU NHAN NGANH AN TOAN THONG TIN

GIANG VIEN HUONG DAN:

ThS Đỗ Thị Thu Hiền

ThS Bùi Thanh Bình

TP Hồ Chí Minh, 2024

Trang 2

LỜI CẢM ƠN

Trong quá trình thực hiện và nghiên cứu khóa luận tốt nghiệp, nhóm chúng em

đã nhận được nhiều sự hướng dẫn, nhiều sự giúp đỡ, cùng với các ý kiến đónggóp quý báu đến từ các giảng viên hướng dẫn và giảng viên bộ môn Nhóm xinđược gửi lời cảm ơn và biết ơn chân thành đến cô Đỗ Thị Thu Hiển và thay Bùi

Thanh Bình vì đã trực tiếp làm giảng viên hướng dẫn và đã cùng đồng hành, đã

vô cùng nhiệt tình giúp đỡ chúng em trong suốt thời gian qua

Nhóm xin gửi lời cảm ơn đến bố mẹ, người thân và bạn bè đã hỗ trợ, động viên,tin tưởng và đã luôn làm hậu phương vững chắc trong suốt quá trình thực hiện

khóa luận.

Nhóm cũng chân thành cảm ơn các thầy cô trường của Đại học Công nghệ Thôngtin - DHQG TP.HCM, đặc biệt là các thầy cô ở khoa Mang máy tính và Truyềnthông, các thầy cô thuộc bộ môn An toàn Thông tin và Phòng thí nghiệm An toànthông tin, cảm ơn thay Phan Thế Duy vì đã chia sẻ thêm kinh nghiệm giúp nhómhoàn thành công việc tốt hơn

Cuối cùng, tuy rằng nhóm đã có nhiều nỗ lực để hoàn thiện khóa luận một cáchchỉn chu nhất, song sẽ không thể không mắc những sai sót Nhóm rất mong nhậnđược những góp ý, những đánh giá từ quý thầy cô trong hội đồng để chúng em

có thể cải thiện và hoàn thiện đề tài tốt hơn

Nguyễn Hùng Thịnh Vũ Hoàng Thạch Thiết

Trang 3

Mục lục

DANH MỤC CÁC HÌNH VẼ_

DANH MỤC CÁC BẢNG BIỂU

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

TÓM TẮT KHOÁ LUẬN 1 TONG QUAN ĐỀ TÀI 11 Lýdochọnđểtài eee 12 Phuong pháp nghiên cứu

13 Mục tiêu nghiên cứu ẶẶẶẶ So 14 Phạmvinghiêncứu cố eee 1.5 Đối tượng nghiên cứu

1.6 Cấu trúc Khóa luận tốtnghiệp

-2_CƠ SỞ LÝ THUYẾT 2.1 Phát hiện tương đồng mã nhị phân

2.1.1 Tổng quan bài toán Phát hiện tương đồng mã nhị phan

2.1.2 Ham-Function 0.0 0000000000.

2.1.3

Khốicơbản-BasicBlocek -2.14 Congcudichngugc

2.2 Deep Learning 6 eee 22.1 Tổng quanvéhocsdu

-2.2.2 Các thành phần chính của mạng nơ-ron

2.2.3 Một số khái nệm khác

2.2.4 Một số kiến trúc mạng nơ-ron phổ biến

2.2.5 Quy trình chung trong việc áp dụng học sâu

2.2.6 Phương pháp đo lường sự tương đồng giữa các vector

ii

11

1V

VI

10

11

14

14 1ó

18

23 26

29

Trang 4

2.3 Tình hình nghiên cứu và các công trình lên quan 31

2.3.1 Cac phương pháp truyền thống 31

2.3.2 Các phương pháp dựa trên Họcsâu 32

PHƯƠNG PHÁP THỰC HIỆN 35 3.1 Địnhnghĩa vấn để ẶẶẶQSS s 35 3.2 BiSimChecker - Phương pháp phát hiện sự tương đồng trong mã nhị phân dựa trên học sâu 37

3.2.1 Quá trình trích xuất hàm nhị phân 38

3.2.2 Phương pháp Ins2Vec biến đổi hàm nhị phân sang vector 40

3.2.3 Tính toán tương đồng giữahaihàm 46

3.3 Phương pháp đánhgiá 47

3.3.1 So sánh tương đồng One-to-one 47

3.3.2 So sánh tương đồng One-to-.many 49

HIỆN THỰC VÀ ĐÁNH GIÁ, THẢO LUẬN 50 41 Hiệnthực Ặ Qua 50 411 Cài đặtmôi trường 50

4.1.2 Huấn luyện mô hình skip-gram 51

4.1.3 Câuhỏingphiêncứu 52

4.2 Lựa chọn Mô hình nhúng đồ thị phù hợp 53

4.2.1 Tập dữ liệu huấn luyện và đánh giá mô hình 53

4.2.2 Kếtquảsosánh ch 54 4.3 So sánh BiSimChecker cùng với GeminivaSAFE 55

4.3.1 Tập dữ liệu huấn luyện và đánh giá mô hình 55

4.3.2 Tổng quan mô hình Gemini 57

4.3.3 Tổng quanmô hình SAFE 57 43.4 Kếtquảsosánh ch 58

KET LUẬN VÀ HUONG PHÁT TRIỂN 60

51 Kếtluận eee 60

52_ Hướng pháttriển cv 62

11

Trang 5

DANH MỤC CÁC HÌNH VẼ

Hình 2.1

Hình 2.2

Hình 2.3

Hình 2.4

Hình 2.5

Hình 2.6

Hình 3.1

Hình 3.2

Hình 3.3

Hình 3.4

Hình 3.5

Hình 4.1

Ví dụ về luồng điều khiển của hàm nhị phân 10

Hình anh minh họa basicblock_ 10

Một đoạn mã được chuyển sang ngôn ngữ assembly bằng IDA 12 Hình anh mô tả vị trí của học sâu trong lĩnh vực học may 15

Mô hình mạng Nơ-ron đơn giản 17

Quy trình chung trong Máy Học 26

Kiến trúc tổng quát của mô hình BiSimChecker 37

Trích xuất hàm trong tệp nhị phân - 38

Ví dụ mã assembly x86 và CFG tương ứng 40

Mô hình Ins2Vec 43

Mô hình Ins2Vec 45

Trích xuất hàm trong tệp nhị phân - 59

1V

Trang 6

DANH MỤC CAC BANG BIEU

Bang 4.1 Siêu tham số huấn luyện mô hình skip-gram Bang 4.2 Số lượng ACFG trong tập dữ liệu của Gemini Bảng 4.3 Kết quả so sánh áp dung các mô hình Nhung đồ thị khác

nhau từ mô hình Gemini

Bảng 4.4 Các dự án mã nguồn mở và các tùy chọn biên dich trong Tap

huấn luyện (Dataset-1) Bảng 4.5 Các dự án mã nguồn mở và các tùy chọn biên dich trong Tập

phát triển va tập kiểm tra (Dataset-2)

Bảng 4.6 Số lượng mẫu dữ liệu cho Train-Validation-Test Bảng 4.7 Các đặc trưng được trích xuất thủ công trong Gemini .Bang 4.8 So sánh hiệu quả so sánh tương đồng một-một của BiSim-

Checker với Gemini, SAFE trên tập đánh giá trong 20 epochs_

Trang 7

DANH MỤC CÁC KÝ HIỆU, CÁC

CHU VIET TAT

BCSD Binary Code Similarity Detection CVE Common Vulnerabilities and Exposures CNN Convolutional Neural Network

GNN _ Graph Neural Networks

NLP Natural language processing

CFG Control Flow Graph

bb Danh sách các câu lệnh trong 1 basic block MRR Mean Reciprocal Rank

N Số lượng các hàm tương đồng được xếp hạngrank; Vi trí của hàm thực sự tương đồng đầu tiên

%W Tổng của các thành phan từ i= 1 đến N

Mái

Trang 8

TÓM TẮT KHOÁ LUẬN

Hiện nay, việc đảm bảo an toàn cho chương trình phần mềm là một trong nhữngvan dé cực kỳ quan trọng, đặc biệt trong lĩnh vực An toàn thông tin Ta có thểthấy rằng, moi phần mềm đều tổn tại và tiềm tàng lỗ hổng bảo mật Nếu một mãnguồn có chứa lỗ hổng được biên dịch sang nhiều nền tảng hoạt động khác nhau,hoặc được tái sử dụng trong lập trình sẽ khiến cho cùng một lỗ hổng đồng thờiton tại và sẽ ảnh hưởng đến nhiều hệ thống Tuy vậy, có một thực tế đó là khôngphải lúc nào chúng ta cũng có sẵn mã nguồn (như C/C++ hay Python) để kiểmthử, chẳng hạn như trong các phần mềm mã nguồn đóng, mà chỉ có thể tiếp cậnđược tệp nhị phân Vì thế, phát hiện tương đồng mã nhị phân (Binary SimilarityCode Detection - BCSD) là một giải pháp trực tiếp và hiệu quả cho các bài toán

về An toàn phần mềm BCSD khi có kết hợp với phương pháp học sâu (DeepLearning - DL) giúp chúng ta có thể tính toán được độ tương đồng giữa hai hàmhoặc chương trình nhanh chóng và tự động Giá trị tương đồng này từ đó được

ứng dụng trong việc phát hiện lỗ hổng phần mềm, phát hiện đoạn mã độc hại,

hay phát hiện sao chép mã nguồn trái phép

Các giải pháp BCSD ngày càng có nhiều công trình và thuật toán mới, tuy nhiênvẫn có giới hạn về phương pháp biểu diễn nhị phân một cách hiệu quả, về hiệusuất và chi phí tính toán Từ động lực trên, trong bài luận này, chúng tôi sẽ mô

tả về một giải pháp BCSD mới gồm có hai khía cạnh chính: Thứ nhất, là phương

pháp nhúng hàm nhị phân sang không gian vector dựa trên học sâu và kết hợp

với biểu diễn dé thị giàu ngữ nghĩa giúp nắm bắt tốt các đặc trưng cũng như mối

quan hệ chặt chẽ giữa những lệnh trong ham Thứ hai, chúng tôi áp dụng mang

Siamese trong huấn luyện mô hình để tối ưu biểu diễn vector của hàm nhị phânhiệu quả hơn Khi đã có vector biểu diễn đủ tốt, chúng tôi áp dụng tương đồngcosin để tính toán giá trị tương đồng giữa các hàm với tốc độ tốt và giảm thiểuđược chỉ phí tính toán Sau đó, chúng tôi sẽ đánh giá hiệu quả của mô hình đểxuất trên những kịch bản phát hiện tương đồng và so sánh các công cụ BCSD liênquan và đạt được một kết quả tương đối vượt trội so với các công trình liên quan.Cuối cùng, chúng tôi bàn luận về hướng mở rộng trong tương lai để có thể tạo rađược một phương pháp phát hiện tương đồng mã nhị phân toàn điện hơn

Trang 9

Chương 1

TONG QUAN DE TÀI

Tom tat chuong

Trong chương này, chúng tôi xin trình bày tóm tắt về bài toán Phát hiện tươngđồng mã nhị phân Đồng thời đưa ra mục tiêu, đối tượng được nghiên cứu, phạm

vi nghiên cứu, cũng như cầu trúc của toàn bộ khóa luận

11 Lý do chọn đề tài

Việc phát hiện các lỗ hổng phần mềm là một trong những mối quan tâm chínhtrong lĩnh vực An toàn thông tin, bởi vì bat cứ phần mềm nào cũng có thể tổntại các rủi ro về bảo mật Bên cạnh đó, sự phát triển của mạng lưới Internet VạnVật - Internet of Things (IoT) đã dẫn làm cho các kiến trúc tập lệnh (InstructionSet Architecture - ISA) được sử dụng cho mã nhị phân ngày càng đa dạng và phổbiến Khi một đoạn mã nguồn có lỗ hổng được biên dich để hoạt động trên nhiềukiến trúc khác nhau, nó làm gia tăng sự phổ biến và tác động của các lỗ hổng trênnhiều nền tang khác nhau Do đó, phát hiện sự tương đồng của mã nhị phân làmột giải pháp cho thấy tính hiệu quả và nhanh chóng trong việc phân tích phần

mềm ngay trên chính tệp nhị phân mà không yêu cầu truy cập đến mã nguồn.

Khi đã tính được giá trị tương đồng giữa hai hàm nhị phân, ta có thể sử dụnggiá trị này để có thể phát hiện được các lỗ hổng phần mềm đã biết trên một tập

lớn phần mềm cần kiểm thử, xác định được các đoạn mã độc hại, nhận biết các

ho phần mềm độc hai, và xác định những trường hợp vi phạm bản quyền trongphần mềm hoặc vi phạm bằng sáng chế phần mềm [11] Việc phát hiện các lỗhổng phần mềm đã biết trong các một tập lệnh cụ thể có thể dé dang làm được

2

Trang 10

Chương 1 TỔNG QUAN ĐỀ TÀI

bằng việc sử dụng phương pháp so sánh để phân tích sự tương đồng của mã nhịphân trên nhiều kiến trúc tập lệnh khác nhau Điều này là khả thi vì các hàm nhịphân có thể giữ nguyên ngữ nghĩa tương đương mặc dù trải qua nhiều biến đổi

về mặt hình thức trong suốt quá trình biên dịch [1]

Phát hiện sự tương đồng mã nhị phân dựa trên học sâu hỗ trợ việc tính toán sựtương đồng giữa các hàm nhị phân một cách nhanh chóng hơn và tự động hơn.Bởi vì một trong những lợi thế lớn nhất của học sâu chính là chúng ta có khả năng

tự động trích xuất các đặc trưng từ dữ liệu thô [21] Bằng cách áp dụng học sâuvào van dé BCSD, chúng ta có thể sử dụng các lớp của mang nơ-ron sâu để có thểhọc và trích xuất những đặc trưng phức tạp từ dữ liệu (tức là học đặc trưng và

các thông tin ngữ nghĩa của hàm nhị phân thông qua bộ lệnh hợp ngữ của hàm)

mà không cần can thiệp công sức phân tích thủ công Đặc biệt, trong các kịch bảnđánh giá BCSD phức tạp, chẳng hạn như phát hiện tương đồng đa nền tang, đatrình biên dịch, đa tùy chọn tối ưu hóa mã, việc áp dụng học sâu đã chứng minhđược khả năng vượt trội của mình so với các phương pháp truyền thống, từ đócác giải pháp ứng dụng học sâu vào BCSD nổi bật lên như một xu hướng để cóthé phát triển tiềm năng để khai thác và cải tiến liên tục [11, 17, 4, 22]

Từ những điểm nêu trên, chúng tôi nhận thấy rằng việc xây dựng một phươngpháp phát hiện tương đồng mã nhị phân tự động, tiên tiến và có hiệu suất cao

là một nhu cầu rất cần thiết và cấp thiết Vì vậy chúng tôi muốn thực hiện dé tàinày, ứng dụng học sâu để có thể thực hiện được quá trình so sánh nhị phân hoàntoàn được tự động hóa, tiết kiệm được công sức thủ công mà vẫn đảm bảo đượchiệu suất tốt

1.2 Phương pháp nghiên cứu

Để có thể thực hiện để tài này, trước tiên chúng tôi sẽ tiến hành tìm hiểu quy

trình chung để xây dựng được mô hình phát hiện tương đồng mã nhị phân, bao

gồm việc khảo sát các công trình nghiên cứu nổi bật và hiện đại trong lĩnh vực

để có được cái nhìn khái quát về bài toán và những thành tựu cũng như hạn chế

hiện tại trong lĩnh vực Bên cạnh đó, chúng tôi tham khảo, thu thập các thập các

bộ dữ liệu phổ biến trong nghiên cứu BCSD vì hướng tiếp cận của chúng tôi nói

Trang 11

Chương 1 TỔNG QUAN ĐỀ TÀI

riêng và xu hướng nghiên cứu nói chung sẽ liên quan tới việc có thể ứng dụng trí tuệ nhân tạo, hoc máy và hoc sâu để tạo mô hình học từ dữ liệu Sau đó, chúng tôi xây dựng một mô hình phát hiện tương đồng nhị phân mới, tự động học đặc

trưng, và áp dụng phương pháp học sâu nhằm có khả tăng hiệu quả của việc

xử lý biểu diễn mã nhị phân sang vector nhúng Điều này giúp loại bỏ công sứcphân tích thủ công và tăng độ chính xác trong việc so sánh tương đồng mã nhị

phân cũng như giảm bớt đi những sự thiên vị của con người vào bài toán Cụ thể,

chúng tôi sẽ thực hiện những bước sau đây: Khảo sát và phân tích những nghiên

cứu hiện có để hiểu rõ các kỹ thuật dùng để trích xuất đặc trưng, các kiến trúcmạng nơ-ron phổ biến, và các phương pháp một đánh giá hiệu quả của các mô

hình BCSD, các tập dữ liệu cho bài toán từ ngữ cảnh đơn giản (ví dụ như giải

pháp BCSD đơn nền tảng) đến phức tạp (chẳng hạn như giải pháp BCSD đa nềntảng) Tiếp theo, chúng tôi phát triển một mô hình học sâu để tự động trích xuất

và học các đặc trưng từ mã nhị phân cũng như biểu diễn đồ thị luồng điều khiển

của hàm, sử dụng mạng nơ-ron sâu để xử lý và biểu diễn mã nhị phân dưới dạng

vector nhúng, sau đó sử dụng các vector này để có thể so sánh và đánh giá đượcmức độ tương đồng giữa các đoạn mã nhị phân Để đảm bảo khả năng khái quát

hóa của mô hình, chúng tôi thực hiện kiểm tra trên những tập dữ liệu có phân

phối khác biệt so với tập huấn luyện và so sánh với các công trình nghiên cứuliên quan Cuối cùng, dựa trên những kết quả đánh giá, chúng sẽ tôi dé xuất cáchướng mở rộng và cải tiến mô hình trong tương lai, bao gồm việc áp dụng cáckiến trúc mạng nơ-ron mới, cải tiến kỹ thuật trích xuất đặc trưng, và mở rộng

được phạm vi ứng dụng của mô hình trong các bài toán khác nhau trong việc

đảm bảo An toàn phần mềm

1.3 Mục tiêu nghiên cứu

Khóa luận gồm các mục tiêu chính như sau:

1 Xây dựng một phương pháp nhúng hàm nhị phân mới, có ứng dụng học

sâu Vai trò của phương pháp này là nhúng biểu diễn luồng đồ thị của cáchàm nhị phân sang vector, trong đó nhúng trực tiếp instruction assembly

sang biểu diễn vector Các hàm càng tương đồng, vector sẽ càng tương đồng

Trang 12

Chương 1 TỔNG QUAN ĐỀ TÀI

và càng gần nhau trong không gian vector Đồng thời, phương pháp nhúngnày có tốc độ xử lý nhanh chóng và hạn chế công sức thủ công

2 Có cơ chế tính toán mức độ tương đồng giữa hai vector biểu diễn hai hàm

nhị phân có độ chính xác cao và không tiêu tốn nhiều chi phí

3 Kịch bản so sánh tương đồng từ đơn giản đến phức tạp, và sẽ sát với thực tế

nhất Ví dụ so sánh các hàm được biên dịch từ cùng mã nguồn cho những

nền tảng khác nhau (cross-platforms hay cross-architectures), được sử dụng

các trình biên dịch khác nhau (cross-compilers), trên các tùy chọn tối ưu hóa

mã nguồn khác nhau (cross-optimizations)

4 Triển khai được các kịch bản ứng dụng thực tế: so sánh tương đồng giữa

cặp hàm nhị phân, tìm kiếm hàm tương đồng trên tập lớn các hàm nhịphân, phát hiện lỗ hổng phần mềm đã biết trên tập lớn phần mềm

1.4 Phạm vi nghiên cứu

Chúng tôi sẽ tập trung vào phát hiện tương đồng mã nhị phân của ngôn ngữC/C++ ở cấp độ hàm Chúng tôi trích xuất các hàm từ các tệp nhị phân đượcbiên dịch từ các thư viện mã nguồn mở Xây dựng một phương pháp nhúng biểu

diễn hàm hiệu quả, sử dụng học sâu để biểu diễn các hàm thành vector Phương

pháp có khả năng phát hiện tương đồng đa nên tảng Dữ liệu đầu vào sẽ bao gồmcác hàm nhị phân, và kết quả đầu ra là giá trị thể hiện mức độ tương đồng giữa

các hàm và nhãn cho biết sự tương đồng dựa trên ngưỡng giá trị tương đồng.

1.5 Đối tượng nghiên cứu

Đối tượng được nghiên cứu chính bao gồm:

se Tệp thực thi đa nền tảng, hàm nhị phân

¢ Hoc máy, hoc sâu.

® Ins2Vec - Phương pháp nhúng mã hợp ngữ sang vector.

® BiSimChecker - Mô hình BCSD dựa trên học sâu.

5

Trang 13

Chương 1 TỔNG QUAN ĐỀ TÀI

Chúng tôi sẽ trình bày nội dung của khóa luận trong 5 chương như sau:

Chương 1: TONG QUAN DE TÀI

Trình bày tổng quan về đề tài của khóa luận tốt nghiệp, khái quát địnhhướng nghiên cứu mà chúng tôi muốn hướng tới cũng như mục tiêu muốn

đạt được.

Chương 2: CƠ SỞ LÝ THUYET

Trình bày về cơ sở lý thuyết, các định nghĩa, các khái niệm cũng như nhữngkiến thức làm nền tang để thực hiện được nghiên cứu Đồng thời trình bày

sơ lược một số công trình nghiên cứu có liên quan trong lĩnh vực

Chương 3: PHƯƠNG PHÁP THỰC HIỆN

Đây chính là phần trọng tâm của khoá luận, chúng tôi trình bày nội dungchính về mô hình và phương pháp pháp hiện tương đồng mã nhị phân ma

chúng tôi đã xây dựng.

Chương 4: HIỆN THỰC, ĐÁNH GIÁ VÀ THẢO LUẬN

Trong phần này chúng tôi sẽ trình bày các thí nghiệm và đánh giá phươngpháp dé xuất đã dé cập ở Chương 3 Sau đó sẽ thực hiện đánh giá nhữngkết quả đạt được và nêu bật các thảo luận chung

Chương 5: KẾT LUẬN VA HƯỚNG PHÁT TRIENChúng tôi sẽ đưa ra những kết luận về dé tài và mô hình đã xây dựng,

dé xuất một số hướng phát triển mở rộng cho những nghiên cứu về tươngđồng mã nhị phân trong tương lai

Trang 14

Chương 2

CƠ SỞ LÝ THUYÊT

Tóm tắt chương

Trong chương này, chúng tôi sẽ trình bày về các kiến thức lý thuyết trong phạm

vi liên quan đến khóa luận Chương này sẽ bao gồm cái nhìn chung về bài toánphát hiện sự tương đồng mã nhị phân Cùng với đó là lý thuyết về mô hình họcsâu Đồng thời, chúng tôi sẽ trình bày tóm tắt về những công trình nghiên cứu

liên quan và những điểm mới của khóa luận này so với những nghiên cứu trước

đây.

2.1 Phát hiện tương dong mã nhị phân

2.1.1 Tổng quan bài toán Phát hiện tương đồng mã nhị phân

Phát hiện sự tương đồng mã nhị phân liên quan đến việc phân tích các biểu diễnnhị phân của hai hàm để có thể xác định được mức độ tương đồng của chúng Vớiđầu vào là biểu diễn nhị phân của một cặp hàm bắt kì đến từ hai chương trình nhịphân khác nhau, một phương pháp BCSD sẽ tính toán được dau ra là một điểm

số tương đồng để có thể thể hiện được mức độ tương đồng giữa hai hàm làm đầuvào Điểm số tương đồng này có thể được sử dụng để chúng ta xác định những

lỗ hổng phần mềm, bởi vì nếu một hàm tương đồng với một hàm đã biết là có

lỗ hổng bảo mật thì ta có thể xác định được hàm đó cũng có lỗ hổng Ngoài ra

còn có thể xác định các đoạn mã độc hại, phân loại các họ phần mềm độc hại, vàxác định các trường hợp sao chép phần mềm hoặc vi phạm bằng sáng chế phầnmềm [11] Công việc so sánh tương đồng trên mã nhị phân này tương đối là phức

Trang 15

Chương 2 COSO LY THUYẾT

tạp va khó khăn với con người hơn so với việc phân tích dựa trên mã nguồn, bởi

vì một phần mềm thường được biên dich để có thể hoạt động trên nhiều nhữngnền tảng kiến trúc khác nhau, điều này có thể khiến cho những tập lệnh nhị phâncũng khác đi Dù xuất phát cùng một đoạn mã nguồn, khi được biên dịch bằng

những trình biên dịch khác nhau, hay dùng các phiên bản khác trong một trình

biên dịch mã nguồn cũng khiến cho mã nhị phân đã có một sự khác biệt rõ rệt

Bên cạnh đó, còn có các tùy chọn biên dịch khác như biên dịch trên các lựa chọn

tối ưu hóa khác nhau, hay là các phương pháp làm rối mã nhị phân cũng khiếncho công việc so sánh tương đồng nhị phân gặp nhiều thách thức

2.1.2 Hàm - Function

Trong ngữ cảnh phát hiện sự tương đồng mã nhị phân, hàm (function) là mộtkhối mã đã được biên dịch thành những mã máy và có thể được gọi để thực thi

một nhiệm vụ cụ thể Một hàm bao gồm một tập hợp gồm các lệnh được nhóm

lại đưới một tên gọi và có thể được tái sử dụng ở nhiều đoạn khác nhau trong mãnguồn Hàm giúp cấu trúc chương trình một cách rõ ràng va dé để chúng ta quản

lý hơn, đặc biệt quan trọng khi phân tích và so sánh mã nhị phân.

Chúng tôi chọn hàm làm đơn vị chính trong phát hiện tương đồng nhị phân vì

các lý do sau đây:

1 Tính đơn vị chức năng: Mỗi hàm thường thực hiện một nhiệm vụ cụ thể, rõ

ràng và độc lập Điều này có thể làm cho việc xem xét và so sánh giữa cáchàm dé hơn Bởi vì hàm thường chứa các khối mã liên quan đến một chức

năng cụ thể, việc so sánh các hàm tương tự giữa các tệp nhị phân khác nhau

sẽ giúp phát hiện các phần mã có chức năng tương đương

2 Khả năng tái sử dụng: Một hàm, hay được gọi rất nhiều trong một ứng

dụng hoặc giữa các phần mềm khác nhau, từ đó tăng tính tái sử dụng của

mã nguồn và cùng một hàm có thé được tái sử dụng trong nhiều chương

trình Việc phát hiện các hàm tương tự trong các tệp nhị phân khác nhau có

thể giúp nhận diện được các hàm tái sử dụng, từ đó, hỗ trợ tìm kiếm cáchàm có chứa lỗ hổng bảo mật, các hàm đã biết là mã độc, v.v

Trang 16

Chương 2 COSO LY THUYẾT

3 Tinh rõ ràng và bảo trì: Sử dung hàm giúp mã nguồn trở nên rõ ràng hơn,

dé đọc và dé bảo trì hơn Khi phân tích mã nhị phân, việc tập trung và các

hàm giúp dễ xác định và so sánh các đoạn mã có chức năng tương tự, từ đó phát hiện các mẫu mã độc, các hàm có nguy cơ bảo mật hoặc mã sao chép.

Ngoài những yếu tố trên, một hàm còn có khả năng biểu diễn thành đồ thị luồngđiều khiển Control Flow Graph (CFG) một cách dé dàng Hình 2.1 minh hoa CFG

của hàm A và hàm B Ưu điểm của hàm khi có thể biểu diễn thành CFG như sau:

1 Phân tích luồng điều khiển của ham: CFG giúp hình dung rõ ràng các

đường đi khác nhau mà chương trình có thể thực hiện khi chạy, bao gồmcác điều kiện rẽ nhánh va vòng lặp Điều này hữu ích trong việc phân tíchhành vi của hàm, giúp nhận diện các điểm tương đồng và khác biệt giữa các

hàm trong các tệp nhị phân khác nhau.

2 Phát hiện lỗi: CFG hỗ trợ việc phát hiện các lỗi tiềm ẩn trong một hàm như

vòng lặp vô tận, điều kiện không thể đạt tới, hoặc các đoạn mã không thể

đạt tới Trong ngữ cảnh bảo mật, việc phát hiện lỗi này giúp xác định các lỗ

hổng có thể bị tận dụng khai thác.

3 So sánh và đo lường tương đồng: Trong lĩnh vực phát hiện sư tương đồng

mã nhị phân, CFG cung cấp một phương pháp mạnh mẽ để so sánh và đolường mức độ tương đồng giữa các hàm, ngay cả khi chúng được biên dịchbởi các trình biên dịch khác nhau hoặc để chạy trên các nền tảng khác nhau.Điều này hữu ích trong việc phân tích mã độc, phát hiện mã sao chép hay

nhận diện đoạn mã có chức năng tương tự.

Trang 17

Chương 2 COSO LY THUYẾT

Function A Function B

9x199669d59 55 push rbp 9x199909ddf mov eax, dword [rdi]

0x100000d51 4889e5 mov rbp, rsp 9x199966de1 mov edx, dword [rsi]

9x199999g54 48897df8 mov qword [local 8h], rdi 0x100000de3 mov dword [rdi], edx

9x100000d58 488975f9 mov qword [local 16h], rsi 9x199909de5 mov dword [rsi], eax

0x190000d5c 488b75T8 mov rsi, qword [local_8h] 0x100000de7 ret

9x199996g69 8b06 mov eax, dword [rsi]

0x100000062 8945ec mov dword [local 14h], eax

9x199999g65 488b75f9 mov rsi, qword [local_ 19h]

0x190000d69 8b@6 mov eax, dword [rsi]

0x100600d6b 488b75f8 mov rsi, qword [tocal_ 8h]

9x199999d6f 8996 mov dword [rsi], eax

0x190600d71 8b45ec mov eax, dword [local_14h]

0x100000d74 488b75f9 mov rsi, qword [1ocal_19h]

0x100000d78 8906 mov dword [rsi], eax

0x100000d7a 5d pop rbp

0x100000d7b c3 ret

HINH 2.1: Ví dụ về luồng điều khiển của hàm nhị phân

2.1.3 Khối cơ ban - Basic Block

Khối cơ ban (Basic Block) là một đoạn mã lệnh trong một chương trình có điểmvào duy nhất, điểm ra duy nhất và thực thi tuần tự Nghĩa là, khối cơ bản chỉ cóthể được thực thi bắt đầu từ lệnh đầu tiên, kết thúc tại lệnh cuối cùng (có thể làlệnh nhảy hoặc return) và tất cả các lệnh bên trong được thực thi tuần tự từ trênxuống dưới mà không bị ngắt quãng (trừ lệnh nhảy ở cuối) Nói cách khác, khilệnh đầu tiên của khối co bản được thực thi, tat cả các lệnh còn lại cũng sé đượcthực thi theo thứ tự, và không có cách nào thoát khỏi khối cơ bản trước khi đếnlệnh cuối cùng Hình 2.2 minh họa các khối basic block trong một hàm

100B585C

100B585C: 100B5832:

mov eax, edi mov edi, [esp+1Ch]

shr eax, 1

mov ecx, edi

HINH 2.2: Hinh anh minh hoa basic block

10

Trang 18

Chương 2 COSO LY THUYẾT

Tầm quan trọng của Basic Block trong việc phân tích tương đồng mã nhị phân:

1 Tính đơn vị: Khối cơ bản có tính đơn vị cao, vì tất cả các lệnh trong khối đều

được thực thi mà không có sự ngắt quãng Điều này giúp cho việc phân tích

mã trở nên dễ dàng hơn vì không cần quan tâm các lệnh nhảy mà có điều

kiện hoặc không có các điều kiện bên trong khối

2 Câu trúc dir liệu quan trọng: Trong phân tích mã nhị phân va các chương

trình phát hiện tương đồng mã, khối cơ bản là cấu trúc dữ liệu quan trọng.

Các công cụ phân tích thường chia mã thành các khối cơ bản dé dé danghơn trong việc so sánh và phân tích sự tương đồng

3 Phát hiện sự tương đồng mã: Trong bối cảnh phát hiện tương đồng mã nhị

phân, khối cơ bản là đơn vị nhỏ nhất mà các công cụ phân tích thường xem

xét Bằng cách so sánh các khối cơ bản từ các tệp nhị phân khác nhau, có

thể xác định được mức độ tương đồng giữa các đoạn mã, giúp phát hiện lỗi

phần mềm, hoặc đạo văn phần mềm

2.1.4 Công cụ dịch ngược

Công cụ dịch ngược (Reverse Engineering Tools) là các phần mềm được sử dụng

để phân tích mã nhị phân và chuyển đổi nó thành mã nguồn có cấu trúc caohơn Công cụ này giúp phân tích phần mềm, nắm rõ hơn về các phần cấu trúc,các chức năng và logic của chương trình đã được biên dịch Một số công cụ dịchngược được sử dụng có thể nói là rộng rãi hiện nay có thể kể đến như IDA Pro,

Ghidra, Radare2, Angr

Các chức năng chính của công cụ dịch ngược như sau:

e Trích xuất hàm: các công cụ dịch ngược giúp chuyển đổi mã máy không

có cau trúc thành mã nguồn có cấu trúc (thường là assembly), giúp ngườidùng dé dàng hiểu va phân tích các hàm có trong mã nhị phân

® Tìm lỗi và sửa chữa: Công cu dịch ngược đặc biệt rất có ích trong việc phát

hiện và khắc phục các lỗi trong chương trình Bằng cách chuyển đổi mã máythành mã nguồn có cấu trúc, người phát triển phần mềm có thể hiểu rõ hơn

về lỗi va dé dang sửa các bytes code trực tiếp trên chương trình

11

Trang 19

Chương 2 COSO LY THUYẾT

© Phân tích mã độc: Công cụ dich ngược cung cấp kha năng phân tích mã độc

để xác định và loại bỏ các đoạn mã độc hại trong chương trình.

s Tương tác với phần mềm: Các công cụ dịch ngược hiện đại thường cũng

cho phép gỡ lỗi trực tiếp chương trình và tương tác với phần mềm để hỗ trợ

trong quá trình phân tích và chỉnh sửa mã nhị phân.

[Elipavew-aA EG) Hex view-1 [A] structures [E] Enums Imports Exports

File Name : C:\Users\sl4v\Desktop\2.bin a Format : Binary file

Base Address: @@@@h Range: @@@@h - 2F12Ch Loaded length: 2F12Ch

3

: ARM tecture: metaarm

Generic assembler for ARM : Little endian

egment type: Pure code

AREA ROM, CODE, READWRITE, ALIGN=6

CODE16

DCD @x29000400 | DCD

DCD DCD DCB @xE3

00000000 00000000: ROM:00000000 (Synchronized with Hex View-1) v

HÌNH 2.3: Một đoạn mã được chuyển sang ngôn ngữ assembly bang

IDA

Với những tính năng nêu trên, công cụ dịch ngược hét sức quan trọng trong bài

toán phát hiện sự tương đồng mã nhị phân (BCSD) bằng cách cung cấp các công

cụ và kỹ thuật để phân tích sâu các mã nhị phân Chúng giúp trích xuất và hiểucau trúc của mã máy, xây dựng biểu dé luồng điều khiển, phân tích các biểu diễncủa mã máy và tìm kiếm các mẫu cụ thể Hình 2.3 cho thấy một đoạn mã đượcchuyển sang ngôn ngữ assembly bằng IDA Pro

12

Trang 20

Chương 2 COSO LY THUYẾT

các ưu điểm sau:

¢ Khả năng hỗ trợ đa kiến trúc: IDA hỗ trợ nhiều kiến trúc xử lý khác nhau,

cho phép ta phân tích mã nhị phân trên các nền tảng khác nhau như x86,ARM, MIPS và hơn nhiều nữa Điều nay đảm bảo rang chúng tôi có thể tríchxuất thông tin từ các tập tin nhị phân và áp dụng vào ngữ cảnh phân tíchtương đồng đa nền tang

* IDA thân thiện với người dùng: IDA có giao diện trực quan để người dùng

có thể tương tác với công cụ và các tệp nhị phân Các chức năng và tính năng được tổ chức một cách rõ ràng, cho phép chúng tôi dé dang thao tác

và điều hướng trong quá trình phân tích mã nhị phân

¢ Khả năng linh hoạt và tính mở rộng: IDA linh hoạt mở rộng và có các plugin,

cho phép chúng tôi tùy chỉnh và mở rộng khả năng của công cụ để phù hợpvới nhu cầu dịch ngược tệp thực thi của chúng tôi Đặc biệt IDA còn cungcấp bộ API với các hàm cho phép chúng tôi có thể tương tác với IDA từchương trình bên ngoài Bằng cách sử dung IDA API, chúng tôi có thể tựđộng hóa các tác vụ phân tích và trích xuất cho công cụ của mình

© Hỗ trợ phân tích động: Ngoài việc phân tích tĩnh, IDA cũng cung cấp khả

năng phân tích động Điều này cho phép chúng tôi xem các giá trị biến, theodoi luồng điều khiển, hoặc thâm chí thực hiện gỡ lỗi trong quá trình phân

tích mã nhị phân.

se Cộng đồng hỗ trợ và tài liệu phong phú: IDA có lượng người dùng sử dụng

lớn, cung cấp các sự hỗ trợ và tài liệu phong phú Điều này giúp chúng tôi

có thể xác định lỗi và xử li dé dang và nhanh chóng.

13

Trang 21

Chương 2 COSO LY THUYẾT

2.1.4.2 IDA Python API

API Python của IDA (IDAPython) cung cấp một giao diện lập trình cho phép

người dùng tự động hóa các tác vụ trong IDA Với IDA Python API, chúng tôi có

khả năng tự động hóa các tác vụ phân tích các tập tin nhị phân trong nghiên cứu

của mình Một số điểm tương đối nổi bật của API này:

s® Truy cập thông tin trong các tập tin nhị phân: IDA Python API cho phép

chúng tôi có thể truy cập và trích xuất những thông tin về các thành phầntrong tập tin nhị phân như các hàm, khối cơ bản, địa chi, bang cách sử

dụng các hàm như get_func_name(), get_func_offset(), get_operand_value(),

get_segm_start()

¢ Kha năng tự động hóa: Với IDA Python API, chúng tôi có thể thực hiện các

tác vụ như phân tích tập tin nhị phân một cách tự động thông qua các hàm

như analyze_area(), auto_wait(), wait_for_sync().

° Tích hợp với các công cụ khác: Bang cách sử dung các giao thức va hàm liên

kết của IDA Python API chúng ta có thể tích hợp IDA với các công cụ khác.Điều này rất giúp ích cho chúng tôi trong việc xây dựng công cụ dịch ngược

và trích xuất hàm hoàn chỉnh trong phương pháp này

Học sâu (Deep Learning) là một lĩnh vực con của học máy (Machine Learning)

tập trung vào việc sử dụng các mạng nơ-ron nhân tạo có nhiều lớp để trích xuất

và học các đặc trưng ở mức độ cao từ dữ liệu Trong quá trình này, dữ liệu được

chuyển đổi thành các con số và các lớp xử lý sẽ lần lượt phân tích các con số này

để tìm ra các đặc trưng quan trọng Học sâu nổi bật nhờ khả năng tự động hóa

14

Trang 22

Chương 2 COSO LY THUYẾT

việc trích xuất đặc trưng mà không cần can thiệp thủ công, cho phép nó đạt đượcnhững tiến bộ đáng kể trong các khía cạnh chẳng hạn như nhận dạng và đồi chiếuhình ảnh, xử lý về ngôn ngữ tự nhiên, ngoài ra còn có nhiều ứng dụng khác

Trong lập trình thông thường, chẳng hạn như muốn so sánh sự tương đồng giữa

hai hàm mục tiêu, ta phải xác định những quy tac/ luật (rules) cụ thé từ trước,sau đó mới có thể xác định được đầu ra là cặp hàm đó tương đồng hay không.Tuy nhiên, việc xác định các quy tắc là vô cùng phức tạp và có thể nói là nhiều vô

số kể Vì vậy, với những van dé phức tạp như so sánh tương đồng nhị phân giữa

hai hàm, ta có thể ứng dụng học sâu để tự động hóa quá trình này Nói cách khác,

chúng ta sẽ dùng ML/DL khi chúng ta không thể viết ra luật một cách tường

minh hoặc không thể xác định ra được luật Hay khi bài toán không thể mở rộng

hay điều chỉnh quy mô (up/ down scale) Đặc biệt, chúng ta nên áp dụng học sâu

khi chúng ta có nhiều đữ liệu (dataset).

Nhìn chung, học sâu mạnh mẽ trong các công việc sau:

1 Các van dé cần xác định quá nhiều quy tắc

2 Khám phá những hiểu biết trong các tập dữ liệu lớn mà con người rất khó

hoặc không thể làm thủ công.

3 Đối với các môi trường thay đổi liên tục, học sâu có thể "học" để thích ứng

với các ngữ cảnh mới.

Intelligence Artificielle

Trang 23

Chương 2 COSO LY THUYẾT

Bên cạnh đó, DL cũng có những han chế nhất định, thông thường, một mô hìnhhọc sâu sẽ không đáp ứng được tốt trong các tình huống sau đây:

1 Khi chúng ta cần khả năng diễn giải, giải thích quyết định của mô hình

Điều này là do câu trúc phức tạp của mô hình và việc xử lý thông tin quanhiều lớp ẩn, khiến cho quá trình mà mô hình đưa ra kết quả trở nên khó

hiểu và khó giải thích Một mô hình học sâu thường được ví von là một "hộp

đen" vì bản chất khó diễn giải của nó

2 Khi các phương pháp đơn giản và truyền thống đã đáp ứng đủ để xử lý bài

toán thì ta không cần dùng đến học sâu Tức là nếu một bài toán có thể giải

quyết bằng quy tắc/ luật (rule-based) đơn giản thì chúng ta sẽ áp dụng các

luật này để tiết kiệm tài nguyên và chỉ phí tính toán, vì một mô hình họcsâu đòi hỏi chỉ phí tính toán tương đối tốn kém hơn

3 Khi sai sót là không được chấp nhận Tức là trong những hoàn cảnh quan

trọng hoặc yêu cầu độ chính xác cao, bất kỳ lỗi nào cũng không thể chấp

nhận được, ta sẽ không áp dụng DL vì độ chính xác của nó không thể là

hoàn hảo.

4 Trong trường hợp mà nghiên cứu không có quá nhiều dữ liệu Vì dữ liệu

càng "chất lượng" thì chúng ta càng xây dựng được mô hình tốt Dữ liệuquyết định trực tiếp đến hiệu suất của mô hình, cũng như khả năng tổngquát hóa van dé Khi thiếu dữ liệu, mô hình sẽ không "học" đủ và không

thật sự hiệu quả được.

Nhìn chung, khi đã nắm bắt được điểm mạnh và hạn chế của học sâu, việc ápdụng học sâu vào phát hiện sự tương đồng mã nhị phân là một hướng nghiêncứu tiềm năng, phù hợp, thú vị và có nhiều khía cạnh để khai thác

2.2.2 Các thành phan chính của mạng no-ron

2.2.2.1 Các lớp chính trong mạng no-ron

Mạng nơ-ron nhân tạo bao gồm các thành phần chính sau: lớp đầu tiên là inputlayer, các lớp ở giữa là hidden layer, lớp cuối là output layer Trong mỗi lớp là cácnode Ví dụ hình 2.5 có 1 lớp đầu vào, 1 lớp ẩn và 1 lớp đầu ra

Trang 24

Chương 2 COSO LY THUYẾT

HINH 2.5: Mô hình mang Nơ-ron đơn giản

Lớp đầu vào (Input layer): Nhận dữ liệu đầu vào, chẳng hạn như hình ảnh, văn

bản, âm thanh hoặc bất kỳ dạng dữ liệu nào mà mô hình được thiết kế để xử lý

(cụ thể trong bài toán này là biểu diễn nhị phân của hàm) Sau đó chuyển tiếp

đến các lớp xử lý tiếp theo của mạng Một điểm quan trọng trong lớp đầu vào làviệc xác định đúng kích cỡ và hình dang (shape) của dữ liệu đầu vào, đảm bảorằng dữ liệu phù hợp với các lớp tiếp theo trong mạng

Các lớp ẩn (Hidden layers): Đây là các lớp nằm giữa lớp đầu vào và lớp đầu ra.Mỗi lớp ẩn bao gồm nhiều nơ-ron và thực hiện các phép tính để trích xuất và biếnđổi dữ liệu từ lớp trước đó Chúng ta có thể điều chỉnh số lượng mạng nơ-rontrong mỗi lớp cũng như tùy chọn số lớp ẩn phù hợp với mỗi bài toán

Đầu ra (Output layer): Đưa ra kết quả dự đoán từ mạng nơ-ron sau khi đã xử lý

thông qua các lớp ẩn Số lượng nơ-ron trong lớp này phụ thuộc vào loại bài toán

ma mạng no-ron được huấn luyện để giải quyết (ví dụ: một nơ-ron cho bài toánphân loại nhị phân, nhiều nơ-ron cho bài toán phân loại đa lớp)

2.2.2.2 Các lớp khác trong mạng nơ-ron

Một số lớp khác

* Lớp Pooling, hay còn gọi là lớp gộp, là một thành phan quan trọng trong

mạng nơ-ron tích chập Mục đích chính của lớp này là giảm kích thước

không gian của đầu vào, từ đó giảm số lượng tham số và lượng tính toántrong mạng, đồng thời giúp tăng khả năng kháng nhiễu và nhưng vẫn giữ

17

Trang 25

Chương 2 COSO LY THUYẾT

được các đặc trưng quan trong Ta có thé lựa chon Max Pooling, chọn giá

trị lớn nhất trong một cửa sổ di chuyển (kernel) trên toàn bộ đầu vào Điềunày giúp trích xuất các đặc trưng nổi bật nhất trong cửa sổ Hoặc là Average

Pooling để tính giá trị trung bình của các giá trị trong một cửa sổ di chuyển.

Phương pháp này giúp làm mượt và giảm nhiễu trong dữ liệu Ngoài ra

còn có Global Pooling, tính toán một giá trị duy nhất (max hoặc average)cho toàn bộ đầu vào Hoặc Global pooling thường được sử dụng ở các lớpcuối của mạng để tổng hợp thông tin

® Lớp Dropout là một kỹ thuật phổ biến được sử dụng trong mạng nơ-ron để

ngăn chặn hiện tượng overfitting Dropout làm việc bằng cách ngẫu nhiên

"tắt" (đặt bằng 0) một tỷ lệ nhất định các đơn vị (neurons) trong quá trìnhhuấn luyện Trong quá trình huấn luyện, với mỗi lần truyền dữ liệu quamạng, mỗi neuron có xác suất bị "tắt" ngẫu nhiên (tức là tắt ngẫu nhiên ø%

số lượng node trong một lớp) Các neuron bị "tắt" sẽ không tham gia vàoquá trình tính toán và lan truyền ngược (backpropagation) Trong quá trìnhsuy luận (inference), tất cả các neuron đều hoạt động, nhưng đầu ra củachúng được nhân với 1 - p để bù lại việc "tắt" ngẫu nhiên trong quá trìnhhuấn luyện Bằng cách ngẫu nhiên "tắt" một số neuron, dropout làm giảm

sự phụ thuộc quá mức vào bat kỳ một neuron nào, từ đó giúp mang tổngquát hóa tốt hơn trên đữ liệu mới

2.2.3 Một số khái niệm khác

2.2.3.1 Hàm kích hoạt (Activation function)

Hàm kích hoạt là một phần quan trọng của mỗi nơ-ron, hàm kích hoạt xác định

xem nơ-ron đó có phản ứng hay không dựa trên tổng hợp của đầu vào Các hàmkích hoạt phổ biến bao gồm sigmoid, tanh, ReLU, và softmax

¢ Ham kích hoạt Sigmoid: có dang hình chữ S va chuyển đổi giá trị đầu vào

thành một giá trị trong khoảng từ 0 đến 1 Sigmoid mượt mà và dé tính

toán, thường được sử dụng cho các bài toán phân loại nhị phân Tuy nhiên,

nhược điểm của Sigmoid là có thể gây ra hiện tượng "vanishing gradient"

(độ dốc biến mắt) khi giá trị đầu vào rất lớn hoặc rất nhỏ, làm cho việc học

trở nên chậm.

18

Trang 26

Chương 2 COSO LY THUYẾT

¢ Ham kích hoạt Tanh (Hyperbolic Tangent) cũng có dang hình cong nhưng

biến đổi giá tri dau vào ở khoảng giá tri từ -1 đến 1 Tanh thường được sửdụng trong các mạng nơ-ron vì nó có thể giúp trung bình các giá trị đầu ragần 0, giúp việc học trở nên hiệu quả hơn Tương tự, Tanh cũng có thể gây

ra hiện tượng "vanishing gradient" tương tự như Sigmoid.

¢ Hàm kích hoạt ReLU: chuyển đổi giá trị đầu vào thành giá trị lớn hơn hoặc

bằng 0 ReLU giúp giải quyết van dé "vanishing gradient" va cho phép các

mang nơ-ron học nhanh hơn ReLU có thé gặp van dé "dying ReLU" (ReLU

chết) khi các no-ron bi ket ở giá trị 0 và không còn học được

¢ Hàm kích hoạt Softmax: chuyển đổi một vectơ các giá trị thành các xác suất,

tất cả các giá trị nằm trong khoảng từ 0 đến 1 và tổng của chúng bằng 1.Softmax thường được sử dụng trong lớp đầu ra của mạng nơ-ron cho cácbài toán phân loại đa lớp, vì nó cung cấp một phân phối xác suất trên cáclớp Softmax có thể dé bị ảnh hưởng bởi các giá trị cực đại và rất nhạy cảm

với các giá trị ngoại lệ.

Mỗi hàm kích hoạt có những vai trò và vị trí sử dụng riêng, và việc lựa chọn hàm kích hoạt phù hợp tùy thuộc vào đặc thù của từng bài toán và cau trúc mạng

nơ-ron Nếu chúng ta xác định bài toán phát hiện tương đồng nhị phân thuộc vào

dang phân loại nhị phân, ta có thể ứng dụng Sigmoid hoặc Tanh để phân biệt hai

nhãn tương đồng, hoặc không tương đồng

19

Trang 27

Chương 2 COSO LY THUYẾT

2.2.3.3 Hàm mat mát (Loss function)

Hàm nay tính sự khác biệt giữa đầu ra dự đoán và giá trị thực tế, giúp mangnơ-ron chỉnh sửa các trọng số để giảm thiểu sai số trong quá trình huấn luyện.Dưới đây là một số hàm mắt mát phổ biến được áp dụng trong các bài toán khác

nhau:

* Bài toán hổi quy (Regression): Gồm có L1 Loss, còn được gọi là "Mean

Ab-solute Error" (MAE) đo lường trung bình của tổng các sai số tuyệt đối giữa

dự đoán và giá trị thực tế, khuyến khích các mô hình tạo ra các dự đoánchính xác gần với giá trị thực tế Và L2 Loss, còn được gọi là "Mean SquaredError" (MSE) đo lường trung bình của tổng các sai số bình phương giữa dựđoán và giá trị thực tế, khuyến khích các mô hình tạo ra các dự đoán chínhxác và giảm thiểu sai số lớn

® Bài toán phân loại nhị phan (Binary Classification): Có thể kể đến Binary

Cross-Entropy (BCE) đo lường sự khác biệt giữa phân phối xác suất dựđoán và phân phối xác suất thực tế cho các lớp nhị phân (0 và 1) Nó phạt

nặng cho các dự đoán không chính xác.

® Bài toán phân loại đa lớp (Multi-class Classification): Sử dung Categorical

Cross-Entropy, đo lường sự khác biệt giữa phân phối xác suất dự đoán vàphân phối xác suất thực tế cho các lớp đa lớp Ngoài ra có thể dùng Sparse

Categorical Cross-Entropy, tương tự như Categorical Cross-Entropy nhưng

nhãn thực tế được mã hóa bằng các chỉ số lớp thay vì one-hot encoded

Mỗi ham mat mát được chọn tùy thuộc vào loại bài toán cu thể và đặc điểm của

dữ liệu đầu vào cũng như dau ra Việc chọn đúng ham mat mát là rat quan trọng

để đảm bảo mạng nơ-ron học một cách hiệu quả và chính xác Ngoài ra, việc chọn

hàm mat mát có liên quan chặt chẽ đến cách mã hóa nhãn (encode label) Trongbài toán hồi quy, nhãn là các giá trị số thực Trong bài toán phân loại nhị phân,

nhãn thường được mã hóa dưới dạng nhị phân, với các giá trị 0 hoặc 1 Còn trong

bài toán phân loại đa lớp, nhãn có thể được mã hóa one-hot encoding tương ứngvới hàm mat mát Categorical Cross-Entropy hay mã hóa nhãn Integer Encodingvới hàm mat mát Sparse Categorical Cross-Entropy

20

Trang 28

Chương 2 COSO LY THUYẾT

2.2.3.4 Thuật toán tối wu (Optimization algorithm)

Được sử dung để điều chỉnh va cập nhật các trọng số của mang dựa trên giá trịcủa hàm mắt mát Các thuật toán phổ biến bao gồm Gradient Descent, Stochastic

Gradient Descent (SGD), Adam,

¢ Gradient Descent (GD): là một thuật toán tối ưu hóa lặp lại được sử dụng

để tìm các giá trị tối ưu của các tham số trong mô hình học máy Thuật toánnày hoạt động bang cách tính toán gradient của hàm mat mát (loss function)

và điều chỉnh các tham số theo hướng ngược lại với gradient để giảm thiểuham mat mát

se Stochastic Gradient Descent (SGD) được tính toán và cập nhật sau mỗi mẫu

dữ liệu thay vì toàn bộ tập dữ liệu Điều này khiến việc tối ưu hóa nhanh

hơn và có khả năng thoát khỏi các cực tiểu cục bộ.

¢ Adam là một thuật toán tối ưu hóa kết hợp giữa hai kỹ thuật RMSProp

và Momentum Adam tính toán về giá trị trung bình có trọng số của cácgradient và bình phương của gradient, sau đó điều chỉnh các tham số môhình theo các giá trị này Adam tự động điều chỉnh tốc độ học cho mỗi tham

số, giúp tối ưu hóa nhanh và hiệu quả hơn

2.2.3.5 Các chỉ số đánh giá (Metrics)

Các chỉ số đánh giá là các chỉ số đo lường giá trị cũng như hiệu quả của mạng

nơ-ron trên dữ liệu thử nghiệm Các độ đo này giúp xác định mức độ chính xác

và hiệu quả của mô hình trong việc giải quyết bài toán cụ thể Trong khóa luận

này, chúng tôi tập trung vào phạm vi bài toán phân loại nhị phân, tức là xác định

nhãn đầu ra giữa hai hàm nhị phân là tương đồng, hoặc không tương đồng Vìvậy, chúng tôi để cập nhiều hơn về các chỉ số đánh giá sau: Accuracy, Precision,

Recall, F1-score.

* Accuracy: Do về tỷ lệ các dự đoán đúng trên tổng số các dự đoán, đây là

một chỉ số tương đối đơn giản và phổ biến khi đánh giá hiệu suất của một

mô hình Thường được sử dụng khi dữ liệu cân bằng (số lượng mẫu của cáclớp tương đương nhau) Độ đo Accuracy cho biết mức độ chính xác tổng

21

Trang 29

Chương 2 COSO LY THUYẾT

thé của mô hình trong việc phân loại cả các mẫu dương tính va mẫu âm tính Accuracy càng cao, tức là mô hình có thể phân loại được chính xác các

mẫu Tuy nhiên, accuracy có thể bị ảnh hưởng bởi sự mat cân bằng giữacác lớp dữ liệu hoặc bởi các yêu tố khác, do đó, nó không phản ánh được

mọi khía cạnh của mô hình phân loại Ví dụ trong bài toán BCSD Giả sử

rằng trong tập dữ liệu, có 90% là "cặp không tương đồng" và chỉ 10% là "cặptương đồng" Nếu một mô hình dự đoán tat cả đều là "không tương đồng",

mô hình này vẫn có thể đạt được Accuracy cao lên đến 90% vì nó dự đoánđúng hầu hết các cặp "không tương đồng" Trong trường hợp này, Accuracykhông đáng tin cậy, vì mô hình không thực hiện tốt trong việc xác định cáccặp tương đồng Do đó, khi mắt cân bằng giữa các lớp dữ liệu, cần sử dụngcác độ đo khác để đánh giá hiệu suất mô hình học máy

® Precision đo lường kha năng phân loại đúng các mẫu dương tính so với

tổng số mẫu được dự đoán là dương tính (Hiệu quả trong kết luận đương

tính) Precision càng cao, tức là mô hình phân loại ít phạm sai sót trong việc

dự đoán đúng các mẫu dương tính và tránh đưa ra những cảnh báo sai (FP),

tức là tránh dương tính giả.

® Recall (còn được gọi là True Positive Rate hoặc Sensitivity) là một độ đo để

cho thấy khả năng của một mô hình trong việc tìm ra tất cả các cặp hàmtương đồng một cách chính xác Nó tính tỉ lệ phần trăm giữa số lượng dữliệu dương tính được dự đoán đúng và tổng số lượng dữ liệu dương thực

tế (thực sự) Recall đo lường khả năng của mô hình trong việc bỏ sót (miss)các dữ liệu dương tính Nếu Recall càng gần 1, tức là mô hình có khả năngtìm ra hầu hết các dữ liệu đương tính một cách chính xác Ngược lại, nếuRecall thấp, tức là mô hình bỏ sót một số lượng đáng kể các dữ liệu dương

tính Tránh bỏ xót các mẫu dương tính, hay là tránh âm tính giả.

e© Fl-score có thể hiểu là con số cân bằng giữa Precision và Recall và đo lường

hiệu suất tổng thể của mô hình F1-score thường được sử dụng khi cần cânnhắc cả Precision va Recall Đặc biệt trong các bài toán mat cân bằng giữacác lớp dữ liệu Nó cho phép đánh giá tổng thể hiệu suất của mô hình trongviệc phân loại các dữ liệu một cách cân bằng giữa việc dự đoán đúng các

22

Trang 30

Chương 2 COSO LY THUYẾT

trường hợp tương đồng (dương tính) tránh đưa ra cảnh báo sai va phát hiệntất cả các trường hợp quan trọng (dương tính)

* Đường cong ROC (Receiver Operating Characteristic) dùng để đánh giá và

so sánh hiệu suất của các mô hình phân loại trong các bài toán nhận dạng và

phân loại Chỉ số này vô cùng được ưa chuộng trong các giải pháp về Phát

hiện tương đồng mã nhị phân vì tính tổng quát của nó Đường cong ROCbiểu thị mối quan hệ giữa tỷ lệ True Positive (TPR) và tỷ lệ False Positive

(FPR) trên các ngưỡng số khác nhau Đường cong ROC biểu diễn hiệu suất

của một mô hình phân loại trong không gian ROC Đường cong vẽ bằng

cách thay đổi ngưỡng quyết định của mô hình và tính TPR và FPR tương

ứng Đường cong ROC cho phép xác định ngưỡng tối ưu cho mô hình phânloại dựa trên sự cân bằng giữa TPR va FPR Đường cong ROC càng gầnđường chéo (đường y = x) thì công cụ BCSD so sánh tương đồng càng chính

xác va đáng tin cậy Diện tích dưới đường cong ROC (AUC - Area Under the

Curve) cũng thể hiện chất lượng của mô hình, với giá trị AUC càng cao thì

mô hình càng tốt Việc sử dụng chỉ số AUC để đánh giá các mô hình pháthiện tương đồng nhị phân là một giải pháp tương đối nhanh chóng và dé

hiểu.

Nhìn chung, những chỉ số đánh giá nêu trên sẽ phần nào giúp chúng ta có cái

nhìn tổng quan đến mô hình đang xây dựng, để thấy rõ hơn hiệu quả của mô

hình, chúng ta nên lưu mô hình đã huấn luyện và mang nó thử nghiệm với cácmẫu thực tế để từ đó đánh giá khả năng phân loại của mô hình và cải thiện thêm

2.2.4 Một số kiến trúc mang nơ-ron phổ biến

Đối với các bài toán khác nhau, nghiên cứu viên có thể chọn lựa một kiến trúc

mạng nơ-ron khác nhau Lấy ví dụ như trong bài toán hồi quy, ta có thể dùng

mạng nơ-ron truyền thống, như Feedforward Neural Networks - FNNs) Day làloại mạng đơn giản nhất, nơi thông tin chỉ di theo một hướng từ đầu vào đếnđầu ra, không có vòng lặp Hoặc trong xử lý ảnh thường phổ biến mạng nơ-rontích chập (Convolutional Neural Networks - CNNs), cũng như mạng no-ron hồi

quy (Recurrent Neural Networks - RNNs) trong các bài toán xử lý chuỗi va các

dit liệu có tính chất tuần tự như ngôn ngữ tự nhiên, cũng như các biến thể khác

23

Trang 31

Chương 2 COSO LY THUYẾT

như Long Short-Ierm Memory Networks - LSTMs hay Mang No-ron GRU (Gated

Recurrent Units - GRUs) Hoặc các mạng Nơ-ron hồi quy hai chiều

2.2.4.1 Mạng nơ-ron tích chập (CNNs)

Convolutional Neural Networks (CNN) là một loại mạng nơ-ron nhân tạo thường

dùng cho việc xử lý hình ảnh CNN đã chứng minh hiệu quả vượt trội trong các

tác vụ liên quan đến thị giác máy tính như nhận dạng hình ảnh, phân loại vàphát hiện đối tượng Các thành phần chính bao gồm Convolutional Layers (Lớp

Tích Chap), đây là lớp chính của CNN, sử dụng các bộ loc (filters) để quét qua dữ

liệu đầu vào và trích xuất các đặc trưng quan trọng Mỗi bộ lọc sẽ tạo ra một bản

đồ đặc trưng (feature map) Pooling Layers, giảm kích thước của đặc trưng, giữlại các đặc trưng quan trọng và giảm số lượng tham số cũng như tính toán Max

Pooling, lấy giá trị lớn nhất trong một vùng Average Pooling, lấy giá trị trung

bình trong một vùng Fully Connected Layers (Lớp Kết Nối Day Đủ), liên kết cácneuron trong lớp hiện tại với tất cả các neuron trong lớp tiếp theo, thường được

sử dụng ở phần cuối của CNN để dự đoán kết quả

2.2.4.2 Mạng nơ-ron hoi quy (RNNs)

Recurrent Neural Networks (RNN) có các kết ni hồi tiếp để xử lý các dữ liệutuần tự RNN đặc biệt có giá trị trong các tác vụ liên quan đến chuỗi dữ liệu như

xử lý ngôn ngữ tự nhiên (NLP) và dự đoán chuỗi thời gian.

Thành phần chính

® Hidden State (Trạng Thái Ẩn): Trạng thái lưu trữ thông tin từ các bước trước

đó trong chuỗi, được cập nhật tại mỗi bước thời gian.

* Recurrent Connections (Kết Nối Hồi Tiếp): Cho phép thông tin được truyền

từ trạng thái ẩn này sang trạng thái ẩn khác trong các bước thời gian kế tiếp

Biến thể phổ biến của RNN Long Short-Term Memory (LSTM): LSTM có thể

giải quyết van dé gradient biến mat (vanishing gradient) trong RNN bằng cách

sử dụng các cổng (gates) để kiểm soát luồng thông tin Cầu trúc của mô hình này

24

Trang 32

Chương 2 COSO LY THUYẾT

bao gồm cổng quên, cổng nhập va cổng xuất (output gate) để quan ly trạng thái

ô (cell state).

Gated Recurrent Unit (GRU): GRU là một biến thể đơn giản hơn của LSTM, kếthợp cổng quên và cổng nhập thành một cổng duy nhất, giúp giảm bớt tính toán

và dé dàng huấn luyện hơn GRU Sử dụng cổng có chức năng cập nhật và cổng

có chức năng reset để kiểm soát luồng thông tin

Bidirectional RNN (BiRNN), đây là một mạng RNN có hai hướng, một hướng

từ đầu đến cuối và một hướng ngược lại từ cuối đến đầu Việc xem xét hai chiều

này giúp mô hình hiểu được thông tin ở cả hai phía của chuỗi dữ liệu.

Bidirectional LSTM (BiLSTM): kết hợp hai LSTM, một xử lý chuỗi từ trái sang

phải và một từ phải sang trái, giúp mô hình có khả năng học tập từ cả hai hướng

của chuỗi dt liệu.

2.2.4.3 Mô hình Transformers

Mô hình Transformers là một mạng neural sâu đã được giới thiệu bởi Vaswani et

al [23] vào năm 2017 trong bai báo "Attention Is All You Need" Day là một bước

tiến lớn, nhờ vào khả năng xử lý dữ liệu mà có tính chất tuần tự hiệu quả mà thaythế được các câu trúc tuần tự truyền thống như RNN hay LSTM

Điểm nổi bật của Transformers là cơ chế Attention, đặc biệt là Self-Attention, giúp

cho mô hình có thể tập trung vào các phần khác nhau của chuỗi đầu vào để hiểungữ cảnh tốt hơn Điều này giúp mô hình hoc được mồi quan hệ giữa các từ trongcâu mà bị tác động bởi khoảng cách giữa chúng Transformers cũng sử dụng kiến

trúc Encoder-Decoder để xử lý các tác vụ như dịch máy và tạo văn bản.

Transformers đã trở thành nền tảng cho nhiều mô hình ngôn ngữ tiên tiến nhưBERT, GPT, và T5, đạt được kết quả xuất sắc trong nhiều nhiệm vụ NLP khácnhau từ dịch máy, tóm tắt văn bản đến trả lời câu hỏi và sinh văn bản Nhờ khảnăng song song hóa ở trong lúc huấn luyện, mô hình Transformers cũng tỏ ra rất

hiệu quả và có thể mở rộng với các bộ dữ liệu lớn.

25

Trang 33

Chương 2 COSO LY THUYẾT

2.2.5 Quy trinh chung trong viéc ap dung hoc sau

Có nhiều hướng, nhiều lựa chọn khác nhau để giải được một van dé nào đó, cũngnhư có nhiều quy trình khác nhau để một nghiên cứu có thể đạt được kết quả mục

tiêu Tuy nhiên, hình 2.6 dưới đây là một quy trình chung trong việc xây dựng

một mô hình học sâu nói chung và mô hình phát hiện tương đồng mã nhị phândựa trên học sâu nói riêng mà chúng ta có thể dựa theo

Data collection

What problem are What data do What defines What features What kind of What have we tried/

we trying to solve? we have? success? should we model? model should we use? What else can we try?

¢ Thu thập dữ liệu: Đầu tiên, cần chọn ra các tập dữ liệu từ các nguồn tin

cậy và phù hợp với mảng đang nghiên cứu Sau đó là lưu trữ trong một hệ

thống cơ sở dữ liệu hoặc một hệ thống tệp có cau trúc để dé dàng trích xuấy

và truy cập sủ dụng Dữ liệu cần được gắn nhãn chính xác mô hình thiết kế

học được các đặc trưng phù hợp với bài toán đang xử lý.

e Tiền xử lý dữ liệu: Loại bỏ các dữ liệu không hợp lệ hoặc không cần thiết

Xử lý các dữ liệu thiếu hoặc bị sai lệch để đảm bảo chất lượng của dữ liệuđầu vào

Thiết kế mô hình DL

* Trước tiên, ta cần định nghĩa van dé cần giải quyết, hiểu được bài toán mình

muốn giải là gì

* Sau đó xem xét các bộ dữ liệu hiện có, có thể là thu thập từ công trình khác

hoặc tự biên dich và tự tao tap dữ liệu mới.

26

Trang 34

Chương 2 COSO LY THUYẾT

s© Xác định các tiêu chí về mô hình đang xây dựng, từ đó chọn lọc ra các đặc

trưng học phù hợp.

© Xác định kiến trúc học sâu phù hợp với nhu cầu đang cần xử lý

e Xây dựng mô hình baseline: Thiết kế mô hình baseline với kiến trúc đơn

giản để làm nền tảng so sánh Mô hình baseline giúp xác định hiệu suất cơ

bản và làm điểm khởi đầu để cải tiến các mô hình phức tạp hơn Ta cũng bắt

đầu với một bộ dữ liệu nhỏ, chẳng hạn như 10% bộ dữ liệu đã thu thập để

thực nghiệm và xem xét tính khả thi trước khi thực hiện áp dụng trên tập

di liệu day đủ và phức tạp hon

e Huấn luyện mô hình baseline với tập dữ liệu đã chuẩn bị Theo dõi các chỉ

số hiệu suất như độ accuracy, recall, precision và F1-score

* Điều chỉnh các siêu tham số và tối ưu hóa mô hình về hiệu suất, chi phí tính

toán và tốc độ xử lý Tối ưu hóa các thành phần của mô hình như số lượnglớp, số lượng neuron, kích thước batch, và tốc độ học (learning rate) để cảithiện hiệu suất và giảm thiểu chỉ phí tính toán

2.2.5.2 Quy trình chung trong bài toán BCSD

Chuẩn bị dữ liệu

¢ Thu thập di liệu: Đầu tiên, cần chọn ra các nguồn di liệu phù hợp với bài

toán so sánh tương đồng giữa hai hàm nhị phân Những nguồn dữ liệunày có thể bao gồm các kho mã nguồn mở - thu thập và biên dịch sang nhị

phân Chúng ta thu thập thập dữ liệu và lưu trữ chúng bên trong một hệ

thống cơ sở dữ liệu hoặc một hệ thống tệp có cấu trúc để chúng ta có thể

dé dàng quan lý và truy cập để huấn luyện mô hình Dữ liệu cần phải đượcgắn nhãn một cách chính xác để mô hình được huấn luyện có thể học đượccác đặc trưng của hàm nhị phân Việc gắn nhãn bao gồm xác định các cặphàm tương đồng và không tương đồng Thông thường, chúng ta có thể thuthập các bộ dữ liệu về cặp hàm tương đồng với nhau và không tương đồngtrong những công trình nghiên cứu về BCSD tương tự trước

27

Trang 35

Chương 2 COSO LY THUYẾT

Tiền xử lý dữ liệu: Tại bước này chúng ta loại bỏ đi các dữ liệu không hợp lệhoặc không cần thiết trong quá trình huấn Xử lý các dữ liệu thiếu hoặc bịsai lệch để có thể đảm bảo chất lượng của bộ dữ liệu đầu vào Chuyển đổi

mã nhị phân thành dạng có thể được sử dụng thích hợp cho mô hình học

sâu Điều này bao gồm việc dịch ngược (disassembly) mã nhị phân thành

các lệnh assembly và biểu diễn các lệnh này dưới dạng vector hoặc những

cấu trúc dữ liệu khác để thích hợp với mô hình huấn luyện như Control

Flow Graph.

Lựa chọn ra kiến trúc học sâu thích hợp

Trước hết, cần định nghĩa van dé cần giải quyết, xác định bài toán phát hiệntương đồng đa nền tang hay đơn nên tảng để có định hướng phù hợp

Sau đó xem xét các bộ dữ liệu hiện có, có thể là thu thập từ công trình khác

hoặc tự biên dịch và tự tạo tập dữ liệu mới.

Làm rõ những yêu cầu mong muốn về mô hình nhị phân, chẳng hạn nhưngoài phát hiện tương đồng đa nên tang, cần đảm bảo chi phí tính toán vàthời gian xử lý như thế nào

Xác định kiến trúc mô hình phù hợp với tác vụ đang giải quyết, cụ thể làbài toán so sánh tương đồng giữa hai hàm nhị phân Hiểu rõ đặc trưng vàyêu cầu của bài toán so sánh tương đồng giữa hai hàm nhị phân để lựachọn kiến trúc mô hình phù hợp Các kiến trúc mô hình thường được sửdụng cho bài toán này bao gồm CNN, RNN (LSTM, GRU), và các mô hình

transformer.

Xây dựng mô hình baseline: Thiết kế mô hình baseline với kiến trúc đơngiản để làm nền tang so sánh Mô hình baseline giúp xác định hiệu suất cơbản và làm điểm khởi đầu để cải tiến các mô hình phức tạp hơn Ta cũng

bắt đầu với một bộ dữ liệu nhỏ, chẳng hạn như 10% bộ dữ liệu đã thu thập

để thực nghiệm và kiểm tra tính khả thi của giải pháp trước khi thực hiện

huấn luyện trên tập dữ liệu đầy đủ và phức tạp hơn

Huấn luyện mô hình baseline với tập dữ liệu đã chuẩn bị Theo dõi các chỉ

số accuracy, recall, precision và F1-score cũng như AUC

28

Trang 36

Chương 2 COSO LY THUYẾT

© Điều chỉnh các siêu tham số và tối ưu hóa mô hình về hiệu suất, chi phí tính

toán và tốc độ xử lý Tối ưu hóa các thành phần của mô hình như số lượnglớp, số lượng neuron, kích thước batch, và tốc độ học (learning rate) để cảithiện hiệu suất và giảm thiểu chỉ phí tính toán

2.2.6 Phương pháp đo lường sự tương đồng giữa các vector

Trong khóa luận này, chúng tôi mong muốn việc nhúng hàm nhị phân sang khônggian vector (tức là một vector số thực) bằng áp dụng học sâu Khi đã có vector sốbiểu diễn hàm hiệu quả, tức là các cặp tương đồng sẽ nằm càng gần nhau, cáccặp không tương đồng sẽ có biểu diễn xa nhau trong không gian vector, chúng

tôi đơn giản dùng các phương pháp đo lường khoảng cách giữa các vector để xác

định độ đo tương đồng

Các phương pháp đo lường sự tương đồng giữa các vector bao gồm: Cosine

Sim-ilarity, Khoảng cách Euclid, Khoảng cách Manhattan

Trong đó, A và B là hai vector, và n là số lượng phan tử trong mỗi vector Độ tương

đồng Cosine trả về một giá trị từ -1 đến 1, với giá trị 1 cho biết hai vector hoàntoàn tương tự (cùng hướng), giá trị 0 cho biết hai vector không có sự tương tự(vuông góc), và giá trị -1 cho biết hai vector hoàn toàn đối nghịch (ngược hướng)

Bên cạnh đó, chúng ta cũng tránh nhằm lẫn với khái niệm về khoảng cách Cosine

Khoảng cách Cosine đo lường khoảng cách giữa hai vector dựa trên độ tương

đồng Cosine Khoảng cách Cosine được tính bằng cách lấy 1 trừ đi độ tươngđồng Cosine:

29

Ngày đăng: 08/12/2024, 15:03

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w