Mạng Perceptron đa lớp và giải thuật lan truyền ngược

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng mạng neuron trong phát hiện xâm nhập mạng (Trang 36 - 42)

2.1.3.1. Giới thiệu chung về mạng BackPropogation

Mạng lan truyền ngược BackPropogation (BP) đơi khi cịn được gọi là mạng nhiều tầng truyền thẳng. Hiện nay nĩ đang được sử dụng rất rộng rãi trong các ứng dụng mạng neuron. Các mạng BP đã giải quyết rất thành cơng nhiều vấn đề phức tạp nhờ cĩ được khả năng khái quát hố cao. Một mạng BP tổng quát cĩ n (n ≥ 2) lớp đầu tiên là các đầu vào từ lớp thứ (1) tới lớp thứ (n-1) được gọi là lớp ẩn lớp cuối cùng (n) được gọi là lớp ra. Trong mạng BP mỗi đầu vào được liên kết với tất cả các nút của lớp thứ nhất mỗi nút ở lớp thứ i (0<i<n) liên kết với tất cả nút ở lớp thứ i+1 và các nút trong cùng một lớp khơng liên kết với nhau. Mỗi cung trong mạng được gắn một trọng số w  R.

Hình 2.8. Mơ hình mạng BP 3 lớp

Tập đầu vào của mạng là Input gồm R đầu vào p1 , p2,…,pR các lớp Layer1, Layer2 là các lớp ẩn lớp Layer3 là lớp ra. Mạng ba lớp chính là sự kết hợp của ba mạng Perceptron một lớp đơn giản đầu ra của mạng thứ nhất là đầu vào của mạng thứ hai và đầu ra của mạng thứ 2 lại là đầu vào của mạng thứ 3. Mỗi một tầng cĩ thể cĩ số lượng neuron khác nhau thậm chí là cả hàm truyền khác nhau. Việc chọn số lượng neuron cho mỗi tầng và số lượng tầng cho mạng phụ thuộc vào từng bài tốn cụ thể thơng thường đối với bài tốn phân lớp của chúng ta thì chỉ cần chọn hai đến ba tầng là đủ huấn luyện mạng. Để chọn được số tầng và số neuron tối ưu cho một bài tốn thường phụ thuộc vào kinh nghiệm của người xây dựng nhưng cũng cĩ thể tham khảo một kinh nghiệm chọn đĩ là: Số neuron của tầng bằng khoảng một nửa số thuộc tính đầu vào và số neuron đầu ra bằng số đầu ra của mạng.

Mạng BP chỉ cĩ thể ở một trong hai trạng thái: Trạng thái lan truyền và trạng thái học. Trong trạng thái lan truyền thơng tin lan truyền từ đầu vào đến đầu ra. Trong trạng thái học thơng tin lan truyền theo hai chiều nhiều lần để học các trọng số.

Trong trạng thái lan truyền mạng xử lý mỗi lần một mẫu. Đầu tiên giá trị của các biến độc lập chuyển tới các đầu vào của mạng các đầu vào khơng tính tốn gì nĩ chỉ nhận giá trị của biến và truyền tới các nút của lớp đầu tiên (lớp ẩn). Các nút tại

lớp ẩn tính tổng trọng hố của tồn bộ dữ liệu bằng cách cộng dồn tất cả các tích giữa giá trị đầu vào (cĩ thể là đầu ra của lớp trước) tới nút ẩn với trọng số của cung liên kết tương ứng giữa nút ẩn và đầu vào đĩ.

Tiếp theo một hàm truyền được áp dụng trên tổng này và cho ta một giá trị ra của nút ẩn đĩ. Giá trị này lại được gửi đến tất cả các nút của lớp ẩn kế tiếp cơng việc tương tự lại được thực hiện cho tới lớp ẩn cuối cùng thì các đầu ra của lớp ẩn cuối cùng được đưa tới tất cả các nút của lớp ra.

Cuối cùng mỗi nút của lớp ra cũng thực hiện như trong lớp ẩn để cho ra giá trị xuất, giá trị của các nút xuất chính là giá trị của các biến phụ thuộc cần xác định.

