1
MỞ ĐẦU
Tóm lược đề tài
Ngày nay Internet đã trở thành một phần không thể thiếu của đời sống
xã hội. Việc học tập, kinh doanh, vui chơi giải trí, liên lạc và trao đổi thông
tin trên mạng đã trở thành những hành động thường ngày của con người, khả
năng kết nối trên toàn thế giới đang mang lại thuận tiện cho tất cả mọi người,
đặc biệt với sự hỗ trợ của máy tìm kiếm Google chúng ta có thể tìm kiếm
được mọi thứ trên Internet khi chúng ta cần. Bên cạnh những thuận lợi đó,
chúng ta phải đối mặt với những nguy cơ như mất trộm thông tin trên mạng,
mua bán thơng tin cá nhân gây ảnh hưởng đến tính riêng tư, những vụ lừa
đảo, tấn công từ chối dịch vụ gây ảnh hưởng đến hoạt động kinh doanh cho
các công ty và gây phiền hà cho người sử dụng internet…làm cho việc bảo
mật trên mạng ln là vấn đề nóng và được quan tâm đến mọi thời điểm.
Các giải pháp bảo mật ln được chú trọng và có những đóng góp lớn
trong việc hạn chế và ngăn chặn những xâm nhập mạng trái phép, ví dụ:
firewall ngăn chặn các kết nối khơng đáng tin cậy, mã hóa làm tăng độ an
tồn cho việc trun dữ liệu, các chương trình diệt virus với cơ sở dữ liệu liên
tục cập nhật những loại virus mới. Tuy nhiên, để phát hiện được các cuộc tấn
cơng hay xâm nhập hệ thống máy tính thơng thường ta dựa vào trạng thái của
máy chủ đó trong mạng, nhưng để nhận biết hệ thống mạng bình thường hay
đang bị tấn cơng là việc làm cần phải có sự đầu tư về nhân lực và tài chính.
Các chuyên gia nghiên cứu đã sử những thuật toán trong lĩnh vực Trí tuệ nhân
tạo để giải quyết vấn đề trên như: thuật tốn Markov ẩn, Nạve Bayesian,
thuật tốn di truyền,….[2][5][18] và trong đó có thuật tốn bản đồ tự tổ chức
(Self Organizing Map - SOM) do Giáo sư Teuvo Kohonen người Phần Lan
đưa ra vào đầu những năm 80 cũng nghiên cứu về vấn đề này.
2
Hiện nay, ở các nước như: Nhật Bản, Mĩ, Phần Lan cũng có những đề
tài nghiên cứu có ứng dụng bản đồ tự tổ chức SOM để xây dựng hệ thống
cảnh báo phát hiện xâm nhập mạng, còn ở Việt Nam những đề tài nghiên cứu
về thuật toán bản đồ tự tổ chức như: Trường Đại học Công nghệ thông tin,
Đại học Khoa học Tự nhiên Tp Hồ Chí Minh và khu Công nghệ phần mềm
Đại học quốc gia Tp. Hồ Chí Minh.
Mục tiêu đề tài
Mục tiêu chính của luận văn tập trung nghiên cứu một số vấn đề sau:
- Tấn công từ chối dịch vụ (Denial of Service – DoS).
- Hệ thống cảnh báo xâm nhập mạng (Intrusion Detection System –
IDS).
- Lý thuyết về thuật toán “bản đồ tự tổ chức” SOM.
- Cài đặt công cụ cảnh báo tấn cơng với ứng dụng thuật tốn “Bản đồ tự
tổ chức” SOM nhằm cảnh báo tấn công DoS qua hành vi đã biết.
Nội dung đề tài
Những nội dung thực hiện để đạt mục tiêu của luận văn là:
- Nghiên cứu hệ thống cảnh báo phát hiện xâm nhập IDS thông qua
thầy cô, giáo viên hướng dẫn, qua kiến thức đã học, qua sách báo và internet
để tìm hiểu cơ chế và hoạt động của một IDS từ đó đề xuất một công cụ cảnh
báo tấn công DoS được thiết kế trên hệ điều hành mã nguồn mở Linux.
- Nghiên cứu các kiểu tấn cơng từ chối dịch DoS, để có thể hiểu sâu về
các cuộc tấn công từ chối dịch vụ và tấn công từ chối dịch vụ phân tán, cách
thức làm việc của một Attacker khi tấn công mục tiêu, mục đích ý nghĩa của
các pha tấn cơng, để có các phương pháp ngăn chặn tấn cơng và có những
biện pháp xử lí kịp thời nếu hệ thống mạng vơ tình là mục tiêu của attacker.
- Nghiên cứu thuật tốn bản đồ tự tổ chức SOM.
3
- Xây dựng Lab thử nghiệm tấn công từ chối dịch vụ, xác định những
ảnh hưởng của tấn công từ chối dịch vụ DoS qua hệ thống mạng ảo.
- Cài đặt cộng cụ cảnh báo tấn công DoS.
Phạm vi ứng dụng
Đề tài: “Ứng dụng công nghệ bản đồ tự tổ chức (Self Organizing
Map - SOM) nhằm phát hiện tấn công từ chối dịch vụ DoS qua hành vi”
có thể được ứng dụng đưa ra cảnh báo tấn công giúp các tổ chức, cá nhân, các
cơ quan và doanh nghiệp phát hiện được các cuộc tấn công từ chối dịch vụ
DoS.
Những đóng góp của luận văn
Các đóng góp của luận văn là:
- Giới thiệu hệ thống phát hiện xâm nhập IDS hiện có.
- Giới thiệu và phân loại tấn cơng từ chối dịch vụ DoS.
- Phân tích thuật tốn “Bản đồ tự tổ chức” SOM và ứng dụng vào quá
trình học các tấn cơng đã biết để khi có xảy ra tấn cơng tương tự thì cảnh báo
đến người quản trị hệ thống.
- Thiết kế một công cụ cảnh báo tấn công từ chối dịch vụ DoS trên hệ
điều hành mã nguồn mở Linux.
Cấu trúc của luận văn:
Luận văn gồm các thành phần chính như sau:
MỞ ĐẦU
Chương 1: TỔNG QUAN VỀ IDS VÀ DoS
Chương này trình bày tổng quan về: Hệ thống phát hiện xâm nhập IDS;
Giới thiệu chung về mạng neuron nhân tạo và tấn công từ chối dịch vụ DoS.
4
Chương 2: CƠ SỞ LÝ THUYẾT: THUẬT TOÁN BẢN ĐỒ TỰ TỔ
CHỨC (Self Organizing Map - SOM)
Trình bày tổng quan, kiến trúc, thuật toán và một số ưu điểm, nhược
điểm của thuật toán SOM.
Chương 3: XÂY DỰNG CÁC VECTOR HUẤN LUYỆN và XÁC
ĐỊNH CÁC ĐẶC TRƯNG HỆ THỐNG
Nội dung của chương này trình bày về cách thức lấy thơng tin qua
Procfile trên hệ điều hành Linux. Từ các thông tin đó, chúng ta chọn ra các
vector huấn luyện đặc trưng nhất của hệ thống và cách thức lấy vector huấn
luyện; giới thiệu thuật toán xây dựng các tham số đặc trưng, cách thức gán
trọng số và chuẩn hóa các đặc trưng đã đề xuất.
Chương 4: THIẾT KẾ VÀ CÀI ĐẶT THỬ NGHIỆM
Chương này trình bày mục tiêu và tổng quan mơ hình đề xuất, thử
nghiệm hệ thống phát hiện tấn công IDS với cách tấn công từ chối dịch vụ
DoS đã biết trước. Từ đó, đưa ra một số nhận xét đánh giá về IDS đề xuất.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
DANH MỤC TÀI LIỆU THAM KHẢO
PHỤ LỤC
5
Chương 1.
TỔNG QUAN VỀ IDS VÀ DoS
Trong chương này trình bày tổng quan về: Hệ thống phát hiện xâm
nhập IDS; Mạng neuron nhân tạo và kĩ thuật tấn công từ chối dịch vụ DoS.
1.1.
Giới thiệu về hệ thống phát hiện xâm nhập IDS
1.1.1. IDS là gì?
IDS là một hệ thống phịng chống, nhằm phát hiện các hành động tấn
cơng vào một mạng. Mục đích của nó là phát hiện các hành động phá hoại đối
với vấn đề bảo mật hệ thống, hoặc những hành động trong tiến trình tấn cơng
như sưu tập, qt các cổng.
IDS có thể cung cấp thơng tin nhận biết về những hành động bất
thường và đưa ra các cảnh báo thông báo cho nhà quản trị mạng khóa các kết
nối đang tấn cơng này. Thêm vào đó cơng cụ IDS cũng có thể phân biệt giữa
những cuộc tấn cơng từ bên trong tổ chức (từ chính nhân viên hoặc khách
hàng) và tấn cơng bên ngồi (tấn cơng từ hacker).
IDS có thể giám sát và phát hiện các lạm dụng tài nguyên hệ thống như
quét mạng, tấn công DoS, các hành vi truy cập các dịch vụ của hệ thống mạng
một cách trái phép.
1.1.2. Phân loại hệ thống phát hiện xâm nhập mạng IDS
Có 2 loại IDS là Network based IDS (NIDS) và Host based IDS
(HIDS).
Hệ thống phát hiện xâm nhập mạng (Network based IDS – NIDS):
Được đặt giữa kết nối hệ thống mạng bên trong và bên ngoài để giám
sát toàn bộ lưu lượng mạng vào ra. Có thể là thiết bị phần cứng riêng biệt
được thiết lập sẵn hay phần mềm cài đặt trên máy tính. Chỉ dùng để đo lưu
lượng mạng được sử dụng, nếu phát hiện dấu hiệu “bất thường” NIDS có thể
phản ứng lại bằng cách ghi hiện trạng, cảnh báo nhà quản trị, chấm dứt phiên
6
làm việc và có thể đưa vào tường lửa [7]. Tuy nhiên, có thể xảy ra hiện tượng
nghẽn cổ chai khi lưu lượng mạng hoạt động ở mức cao.
Ưu điểm: Giám sát được lưu lượng mạng, các kết nối trong mạng
Nhược điểm: Khó quan sát được nội dung các gói dữ liệu mạng đã
được mã hóa, đồng thời cũng khơng thể biết được những gì đang diễn ra tại
các máy tính trong mạng.
Hệ thống phát hiện xâm nhập máy chủ (Host based IDS – HIDS):
Được cài đặt cục bộ trên một máy tính làm cho nó trở nên linh hoạt hơn
nhiều so với NIDS, kiểm soát lưu lượng vào ra trên một máy tính, có thể được
triển khai nhiều máy tính trong hệ thống mạng, HIDS có thể được cài đặt trên
nhiều dạng máy khác nhau như máy chủ, máy trạm hay máy xách tay. HIDS
cho phép ta thực hiện một cách linh hoạt trong các đoạn mạng mà NIDS
không thể thực hiện được, lưu lượng đã gửi tới máy tính HIDS được phân tích
và chuyển qua nếu chúng khơng chứa mã nguy hiểm. HIDS được hoạt động
chủ yếu trên hệ điều hành windows, mặc dù vậy vẫn có các sản phẩm hoạt
động trong nền Unix và nhiều hệ điều hành khác.
Như vậy, khi kết hợp của NIDS và HIDS sẽ cung cấp sự bảo mật hiệu
quả đối với hệ thống mạng máy tính, máy chủ và máy trạm.
Ưu điểm: Cài đặt trên nhiều dạng máy tính: xách tay, máy trạm, máy
chủ.
Phân tích lưu lượng mạng rồi mới forward.
Giám sát được những hiện thực đang diễn ra trên máy tính.
Nhược điểm: Khơng biết được trạng thái hoạt động của tồn mạng.
theo phương thức này, người quản trị khó có thể phát hiện xâm nhập theo thời
gian thực.
7
Hình 1.1: Vị trí của IDS trong mạng .
1.2.
Giới thiệu mạng neuron:
1.2.1. Mạng neuron nhân tạo là gì?
Định nghĩa: Mạng neuron nhân tạo, Artificial Neuron Network (ANN)
gọi tắt là mạng neuron, neuron network, là một mơ hình xử lí thơng tin phỏng
theo cách xử lý thông tin của các hệ neuron sinh học. Nó được tạo nên từ các
số lượng các phân tử (gọi là phần tử xử lý hay neuron) kết nối với nhau thông
qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thống nhất để
giải quyết một vấn đề cụ thể nào đó.
Một mạng neuron nhân tạo được cấu hình cho một ứng dụng cụ thể
(nhận dạng mẫu, phân loại dữ liệu,…) thơng qua một q trình học từ tập các
mẫu huấn luyện. Về bản chất học chính là q trình hiệu chỉnh trọng số liên
kết giữa các neuron.
1.2.2. Kiến trúc mạng neuron
Kiến trúc mạng truyền thẳng (feedforward architechture): là kiểu
kiến trúc mạng khơng có các kết nối ngược trở lại từ các neuron đầu ra về các
neuron đầu vào; mạng không lưu lại các giá trị output trước và các trạng thái
kích hoạt của neuron. Các mạng neuron truyền thẳng cho phép tín hiệu di
chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng
8
bất kì sẽ khơng ảnh hưởng tới tầng đó. Các mạng kiểu perceptron là mạng
truyền thẳng.
Hình 1.2: – Mạng truyền thẳng.
Kiến trúc mạng phản hồi (feedback architechture): là kiểu kiến trúc
mạng có các kết nối từ neuron đầu ra tới neuron đầu vào. Mạng lưu các trạng
thái trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu
vào mà cịn phụ thuộc vào các trạng thái trước đó của mạng. Mạng hopfield
thuộc loại này.
Hình 1.3 – Mạng kiến trúc phản hồi .
9
1.2.3. Các hệ học máy
1.2.3.1. Học máy là gì? [2]
Học là quá trình thay đổi hành vi của các vật theo một cách nào đó làm
cho chúng có thể thực hiện tốt hơn trong tương lai khi gặp những tình trạng
tương tự.
Một q trình mà một chương trình máy tính cải thiện hiệu suất của nó
trong một cơng việc thơng qua kinh nghiệm.
Việc lập trình các máy tính để tối ưu hóa một tiêu chí hiệu suất dựa trên
các dữ liệu ví dụ hoặc kinh nghiệm q khứ.
Học làm gì ?
- Học là cần thiết trong những môi trường chưa quen thuộc.
- Học là một phương pháp hữu hiệu để xây dựng hệ thống.
- Học là cách để các chương trình thơng minh có thể hiệu chỉnh hành vi
để tăng hiệu quả giải quyết vấn đề.
Học khi nào ?
- Tri thức con người chưa đủ (Ví dụ: Trên sao hỏa)
- Con người khơng đủ khả năng giải thích (nhận dạng giọng nói,
nhận dạng chữ viết, nhận dạng khn mặt người,…)
- Lời giải thay đổi theo thời gian (routing on a computer
network).
- Lời giải cần thích nghi trong từng trường hợp cụ thể (sinh vật
học)
Một mạng neuron được huấn luyện (hay là học) sao cho một tập các
vector đầu vào X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn
Y của nó. Tập X được sử dụng cho huấn luyện mạng được gọi là tập huấn
10
luyện (training set). Quá trình huấn luyện bản chất là sự thay đổi các trọng số
liên kết của mạng. Trong quá trình này, các trọng số của mạng sẽ hội tụ dần
tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ
cho ra vector đầu ra y như mong muốn.
Có ba phương pháp học phổ biến là học có giám sát (supervised
learning), học khơng có giám sát (unsupervised learning) và học tăng cường
(Reinforcement learning).
1.2.3.2. Học có giám sát
Là q trình học có sự tham gia giám sát của một “thầy giáo”, cũng như
việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một chữ cái và bảo với em đó
rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu chữ cái. Sau
đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi
em đó đây là chữ gì?.
Với học có giám sát, tập mẫu huấn luyện được cho trước dưới dạng D =
{(x,t) | (x,t) ∈ [IRN x RK]}, trong đó: x = (x1,x2,…,xN) là vector đặc trưng của
N chiều của mẫu huấn luyện và t = (t1,t2,…,tK) là vector mục tiêu K chiều
tương ứng, nhiệm vụ của thuật toán là phải thiết lập được một cách tính tốn
trên mạng như thế nào để sao cho với mỗi vector đặc trưng đầu vào thì sai số
giữa giá trị đầu ra thực sự của mạng và giá trị mục tiêu tương ứng là nhỏ nhất.
Chẳng hạn, mạng có thể học để xấp xỉ một hàm t = f(x) biểu diễn mối quan hệ
trên tập các mẫu huấn luyện (x,t).
Như vậy học có giám sát, số lớp cần phân loại đã được biết trước.
Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao
cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó.
1.2.3.3. Học khơng có giám sát
Là việc học khơng cần có bất kì một sự giám sát nào.
11
Trong bài tốn học khơng giám sát, tập dữ liệu huấn luyện được cho
dưới dạng: D = {x1,x2,…,xN}, với (x1,x2,…,xN) là vector đặc trưng của mẫu
huấn luyện. Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các
nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau.
Như vậy với học khơng giám sát, số lớp phân loại chưa được biết trước
và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các
lớp phân loại khác nhau.
1.3.
Kỹ thuật tấn công, xâm nhập
Một hệ thống mạng khi bị hacker tấn cơng nó sẽ chiếm một lượng lớn
tài nguyên trên máy chủ như dung lượng ổ cứng, bộ nhớ, CPU, băng
thông,…lượng tài nguyên này tùy thuộc vào khả năng huy động tấn công của
mỗi người tấn công, khi đó, máy chủ sẽ khơng thể đáp ứng hết những yêu cầu
từ những máy trạm của những người sử dụng, từ đó máy chủ có thể nhanh
chóng bị ngưng hoạt động, hư hỏng hoặc khởi động lại.
Có rất nhiều kĩ thuật tấn công vào hệ thống mạng như: Ping of Death,
Teardrop, Smurf Attack, UDP/ICMP flooding, TCP/SYN flooding, Attack
DNS, Trojans, Backdoor, sniffer, SQL injection,…
Theo [15] hầu hết các công cụ xâm nhập thường khai thác các điểm yếu
từ các nơi sau:
- Hệ điều hành: Nhiều người quản trị mạng cài đặt hệ điều hành cấu
hình mặc định và khơng nhập các bản vá lỗi.
- Ứng dụng.
- Tính năng nâng cao chương trình: Nhiều chương trình có nhiều tính
năng nâng cao mà người dùng ít sử dụng tới. Đây cũng là nơi dễ lợi dụng để
khai thác tấn cơng. Ví dụ: Microsoft Word, Excel là nơi chứa những đoạn mã
độc hại.
12
- Cấu hình sai: Hệ thống có thể bị cấu hình sai hay cấu hình ở mức bảo
mật thấp nhằm tăng tính dễ sử dụng cho người dùng.
Mục tiêu của kẻ tấn cơng:
Mục tiêu chính của hacker là làm sao để khai thác được 4 đặc tính về
bảo mật ?
- Tính bí mật.
- Tính xác thực.
- Tính tồn vẹn.
- Tính sẵn sàng.
Dựa vào hành động của tấn cơng mà có thể phân tấn công ra làm hai
loại: chủ động (active attack), bị động (passive attack).
+ Tấn công chủ động: là thay đổi hoạt động của hệ thống và hoạt động
của mạng khi tấn cơng làm ảnh hưởng đến tính tồn vẹn, sẵn sàng và xác thực
của dữ liệu.
+ Tấn công bị động: là cố gắng thu thập thông tin từ hoạt động của hệ
thống và hoạt động của mạng làm phá vỡ tính bí mật của dữ liệu.
Dựa vào nguồn gốc tấn cơng có thể phân loại tấn cơng làm hai loại: tấn
công từ bên trong và tấn công từ bên ngồi.
+ Tấn cơng từ bên trong: đó là người tấn cơng ở bên trong hệ thống
mạng, người đó muốn truy cập, lấy thông tin nhiều hơn quyền cho phép.
+ Tấn cơng từ bên ngồi: là tấn cơng từ bên ngoài hay các kết nối truy
cập từ xa.
13
1.4.
Tấn công từ chối dịch vụ DoS
1.4.1. Khái niệm
Tấn công từ chối dịch vụ DoS là một cuộc tấn công thực hiện từ một
người hoặc một nhóm người nào đó đến hệ thống mục tiêu. Khi cuộc tấn công
xảy ra, trên hệ thống bị tấn công, người dùng không thể truy xuất dữ liệu hay
thực hiện bất kỳ một công việc nào.
1.4.2. Mục đích
Mục đích của tấn cơng từ chối dịch vụ là không cho phép ủy quyền truy
cập đến máy hoặc dữ liệu, ngăn chặn các người dùng hợp pháp truy cập dịch
vụ của hệ thống.
Khi tấn công, Attacker có thể thực hiện các cơng việc sau:
- Cố gắng làm ngập hệ thống, ngăn chặn các giao thông mạng hợp lệ.
- Phá vỡ các kết nối giữa hai máy, ngăn chặn các truy cập đến dịch vụ.
- Ngăn chặn các thiết lập đặc biệt đến dịch vụ.
- Phá vỡ hệ thống của một người hoặc một hệ thống chỉ định.
1.4.3. Ảnh hưởng của tấn công từ chối dịch vụ DoS
1.4.3.1. Ảnh hưởng
- Mạng mục tiêu bị vơ hiệu hóa
- Vơ hiệu hóa việc tổ chức
- Ảnh hưởng đến uy tín và tài chính của tổ chức bị tấn cơng
1.4.3.2. Phương thức
+ Khi cuộc tấn công xảy ra sẽ:
- Làm khan hiếm, giới hạn và không thể phục hồi tài nguyên.
- Ảnh hưởng đến băng thông, bộ nhớ, không gian đĩa, CPU và cấu trúc
dữ liệu.
14
- Khơng thể truy cập đến các máy tính khác và mạng.
+ Phá hủy, thay thế các thông tin cấu hình.
+ Phá hủy ở mức vật lý, thay thể các thành phần mạng.
1.4.4. Các loại tấn công từ chối dịch vụ DoS
Có 2 loại tấn cơng
Loại 1: Làm cho tràn ngập mạng, hệ thống bị treo và tê liệt do tấn công
vào đặc điểm của hệ thống hoặc lỗi về an tồn thơng tin.
Điển hình là kiểu tấn cơng Ping of Death, SYN Flooder, SYN/ACK,…
Loại 2: Tấn công từ chối dịch vụ phân tán .
Trên Internet tấn công từ chối dịch vụ phân tán (Distributed Denial Of
Service - DDoS) là cuộc tấn công của nhiều hệ thống đến một mục tiêu. Điều
đó làm cho hệ thống của nạn nhân bị quá tải và dẫn đến tình trạng tràn hệ
thống, các người dùng hợp pháp không thể truy cập tài nguyên và dịch vụ bị
từ chối.
Điển hình là kiểu tấn cơng làm triệt tiêu băng thông và hao tốn tài
nguyên máy tính. Một số cơng cụ tấn cơng phổ biến như: UDP Flooder,
Panther Mode 2, CrazyPing v1.1,…
15
Chương 2.
CƠ SỞ LÝ THUYẾT: THUẬT TOÁN BẢN ĐỒ TỰ TỔ
CHỨC (Self Organizing Map - SOM)
Trình bày tổng quan, kiến trúc, thuật toán và một số ưu điểm, nhược
điểm của thuật toán SOM.
2.1 Giới thiệu
Bản đồ tự tổ chức (Self – Organizing – Map) được viết tắt là SOM, là
một phần của mạng neuron nhân tạo và là kĩ thuật trực quan hóa dữ liệu. Mơ
hình này do Giáo sư người Phần Lan tên là Teuvo Kohonen đề xuất đầu tiên
vào năm 1980, và được gọi là mạng Kohonen hay là bản đồ Kohonen [6].
Hình 2.1: Mơ hình mạng Kohonen.
Mạng Kohonen ứng dụng luật học không giám sát (unsupervised
learning). Với phương pháp học này, không biết trước số lượng các lớp đầu
ra. Luật học sẽ tự động phân nhóm dữ liệu đầu vào để nhóm các phần tử gần
giống nhau vào cùng một lớp và phân tách các phần tử khác biệt vào những
lớp khác.
Thuật giải xây dựng mạng Kohonen để lưu trữ thơng tin và là cách duy
trì của các quan hệ hình học bên trong tập huấn luyện, thuật toán phân loại dữ
16
liệu huấn luyện mà không cần bất cứ sự giám sát nào bên ngồi so với giải
thuật học có giám sát truyền thống. Do đó, SOM cịn được xem là một giải
thuật học không giám sát.
2.2 Cấu trúc mạng Kohonen
Mạng Kohonen là mạng truyền thẳng là một phần của mạng neuron
nhân tạo, các đơn vị cơ bản của SOM là các neuron.Trong bản đồ SOM tùy
thuộc neuron nằm ở lớp nào mà cấu trúc của nó có thể khác nhau. Một cách
hình thức, SOM có hai lớp: lớp đầu vào (input layer) và lớp đầu ra Kohonen.
Lớp Kohonen tương tự giống như vỏ não, nếu một neuron trong vỏ não
được kích thích bởi tác nhân nào đó, các neuron trong vùng cũng được kích
thích, các neuron trong lớp Kohonen được tổ chức thành một không gian n
chiều, với n được gọi là số chiều của bản đồ SOM.
Ví dụ:
n = 2, Mạng Kohonen là một ma trận các neuron gồm p hàng và q cột.
Mỗi nút có một cấu hình mạng cụ thể (tọa độ x, y trong bản đồ), nếu dữ
liệu huấn luyện chứa vector x-n chiều (x1, x2,…,xn) thì mỗi nút sẽ chứa vector
trọng số tương ứng mi(t) tương ứng cũng có n chiều (m1, m2,…,mn).
Số lượng các chiều đầu vào thường nhiều hơn rất nhiều so với chiều
của bản đồ, SOM được sử dụng chính cho việc giảm chiều hơn là tăng chiều.
17
Hình 2.2: Mơ hình mạng Kohonen đơn giản.
2.3 Thuật tốn
Mục tiêu của việc học trong “Bản đồ tự tổ chức”: là co kéo các neuron
trong bản đồ SOM để gom nhóm các neuron tương tự với các mẫu đầu vào
nào đó.
Từ một giá trị (hay phân phối) khởi tạo của các trọng số ngẫu nhiên và
qua nhiều lần lặp một SOM cuối cùng bố trí trong một bản đồ các vùng ổn
định. Mỗi vùng thực sự là một phân loại đặc trưng. Do đó, ta có thể xem hình
kết quả như một dạng bản đồ đặc trưng của không gian đầu vào.
Quá trình huấn luyện diễn ra trong một số bước qua nhiều lần lặp:
Bước 1: Khởi tạo mỗi trọng số của nút.
Bước 2: Một vector được chọn ngẫu nhiên trong tập huấn luyện và đưa
vào cho bản đồ.
18
Bước 3: Mỗi nút được kiểm tra và tính tốn xem trọng số của nút nào
gần giống nhất với vector đầu vào. Nút chiến thắng thường được biết như
một đơn vị phù hợp nhất (Best Matching Unit - BMU).
Bước 4: Bán kính lân cận của BMU được tính, giá trị lúc đầu lớn,
thường được đặt là bán kính của bản đồ, nhưng giảm dần sau mỗi bước. Mỗi
nút trong bán kính đó được cho rằng nằm trong lân cận của BMU.
Bước 5: Các trọng số của mỗi nút láng giềng (các nút được tìm thấy
trong bước 4) được điều chỉnh cho giống với các vector đơn vị hơn. Các nút
càng gần BMU, các trọng số của nó càng thay đổi nhiều hơn.
Bước 6: Lặp lại từ bước 2 với n lần lặp.
Quá trình được lặp lại cho mỗi vector đầu vào, cho nhiều chu kì khác
nhau (thường rất lớn).
Hình 2.3: Mơ hình ma trận đầu ra và mơ hình thử nghiệm.
19
*-Q trình học của SOM gồm hai pha chính: Đó là pha cạnh tranh và
sự cộng tác
Pha 1: Cạnh tranh
Mỗi nút được kiểm tra và tính tốn xem trọng số của nút nào gần giống
nhất với vector đầu vào. Nút chiến thắng thường được biết như một đơn vị
phù hợp nhất (Best Matching Unit - BMU).
Pha 2: Sự cộng tác
Các trọng số của mỗi nút láng giềng với nút chiến thắng được điều
chỉnh theo một hàm lân cận cho trước, các nút càng gần BMU, các trọng số
của nó càng thay đổi nhiều hơn.
2.4 Chi tiết thuật toán
2.4.1
Khởi tạo trọng số
Trước khi huấn luyện bản đồ SOM, các trọng số của mỗi nút phải được
khởi tạo với giá trị ngẫu nhiên về đoạn [0,1].
2.4.2
Xác định vector chiến thắng (Best Matching Unit – BMU)
Mỗi nút trên mạng sẽ được kiểm tra để tính xem nút nào có trọng số
gần với vector đầu vào nhất. Phần tử chiến thắng là phần tử so khớp tốt nhất
sẽ được chọn.
Thuật tốn tìm BMU được thực hiện như sau:
Duyệt tất cả các nút và tính khoảng cách Euclide giữa vector trọng số
của mỗi nút và vector đầu vào hiện hành theo công thức sau:
d=
n
∑(x − m )
i= 0
i
i
2
(2.1)
Trong đó: xi là tọa độ của vector đưa vào huấn luyện.
m i là tọa độ của neuron.
20
Nút có vector trọng số gần với giá trị của vector đầu vào (khoảng cách
Euclide nhỏ nhất) sẽ được chọn là BMU.
2.4.3
Xác định vùng lân cận cục bộ của BMU
Trong mỗi vòng lặp, sau khi BMU được xác định. Bước tiếp theo thực
hiện việc tính tốn trên các nút để xây dựng lại tập các phần tử lân cận của
BMU. Các vector trọng số của các phần tử lân cận này sẽ được cập nhật ở
bước tiếp theo.
Đầu tiên ta tính bán kính của vùng lân cận, sau đó sẽ biết được các nút
nằm trong vùng lân cận đó, đặc tính duy nhất của thuật tốn học Kohonen là
vùng lân cận của BMU được xây dựng trên vector khoảng cách sẽ được co lại
sau một lần lặp nhất định.
Phép co được thực hiện theo hàm mũ nội suy của phép co như sau:
t
σ (t ) = σ 0 exp(- ) , t = 1, 2, 3,…
λ
(2.2)
Trong đó:
t: là bước lặp hiện tại
σ : bán kính lân cận tại thời điểm t
σ0 : bán kính lân cận tại thời điểm t0
Tại thời điểm ban đầu, bán kính của bản đồ được tính bởi cơng thức
sau : với width, height tương đương là chiều rộng và chiều cao của mạng
Kohonen.
σ0=
max(width, height)
)
2
(2.3)
λ : hằng số thời gian, hằng số này phụ thuộc vào σ và số lần lặp n để
chạy giải thuật, được tính theo cơng thức hằng số thời gian λ sau: