1. Trang chủ
  2. » Công Nghệ Thông Tin

ứng dụng mạng nơron trong phát hiện mã độc

57 520 2

Đ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

Định dạng
Số trang 57
Dung lượng 2,95 MB

Nội dung

Có nhiều kỹ thuật phát hiện mã độc đã được sử dụng như: Sử dụng bộ giả lập dựa trên kỹ thuật heuristics, phân rã mã ... tuy nhiên chưa có kỹ thuật nào phát hiện một cách toàn diện. Mặt khác các kỹ thuật này còn phức tạp, và để hiệu cặn kẽ về chúng là việc không đơn giản. Do vậy, việc tìm các phương pháp mới để phát hiện Virus đa hình là cần thiết. Ngoài ra, với sự phát triển của việc ứng dụng trí tuệ nhân tạo trong công nghệ tính toán mềm đang dần trở thành một xu thế tất yếu, sử dụng mạng nơ ron nhân tạo trong các bài toán phân tích và nhận dạng cũng không nằm ngoài xu thế đó. Vậy nên chúng em đã chọn đề tài Nghiên cứu, ứng dụng kỹ thuật dịch ngược và mạng nơron trong phát hiện mã độc để thực hiện nghiên cứu và đã đạt được những kết quả nhất định.

Trang 1

Cán bộ hướng dẫn: Giảng viên Phạm Văn Hưởng

Sinh viên thực hiện:

- Ngô Văn Thỉnh

- Phạm Công Lý

- Nguyễn Văn Hoàng Lớp: AT9A

Trang 2

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI THỰC TẬP CƠ SỞ

Nghiên cứu, ứng dụng kỹ thuật dịch ngược và mạng nơ-ron trong phát

hiện mã độc

Nhận xét của cán bộ hướng dẫn:

Điểm chuyên cần:

Điểm báo cáo:

Xác nhận của cán bộ hướng dẫn

Trang 3

LỜI CÁM ƠN

Chúng em xin chân thành cám ơn thầy giáo Phạm Văn Hưởng, khoa côngnghệ thông tin, Học viện Kỹ thuật Mật mã đã định hướng và tận tình hướng dẫnchúng em hoàn thành đề tài này

Chúng em cũng xin chân thành cám ơn các thầy cô đã đóng góp ý kiến quýbáu cho chúng em qua các buổi seminar để chúng em có thể hoàn thành khóa thựctập cơ sở chuyên ngành

Hà Nội, ngày 28 tháng 12 năm 2015

Nhóm sinh viên thực hiện

Trang 4

MỞ ĐẦU

Ngày này cùng với sự phát triển của Internet và máy tính các mối hiểm hoạcho hệ thống thông tin của chúng ta cũng tăng lên không ngừng Một trong nhữngnguy cơ mất an toàn cho hệ thống của chúng ta đó là hệ thống có thể bị nhiễm mãđộc bất cứ khi nào Mã độc ngày càng sử dụng nhiều kỹ thuật phức để tránh bị pháthiện Do đó việc phát hiện mã độc luôn là vấn đề khó và để phát hiện chúng một cáchtoàn diện, các phần mềm phát hiện phải được viết sao cho có thể phát hiện và loại bỏchúng một cách chính xác nhất

Có nhiều kỹ thuật phát hiện mã độc đã được sử dụng như: Sử dụng bộ giả lậpdựa trên kỹ thuật heuristics, phân rã mã tuy nhiên chưa có kỹ thuật nào phát hiệnmột cách toàn diện Mặt khác các kỹ thuật này còn phức tạp, và để hiệu cặn kẽ vềchúng là việc không đơn giản Do vậy, việc tìm các phương pháp mới để phát hiệnVirus đa hình là cần thiết Ngoài ra, với sự phát triển của việc ứng dụng trí tuệ nhântạo trong công nghệ tính toán mềm đang dần trở thành một xu thế tất yếu, sử dụngmạng nơ ron nhân tạo trong các bài toán phân tích và nhận dạng cũng không nằm

dịch ngược và mạng nơ-ron trong phát hiện mã độc" để thực hiện nghiên cứu và đã

đạt được những kết quả nhất định

Trang 5

MỤC LỤC

LỜI CÁM ƠN 3

MỞ ĐẦU 4

MỤC LỤC 5

DANH MỤC HÌNH VẼ 7

CHƯƠNG 1: KỸ THUẬT DỊCH NGƯỢC 9

1.1 Khái niệm: 9

1.2 Ứng dụng của kỹ thuật dịch ngược 9

1.3 Ứng dụng kỹ thuật dịch ngược trong phát hiện mã độc hại 10

1.3.1 Mở đầu 10

1.3.2 Thiết lập môi trường an toàn 10

1.3.3 Kỹ thuật dịch ngược phần mềm độc 11

CHƯƠNG 2: MẠNG NƠ RON NHÂN TẠO 14

2.1 Cấu trúc mạng nơ-ron nhân tạo (Artifical Neural Networks-ANN): 14

2.1.1 Hàm kích hoạt 17

2.1.2 Phân loại mạng nơ-ron nhân tạo: 19

2.1.3 Các phương pháp huấn luyện mạng nơ-ron: 20

2.1.4 Mạng nơ-ron truyền thằng 22

2.1.4.1 Mạng nơ-ron truyền thằng một lớp: 22

2.1.4.2 Mạng nơ-ron truyền thẳng nhiều lớp: 22

2.2 Tìm hiểu giải thuật lan truyền ngược 23

2.2.1 Lan truyền ngược 23

2 2 2 Sai số lan truyền ngược: 24

2 2.3 Điều kiện kết thúc: 25