Trạng thái học bản chất của nĩ chính là quá trình cập nhật các trọng số dựa trên giải thuật lan truyền ngược sao cho mạng cĩ được một tập trọng số tốt nhất vừa đảm bảo được ánh xạ chính xác giữa đầu ra và đầu vào trên tập dữ liệu học vừa đảm bảo được khả năng khái quát hố cao. Bằng giải thuật lan truyền ngược thì hai tiến trình: Lan truyền tiến và lan truyền ngược sai số được lặp đi lặp lại nhiều lần trên một tập mẫu cho trước. Quá trình này cịn được gọi là quá trình huấn luyện mạng.

Quá trình huấn luyện mạng được bắt đầu với các giá trị trọng số tuỳ ý (thường là các giá trị ngẫu nhiên) và tiến hành lặ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ều chỉnh các trọng số sao cho sai số giảm dần (sai số giữa đầu ra so với đích). Tiến trình điều chỉnh nhiều lần giúp cho trọng số dần đạt được tập hợp các giá trị tối ưu. Thơng thường mạng cần thực hiện nhiều thế hệ trước khi việc huấn luyện mạng hồn tất .

Đối với từng mẫu mạng thực hiện hai phép tốn sau:

- Một là mạng thực hiện quá trình lan truyền tiến nghĩa là mạng ánh xạ các biến đầu vào của mẫu hiện thời thành các giá trị đầu ra sử dụng các trọng số hiện thời. Ở các thế hệ đầu các kết xuất chưa chính xác vì các trọng số chưa được đúng.

- Hai là sai số được tính dựa trên giá trị kết xuất và giá trị đích. Trên cơ sở sai số tính được mạng sẽ cập nhật lại các trọng số theo cơng thức của giải thuật lan truyền ngược và quá trình này cũng được gọi là quá trình lan truyền ngược sai số.

a. Xét một mơ hình mạng BP

Để huấn luyện cho mạng neuron nhiều lớp bằng giải thuật lan truyền ngược cần phải cĩ tập mẫu học {XS , YS}. Mỗi đầu vào XS sẽ được lan truyền từ đầu vào cho tới lớp ra quá trình lan truyền tạo ra đầu ra OS của mạng. Giá trị đầu ra này thường cĩ sai số so với giá trị đầu ra mong muốn YS tương ứng với mỗi mẫu học XS. Các sai số sẽ được tính và lan truyền ngược từ lớp ra trở về phía trước để cập nhật lại các trọng số liên kết giữa các neuron của mạng .

Để cĩ được sự trình bày một cách rõ ràng về giải thuật lan truyền ngược ta sẽ sử dụng một mạng BP hai lớp như Hình 2.6 dưới đây để làm ví dụ:

Kiến trúc mạng tĩm tắt như sau: - m đầu vào kí hiệu xi (i = 1... m) - Hai lớp neuron:

+ Lớp ẩn cĩ r neuron kí hiệu pj (j =1... r) + Lớp ra cĩ n neuron kí hiệu là ok (k = 1... n)

- Mỗi neuron của lớp sau liên kết đầy đủ với các neuron ở lớp trước bởi các trọng số w liên kết được thể hiện bằng các đường nét liền.

- Sự lan truyền ngược các sai số phát sinh được thể hiện bằng các nét đứt. - Khơng sử dụng hệ số bias.

Chú ý: Trên hình vẽ ma trận Wij thứ nhất là ma trận cỡ r x m ma trận Wij của lớp thứ hai là ma trận cỡ n x r.

b. Giải thuật lan truyền ngược

Khi mạng muốn học một mẫu (X,Y) trong đĩ X là các vector tín hiệu đầu vào và Y là các tín hiệu đầu ra mong muốn. Các thành phần xi của X sẽ được đưa vào các neuron của lớp ẩn đầu tiên. Vì các đầu vào liên kết với các neuron lớp ẩn bởi tập trọng số wij cho nên mỗi neuron thứ j của lớp ẩn sẽ nhận được tổng tín hiệu đầu vào cĩ trọng số netj được tính theo cơng thức sau:

netj=  m i w 1 ij*xI hoặc netj=  m i w 1 ij*xi (2.4)

