Báo cáo thực tập hệ thống SVM
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHÊ THÔNG TIN I
BÁO CÁO THỰC TẬP
Giảng viên hướng dẫn : TS Hoàng Xuân Dậu
HÀ NỘI, 7/2012
Trang 2I.Giới thiệu
Thiết kế và cái đặt hệ thống phát hiện đột nhập là một vấn đề nghiên cứu quan trọng trong an toàn mạng Các hệ thống phát hiện đột nhâp được học và đề xuất gặp phải các thách thức trong môi trường internet Không phải là sự thổi phòng trạng thái mà một hệ thống phát hiện đột nhập phải là một hệ thống hiện đại Kĩ thuật phát hiện đột nhập có thể chia thành 2 nhóm : phát hiện sai và phát hiện dị thường
Phát hiện sai nhận ra các các hành động đột nhập dựa trên các hành vi đã biết từ quá trình phát triển Phát hiện sai tương tự các phần mềm diệt vi rút Chúng so sánh dữ liệu với
cơ sở dữ liệu virus có sẵn Phát hiện sai là tập hợp các hành vi tấn công từ cơ sở dữ liệu thuộc tính Do đó chúng có hạn chế không thể phát hiện đột nhập mới xảy ra ví dụ các sự kiện chưa xảy ra bao giờ Phát hiện di thường khác biệt so với phát hiện sai
Phát hiện dị thường dựa trên phân tích dữ liệu các sự kiện và nhận ra các mẫu của các hành động xuất hiện một cách bình thường Nếu một sự kiện xảy ra ngoài mẫu, chúng được báo cáo như một xâm nhập Có thể xem phương pháp này là phương pháp tiếp cận nửa học máy
Có nhiều kĩ thuật học máy được sử dụng phát hiện đột nhập dị thường Qiao giới thiệu
một phương pháp phát hiện đột nhập dựa vào mô hình ẩn của Markov để phân tích tập dữ liệu
UNM Lee thiết lập mô hình phất hiện đột nhập kết hợp luật kết hợp và logic mờ điều chế mãu cho phất hiện dột nhâp Mohajeran phát triển hệ thống phát hiện đôt nhập kết hợp mạng
nơron và logic mờ phân tích tập dữ liệu KDD, Wang áp dụng thuật toán di truyền dánh giá hàm thành viên cho khai phái mờ luật kết hợp
SVM (SVM) là một kĩ thuật phổ biến cho phát hiện đột nhâp dị thường SVM huấn luyện vector vào không gian đặc trưng có số chiều lớn hơn, gán nhãn mỗi vector vào các lớp SVM phân loại dữ liệu bởi giới hạn một tập vector hỗ trợ chúng là thành viên của tập dữ liệu huấn luyện nằm trên lề siêu phẳng của không gian đặc trưng
SVM cung cấp một cơ chế chung để phù hợp với bề mặt siêu phẳng dữ liệu thông qua hàm nhân Có nhiều hàm (tuyến tính, đa giác, xích ma) cho SVM trong quá trình huấn luyện, lựa chọn vector hỗ trợ theo bề mặt của hạt nhân
Lý do SVM cho phát hiện đột nhâp Thứ nhát là tốc độ : hiệu suất thời gian thực là yếu tố quan trọng hàng đầu cho hệ thống phát hiện đột nhập, Thứ hai là khả năng mở rộng : SVM là tương đối không nhảy cảm với số lượng các điểm dữ liệu và phân loại phưc tạp không phụ thuộc vào chiều của không gian vì vậy có khă năng học tập lớn các mẫu
II.Nội dung
SVM được giới thiệu bởi V.Vapnik và các đồng nghiệp của ông vào những năm 1970 ở Nga
và sau đó đã phổ biến vào những năm 1990 SVM có những đặc điểm làm cho nó trở thành một trong những thuật toán phổ biến nhất Không chỉ có nền tảng lý thuyết chắc mà còn thực hiện phân loại chính xác so với hầu hết các thuật toán khác trong nhiều ứng dụng đặc biết các ứng dụng liên quan đến dữ liệu nhiều chiều
Ý tưởng của phương pháp : cho trước một tập huấn luyện được biểu diễn trong không gian vector Phương pháp tìm ra một siêu phẳng f quyết định tốt nhất có thể chia các điểm trên không gian thành hai lớp tương ứng là lớp + và lớp - Chất lượng của siêu phẳng này được
Trang 3quyết đỉnh bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này Khi đó, khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại càng chính xác
Cho tập hợp các ví dụ huấn luyện D
Với là một vector đầu vào r chiều trong không gian giá trị thực , là nhãn lớp (giá trị đầu ra)
và {1, -1} 1 biểu thị lớp dương và -1 biểu thị lớp âm
Để xây dựng một phân loại, SVM tìm một hàm tuyến tính có dạng sau :
(1)
vì vậy vector đầu vào xi được gán vào các lớp dương nếu f(xi) 0, và lớp âm nếu ngược lại, tức là,
(2) F(x) là một hàm giá trị thực được gọi là vector trọng số b được gọi là độ dịch chuyển <w.x> là dot product của w and x Phương trình (1) được viết như sau:
(3) Với là biến biểu diễn tọa độ thứ i của vector x
Bản chất SVM tìm các siêu phẳng:
(4)
để chia các mẫu huấn luyện thành dương và âm Siêu phẳng này được gọi là đường biên quyết định hoặc bề mặt quyết định
Về mặt hình học, siêu phẳng <w.x> + b=0 phân chia không gian đầu và othành hai nửa
không gian: một nửa cho các mẫu dương và một nửa khác cho các mẫu âm Nhớ lại rằng siêu phẳng thường được gọi là một đường trong một không gian 2-chiều và một plane trong một không gian 3 chiều
Hình 1 cho thấy một ví dụ trong một không gian 2 chiều Mẫu dương được biểu diễn bởi hình chữ nhật đặc nhỏ, và mẫu âm được biểu diễn bởi hình tròn rỗng nhỏ Đường dày ở giữa là các siêu phẳng biên quyết định (một đường trong trường hợp này), nó chia các điểm dữ liệu dương (phía trên đường) và âm (phía dưới đường) Phương trình (1), gọi là quy tắc quyết định của phân lớp SVM, được sử dụng để tạo quyết định phân lớp trên các trường hợp thử
nghiệm
Trang 4Hình 1 (A) A là một đường thẳng chia tập dữ liệu và (B) các biên quyết dịnh có thể 1.SVM tuyến tính : trường hợp có thể chia
Phần này nghiên cứu trường hợp đơn giản của SVM tuyến tính Nó giả thiết rằng các dữ liệu dương và âm là có thể chia tuyến tính
Theo đại số tuyến tính, chúng ta biết rằng trong <w.x> + b = 0, w định nghĩa một đường pháp tuyến với siêu phẳng (xem hình 2) Không thay đổi vector chuẩn w, biến b di chuyển siêu phẳng song song với chính nó Cũng lưu ý rằng <w.x> + b = 0 có một mức độ tự do vốn có Chúng ta có thể thay đổi tỉ lệ các siêu phẳng thành
mà không thay đổi hàm/ siêu phẳng
Hình 2 Siêu phẳng phân chia và lề của của SVM : Vector hỗ trợ khoanh tròn
Khi SVM đạt cực đại lề giữa các điểm dữ liệu dương và âm, hãy tìm lề đó Gọi d+ là khoảng cách ngắn nhất từ siêu phẳng để chia tới các điểm dữ liệu dương gần nhất, d- là khoảng cách ngắn nhất từ siêu phẳng để chia tới các điểm dữ liệu âm gần nhất Khi đó lề của siêu phẳng
để chia là (d+)+(d-) SVM tìm siêu phẳng để chia với lề lớn nhất, còn gọi là lề siêu phẳng cực đại, làm đường biên quyết định
Hãy chú ý đến các điểm dữ liệu dương () và âm () mà gần siêu phẳng nhất Chúng ta định nghĩa hai siêu phẳng, và , mà đi qua và và cũng là song song với <w.x> +b=0 Chúng ta
có thể thay đổi tỉ lệ w và b để thu được:
(5) (6)
Trang 5Cái mà cho biết rằng không có dữ liệu huấn luyện nào rơi vào giữa các siêu phẳng và Bây giờ ta cùng tính toán khoảng cách giữa hai lề siêu phẳng và Khoảng cách là lề ((d+)+ (d-)) Theo không gian vector trong đại số tuyến tính thì khoảng cách Euclidena từ điểm xi tới một siêu phẳng <w.x>+b=0 là:
(7)
Với là chuẩn của véc tơ w,
(8)
Để tính d+ , thay vì tính khoảng cách từ tới siêu phẳng chia <w.x> +b=0, chúng ta lấy một điểm trên <w.x> +b=0 và tính khoảng cách từ trên <w.x> +b=0 và tính khoảng cách từ tới
<w.> +b=1 bằng cách áp dụng phương trình (40) và chú ý rằng <w.> +b=0,
(9) Tương tự , ta có thể tính khoảng cách từ tới <w.> +b=-1 để thu được Do đó, đường quyết định (<w.x> +b=0 ) nằm giữa hai đường và , khi đó :
(10) SVM tìm siêu phẳng để chia mà lề đạt được cực đại, điều này đưa ra một vấn đề đánh giá Giá trị lề cực đại tương tự như cực tiểu giá trị Mô tả SVM có thể chia tuyến tính như sau:
Định nghĩa (Linear SVM: Separable Case): Với một tập các mẫu huấn luyện có thể chia
tuyến tính , quá trình học là giải quyết cực tiểu hóa ràng buộc sau:
(11)
Ràng buộc được tổng quát hóa như sau:
Giải quyết vấn đề (11) sẽ tạo ra các giải pháp cho w và b Kể từ khi hàm mục tiêu là bậc hai
và lồi và các ràng buộc là tuyến tính trong các thông số w và b, chúng ta có thể sử dụng
Trang 6phương pháp hệ số nhân Lagrange chuẩn để giải quyết nó.
Thay vì đánh giá hàm mục tiêu, ta cần đánh giá Lagrangian của vấn đề,nó xem xét các ràng buộc cùng một lúc Cần quan tâm đến các ràng buộc là rõ ràng bởi vì chúng giảm bớt các giải pháp khả thi Khi ràng buộc bất đẳng thức được biểu diễn sử dụng “ ”, các Lagrange được
xây dựng bằng cách các ràng buộc được nhân với các hệ số nhân dương và được trừ vào hàm mục tiêu, cụ thể là:
(12)
trong đó 0 là các hệ số nhân lagrange Lí thuyết đánh giá nói rằng một giải pháp đánh giá cho biểu thức phải thỏa mãn các điều kiện nhất định, được gọi là các điều kiện Kunhn- Tucker, nó giữ vai trò quan trọng trong đánh giá ràng buộc Ở đây, ta giới thiệu tóm tắt các điều kiện này Các vấn để tổng quá hóa là : (13)
Trong đó f là hàm mục tiêu và la hàm ràng buộc Lagrangian của (13) là, (14)
Một giải pháp đánh giá vấn đề trong (13) phải thỏa mãn các điều kiện cần thiết (nhưng chưa đủ) sau :
(15)
(16)
(17)
(18)
Các điều kiện này được gọi là các điều kiện Kuhn-Tucker, chú ý rằng (16) là tập các ràng buộc bản đầu có trong (13) Điều kiện (18) được gọi là điều kiện bổ sung, nó ngụ ý rằng tại điểm giải quyết :
Để cực tiểu vấn đề (11), các điều kiện Kuhn-Tucker là :
Trang 7(19)
(20)
(21) (22)
(23)
Bất đẳng thức (21) là tập các ràng buộc ban đầu lưu ý rằng mặc dù có một hệ số nhân
Lagrange αi cho mỗi điểm dữ liệu huấn luyện, điều kiện bổ sung (23) cho thấy rằng chỉ những điểm dữ liệu nằm trên mép siêu phẳng (tức là, H + và H-) có thể có αi> 0 mà làm cho
yi (〈 w ⋅ xi 〉 + b)- 1 = 0 Những điểm dữ liệu được gọi là vectơ hỗ trợ Tất cả các điểm dữ liệu khác có αi = 0
Bất đẳng dối ngẫu của phương trình căn bản (11) là:
(24)
Sau khi giải quyết vấn đề (24) ta thu được các giá trị của , chúng được dùng để tính các vector trọng số w độ lệch b sử dụng các đẳng thức (19) và (23) Thay vì phụ thuộc vào một vector hỗ trợ (α i> 0) để tính b, trong thực tế tất cả các vector hỗ trợ được sử dụng để tính b, sau đó đưa ra giá trị trung bình của chúng làm giá trị cuối cùng của b Đường biên quyết định cuối cùng là :
(25) Trong đó sv là tập các chỉ số của không gian vector trong dữ liệu hấn luyện
Testing : chúng ta áp dụng (25) để phân lớp với một tập các thể hiện z, chúng phân loại nó
sử dụng cái sau :
(26) Nếu (26) trả về 1, z được phân vào lớp dương ngược lại thì z được chia vào lớp âm
Trang 82.SVM tuyến tính: Trường hợp không thể chia
Trường hợp chia tuyến tính là tình huống lý tưởng Tuy nhiên trong thực tế, dữ liệu huấn luyện hầu như luôn bị nhiễu , tức là chứa các lỗi vì nhiều lí do khác nhau Chẳng hạn, một số mẫu có thể được gán nhãn không chính xác Hơn nữa các vấn đề thực tế có thể có một số mức
độ ngẫu nhiên Ngay cả đối với hai vector đầu vào giống hệt nhau, nhãn của chúng có thể khác nhau
Để SVM là hữu dụng, nó phải cho phép nhiễu trong các dữ liệu huấn luyện Tuy nhiên, với dữ liệu nhiễu thì SVM chia tuyến tính sẽ không tìm ra một hướng giải pháp nào bởi vì các ràng buộc không thể đạt được Chẳng hạn, trong hình 3, có một điểm âm trong miền dương, và có một điểm dương trong miền âm Một cách rõ ràng hơn, không có giải pháp có thể được tìm thấy cho vấn đề này
Nhớ lại rằng nền tảng cho trường hợp chia tuyến tính là:
(27)
Để cho phép lỗi trong dữ liệu, chúng ta có thể nới lỏng các rằng buộc lề dc bẳng cách đưa ra
các biến slack, () như sau:
Do đó chúng ta có các rằng buộc mới :
Biểu diễn hình học được minh họa trong hình 3, ở đây có hai điểm dữ liệu lỗi , (được khoanh tròn) trong miền không chính xác
Trang 9Hình 3 Trường hợp không phân chia đúng
Chúng ta cũng cần để ý các lỗi trong hàm mục tiêu Một cách thông thường là gán một giá trị
mở rộng cho các lỗi để thay đổi hàm mục tiêu để:
(28)
Với C là một tham số được quy định bởi người dùng K=1 được sử dụng phổ biến, nó có tiến
bộ là không phải mà cũng không phải hệ số nhân Lagrangian của nó xuất hiện trong biểu thức đối ngẫu Ta chỉ quan tâm thảo luận trường hợp k=1 ở phía dưới đây
Vấn đề đánh giá mới trở thành:
(29)
Công thức này được gọi là lề mềm SVM Lagrangian cơ bản (biểu diễn bởi ) của biểu thức này như sau:
(30)
Trong đó, , là các hệ số nhân Lagrange Điều kiện Kuhn-Tucker tốt nhất là những điều kiện sau :
Trang 10(31)
(32)
(33)
(34)
(35)
(36)
(37)
(38)
(39)
Trong trường hợp chia tuyến tính, sau đó ta chuyển biểu thức ban đầu sang biểu thức đối ngẫu bằng cách thiết lập về zero các dẫn xuất một phần của Largangian (30) đối với các biến ban đầu (tức là w,b và ), và thay thế các kết quả liên quan trở lại Lagrangian Đó là, chúng ta thay thế phương trình (31), (32), và (33) vào Lagrangian ban đầu (30) Từ đẳng thức (33), C = 0, chúng ta có thể suy ra rằng C bởi vì 0 Do đó, biểu thức đối ngẫu của (29) là :
(40) Vấn đề đối ngẫu (40) cũng có thể được giải quyết về số lượng, và các giá trị kết quả sau đó được sử dụng để tính w và b W được tính sử dụng phương trình (31) và b được tính sử dụng điều kiện bổ sung Kuhn-Tucker (38) và (39), nếu 0 < <C thì cả =0 và () – 1 + = 0 Do đó có thể sử dụng vài điểm dữ liệu huấn luyện mà 0 < <C và phương trình (38) (với = 0.) để tính toán b : (41)
Nhắc lại, do lỗi con số, ta có thể tính tất cả các khả năng của b và sau đó lấy giá trị trung bình của chúng làm giá trị b cuối cùng
Chú ý rằng phương trình (33), (38) và (39) trong thực tế cho ta biết :
(42)
Trang 11Tương tự với các support vector cho trường hợp có thể chia, (42) đưa ra một trong các đặc tính quan trọng nhất của SVM : giải pháp là rời rạc Đa số các điểm dữ liệu huấn luyện là nằm ngoài vùng mép và của chúng trong hướng giải pháp bằng 0 Chỉ những điểm dữ liệu đó
là nằm trên mép (cụ thể (<w.>+b)=1, là các support vector trong trường hợp có thể chia), hoặc các lỗi là khác zero Nếu không có thuộc tính rời rạc này , SVM sẽ không thực hiện cho
bộ dữ liệu lớn
Đường quyết định cuối cùng là :
(43) Luật quyết định cho phân lớp (testing) giống như trường hợp có thể chia, cụ thể là
sign(<w.x> +b) Lưu ý rằng cả phương trình (43) và (41) thì không cần được tính toán cụ
thể Chủ yếu dành cho sử dụng các hàm nhân để xử lí các đường biên quyết định không tuyến tính
Cuối cùng, ta vẫn có một vấn đề là xác định tham số C Giá trị của C thường chọn bởi thử một dãy các giá trị trên bộ dữ liệu huấn luyện để xây dựng bộ phân loại đa lớp và sau đó test chúng trên bộ dữ liệu xem xét, trước khi chọn một cái mà đưa ra kết quả phân loại tốt nhất trên bộ dữ liệu xem xét Xem xét chéo là được sử dụng phổ biến như vậy
3.SVM phi tuyến tính : hàm nhân
Ở hai trường hợp các mẫu dương và âm có thể được tách tuyến tính, tức là đường biên quyết định phải là một siêu phẳng Tuy nhiên đối với nhiều bộ dữ liệu thực tế, các đường biên quyết định là không tuyến tính Để giải quyết với dữ liệu chia không tuyến tính công thức tương tự và các kĩ thuật giải quyết như đối với trường hợp tuyến tính vẫn được sử dụng Ta chỉ chuyển dữ liệu đầu vào từ không gian ban đầu của nó sang không gian khác (thường là không gian có số chiều nhiều hơn) do đó một đường biên quyết định tuyến tính có thể chia các mẫu dữ liệu dương và âm trong không gian sau khi chuyển đổi, cái mà được gọi là không gian đặc trưng Ý tưởng cơ bản là ánh xạ dữ liệu từ không gian X đầu vào sang không gian đặc trưng F thông qua một phép ánh xạ không tuyến tính ,
(44)
Sau khi ánh xạ bộ dữ liệu huấn luyện ban đầu {(,), (,), …,(,)} trở thành:
(45)