2.2.4 Kiến trúc mạng: 27

2.2.5 Huấn luyện mạng 27

2.2.6 Giải thuật lan truyền ngược cải tiến 30

2.3 Công cụ hỗ trợ Neuroph Framework 31

2.4 Kết luận 33

Trang 6

CHƯƠNG 3: ÁP DỤNG KỸ NGHỆ DỊCH NGƯỢC VÀ ANN ĐỂ PHÁT HIỆN

MÃ ĐỘC 34

3.1 Tìm hiểu về mã độc 34

3.1.1 Thực trạng về an toàn hệ thống mạng máy tính hiện nay 34

3.1.2 Các loại mã độc hại: 34

3.1.3 Phương pháp phát hiện mã độc hại: 35

3.1.3.1 Nhận dạng mẫu: 35

3.1.3.2 Nhận dạng mã đại diện: 35

3.1.3.3 Scan theo string: 35

3.1.3.4 Nhận dạng dựa vào hành vi đáng ngờ: 35

3.1.3.5 Sử dụng kết hợp các phương pháp: 35

3.1.4 Cấu trúc file PE 36

3.1.4.1 Cấu trúc cơ bản (Basic structure) 37

3.1.4.2 The DOS Header 38

3.1.4.3 The PE Header 39

3.1.4.4 The Data Directory 43

3.1.4.5 The Section Table 45

3.1.4.6 Trích chọn dấu hiệu (đặc trưng) 46

3.2 Áp dụng kỹ nghệ dịch ngược và mạng nơ – ron nhân tạo để phát hiện mã độc 48

3.2.1 Mô hình trích chọn dấu hiệu sử dụng thuật toán Fisher Score 48

3.2.2 Mô hình huấn luyện và nhận dạng mã độc sử dụng mạng nơ ron nhân tạo .49 3.2.3 Mô hình cấu trúc hệ thống nhận dạng mã độc bằng phương pháp mạng nơ ron 51

3.3 Mô hình phân tích quá trình nhận dạng mã độc bằng phương pháp mạng nơ ron 52

3.3.1 Mô hình phân tích quá trình huấn luyện 52

3.3.2 Mô hình phân tích quá trình nhận dạng 54

KẾT LUẬN 56

TÀI LIỆU THAM KHẢO 57

Trang 7

DANH MỤC HÌNH VẼ

Hình 1.1: IDA pro 6.2 12

Hình 2.1: Mô hình nơ-ron sinh học 15

Hình 2.2: Mô hình mạng nơ-ron nhân tạo ở mức đơn giản 16

Hình 2.3: Hàm đồng nhất (Identity function) 17

Hình 2.4: Hàm bước nhị phân (Binary step function) 18

Hình 2.5: Hàm Sigmoid 18

Hình 2.6: Hàm sigmoid lưỡng cực 18

Hình 2.7: Mạng truyền thẳng một lớp 19

Hình 2.8: Mạng truyền thằng nhiều lớp 20

Hình 2.9: Mô hình huấn luyện có giám sát 21

Hình 2.10: Mô hình mạng truyền thẳng một lớp 22

Hình 2.11: Mạng nơ-ron truyền thằng nhiều lớp 22

Hình 2.12:Mô hình lan truyền ngược 23

Hình 2.13: Một nơ ron trong tầng ẩn hoặc tầng xuất 24

Hình 2.14:Kiến trúc mạng Perceptron 3 tầng 28

Hình 2.15: Hàm Sigmoid lưỡng cực 32

Hình 2.16: Neuroph Studio 33

Hình 2.17: Neural Network Types 33

Hình 2.18: Learning Rules 34

Hình 3.1:Các loại mã độc hại 35

Hình 3.2: Cấu trúc của một file PE 37

Hình 3.3: Minh họa cấu trúc cơ bản của 1 PE file 38

Hình 3.4: Cấu trúc DOS Header 39

Hình 3.5: Phần DOS header và PE header của BASECALC.EXE 40

Hình 3.6: Cấu trúc IMAGE_NT_HEADER 40

Hình 3.7: Cấu trúc FileHeader 41

Hình 3.8: Giá trị NumberOfSection 42

Hình 3.9: Cấu trúc Data Directory 42

Trang 8

Hình 3.10: Cấu trúc PE của BASECALC.EXE 44

Hình 3.11: Cấu trúc Data Directory 44

Hình 3.12: Danh sách 16 directory 45

Hình 3.13: Thông tin các Directory sử dụng HexDitor 45

Hình 3.14: Cấu trúc Section Table 46

Hình 3.15: Sơ đồ chức năng trích chọn dấu hiệu dựa vào CFL 48

Hình 3.16: Mô hình chức năng trích chọn dấu hiệu sử dụng thuật toán Fisher Score50 Hình 3.17: Mô hình chức năng hệ thống nhận dạng mã độc bằng phương pháp mạng nơ -ron 51

Hình 3.18: Mô hình cấu trúc mạng nơ-ron dựa trên perceptron 3 tầng 52

Trang 9

CHƯƠNG 1: KỸ THUẬT DỊCH NGƯỢC

Bạn sẽ làm gì để thực hiện được ý định của mình ???

Có 1 cách, đó là, trước khi thưởng thức, bạn nên tìm cách học xem họ chếbiến như thế nào Không may thay, nhà hàng này không phải lúc nào bạn cũng có thểđến, vì nó rất xa, và đầu bếp cũng không có thời gian hướng dẫn bạn, hoặc là họ sẽgiữ bí mật, không tiết lộ cho bạn Bạn sẽ làm gì? Bây giờ thì khó khăn hơn nhiều rồi