Sau khi nhận được tổng tín hiệu vào với trọng số netj giá trị này sẽ được sử dụng làm tham số đầu vào cho hàm truyền f và hàm này cho ta tín hiệu ra của các neuron lớp ẩn. Giả sử hàm truyền được sử dụng là hàm Sigmoid đơn cực (ký hiệu là f) thì tín hiệu ra zj của mỗi neuron j được tính như sau:

zj = f(netj) = f(  m i w 1 ij*xi) (2.5)

Các tín hiệu ra zj lại được xem như đầu vào của lớp tiếp theo (trong trường hợp mạng nhiều hơn hai lớp) ta đang xét mạng hai lớp nên chúng được truyền cho neuron thứ k của lớp ra cùng với các trọng số liên kết wkj ta cĩ cơng thức:

netk =   r j w 1 kj * zj (2.6) Tín hiệu đầu ra Ok của neuron thứ k của lớp ra sẽ là:

Ok = f(netk)= f(  r j w 1 kj * zj) (2.7)

Như vậy với đầu vào là vector X sau khi lan truyền tiến qua mạng sẽ nhận được đầu ra là vector O. Đầu ra này khơng thể hồn tồn trùng khớp với đầu ra đích (hay đầu ra mong muốn). Sai số tổng thể E của mạng được tính dựa trên sai lệch giữa O và Y theo cơng thức bình phương:

E = 2 1   n k 1 (yk - ok )2 (2.8)

Để điều chỉnh sao cho các tín hiệu ra Ok tiến lại gần các tín hiệu mong muốn yk các trọng số của mạng sẽ được cập nhật lại theo một quy tắc nào đĩ. Chẳng hạn với quy tắc Delta (hay cịn gọi là phương pháp giảm theo hướng dốc) thì các trọng số liên kết giữa neuron thứ j tại lớp ẩn tới neuron thứ k tại lớp ra được cập nhật theo cơng thức:

wkj = wkj + wkj (2.9)

Trong đĩ biến thiên trọng số wkj của trọng số liên kết wkj được tính như sau:

wkj = .  k . zj (2.10) Trong đĩ:

- : là hệ số học.

- zj : là các đầu ra của neuron thứ j.

- k: là sai số mà neuron thứ k phải chịu trách nhiệm được xác định theo cơng thức: E = 2 1   n k 1 (yk - ok )2 (2.11)  k = Ek. f ‟(netk) (2.12)

Ở đây Ek là đạo hàm của hàm lỗi E (Ek = ok- yk ) netk là tổng tín hiệu vào cĩ trọng số của neuron thứ k và f „() là đạo hàm của hàm truyền f mà ta dùng trong mạng. Nếu hàm f là hàm sigmoid đơn cực thì f „(x) = f(x)(1- f(x)). Vậy cơng thức 2.12 sẽ được viết lại là:

 k = (yk - ok ).ok.(1-ok) (2.13)

Các trọng số liên kết từ đầu vào thứ i tới neuron thứ j tại lớp ẩn cũng được cập nhật theo cách tương tự tuy nhiên sai số mà một neuron tại lớp ẩn phải chịu trách nhiệm sẽ được tính theo cách khác :

wji = wji + wji (2.14) Vớiwji =.  j . xi

khơng phải là zj do đĩ xi được thay thế cho zj .

Ta biết rằng một neuron thứ j ở lớp ẩn liên kết đầy đủ với tất cả các neuron k ở lớp ra. Như vậy nĩ phải chịu trách nhiệm với tất cả sai số của mỗi neuron k mà nĩ liên kết ở lớp ra. Tổng sai số mà neuron thứ j phải chịu trách nhiệm là:

 j = f( netj )   n k 1 wjk .  k (2.15)  j = zj ( 1-zj)   n k 1 wjk .  k (2.16)

Các thao tác thực hiện cập nhật trọng số wịj , wjk như trên được gọi là lan truyền ngược sai số. Các quá trình lan truyền tiến tính sai số và lan truyền ngược được thực hiện lặp đi lặp lại nhiều lần cho đến khi thoả mãn một điều kiện nào đĩ của sai số hoặc đã qua đủ một số lần lặp xác định trước thì sẽ dừng lại. Đĩ chính là nội dung của giải thuật lan truyền ngược .

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng mạng neuron trong phát hiện xâm nhập mạng (Trang 36 - 42)

Tải bản đầy đủ (PDF)

(77 trang)