Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Mục Lục
Lời mở đầu
Ngày nay không ai có thể phủ nhận vai trò cực kỳ quan trọng của máy tính trong nghiên cứu
khoa học kỹ thuật cũng như trong đời sống. Máy tính đã làm được những điều kỳ diệu và giải
được những vấn đề tưởng chừng nan giải. Từ đầu những năm 1940, ý tưởng truyền cho máy tính
có khả năng suy nghĩ và học hỏi như con người đã được các nhà khoa học tìm tòi phát triền và
đây cũng chính là nguồn gốc ra đời của mạng Neural. Nó thực sự được chú ý và nhanh chóng trở
thành một hướng nghiên cứu đầy triển vọng trong mục đích xây dựng các máy thông minh tiến
gần tới trí tuệ con người.
Hiện nay mạng Neural đang được ứng dụng trong rất nhiều các lĩnh vực khác nhau như trong
lĩnh vực nhận dạng ( hình ảnh, giọng nói, chứ viết…) hay trong lĩnh vực an ninh ( hệ thống phát
135
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
hiện xâm nhập). Như chúng ta đã biết, Thông tin ngày càng trở lên quan trọng, là chìa khóa
thành công cho nhiều vấn đề. Chính vì thế mà bài toán bảo mật cho hệ thống thông tin là một bài
toán khó tìm lời giải triệt để nhất. Làm thế nào để tăng cường an toàn cho dữ liệu, cho toàn hệ
thống tránh khỏi việc mất mát dữ liệu do các lỗ hổng bảo mật hay sự tấn công từ hacker, virus,
Trojan Một cách tổng quát, hệ thống phát hiện xâm nhập - Intrusion detection system ( IDS) là
một loại mới của công nghệ an toàn mạng mà có thể bảo vệ tích cực máy tính của bạn từ những
tấn công của người xâm nhập. Khi phát hiện bất kỳ nỗ lực xâm nhập hoặc sự xâm nhập, nó có
thể báo cáo kịp thời chúng cho người quản trị mạng, cho phép người quản trị biện pháp ngăn cản
hoặc khắc phục như là ngắt kết nối mạng để ngăn cản sự mở rộng của dữ liệu không chính xác,
và gửi cảnh báo đến kẻ xâm nhập. Tuy nhiên, làm thế nào để phát hiện liệu có sự xâm nhập hay
không là một vấn đề cần giải quyết đầu tiên. Phát hiện xâm nhập phụ thuộc vào sự phân loại và
nhận dạng các vấn đề với một số lớn các điều kiện phi tuyến làm cho nó cần thiết phải học các
cách tiếp cận đã tích hợp các điều kiện phi tuyến để giải quyết vấn đề.
Công nghệ thông tin phát triển không ngừng và công nghệ phát hiện xâm nhập cũng luôn cần
đổi mới. Mạng Neural là bước tiến cho sự đổi mới về công nghệ phát hiện xâm nhập, khắc phục
được nhiều điểm thiếu sót của IDS truyền thống, cho thấy rằng công nghệ này sẽ không lạc hậu,
hướng tiếp cận hệ thống an ninh an toàn có ứng dụng công nghệ này hứa hẹn nhiều điểm sáng.
Do đó trong phần bài thu hoạch này, em xin trình bày về mạng Neural và ứng dụng của mạng
Neural thông minh trong việc phát hiện các cuộc tấn công trong hệ thống phát hiện xâm nhập -
Intrusion detection system ( IDS)
Trong phạm vi của bài thu hoạch, em xin trình bày các vấn đề chính sau đây:
Phần I: Sơ lược về mạng Neural: Phần này sẽ đưa ra khái niệm cơ bản về mạng Neural cũng
như nguồn gốc và triển vọng phát triển.
Phần II: Mô hình Neural và các kiến trúc mạng: Trình bày mô hình, việc phân loại mạng và
một số thuật toán huấn luyện mạng.
Phần III: Ứng dụng của mạng Neural trong hệ thống phát hiện xâm nhập trái phép (IDS):
Em xin chân thành cảm ơn thầy giáo Hoàng Kiếm – đã tận tình chỉ bảo và giúp em hoàn
thành bài thu hoạch này.
235
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
I) Sơ lược về mạng Neural:
I.1. Nguồn gốc mạng Neural nhân tạo:
Nguồn gốc của mạng Neural nhân tạo bắt nguồn từ nhiều ngành học thuật bao gồm
vật lý, tâm lý học thần kinh. Những nghiên cứu này hoàn toàn về các lý thuyết của việc
học, sự nhìn, phản xạ có điều kiện,v.v và hoàn toàn chưa có các mô hình toán học về
các hoạt động của mạng Neural. Vào những năm thập niên 1940, Werren McCulloch và
Walter Pitts chỉ ra rằng các mạng nơnron nhân tạo có thể tính toán được một số hàm logic
và số học. Tiếp đó là Rosebatt, Windrow, Hoff đã có các mạng và các quy tắc học đầu
tiên. Thập niên 1960 Minsky và Papert đã đưa ra các hạn chế của mạng Neural và các
nghiên cứu gần như dừng lại. Những năm 1970 có Amari, Anderson, Kohonen tiếp tục
nghiên cứu nhưng tốc độ chậm. Từ thập niên 80 với những phát triển mới quan trọng về
thuật toán học như truyền ngược lỗi, mạng Neural đã hồi sinh và phát triển mạnh. Càng
ngày chúng càng chứng tỏ vai trò và triển vọng của nó trong các ứng dụng thực tiễn và
335
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
không còn chỉ nằm trong các phòng thí nghiệm mà đã xuất hiện nhiều ứng dụng quan
trọng.
Người ta thấy rằng tất cả các chức năng thần kinh sinh học được thực hiện nhờ vào
các liên kết giữa các Neural sinh học. Quá trình học tập của não là việc hình thành các
liên kết mới giữa các Neural hoặc thay đổi các liên kết đang có. Từ những hiểu biết này,
người ta xây dựng và phát triển mạng Neural nhân tạo dựa trên mô hình của Neural sinh
học với mục đích là có thể huấn luyện các mạng Neural nhân tạo này để chúng có thể giải
quyết một số bài toán theo cách của bộ não sinh học thực hiện đồng thời thông qua đó tìm
hiểu các cơ chế nhớ và cách tính toán của bộ não.
I.2. Neural Sinh học :
Một Neural được cấu gồm những thành phần chính sau: Dendrite, Soma, Synapse, Axon như
hình 1
Hình 1: Mô hình Neural sinh học
Soma là thân của Neural.
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 đó được tổ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ác dữ liệu mà Neural 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ới dendrites, 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ừ Neural đi các nơi khác. Chỉ khi
nào điện thế trong soma vượt quá một giá trị ngưỡng nào đó thì axon mới phát một xung điện
thế, còn nếu không thì nó ở trạng thái nghỉ.
435
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Axon nối với các dendrites của các Neural khác thông qua những mối nối đặc biệ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 nhữ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 Neural khác.
Bộ não con người có khoảng 10
11
Neural được nối với nhau bởi 10
4
liên kết. Sự sắp đặt các
Neural và độ mạnh của các khớp thần kinh riêng biệt được quyết định bởi một quá trình hoá học
phức tạp, tạo nên chức năng của mạng Neural.
Một số cấu trúc thần kinh được các định ngay từ lúc sinh ra. Còn lại chúng phát triển qua quá
trình học, các liên kết mới được tạo ra, một số khác mất đi. Các cấu trúc thần kinh liên tục thay
đổi trong suốt cuộc sống. Giai đoạn đầu của cuộc sống là quá trình phát triển mạnh mẽ nhất, về
sau chủ yếu là sự tăng hoặc giảm độ mạnh của các khớp thần kinh.
Người ta đã thấy rằng, mỗi Neural có thể gồm vài chục hoặc hàng trăm khớp nối để nối với
các Neural khác. Điều đáng chú ý là chính các Neural rất đơn giản trong cơ chế làm việc, nhưng
mạng các Neural liên kết với nhau lại có khả năng tính toán, suy nghĩ, ghi nhớ và điều khiển.
Các khả năng cơ bản của bộ não là:
+ Có thể tổng quát hoá, liên hệ các thuộc tính của đối tượng với nhau.
+ Có thể tiếp tục thực hiện ngay cả khi thông tin bị thiếu hoặc không chính xác.
+ Có thể phát hiện và phục hồi thông tin bị mất.
+ Có khả năng xuống cấp và có khả năng thay thế dần dần.
+ Có khả năng học.
I.3. Neural nhân tạo
Neural nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra, mỗi đầu vào đến
từ một liên kết. Đặc trưng của Neural là một hàm kích hoạt phi tuyến chuyển đổi tổ hợp
tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra. Hàm kích hoạt này đảm bảo
tính chất phi tuyến cho tính toán của mạng Neural.
535
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Hình 2: Mô hình một Neural nhân tạo
Liên kết Neural là một thành phần của mạng Neural nhận tạo để liên kết giữa các Neural, nó
nối đầu ra của Neural lớp này với đầu vào của một Neural trong lớp khác. Đặc trưng của thành
phần liên kết là một trọng số mà mỗi tín hiệu đi qua đều được nhân với trọng số này. Các trọng
số liên kết chính là các tham số tự do cơ bản của mạng neuron, có thể thay đổi được nhằm thích
nghi với môi trường xung quanh.
I.4. Triển vọng phát triển của mạng Neural
Mạng Neural đã được ứng dụng trong nhiều lĩnh vực. Chất lượng và số lượng của chúng tăng
lên rất nhanh và hứa hẹn giải quyêt nhiều bài toán mà thực hiện bằng các phương pháp truyền
thống là rất khó khăn. Dưới đây liệt kê ra một số ứng dụng chính của mạng Neural:
Aerospace: Phi công tự động, giả lập đường bay, các hệ thống điều khiển lái máy bay, bộ
phát hiện lỗi.
Automotive: Các hệ thống dẫn đường tự động cho ô tô, các bộ phận tích hoạt động của
xe.
Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng.
Defense: Định vị - phát hiện vũ khí, dò mục tiêu, phát hiện đối tượng, nhận dạng nét mặt,
các bộ cảm biến thế hệ mới, xử lý ảnh radar,…
Electronics: Dự đoán mã tuần tự, sơ đồ chíp IC, điều khiển tiến trình, phân tích nguyên
nhân hỏng chip, nhận dạng tiếng nói, mô hình phi tuyến.
635
∑
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Entertainment: Hoạt hình, các hiệu ứng đặc biệt, dự báo thị trường.
Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm cố, đánh giá mức độ hợp
tác, phân tích đường tín dụng, chương trình thương mại qua giấy tờ, phân tích tài chính liên
doanh, dự báo tỷ giá tiền tệ.
Insurance: Đánh giá việc áp dụng chính sách, tối ưu hoá sản phẩm.
Bài toán lọc nhiễu
Xử lý ảnh, xử lý tính hiệu
……
Tuy có nhiều hứa hẹn nhưng mạng Neural cũng còn nhiều vấn đề như: Đánh giá các giới
hạn của mạng Neural, đánh giá khả năng tổng quát của mạng Neural, kết hợp với các công nghệ
khác như giải thuật gen hoặc tiếp cận mờ Một số vấn đề mở đang đặt ra hiện nay bao gồm: độ
phức tạp của tổng thể của mạng là gì? Độ phức tạp của thuật toán huấn luyện là gì? Giải pháp
mạng Neural nhân tạo có tổng quát quá không? Mạng học cái gì? Giải pháp mạng Neural nhân
tạo tỷ lệ với số chiều của bài toán như thế nào? Ngoài ra còn nhiều yếu tố ảnh hưởng đến sự
phát triển của mạng Neural. Không chỉ các cơ sở toán học, các phương pháp thiết kế mạng, các
thuật toán huấn luyện, mà còn có cả các khám phá trong lĩnh vực sinh học, tâm lý học, sẽ là
những yếu tố quan trọng đối với sự phát triển của mạng Neural nhân tạo.
II)Mô hình Neural và các kiến trúc mạng
II.1. Mô hình mạng Neural
Mạng Neural nhân tạo (Artificial Neural Network) bao gồm các Neural ( còn gọi là
một đơn vị xử lý hay một node) được nối với nhau bởi các liên kết Neural. Mỗi liên kết
kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt/ ức chế giữa các Neural. Có
thể xem các trọng số là các phương tiện để lưu trữ thông tin dài hạn trong mạng Neural.
Nhiệm vụ chung của quá trình huấn luyện mạng là cập nhật các trọng số khi có thêm các
thông tin về mẫu học.
735
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Thông thường các Neural có nhiều đầu vào. Một Neural có R đầu vào p
1
,p
2
,p
R
sẽ có
các trọng số tương ứng w
1
,w
2
, ,w
R
tạo thành một ma trận W và được gọi là ma trận trọng
số.
Hình 3: Mô hình một Neural nhân tạo
Đầu vào p
i
: Đặc trưng cho các tín hiệu điện kích thích trên các dây thần kinh của
mạng Neural sinh học. Các đầu vào này có thể có giá trị nhị phân là +1/-1 hoặc +1/0.
Trọng số w
i
: Mỗi đầu vào có một trọng số w
i
. Trọng số có giá trị là số thực dương
hoặc âm.
Tổng trọng số n( Net): là hàm tổng hợp các tín hiệu vào của Neural. Các hàm Net
thường dùng là:
• Hàm tổng:
n = p
1
+ p
2
+ + p
R
• Hàm tuyến tính:(dùng phổ biến trong mạng một lớp)
n = w
1
p
1
+ w
2
p
2
+ + w
R
p
R
.
• Hàm bình phương:
835
∑
∑
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
n = w
1
p
1
2
+ w
2
p
2
2
+ + w
R
p
R
2
Hàm chuyển f(n,b):(còn được gọi là hàm kích hoạt hay hàm tích hợp): là một dạng
hàm không tuyến tính đóng vai trò biến đổi từ Net sang tín hiệu đầu ra a. Các dạng hàm
kích hoạt sau thường được dùng trong thực tế:
Hình 4: Hàm chuyển giới hạn cứng
Hình 5: Hàm chuyển tuyến tính
935
∑
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Hình 6: Hàm chuyển Sigmoid
Ngưỡng b: Ngưỡng b đóng vai trò tăng tính thích nghi và khả năng tính toán của
mạng Neural. Trong các mạng Neural có sử dụng ngưỡng b, ta có thể coi như thêm một
tín hiệu đầu vào x
R+1
với trọng số tương ứng w
R+1
. Giá trị của x
R+1
là cố định và thường
gán x
R+1
=+1. Giá trị ban đầu của w
R+1
=-b. Giá trị của w
R+1
có thể thay đổi sau mỗi lần học.
Tín hiệu đầu ra a: Tín hiệu đầu ra a là giá trị của hàm chuyển:
a = f(Wp + b)
Bảng tóm tắt một số hàm chuyển thông dụng:
Tên Giá trị Tên hàm
Ngưỡng cứng
≥
Hardlim
Ngưỡng cứng đối
xứng
≥
Hardlims
Tuyến tính a = n Purelin
Tuyến tính bão hòa
≤≤
Satlin
Tuyến tính bão hòa
đối xứng
≤≤
Satlins
Log-Sigmoid a = 1/ (1+ e
-n
) logsig
Sigmoid tang
hypebolic
a = (e
n
- e
-n
)/ (e
n
+ e
-n
) Tansig
Tuyến tính dương
≥
Poslin
1035
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Cạnh tranh a = 1 với nơrom có giá trị
đầu ra cực đại
a = 0 với các Neural khác
compet
II.2. Đặc trưng của mạng Neural
II.2.1. Tính phi tuyến.
Một Neural có thể tính toán một cách tuyến tính hay phi tuyến. Một mạng Neural, cấu
thành bởi sự kết nối các Neural phi tuyến thì tự nó sẽ có tính phi tuyến. Hơn nữa, điều đặc biệt là
tính phi tuyến này được phân tán trên toàn mạng. Tính phi tuyến là một thuộc tính rất quan trọng,
nhất là khi các cơ chế vật lý sinh ra các tín hiệu đầu vào (ví dụ tín hiệu tiếng nói) vốn là phi
tuyến.
II.2.2. Tính chất tương ướng đầu vào đầu ra.
Mặc dù khái niệm “học” hay “huấn luyện” chưa được bàn đến nhưng để hiểu được mối
quan hệ đầu vào-đầu ra của mạng Neural, chúng ta sẽ đề cập sơ qua về khái niệm này. Một mô
hình học phổ biến được gọi là học với một người dạy hay học có giám sát liên quan đến việc
thay đổi các trọng số liên kết của mạng Neural bằng việc áp dụng một tập hợp các mẫu tích luỹ
hay các ví dụ tích luỹ. Mỗi một ví dụ bao gồm một tín hiệu đầu vào và một đầu ra mong muốn
tương ứng. Mạng Neural nhận một ví dụ lấy một cách ngẫu nhiên từ tập hợp nói trên tại đầu vào
của nó, và các trọng số liên kết của mạng được biến đổi sao cho có thể cực tiểu hoá sự sai khác
giữa đầu ra mong muốn và đầu ra thực sự của mạng theo một tiêu chuẩn thống kê thích hợp. Sự
tích luỹ của mạng được lặp lại với nhiều ví dụ trong tập hợp cho tới khi mạng đạt tới một trạng
thái ổn định mà ở đó không có một sự thay đổi đáng kể nào của các trọng số liên kết. Các ví dụ
tích luỹ được áp dụng trước có thể được áp dụng lại trong thời gian của phiờn tớch luỹ nhưng
theo một thứ tự khác. Như vậy mạng Neural học từ các ví dụ bằng cách xây dựng nên một tương
ứng đầu vào-đầu ra cho vấn đề cần giải quyết.
II.2.3. Tính chất thích nghi.
Các mạng Neural có một khả năng mặc định là biến đổi các trọng số liên kết tuỳ theo sự
thay đổi của môi trường xung quanh. Đặc biệt, một mạng Neural đã được tích luỹ để hoạt động
1135
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
trong một môi trường xác định có thể được tích luỹ lại một cách dễ dàng khi có những thay đổi
nhỏ của các điều kiện môi trường hoạt động.
II.2.4. Tính chất đưa ra lời giải có bằng chứng.
Trong ngữ cảnh phân loại mẫu, một mạng Neural có thể được thiết kế để đưa ra thông tin
không chỉ về mẫu được phân loại, mà còn về sự tin cậy của quyết định đã được thực hiện. Thông
tin này có thể được sử dụng để loại bỏ các mẫu mơ hồ hay nhập nhằng.
II.2.5. Tính chất chấp nhận sai xót.
Một mạng Neural, được cài đặt dưới dạng phần cứng, vốn có khả năng chấp nhận lỗi, hay
khả năng tính toán thô, với ý nghĩa là tính năng của nó chỉ thoỏi hoá khi có những điều kiện hoạt
động bất lợi. Ví dụ, nếu một Neural hay các liên kết kết nối của nó bị hỏng, việc nhận dạng lại
một mẫu được lưu trữ sẽ suy giảm về chất lượng.
II.2.6. Khả năng cài đặt VLSI(Very-large-scale-intergrated).
Bản chất song song đồ sộ của một mạng Neural làm cho nó rất nhanh trong tính toán đối
với một số công việc. Đặc tính này cũng tạo ra cho một mạng Neural khả năng phù hợp cho việc
cài đặt sử dụng kỹ thuật Very-large-scale-intergrated (VLSI). Kỹ thuật này cho phép xây dựng
những mạch cứng tính toán song song quy mô lớn. Chính vì vậy mà ưu điểm nổi bật của VLSI là
mang lại những phương tiện hữu hiệu để có thể xử lý được những hành vi có độ phức tạp cao.
II.2.7. Tính chất đồng dạng trong phân tích và thiết kế.
Về cơ bản, các mạng Neural có tính chất chung như là các bộ xử lý thông tin. Chúng ta
nêu ra điều này với cùng ý nghĩa cho tất cả các lĩnh vực có liên quan tới việc ứng dụng mạng
Neural. Đặc tính này thể hiện ở một số điểm như sau:
• Các Neural, dưới dạng này hoặc dạng khác, biểu diễn một thành phần chung cho tất
cả các mạng Neural.
• Tính thống nhất này đem lại khả năng chia sẻ các lý thuyết và các thuật toán học
trong nhiều ứng dụng khác nhau của mạng Neural.
• Các mạng tổ hợp (modular) có thể được xây dựng thông qua một sự tích hợp các mô
hình khác nhau.
1235
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
II.3. Phân loại mạng Neural
Mạng Neural là hệ thống bao gồm nhiều phần tử xử lý đơn giản( Neural) hoạt động song
song. Tính năng của hệ thống này tuỳ thuộc vào cấu trúc của hệ, các trọng số liên kết và quá
trình tính toán tại các Neural đơn lẻ. Có nhiều cách phân loại mạng Neural, chủ yếu là dựa trên
các cơ sở sau:
II.3.1. Theo kiểu liên kết Neural
• Mạng Neural truyền thẳng(Feed Forward Neural Network): Các liên kết
Neural đi theo một hướng nhất định, không tạo thành đồ thị có chu trình.
• Mạng Neural hồi quy( Recurrent Neural Network) : cho phép các liên kết
Neural tạo thành chu trình.
II.3.2. Theo phương pháp huấn luyện mạng
• Học giám sát( supervised learning)
• Học không có giám sát( unsupervised learning)
• Học tăng cường( reinforcement learning)
I.1.1. Theo số lớp Neural
Các Neural có thể tổ chức lại thành các lớp. Tùy theo vấn đề cần giải quyết mà sử
dụng mạng một lớp hay mạng đa lớp, các liên kết là nối đầy đủ hay không đầy đủ. Sau
đây chúng ta sẽ tìm hiểu phương phân loại dựa vào số lớp Neural trong mạng.
I.1.1.1. Mạng Neural một lớp
Thông thường một Neural với nhiều đầu vào thường không đủ khả năng để giải
quyết các bài toán. Người tao thường phải dùng nhiều Neural hoạt động song song gọi là
một lớp( hay còn gọi là một tầng) Neural.
1335
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Một lớp của S Neural được mô tả trong hình 6. Các liên kết trong mạng này là nối
đầy đủ, tức là R đầu vào được nối đầy đủ với các Neural và ma trận trọng số bây giờ có S
hàng.
Hình 6: Mạng Neural một lớp có S-Neural
Số đầu vào và số đầu ra là độc lập với nhau, chúng không cần phải bằng
nhau( R<>S). Hơn nữa, các hàm chuyển f của mỗi Neural trong cùng một lớp cũng
không nhất thiết phải giống nhau.
I.1.1.2. Mạng Neural nhiều lớp
Bây giờ ta xem xét mạng phức tạp hơn với một số lớp Neural nối tiếp nhau. Mỗi
lớp có ma trận trọng số W riêng của nó, vectorr lệch b riêng, vectorr đầu vào tổng n riêng
và vectorr đầu ra riêng. Chúng ta sẽ ký hiệu chỉ số trên của mỗi biến là số thứ tự của
lớp(W
1
, W
2
, a
1
, a
2
, )
1435
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Đầu ra của lớp j-1 là đầu vào của lớp j, đầu ra của lớp j ;à đầu vào của lớp j+1. Do
vậy với lớp thứ j có S
j-1
đầu vào, S
j
Neural đầu ra và S
j-1
.S
j
trọng số trong ma trận W
j
. Đầu
vào của mạng thứ j là a
j-1
và đầu ra là a
j
.
Lớp cuối cùng của mạng Neural gọi là lớp ra. Các lớp khác gọi là lớp ẩn.
Hình 7: Mạng Neural đa tầng
Mạng nhiều lớp có nhiều khả năng hơn mạng một lớp. Một mạng hai lớp có hàm
sigmoid ở lớp thứ nhất và hàm tuyến tính của lớp thứ hai có thể huấn luyện để xấp xỉ hầu
hết mọi hàm tùy ý. Mạng một lớp không thể thực hiện được việc này.
I.1.1.3. Mạng Neural quy hồi
Mạng hồi quy là mạng có các phản hồi. Một số đầu ra của mạng được đưa quay lại
làm đầu vào của chính nó. Điều này hoàn toàn khác với các mạng đã đề cập đến trước
đây là tín hiệu đầu ra chỉ được chuyển tiếp mà không đưa quay trở lại. Mô hình mạng hồi
quy rời rạc theo thời gian được mô tả trong hình 8:
1535
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Hình 8: Mạng hồi quy
Trong mạng đặc biệt này, tại thời điểm ban đầu t= 0, đầu ra của mạng được khởi
tạo giá trị a(0)=p. Các đầu ra về sau được tính từ đầu ra trước đó.
a (t+1) = f(Wa(t)+ b)
Các mạng hồi quy có tiềm năng mạnh hơn các mạng chuyển tiếp và có thể biểu diễn
các cư xử theo thời gian.
II.4. Xây dựng mạng Neural
Về cơ bản ta có thể hiểu mạng Neural là một đồ thị có hướng như hình 1.8. Trong đó các
đỉnh của đồ thị là các Neural và các cạnh của đồ thị là các liên kết giữa các Neural.
Hình 9: Sơ đồ đồ thị có hướng đơn giản
1635
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Vì vậy để xây dựng một mạng Neural ta xây dựng một đồ thị có hướng: số đỉnh của đồ thị
bằng số Neural trong mạng, giá trị của các cạnh chính là trọng số liên kết Neural.
Ví dụ xây dựng một mạng Neural đơn giản:
Đầu vào: Cho :
Mạng Neural có số lớp (với số lớp>=1).
Mỗi lớp có số Neural trong một lớp (số Neural>=1).
Trọng số w liên kiết Neural ngẫu nhiên trong khoảng (-a,a).
Đầu ra: Mạng Neural nhân tạo.
Kiểu dữ liệu: chọn lưu dữ kiểu mảng :
int số_lớp;
int số_Neural[số_lớp];
float w[i][j][k]; với 1<=i<=số lớp, 1<=j,k<=số Neural.
Thuật toán.
Bước 1: Chọn lớp i=1 là lớp bắt đầu
Bước 2: Chọn lớp i là lớp hiện thời.
Bước 3 : Tại lớp đang xét i , xét Neural thứ j .
Bước 4: Thực hiện khởi tạo ngẫu nhiên trọng số kết nối với Neural k của lớp i-1 trong
khoảng (-a,a).
w(i,j,k)=random(-a,a)
Bước 5: Nếu k <= số Neural[i-1] quay lại “Bước 4”, ngược lại thực hiện “Bước 6”.
Bước 6: Nếu j<= số Neural[i] quay lại “Bước 3”, ngược lại thực hiện “Bước 7”.
Bước 7: Nếu i<=số lớp quay lại “Bước 3”. ngược lại kết thúc.
1735
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
II.5. Huấn luyện mạng Neural
II.5.1. Các quy tắc học
Quy tắc học là một thủ tục sửa đổi trọng số và độ lệch của mạng.( Thủ tục này còn được
gọi là thuật toán huấn luyện). Thủ tục này sẽ huấn luyện mạng để nó có thể thực hiên một số
nhiệm vụ mà ta mong muốn. Yêu cầu chính trong vấn đề này là cần có một cơ chế điều chỉnh
trọng số thích hợp.
II.5.1.1. Học giám sát:
Trong học giám sát, các quy tắc học được cung cấp bằng một tập mẫu chuẩn(tập huấn
luyện).
!"
#$
%#!"
#$
%#&&&&#!"
'
#$
'
%
Trong đó p
q
là một đầu vào của mạng và t
q
là đầu ra đúng tương ứng.Khi đầu vào được áp
dụng vào mạng, đầu ra của mạng được so dánh với đích. Quy tắc học sau đó được áp dụng để
điều chỉnh các trọng số và độ lệch của mạng cốt làm cho đầu ra của mạng gần đích đúng của đầu
vào.
II.5.1.2. Học không có giám sát:
Trong phương pháp học này, mạng Neural không được hướng dẫn trước về cách nhận
biết các đối tượng, mạng phải tự phân tích các đặc trưng, tính chất của đối tượng để phân loại
chúng. Điều này đặc biệt có ích trong các bài toán lượng tử hóa vectơ.
()*+,-.$-/01$$2"-3-4 P={p
1
,p
2
, , p
Q
}
Đối với học có giám sát, chúng ta biết được tập các đầu ra T={ t
1
,t
2
, , t
Q
} có nghĩa là
xác định được hàm
f : P →T, f(p
i
)= t
j
, i = 1 n
Bây giờ với p
’
∉ P, cần phải tìm f(p
’
) = ? Đối với học không có giám sát, chúng ta cần
tìm ra hàm
f: P→ N, f(p
i
) = f(p
i
) nếu x
i
, x
j
thuộc cùng một nhóm
và f(p
i
) ≠ f(p
j
) nếu p
i
,p
j
thuộc hai nhóm khác nhau.
1835
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
f (p) cho biết nhóm chứa đối tượng p.
Trên thực tế người ta thường kết hợp cả hai phương pháp học có giám sát và học không
có giám sát để phân loại các đối tượng, sau khi các đối tượng được chia thành các nhóm tương
đối nhỏ thì có thể áp dụng học có giám sát với một số nhóm nào đó. Tuy nhiên nếu các nhóm vẫn
quá lớn thì chúng ta có thể chia tiếp ra thành các nhóm con nhỏ hơn và tiếp tục quá trình như vậy
cho đến khi thu được các nhóm đủ nhỏ. Trong học không có giám sát, quá trình này được gọi là
học phân cấp, liên quan đến các phương pháp clustering phân cấp.
II.5.1.3. Học tăng cường:
Học tăng cường tương tự như học có giám sát trừ việc thay bằng cung cấp các đầu ra
đúng cho mỗi đầu vào của mạng, thuật toán chỉ đưa ra các đánh giá theo các mức độ (cho điểm).
Điểm này là phép đo hiệu suất của mạng trên một dãy đầu vào. Nhóm quy tắc học này không
phổ biến bằng nhóm quy tắc học có giám sát. Nó thích hợp với các ứng dụng điều khiển hệ thống
II.5.2. Các thuật toán huấn luyện
II.5.2.1. Thuật toán mạng Neural một lớp
Xét trường hợp perceptron sử dụng hàm kích hoạt Ngưỡng cứng đối xứng (Hardlims):
≤−
>+
=
∑
∑
=
=
d
i
ii
d
i
ii
twv
twv
output
1
1
,1
,1
(1.1)
Nếu ta cho w0=-t và v0=1, ta có thể viết lại
=
≤−
>+
=
∑
∑
∑
=
=
=
d
i
ii
d
i
ii
d
i
ii
wvsign
wv
wv
output
0
0
0
0,1
0,1
(1.2)
1935
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Thuật toán:
Thuật toán học của perceptron hay mạng Neural một lớp gồm 3 bước chính:
Bước 1: Khởi tạo:
Khởi tạo trọng số w (0 hoặc ngẫu nhiên).
Chọn tốc độ học α
Bước 2 : Học
Với mỗi mẫu (x,t) trong tập học.
Tính y=f(x, w).
Nếu y khác t thay đổi vectơ trọng số w với:
w = w – α*x nếu y > t
w = w + α*x nếu y < t
Bước 3: lặp lại bước 2 cho tất cả các mẫu.
Nhận xét:
Phương trình w.v=0 là chính là siêu phẳng trong không gian d-chiều, suy ra perceptron có
khả năng phân lớp tuyến tính, có khả năng giải bài toán quy hồi tuyến tính.
Hạn chế:
Không thể phân lớp phi tuyến.
Giải pháp: sử dụng mạng Neural nhiều tầng MLP
II.5.2.2. Thuật toán của mạng Neural nhiều lớp – Thuật toán lan truyền ngược
Thuật toán này áp dụng cho kiến trúc mạng truyền thằng nhiều lớp (Multi-layer Feed
Forward - MLFF) là kiến trúc chủ đạo của các mạng Neural hiện tại.
Hình 10 là sơ đồ mạng có 3 lớp, đầu ra của lớp đầu tiên là đầu vào của lớp thứ hai và đầu ra của
lớp thứ hai là đầu vào của lớp thứ ba.
2035
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
567894$
+ Tập mẫu học:
Mạng được cung cấp một tập mẫu chuẩn Q={p
(q)
, t
(q)
}, trong đó:
o Mẫu đầu vào p
(q)
= [p
1
, p
2
, p
R
], q=1,2, , Q ( R là số đầu vào, Q là số mẫu học).
o Mẫu đầu ra t
(q)
=[t
1
,t
2
, t
S
]
T
( S là số đầu ra ).
Đầu ra thực tế của mạng là a
(q)
=[a
1
,a
2
, ,a
S
]
T
:
a
(q)
i
= f(w
i
T
p
(q)
)= f(w
ij
p
(q)
j
), j=1, ,R.
Việc huấn luyện mạng nhằm mục đích có được a
(q)
i
= t
(q)
, i=1,2, ,S.
+ Nội dung:
Thuật toán này áp dụng cho các mạng Neural truyền thẳng ( Multilayer feed - forward
Network ). Với mỗi cặp mẫu {p
(q)
,t
(q)
} thuật toán sẽ thực hiện hai quá trình . Đầu tiên mẫu vào
p
(q)
được đưa vào mạng, lan truyền từ lớp vào cho đến lớp ra, tạo đầu ra thực sự a
(q)
. Sau đó tính
toán sai số E giữa t
(q)
và a
(q)
rồi truyền ngược từ lớp ra trở lại các lớp trước nhằm mục đích cho
các lớp tự cập nhật trọng số theo các thông tin phản hồi đó.
2135
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Thuật toán này có thể áp dụng với mạng có số lớp bất kỳ. Xét mạng truyền thẳng với M
lớp, m=1,2, ,M. Đặt net
m
i
và a
m
i
lần lượt là đầu vào và đầu ra của Neural thứ i trong lớp m.
Mạng có R đầu vào và S đầu ra. Ký hiệu w
ij
m
là trọng số liên kết giữa Neural thứ j lớp m-1 với
Neural thứ i lớp m.
Input: Tập mẫu học {p
(q)
,t
(q)
} trong đó ta thêm vào mỗi vectơ p
(q)
một phần tử biểu diễn
độ lệch p
R+1
= -1.
Bước 1: Khởi tạo. Chọn >0 và E
max
. Khởi tạo các trọng số bằng các giá trị ngẫu nhiên
nhỏ. Đặt E=0, q=1.
Bước 2: Bước lặp. Đưa mẫu vào thứ q cho lớp vào (m=1)
a
m
i
= p
(q)
i
với mọi i
Bước 3: Lan truyền thuận
Lan truyền tín hiệu qua mạng thông qua công thức:
a
i
m
= f( net
i
m
)= f( w
m-1
ịj
a
j
)
với mọi i, m, cho đến khi nhận được tất cả các đầu ra a
m
i
Bước 4::;+)+<
Tính giá trị sai số và các tín hiệu sai số
m
i
cho lớp ra.
E =
2
1
∑
=
S
i 1
(t
i
(q)
- a
i
M
)
2
+ E
δ
i
M
= ( t
i
(q)
- a
i
M
) f ( net
i
M
)
Bước 5: Lan truyền ngược sai số.
2235
η
∑
m
i
δ
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Lan truyền ngược sai số để cập nhật các trọng số và tính toán tín hiệu sai số
m
i
cho lớp
trước đó.
=
0
)>
?
0
@
)
0
)
W
m
ij
(new)
= f ( net
i
m-1
) = f ( ∑
j
m
w
ij
δ
i
m
) m= M, M-1, …, 2.
Bước 6: Kiểm tra xem tất cả các mẫu học đã được học hay chưa. Nếu q< Q thì q=q+1,
chuyển đến bước 1. Ngược lại thì chuyển đến bước 6.
Bước 7: Kiểm tra xem tổng sai số E hiện tại có chấp nhận được hay không. Nếu E < E
max
thì đã học xong, kết thúc quá trình huấn luyện. Ngược lại, đặt E=0, q=1, bắt đầu vòng huấn luyện
mới bằng các chuyển về bước 1
Đánh giá:
Mạng Neural nhiều lớp truyền thẳng là cách biểu diễn các đối tượng dựa trên các giá trị
thuộc tính của chúng tương đối hiệu quả, tuy rằng chưa vét cạn hết mọi khía cạnh khác nhau về
đối tượng đó. Cách tiếp cận mạng loại này tỏ ra khá hiệu quả khi các quan sát ( tín hiệu vào) có
miền giá trị liên tục. Do vậy, có thể xem là tốt hơn so vưói những cách tiếp cận truyền thông dựa
trên logic mệnh đề và cây quyết định.
Theo lý thuyết của Hornik thì mạng nhiều lớp được coi là các bộ xấp xỉ vạn năng. Những
sự không thành công của các ứng dụng là do sự học không đầy đủ, không có đủ số Neural ẩn,
thiếu một mối quan hệ tất định giữa đầu vào và đầu ra. Cũng theo lý thuyết này thì một mạng chỉ
cần có một lớp ẩn là đủ. Nhưng nếu chỉ có một lớp ẩn thì có thể đòi hỏi số lượng Neural trong
lớp đó lớn đến mức phi thực tế, do vậy để giảm số lượng Neural có thể phải dùng biện pháp chia
thành nhiều lớp. Với các ứng dụng thực tế thì các mạng có một lớp tỏ ra không đủ ổn định, tuy
vậy cũng cần có hai lớp ẩn là đủ.
Vấn đề quan trọng của thuật toán này là độ ổn định của mạng hay là sự hội tụ (tính dừng)
của thuật toán. Thuật toán là dừng nếu có một mối quan hệ tất định giữa đầu vào và đầu ra trong
tập mẫu học.
2335
δ
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
Những kiến thức căn bản về mạng Neural ở trên được đưa ra làm nền cho việc ứng dụng
của nó trong hệ thống phát hiện xâm nhập. Dưới đây đi vào phần chính: Ứng dụng của mạng
Neural trong hệ thống phát hiện xâm nhập.
Ngoài những thành công của giải thuật học lan truyền ngược, vẫn còn có một số khía
cạnh làm cho giải thuật trở nên chưa được bảo đảm là mọi lúc đều tốt. Khó khăn chủ yếu là ở
quá trình huấn luyện lâu. Có thể do nhịp độ học và động lực không tối ưu. Sự sai sót trong việc
huấn luyện nói chung xuất hiện từ hai nguồn: mạng liệt và những cực tiểu địa phương.
Mạng liệt: xảy ra khi những trọng số được điều chỉnh tới những giá trị rất lớn. Tổng đầu
vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà đạt giá trị rất cao (hoặc dương hoặc
âm), và qua hàm kích hoạt sigmoid, đơn vị sẽ có một giá trị kích hoạt rất gần 0 hoặc rất gần 1.
Giá trị hiệu chỉnh trọng số gần 0, và quá trình huấn luyện có thể đi đến một trạng thái dừng ảo.
Cực tiểu địa phương: bề mặt sai số của mạng rất phức tạp đầy những ngọn đồi và những
thung lũng. Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy tại một cực tiểu địa phương khi có
nhiều cực tiểu thấp hơn gần bên cạnh. Những phương pháp thống kê có thể giúp để tránh cái bẫy
này, nhưng chúng làm chậm. Một phương án khác là tăng thêm số lượng đơn vị ẩn. Như vậy sẽ
làm việc trong không gian sai số nhiều chiều, nên cơ hội gặp bẫy nhỏ hơn. Tuy nhiên việc tăng
cũng có giới hạn trên, khi vượt qua giới hạn này, cơ hội mắc bẫy lại tăng lên.
III) Ứng dụng mạng Neural trong hệ thống phát hiện xâm nhập
( Intrusion Detection System - IDS)
III.1. Tổng quan về IDS và những nghiên cứu IDS ứng dụng mạng
Neural
III.1.1.Định Nghĩa
Hệ thống phát hiện xâm nhập là một hệ thống giám sát lưu thông mạng, các hoạt
động khả nghi và cảnh báo cho hệ thống, nhà quản trị.IDS cũng có thể phân biệt giữa
những tấn công bên trong từ bên trong (từ những người trongcông ty) hay tấn công từ bên
ngoài (từ các hacker). IDS phát hiện dựa trên các dấu hiệu đặc biệtvề các nguy cơ đã biết
2435
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT
(giống như cách các phần mềm diệt virus dựa vào các dấu hiệu đặc biệt để phát hiện và
diệt virus) hay dựa trên so sánh lưu thông mạng hiện tại với baseline (thông số đođạc
chuẩn của hệ thống) để tìm ra các dấu hiệu khác thường
III.1.2.Phân loại
HIDS (Host Intrustion Detection System): triển khai trên máy trạm hoặc server quan
trọng, chỉ để bảo vệ riêng từng máy.
56 &78A65BCD
NIDS (Network Intrustion Detection System): đặt tại những điểm quan trọng của hệ
thống mạng, để phát hiện xâm nhập cho khu vực đó.
2535