Điều này buộc bạn sẽ phải quan sát xem món ăn này gồm có những thànhphần gì, nếm thử, và đoán xem có những gia vị đặc trưng nào Đây có thể coi làkhái niệm cơ bản về kỹ thuật dịch ngược thức ăn!

Trong bài viết này chúng ta sẽ cùng xem xét về khái niệm kỹ thuật dịchngược, khái niệm kỹ thuật dịch ngược trong công nghệ thông tin

“Kỹ thuật dịch ngược là quá trình tìm hiểu những công nghệ được sử dụng

bởi 1 thiết bị, 1 đối tượng hoặc 1 hệ thống thông qua việc phân tích cấu trúc, các chức năng và hoạt động của nó ”.

cứng và dịch ngược phần mềm Nhưng trong đề tài này, chúng ta chỉ tìm hiểu

kỹ thuật dịch ngược phần mềm

được sử dụng trong việc bảo trì chính hệ thống hay chương trình đó Một mụcđích khác của kỹ thuật dịch ngược là phục vụ cho việc tạo ra một hệ thốngmới hoặc chương trình mới có những chức năng tương tự mà không sử dụnghoặc chỉ là sao chép đơn giản (không có sự hiểu biết) hệ thống/chương trìnhgốc

2 Ứng dụng của kỹ thuật dịch ngược.

Dịch ngược được sử dụng ở rất nhiều mảng trong khoa học máy tính nhưngsau đây là những mảng chính:

Tái tạo lại file code ban đầu dựa vào file nhị phân

Trang 10

Phá vỡ cơ chế bảo vệ của chương trình Điều đó có nghĩa là chúng ta gỡ bỏtính năng thời gian dùng thử, đăng kí sử dụng hay tất cả những thứ mà nhữngchương trình thương mại làm để bắt người dùng phải trả tiền.

Nghiên cứu virus và mã độc Việc dịch ngược là cần thiết vì bên ngoài có rấtnhiều người viết virus và họ sẽ chẳng bao giờ để lộ cách họ viết ra virus, mụctiêu của virus hay cách mà virus đạt được mục tiêu của mình

Kiểm tra thẩm định tính an toàn cũng như lỗ hổng của phần mềm Khi màphải làm việc với một chương trình lớn (ví dụ như hệ điều hành Windows) thìviệc dich ngược giúp đảm bảo không có những lỗ hổng nghiêm trọng hay làmkhó các cracker cố gắng crack phần mềm

Chúng ta có thể thêm hoặc thay đổi những tính năng trong một phần mềmtheo ý muốn VD: thay đổi bức ảnh trong phần mềm, thêm tính năng mã hóavăn bản vào chương trình soạn thảo…

3 Ứng dụng kỹ thuật dịch ngược trong phát hiện mã độc hại

3.1 Mở đầu

phải đối mặt với những vấn đề khó khăn hơn trước Một trong những vấn đềấy chính là vấn đề về phần mềm độc hại (malware) Qua nhiều năm nghiêncứu và khảo sát con người đã đưa ra nhiều giải pháp nhằm đối phó lại vớicác phần mềm độc hại Nhưng có lẽ công việc bắt buộc với bất kì giải phápnào thì điều đầu tiên trước hết phải làm là dịch ngược lại mã nguồn của cácphần mềm độc đó

ngược đồng thời tiếp bước với phần giới thiệu tổng quan về kỹ thuật dịchngươc mà nhóm đã tìm hiểu thì chúng em xin được đi trọng tâm vào phần

“Reversing Malware”

3.2 Thiết lập môi trường an toàn

thực tế thì dịch ngược phần mềm độc hại không hẳn là chúng ta phải làm thủcông bằng tay mà thực tế là chúng ta có sẵn các công cụ hệ thống để làmđược việc này, nó sẽ cung cấp cho chúng ta những đoạn mã ở dạngassembler, chính là dạng ngôn ngữ gần nhất với ngôn ngữ máy Tuy nhiêntrước hết hãy xem xét khi ta dịch ngược một phần mềm độc có nghĩa chúng

ta đang làm việc với chúng và rất dễ gặp nguy hiểm, vậy nên ta sẽ làm gìtrước tiên? Vâng, hãy thiết lập một môi trường thật an toàn

của chúng ta đang sử dụng sẽ gặp nguy cơ bị nhiễm mã độc, vì vậy cần phải

Trang 11

dụng các phần mềm máy ảo như Microsoft Virtual PC, VMWareWorkstation, hay Oracle Virtual Box… hoặc ta cũng có thể dùng một hệthống thật Tuy nhiên hệ thống của chúng ta nên hoạt động ở chế độ khôngkết nối mạng, bởi vì khi kết nối mạng sẽ dẫn đến phần mềm độc có cơ hộiphát tán và lây nhiễm sang hệ thống khác Nếu cần chuyển một file thực thinào đó (chẳng hạn một file chương trình độc hại) từ hệ thống của mình vào

hệ thống kiểm tra, tốt nhất ta nên sử dụng việc ghi ra đĩa CD hay DVD đểchắc chắn rằng chúng không thể tự tái tại và ổ đĩa và lây sang hệ thống khác.Ngoài ra, khi lưu trữ các chương trình độc hại trên ổ đĩa cứng hay trên mộtđĩa CD, ta cũng có thể đổi tên chúng về dạng non-executable (đổi tên phần

mở rộng của file, vd: excute.exe > excute.txt)

3.3 Kỹ thuật dịch ngược phần mềm độc.

