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.
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.
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
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
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.
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
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ử
Đầ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
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).
!"
#$
%#!"
#$
} 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
=
=
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
=
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)
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)
(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
= ( 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
@
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ẽ