Tải bản đầy đủ (.docx) (36 trang)

Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực Công nghệ thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (427.57 KB, 36 trang )

Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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 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
1
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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)
2
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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à
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

3
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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ỉ.
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 để
4
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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.
5
y1
y2
b0
yk
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085

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,…
6
a
f
w
k
Đầu ra a=f( ∑w’y+b)
w
1
w
2
Đầu vào
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085

 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.
 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ó
7
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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.

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:
8
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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
9
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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
a =0 n < 0
a =1 n ≥ 0
Hardlim
Ngưỡng cứng đối
xứng
a =-1 n < 0
a = 1 n ≥ 0
Hardlims
Tuyến tính a = n Purelin
Tuyến tính bão hòa
a = 0 n < 0
a = n 0 ≤ n ≤ 1
a = 1 n > 1
Satlin
Tuyến tính bão hòa
đối xứng
a = -1 n < -1

a = n -1 ≤ n ≤ 1
a = 1 n > 1
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
a = 0 n < 0
a = n n ≥ 0
Poslin
10
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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.
11
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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 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:
12
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
• 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.
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)
13
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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.
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
14
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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
, )
Đầ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
15

Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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:

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.
16
x
h1
h2
h3
g2
g1
f
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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

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.
17
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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.
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).
{p
1
,t
1
}, {p
2
,t
2
}, , {p
q
,t
q
}
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 đó
18
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
đượ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ơ.

Giả sử chúng ta có một tập các đầu vào 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.
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 độ
19
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
(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)
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
20
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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.
21
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
Hình 10: Mạng đa tầng
+ 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
22
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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 đó.
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(

m
i
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 sai số
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ố.
23
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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 đó.

m
w
ij =
η
m
δ
i
m-1
a
i
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.
24
Mạng Neural và ứng dụng của mạng Neural trong lĩnh vực CNTT CH1301085
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)
25

×