Kỹ năng cần thiết nhất để dịch ngược chính là khả năng lập trình tốt, đặcbiệt là kiến thức về ngôn ngữ assembler Chúng ta không cần phải đạt ởtrình độ lập trình cao cấp hoàn toàn nhưng yêu cầu tối thiểu chúng ta phải cókhả năng đọc hiểu mã nguồn, hiểu rõ nguyên lý và chức năng của từng hàmlệnh

Cần phải kiên trì, hiểu biết sâu về hệ thống, nguyên lý hệ điều hành… tưduy logic tốt bởi vì chúng ta đều biết dịch ngược mã nguồn hoàn toàn là mộtđiều không hề đơn giản!

Cụ thể, chúng ta cần phải có kiến thức hiểu biết về:

Công cụ cần thiết là một bộ phân tách (disassembler), có rất nhiều công

cụ giúp ta có thể dịch ngược lại mã nguồn trong đó phổ biến và hay dùngnhất đó chính là IDA pro hay OllyDebug

IDA pro có rất nhiều phiên bản, và phiên bản mới nhất hiện tại là 6.5.IDA pro với nhiều tính năng hữu ích có thể debug rất nhiều các định dạngfile và đưa ra sơ đồ diagram… Đồng thời được xây dựng cho nhiều hệ điềuhành như Linux, Windows và Mac Trong kỹ thuật dịch ngược, IDA giúp taphân tích các đoạn mã tĩnh một cách hữu hiệu

Trang 12

OllyDebug là công cụ chuyên dịch ngược file định dạng *.exe và *.dll vềdạng assembler Phần mềm này có thể giúp ta phân tích mã động trong quátrình Reverse.

Đây là những hướng dẫn về các thao tác cơ bản nhất khi sử dụng kỹ thuật dịchngược phần mềm độc hại Nó bao gồm quá trình phân tích phần mềm độc hại,cũng như các mẹo sử dụng các công cụ OllyDbg, IDA pro và các công cụkhác

Cách tiếp cận chung

phần mềm độc hại (chính là việc tạo môi trường làm việc)

trường của nó

malware (sử dụng IDA pro để phân tích mã tĩnh sau khi Debug)

(sử dụng OllyDbg để phân tích mã động)

Nếu cần thiết, giải nén malware (unpack)

Trang 13

 Lặp lại các bước 2, 3, và 4 (thứ tự có thể thay đổi) cho đến khi mục tiêu phântích đầy đủ đáp ứng.

tương lai

cách sử dụng: dd (linux), tạo snapshot trong VMware, dùng CoreRestore,Ghost, SteadyState…

mạng như Wireshark, Tcpdump…

DNS hoặc dùng Honeypot)

hành vi mới của malware

Loại bỏ sự phòng thủ của Malware

1 Thử unpack nhanh chóng, lây nhiễm vào hệ thống và dump bộ nhớ bằngLordPE hoặc OllyDump

2 Đối với việc phải unpack gói lớn, ta xác định các Original Entry Point (OEP)sau khi tiến hành unpack

3 Nếu không thể unpack, ta kiểm tra các gói thông qua việc phân tích mã độngkhi chúng đang thực thi

4 Khi unpack bằng OllyDbg, hãy thử SFX (bytewise) và OllyDump để tìm OEP

5 Có thể giấu OllyDbg bằng HideOD và OllyAdvanced

6 Một lệnh JMP hay CALL đến thanh ghi EAX có thể cho biết được vị trí củaOEP, có thể đứng trước POPA hoặc POPAD

7 Nhận ra các bước nhảy phức tạp qua các lệnh SHE, RET, CALL…

8 Nếu các gói được đóng sử dụng SHE, ta dự đoán OEP bằng cách theo dõivùng stack được sử dụng để lưu trữ và xử lý đóng gói

9 Giải mã dữ liệu được bảo vệ bằng cách kiểm tra kết quả của chức năng giải

mã thông qua việc phân tích mã động

10 Sửa lại các PE header với XPELister, LordPE, ImpREC, PEiD…

11 Để có thể tiếp cận gần hơn với OEP thì nên thử phá các lời gọi của unpackertới LoadLibraryA hoặc GetProcAddress

Trang 14

CHƯƠNG 2: MẠNG NƠ RON NHÂN TẠO

Những năm 40 của thế kỷ 20, với mong muốn chế tạo những cỗ máy thông minh

có chức năng tương tự như bộ não con người,các nhà nghiên cứu đã phát triển những

mô hình phần cứng và phần mềm đơn giản về các nơ-ron sinh học và cơ chế tươngtác của chúng McCull và Pitts là những người đầu tiên đã xuất bản một công trìnhnghiên cứu có tính hệ thống về mạng nơ-ron nhân tạo

Đến những năm 50 và 60, một nhóm các nhà nghiên cứu đã kết hợp những kiếnthức về sinh học và tâm thần học để tạo ra một mạng nơ-ron nhân tạo hoàn chỉnh đầutiên Ban đầu được chế tạo dưới dạng mạch điện tử, sau đó các mạng nơ-ron đượcchuyển thành các chương trình trên máy tính có độ linh hoạt cao hơn

Trong thời gian gần đây, mạng nơ-ron phát triển mạnh mẽ với các nghiên cứucủa Rosenblatt, Widrow và Hoff về các mạng nơ-ron nhiều lớp phức tạp Mặt khác,

do khả năng của phần cứng máy tính tăng lên rất nhiều cũng góp phần vào sự pháttriển cho lĩnh vực nghiên cứu này Mạng nơ-ron nhân tạo được ứng dụng trong nhiềulĩnh vực như: nhận dạng, phân loại, xử lý ảnh, các hệ thống điều khiển,dự báo và đặcbiệt là trong việc phát hiện các mã độc hại

Các tính chất của mạng nơ-ron nhân tạo:

và điểu khiển các đối tượng phi tuyến.

Tốc độ tính toán rất cao, rất phù hợp với lĩnh vực nhận dạng và điều khiển.

năng tự điều chỉnh khi số liệu đầu vào bị mất

khiển đối tượng có nhiều biến số.

4 Cấu trúc mạng nơ-ron nhân tạo (Artifical Neural Networks-ANN):

4

điện từ từ các khớp nối và khi sự tổng hợp các tín hiệu này vượt quá một ngưỡng chophép thì nơ-ron sẽ kích hoạt một tín hiệu điện ở ngõ ra để truyền tới trục nơ-ron(Axon) và dẫn đến các nơ-ron khác

Sau đây là những thành phần chính trong cấu trúc của một nơron trong bộ nãocon người:

Trang 15

Hình 2.2: Mô hình nơ-ron sinh học

Trong đó :

- Các Soma là thân của noron

- Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu(dưới dạng xung điện thế) đến cho soma xử lý Bên trong soma các dữ liệu đó đượctổng hợp lại Có thể xem gần đúng sự tổng hợp ấy như là một phép lấy tổng tất cả cácdữ liệu mà nơron nhận được

- Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon Khác vớidendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn tín hiệu từnơron đi các nơi khác Chỉ khi nào điện thế trong soma vượt quá một giá trị ngưỡngnào đó (threshold) thì axon mới phát một xung điện thế, còn nếu không thì nó ở trạngthái nghỉ

- Axon nối với các dendrites của các nơron khác thông qua những mối nối đặcbiệt gọi là synapse Khi điện thế của synapse tăng lên do các xung phát ra từ axon thìsynapse sẽ nhả ra một số chất hoá học (neurotransmitters); các chất này mở "cửa"trên dendrites để cho các ions truyền qua Chính dòng ions này làm thay đổi điện thếtrên dendrites, tạo ra các xung dữ liệu lan truyền tới các nơron khác

Các synapses đóng vai trò rất quan trọng trong sự học tập Khi chúng ta học tậpthì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữacác nơron

Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và cácsynapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các nơron càngnhiều, càng nhạy bén

Mạng nơ-ron nhân tạo cũng hoạt động dựa theo cách thức của bộ não con ngườinhưng ở cấp độ đơn giản hơn

Hai đặc tính cơ bản của mạng nơ-ron là:

+ Quá trình tính toán được tiến hành song song và phân tán trên nhiều nơ-ron gần như đồng thời.

Trang 16

+ Tính toán thực chất là quá trình học, chứ không phải theo sơ đồ định sẵn từ trước.

Noron nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra với bathuộc tính quan trọng là: trọng số kết nối (Weight), ngưỡng (Threshold) và hàm kíchhoạt (Activation function hay Transfer function)

Sau đây mà mô hình một nơ-ron nhân tạo đơn giản:

Kết quả này sẽ được so sánh với ngưỡng (threshold) t của nơ-ron, nếu nó lớn hơn t thì nơron cho đầu ra (Output) là 1, còn nếu nhỏ hơn thì đầu ra là 0 Ngoài ra

ta cũng có thể trừ tổng nói trên cho t, rồi so sánh kết quả thu được với 0, nếu kết quả

là dương thì nơ-ron cho đầu ra bằng 1, nếu kết quả âm thì đầu ra là 0 Ta có thể viết đầu ra của nơron như sau:

Trong đó f là hàm chuyển bậc thang đơn vị (Heaviside):

Trang 17

f được gọi là hàm chuyển của nơ-ron, còn giá trị t còn được gọi là ngưỡng phân cực (-bias) Kí hiệu: (threshold hay offset) của nơ-ron

4.1 Hàm kích hoạt

Quá trình xử lý thông tin gồm: xử lí tín hiệu đầu vào và xử lí tín hiệu đầu ra.Hàm tổng (u): dùng để kết hợp và xử lí tín hiệu các thông tin ở đầu vào

Một số hàm tổng thường gặp:

Hàm tuyến tính (linear function):

Trang 18

Dạng hàm này được sử dụng trong các mạng chỉ có một lớp Trong hình vẽ sau, θđược chọn bằng 1

Hình 2.5: Hàm bước nhị phân (Binary step function)

Hàm sigmoid (Sigmoid function (logsig))

Trang 19

Do vậy, hàm sigmoid là lựa chọn thông dụng nhất Đối với các đơn vị đầu ra (outputunits), các hàm chuyển cần được chọn sao cho phù hợp với sự phân phối của các giátrị đích mong muốn Chúng ta đã thấy rằng đối với các giá trị ra trong khoảng [0,1],hàm sigmoid là có ích; đối với các giá trị đích mong muốn là liên tục trong khoảng

đó thì hàm này cũng vẫn có ích, nó có thể cho ta các giá trị ra hay giá trị đích đượccăn trong một khoảng của hàm kích hoạt đầu ra Nhưng nếu các giá trị đích khôngđược biết trước khoảng xác định thì hàm hay được sử dụng nhất là hàm đồng nhất(identity function) Nếu giá trị mong muốn là dương nhưng không biết cận trên thìnên sử dụng một hàm kích hoạt dạng mũ (exponential output activation function)

4.2 Phân loại mạng nơ-ron nhân tạo:

Các loại mạng có thể được phân loại dựa trên các tính chất của nó:

-Mạng một lớp: gồm chỉ một lớp nơ-ron

-Mạng nhiều lớp: gồm nhiều lớp nơ-ron

-Mạng truyền thẳng: các tín hiệu trong mạng chỉ truyền theo một chiềutừ đầu vào đến đầu ra

-Mạng hồi quy: các tín hiệu hồi tiếp từ đầu ra đến đầu vào

Hình 2.8: Mạng truyền thẳng một lớp

Trang 20

Hình 2.9: Mạng truyền thằng nhiều lớp

4.3 Các phương pháp huấn luyện mạng nơ-ron:

Có hai kiểu huấn luyện:

liên kết giữa các tế bào nơ-ron và ngưỡng phân cực trong mạng

bao gồm cả tế bào nơ-ron và các liên kết giữa chúng

Ta có thể sử dụng riêng rẽ hoặc đồng thời cả hai kiểu huấn luyện trên Tuy nhiên,

ở đây ta chỉ đến kiểu huấn luyện thông số Có 3 kiểu huấn luyện thông số:

Là quá trình huấn luyện có giám sát, ở mỗi thời điểm thứ i khi đưa tín hiệu vào

i

trước ở thời điểm đó Hay nói cách khác, trong quá trình học có giám sát, mạng ron được cung cấp liên tục các cặp số mong muốn vào-ra ở từng thời điểm khi chođầu vào thực của mạng x k tương ứng sẽ có tín hiệu đầu ra cũng được lặp lại là d k

nơ-giống như mong muốn Kết quả của quá trình huấn luyện có giám sát là tạo được mộthộp đen có đầu vào véc-tơ tín hiệu x sẽ đưa ra được câu trả lời đúng d

Trang 21

Thay đổi trọng số

Lỗi

Hình 2.10: Mô hình huấn luyện có giám sát

có sai lệch e k giữa tín hiệu đầu ra thực y k và tín hiệu đầu ra mong muốn d k Sailệch đó sẽ được truyền ngược lại tới đầu vào để điều chỉnh thông số mạng nơ-ron là

ma trận trọng số W Quá trình cứ thế tiếp diễn sao cho sai lệch giữa tín hiệu ra mongmuốn và tín hiệu thực thế trong phạm vi cho phép, kết quả ta nhận được ma trận

đối tượng hay hàm số mạng nơ-ron cần học

Không như huấn luyện có giám sát được cung cấp mục tiêu trước (mỗi tín hiệuđầu vào sẽ có một tín hiệu đầu ra tương ứng), luật huấn luyện củng cố chỉ được cungcấp theo mức (Ví dụ:"đúng" hoặc "sai") Bởi vì trong thực tế không phải lúc nào tacũng có đầy đủ thông tin về đối tượng Vì vậy, kiểu huấn luyện củng cố sẽ thích hợpnhất cho những ứng dụng điều khiển hệ thống

Tín hiệu d có thể được đưa vào từ bên ngoài môi trường, nhưng tín hiệu này cóthể không được đưa đầy đủ, mà có thể chỉ đưa đại diện 1 bít để cho tính chất kiểm traquá trình đúng và sai Tín hiệu đó được gọi là tín hiệu củng cố Phương pháp họccủng cố chỉ là một trường hợp của phương pháp huấn luyện có giám sát, bởi vì nócũng có tín hiệu chỉ đạo phản hồi từ môi trường Chỉ khác là tín hiệu củng cố chỉ cótính ước lượng hơn là để dạy Có nghĩa là chỉ có thể nói là tốt hay xấu cho một tínhiệu đầu ra cá biệt Tín hiệu giám sát bên ngoài d thường được tiến hành bởi các tínhiệu ước lượng để tạo thông tin tín hiệu ước lượng cho mạng nơ-ron điều chỉnh trọngsố với hy vọng sự ước lượng đó mạng lại sự tốt đẹp cho quá trình tính toán Huấnluyện củng cố còn được gọi là huấn luyện với sự ước lượng

Trong trường hợp này, hoàn toàn không có tín hiệu ở bên ngoài Giá trị mục tiêuđiều khiển không được cung cấp và không được tăng cường Mạng phải khám

Trang 22

phá các mẫu, các nét đặc trưng, tính cân đối, tính tương quan Trong khi khámphá các đặc trưng khác, mạng nơ-ron đã trải qua việc tự thay đổi thông số, vấn đề

đó còn gọi là tự tổ chức

4.4 Mạng nơ-ron truyền thằng

4.4.1 Mạng nơ-ron truyền thằng một lớp:

4.4.2 Mạng nơ-ron truyền thẳng nhiều lớp:

Hình 2.12: Mạng nơ-ron truyền thằng nhiều lớp

Trong mạng nơ-ron truyền thẳng nhiều lớp các lớp được phân thành 3 loạisau:

Trang 23

véc-tơ tín hiệu vào X Mỗi tín hiệu x i của tín hiệu vào sẽ được đưa đến tất cả các nơ-ron của lớp nơ-ron đầu tiên, chúng được phân phối trên các trọng số có số lượng đúng bằng số nơ-ron của lớp này Thông thường, các nơ-ron đầu vào không làm biến đổi các tín hiệu vào x i tức

là chúng không có các trọng số hoặc các hàm chuyển đổi nào, chúng chỉ đóng vai trò phân phối các tín hiệu và không đóng vai trò sửa đổi chúng.

thế giới bên ngoài như các nơ-ron vào ra.

5 Tìm hiểu giải thuật lan truyền ngược

5.1 Lan truyền ngược

Hình 2.13:Mô hình lan truyền ngược

Là quá trình xử lý tập các mẫu huấn luyện được lặp đi lặp lại nhiều lần, mỗibước lặp so sánh các lớp mà mạng nơ-ron dự đoán cho mỗi mẫu với các lớp chínhxác của các mẫu Với mỗi mẫu huấn luyện, các trọng số được điều chỉnh sao chocực tiểu sai số trung bình bình phương (phương sai) của lớp được dự đoán và lớpthực sự Sự điều chỉnh các trọng số này được thực hiện ở bước quay ngược lại tức

là bước từ tầng đầu ra quay ngược qua các tầng ẩn đến tầng ẩn đầu tiên Mặc dùkhông chắc chắn nhưng hầu hết các trọng số đều hội tụ về một giá trị và quá trình

Trang 24

huấn luyện hết thúc Thuật toán lan truyền ngược gồm các bước như sau:

Bước 1: Khởi tạo các trọng số

Các trọng số trong mạng được khởi tạo giá trị ngẫu nhiên trong khoảng từ 1.0 đến 1.0 hoặc từ -0.5 đến 0.5 Mỗi nơ-ron được kết hợp với một định hướng(bias), giá trị định hướng này được khởi tạo giống như các trọng số

-Với mỗi mẫu học X được xử lý theo các bước sau:

Bước 2: Lan truyền tiến các đầu vào

Trong bước này, mạng đầu vào và đầu ra của mỗi nơ-ron trong tầng ẩn vàtầng xuất được tính toán Đầu tiên mẫu huấn luyện được đưa vào tầng đầu vàocủa mạng Mạng đầu vào cho mỗi nơ ron trong các tầng ẩn và tầng xuất đượctính toán như là một ánh xạ của các biến đầu vào Đầu vào của một nơ ron là đầu

ra của những nơ ron ở tầng trước nối đến nó Để tính toán mạng đầu vào của nơron thì mỗi đầu vào của nó được cộng dồn bởi trọng số tương ứng Cho một nơron j ở trong tầng ẩn hay tầng xuất thì mạng đầu vào Ij của j là :

Ij =∑ w ij O i + θj

Trong đó wij là trọng số của liên kết từ nơ ron i ở tấng trước đến nơ ron j, O i làđầu ra của nơ ron i từ tầng trước và θj là định hướng của nơ ron Sự định hướng

này có tác dụng như là một ngưỡng, nó làm thay đổi cách hoạt động của nơ -ron

Mỗi nơ ron ở trong tầng ẩn hay tầng đầu ra có một mạng đầu vào của nó vàáp dụng một hàm kích hoạt đến nó, hàm này là hàm lô-gic hoặc hàm sigmoid Cho

j

l O

l e

Error: Reference source not found

Hàm này được xem như là một hàm nén (squashing), vì nó ánh xạ một miềnđầu vào rộng lớn lên một vùng nhỏ hơn trong khoảng từ 0 đến 1 Hàm logistic làmột hàm không tuyến tính (phi tuyến) và có khả năng phân loại, cho phép thuậtgiải lan truyền ngược mô hình theo bài toán phân lớp là tuyến tính liên tục

Hình 2.14: Một nơ ron trong tầng ẩn hoặc tầng xuất

5.2 Sai số lan truyền ngược:

Sai số được lan truyền ngược bởi quá trình cập nhật trọng số và định hướng

Trang 25

làm sai số trong việc dự đoán của mạng Cho nơ ron j trong tầng xuất, sai số Errjđược tính bởi:

Để tính độ sai số của tầng ẩn với nơ ron j, tổng các sai số của trọng số của các

nơ ron trong tầng kế tiếp liên kết đến nơ ron j được tính trước Sai số

của tầng ẩn với nơ ron j là:

(1 O ) k

j

ErrO  Err

Trong đó wjk là trọng số của liên kết từ nơ ron j đến nơ ron k trong tầng kế tiếp,

và Errk là sai số của nơ ron k

Trọng số và định hướng được cập nhật đã làm sai số lan truyền Trọng số đượccập nhật bởi công thức sau, với ∆wij là phần thay đổi trong trọng số wij

Biến  biểu thị khả năng học hay mức độ học, là một hằng số có giá trị trong

khoảng 0 và 1 Huấn luyện lan truyền ngược sử dụng phương pháp giảmgradient để kiếm ra một tập trọng số mà có thể mô hình hóa bài toán phân lớp chotrước sao cho cực tiểu sai số bình phương-trung bình giữa lớp được mạng dự đoán

và lớp thực sự của mẫu học đã cho Mức độ học ngăn không cho sa lầy vào cựctiểu cục bộ trong không gian quyết định nghĩa là các trọng số xuất hiện để hội tụ,nhưng nó không phải là giải pháp tốt nhất và đi tới khám phá cực tiểu toàn cục.Nếu mức độ học quá nhỏ thì việc học tiến triển rất chậm Nếu mức độ học quá lớn

thì các giải pháp không thỏa đáng Một kinh nghiệm là cho mức độ học l=t với t là

số lần lặp đi lặp lại trên tập dữ liệu học cho tới lúc này

Sự định hướng được cập nhật theo công thức sau, với ∆θj là phần thay đổi trong θj

5.3 Điều kiện kết thúc:

Quá trình học mạng được bắt đầu với các giá trị trọng số tùy ý và tiến hànhlặp đi lặp lại Mỗi lần lặp được gọi là một thế hệ Trong mỗi thế hệ mạng điềuchỉnh các trọng số sao cho sai số giảm dần và quá trình học kết thúc khi:

+ Tất cả ∆wij ở thế hệ trước nhỏ hơn một ngưỡng xác định nào đó hoặc

+ Tỷ lệ các mẫu bị phân lớp sai ở thế hệ trước nhỏ hơn một ngưỡng nào đóhoặc

+ Lặp đủ số lượng thế hệ xác định trước

Trong thực tế, có khi phải trải qua rất nhiều lần huấn luyện thì các trọngsố mới có thể hội tụ Tóm tắt thuật giải lan truyền ngược cho mạng nơ-ron huấn

Trang 26

luyện để phân lớp được trình bày như sau:

Input: tập các mẫu học, mức độ học l, một mạng đa tầng

Output: một mạng nơ ron đã được học để phân lớp cho các mẫu

1) Khởi tạo tất cả các trọng số và định hướng trong mạng;

//lan truyền tiến các đầu vào

4) for với mỗi nơ-ron j của tầng ẩn hoặc tần xuất

5) I j w ij(o o )ij // tính mạng đầu vào cho nơ-ron j

foundError: Reference source not found

11) Err jO j(1 O ) jErr kjk // tính sai số

13) w ij  (l) Errj O j //độ tăng trọng số

14) w ijw ij w ij // cập nhật trọng số

16) j  (l) Errj // độ tăng định hướng

17) j j j // cập nhập định hướng

Trang 27

5.4 Kiến trúc mạng:

Hình 2.15:Kiến trúc mạng Perceptron 3 tầng.

Các lớp nơ-ron thứ t được nối đầy đủ với các lớp nơ ron thứ t+1 Trong nhiềuứng dụng thực tế, để đơn giản, người ta thường sử dụng mạng có một lớp ẩn, số nơron có trong lớp ẩn được xác định dựa trên kinh nghiệm, hoặc dựa trên các kỹ thuậttìm kiếm khác nhau

5.5 Huấn luyện mạng

Quá trình huấn luyện mạng được trình bày ở đây là quá trình học có giám sát với tập

Mỗi khi đưa một mẫu Xs =(x1, x2 …xn) vào mạng, ta thực hiện các công việc sau: -Lan truyền mẫu Xs qua mạng để có outs = Tinh (Xs , NN)

-Tính sai số Errs của mạng dựa trên sai lệch ts – Ys

-Hiệu chỉnh các trọng số liên kết nơ ron dẫn tới lớp ra Wij từ nơ ron j tại lớp

ẩn cuối cùng tới nơ ron i tại lớp ra:

ở đây  là hệ số học

aj là đầu ra của nơ ron j

Trang 28

i là sai số mà nơ ron i ở lớp ra phải chịu trách nhiệm, được xác định theocông thức:

Với erri là sai số thành phần thứ i trong Errs , Neti là tổng thông tin vào có trong sốcủa nơ ron thứ i (Neti = ij aj và g’(.) là đạo hàm của hàm kích hoạt g được dùngtrong các nơ ron

-Hiệu chỉnh các trọng số liên kết nơ ron Wjk dẫn tới tất cả các lớp ẩn từ nơ ronthứ k sang nơ ron thứ j (các lớp ẩn được xét từ dưới lên)

-Tính tổng sai số tại nơ ron j phải chịu trách nhiệm

-Hiệu chỉnh trọng số Wjk

(trường hợp xét liên kết từ nơ ron vào thứ k sang nơ ron j trên lớp ẩn thứ nhất, ta có

ak = Ik , chính là tín hiệu vào)

Chú ý:

G(x) =

a, Trường hợp xét hàm kích hoạt tại các nơ ron ta có hệ thức g’(x) = g(x) (1-g(x))

b, Từ các công thức ( 1*), (4*) ta có thể viết lại:

Wij = Wij + Wij , Wjk = Wjk + Wjk

Với Wij =  aj i và Wjk =  ak j

ý đến thao tác trước đó Do vậy :

Wij (mới) = aj j + Wij(cũ) , ở đây là hệ số quán tính

Quá trình huấn luyện mạng cần chú ý tới các yếu tố sau

 Các trọng số Wij ban đầu Wij được gán với các giá trị ngẫu nhiên, nhỏ

 Lựa chọn các hệ số học  và hệ số quán tính (momentum)  sao cho

1

Ngày đăng: 15/05/2016, 21:50

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2]. Simon S. Haykin, 1999. Neural Networks-A Comprehensive Foundation, 2nd Edition. Ontario: Prentice Hall International, Inc Sách, tạp chí
Tiêu đề: Neural Networks-A Comprehensive Foundation
[5]. Virus Detection using Artificial Neural Networks, International Journal of Computer Applications (0975 – 8887), Volume 84 – No 5, December 2013 Sách, tạp chí
Tiêu đề: Virus Detection using Artificial Neural Networks
[6]. What is Reverse Engineering, Cung Thế Hưng, http://ctf.ist- vnisa.org.vn/reverse/reverse-engineering.html Sách, tạp chí
Tiêu đề: What is Reverse Engineering
[7]. Asaf Shabtai, Eitan Menahem, and Yuval Elovici, F-Sign: Automatic, Function-based Signature Generation for Malware, Deutsche Telekom Laboratories at Ben-Gurion University, and Department of Information Systems Engineering, Ben-Gurion University, Be’er-Sheva, 84105 Israel Sách, tạp chí
Tiêu đề: F-Sign: Automatic, Function-based Signature Generation for Malware
[1]. Rubén Santamarta, 2006. Generic Detection and Classification of Polymorphic Malware Using Neural Pattern Recognition,<http://www.reversemode.com / index.php?option=com_content&task=view&id=15&Itemid=5&gt Khác
[3]. Bài giảng công nghệ tính toán mềm, <http://doc.edu.vn/tai-lieu/bai-giang-cong-nghe-tinh-toan-mem-soft-computing-technology-55604/&gt Khác
[4]. An In-Depth Look into the Win32 Portable Executable File Format , <http: //msdn .microsoft.com /en-us/magazine/bb985992.aspx&gt Khác

TỪ KHÓA LIÊN QUAN

w