Tải bản đầy đủ (.doc) (72 trang)

Mạng KOHONEN SOM và ứng dụng phân cụm dữ liệu điểm học sinh trung học phổ thôngt

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 (1.39 MB, 72 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐH CNTT VÀ TRUYỀN THÔNG

HÀ THỊ THƯ

MẠNG KOHONEN-SOM VÀ ỨNG DỤNG
PHÂN CỤM ĐIỂM HỌC SINH THPT

CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ:

60 48 01

LUẬN VĂN THẠC SĨ KHOA HỌC
HƯỚNG DẪN KHOA HỌC: TS NGUYỄN VĂN TẢO

THÁI NGUYÊN - 2012


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐH CNTT VÀ TRUYỀN THÔNG

HÀ THỊ THƯ

MẠNG KOHONEN-SOM VÀ ỨNG DỤNG
PHÂN CỤM ĐIỂM HỌC SINH THPT
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ:

60 48 01


LUẬN VĂN THẠC SĨ KHOA HỌC
HƯỚNG DẪN KHOA HỌC

TS NGUYỄN VĂN TẢO

THÁI NGUYÊN - 2012


LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là công trình nghiên cứu của cá nhân tôi, không
sao chép của ai. Nội dung lý thuyết trong luận văn có sự tham khảo và sử dụng của
một số tài liệu, thông tin được đăng tải trên các tác phẩm, tạp chí và các trang web
theo danh mục tài liệu của luận văn. Các số liệu, chương trình phần mềm và những
kết quả trong luận văn là trung thực và chưa được công bố trong bất kỳ một công
trình nào khác.

Thái Nguyên, ngày 15 tháng 9 năm 2012

Học viên thực hiện
HÀ THỊ THƯ


MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ MẠNG KOHONEN-SOM
1.1. Sơ lược về mạng neural............................................................................................................2
1.1.1. Lịch sử phát triển.................................................................................................................2
1.1.2. Ứng dụng............................................................................................................................3
1.1.3. Căn nguyên sinh học...........................................................................................................4
1.2. Tổng quan về mạng Kohonen-SOM.........................................................................................5
1.2.1. Vecto Quantization – VQ.....................................................................................................6

1.2.2. Lerning Vector Quantization – LVQ.....................................................................................6
1.2.3. Bản đồ tự tổ chức – SOM....................................................................................................7
1.3. Cấu trúc mạng neural Kohonen...............................................................................................7
1.3.1. Mạng neural Kohonen........................................................................................................7
1.3.2. Cấu trúc của mạng neural Kohonen....................................................................................8
1.4. Thực thi mạng neural Kohonen.............................................................................................12
1.5. Kết luận...................................................................................................................................13
2.1. Phân cụm dữ liệu:...................................................................................................................14
2.1.1. Khái niệm:..........................................................................................................................14
2.1.2. Các bước cơ bản trong phân cụm:.....................................................................................14
2.2. Những kỹ thuật tiếp cận trong phân cụm dữ liệu..................................................................15
2.2.1. Phương pháp phân cụm phân hoạch.................................................................................15
2.2.2. Phương pháp phân cụm phân cấp.....................................................................................16
2.2.3. Phương pháp phân cụm dựa trên mật độ.........................................................................16
2.2.4. Phương pháp phân cụm dựa trên lưới..............................................................................17
2.2.5. Phương pháp phân cụm dựa trên mô hình........................................................................17
2.2.6. Phương pháp phân cụm có dữ liệu ràng buộc...................................................................18
2.3. Một số thuật toán cơ bản trong phân cụm dữ liệu.................................................................19
2.3.1. Thuật toán phân cụm phân hoạch.....................................................................................19
2.3.2. Thuật toán phân cụm phân cấp.........................................................................................21


2.3.3. Thuật toán phân cụm dựa trên mật độ..............................................................................23
2.3.4. Thuật toán phân cụm dựa trên lưới...................................................................................24
2.3.5. Các thuật toán phân cụm dựa trên mô hình......................................................................25
2.4. Dùng mạng neural trong phân cụm:......................................................................................26
2.5. SOM –Bài toán phân cụm:.....................................................................................................28
2.5.1. Thuật toán SOM:................................................................................................................28
2.5.2. Sử dụng SOM trong khai phá dữ liệu.................................................................................31
2.5.3. SOM –Thách thức phân nhóm...........................................................................................36

2.5.4. SOM –Thách thức tốc độ giải thuật...................................................................................37
2.5.5. SOM –Vấn đề số lượng nhóm............................................................................................38
2.6. SOM –Giải quyết những vấn đề tồn tại khi phân cụm...........................................................38
2.6.1 Giải pháp phân cụm tự nhiên trong quá trình học..............................................................38
2.6.2 Mạng thu gọn và tăng tốc giải thuật...................................................................................40
2.6.3 Giới hạn điều chỉnh số lượng nhóm trên mạng SOM..........................................................42
2.7. Đánh giá kết quả phân cụm....................................................................................................43
2.8. Kết luận :.................................................................................................................................46
3.1 . Mô tả bài toán........................................................................................................................47
3.1.1. Dữ liệu vào:........................................................................................................................47
3.1.2. Dữ liệu ra:..........................................................................................................................48
3.1.3.Quá trình cài đặt:................................................................................................................48
3.1.4. Mục đính- Yêu cầu.............................................................................................................48
3.2. Phân tích thiết kế hệ thống cho ứng dụng.............................................................................49
3.2.1. Xác định các tác nhân và các Use case...............................................................................49
3.2.2. Biểu đồ Use Case...............................................................................................................50
3.3. Chương trình ứng dụng..........................................................................................................54
3.3.1. Giao diện tổng quan cho ứng dụng....................................................................................54
3.3.2 Một số tính năng cho ứng dụng..........................................................................................54
3.3.2 Hướng dẫn sử dụng, chạy thử nghiệm...............................................................................59


3.4. Kết luận...................................................................................................................................62

DANH MỤC VIẾT TẮT

CSDL

Cơ sở dữ liệu


KPDL

Khai phá dữ liệu

FCM

Fuzzy C-Means

PCDL

Phân cụm dữ liệu


DANH MỤC CÁC HÌNH
Hình 1.1
Hình 1.2
Hình 1.3
Hình 1.4
Hình 2.1
Hình 2.2
Hình 2.3
Hình 2.4
Hình 2.5
Hình 2.6
Hình 2.7
Hình 2.8
Hình 2.9
Hình 2.10
Hình 2.11
Hình 2.12

Hình 2.13
Hình 2.14
Hình 2.15
Hình 3.1
Hình 3.2
Hình 3.3
Hình 3.4
Hình 3.5
Hình 3.6
Hình 3.7
Hình 3.8
Hình 3.9
Hình 3.10
Hình 3.11
Hình 3.12
Hình 3.13
Hình 3.14
Hình 3.15

Cấu tạo tế bào neural…………………………………………......... 4
Giáo sư Kohonen và mạng neural………………………………… 6
Cấu trúc mạng Kohonen……………………………………………..8
Những bức tường trong Kohonen………………………………… 12
Các chiến lược phân cụm phân phân cấp…………….…………… 16
Cấu trúc phân cấp……………………………………….………… 17
Các cách mà các cụm có thể đưa ra………………………………. 18
Các thiết lập để xác định ranh giới các cụm ban đầu……………... 20
Tính toán trọng tâm của các cụm mới…………………………….. 20
Khái quát thuật toán CURE……………………………………….. 22
Các cụm dữ liệu được khám phá bởi CURE…………………........ 22

Hình dạng các cụm được khám phá bởi thuật toán DBSCAN……. 23
Đơn vị xử lý ganh đua SOM……………………………………… 28
Không gian ban đầu và SOM............................................................ 29
BMU.................................................................................................. 31
Vecto chiến thắng liên tục đối với SOM ......................................... 35
Định nghĩa một U-Matrix................................................................. 36
U-Matrix của SOM........................................................................... 36
Quan hệ giữa 2 cụm………………………………………………. 44
Mô hình Use Case tổng thể của bài toán.......................................... 47
Biểu đồ trình tự chọn CSDL............................................................. 47
Biểu đồ trình tự tạo và huấn luyện mạng neural………………….. 48
Biểu đồ trình tự tạo biểu đồ theo nhóm…………………………… 48
Biểu đồ trình tự phân cụm học sinh theo nhóm…………………... 49
Biểu đồ trình tự cấu hình mạng neural……………………………. 49
Biểu đồ trình tự chọn loại biểu đồ………………………………… 50
Biểu đồ trình tự chọn và hiển thị biểu đồ…………………………. 50
Giao diện chương trình…………………………………………… 51
Tab hỗ trợ nhập và chọn dữ liệu…………………………………... 52
Một số biểu đồ trợ giúp dạng 3D…………………………………. 53
Một số biểu đồ trợ giúp dạng 2D…………………………………. 54
Nhóm và cấu hình nhóm………………………………………….. 55
Một phần dữ liệu và khả năng phân nhóm………………………... 56
Các phần của ứng dụng…………………………………………… 57



MỞ ĐẦU
Sự phát triển mạnh mẽ của Công nghệ nói chung và Công nghệ thông tin
nói riêng đã tạo nên nhiều hệ thống thông tin phục vụ việc tự động hoá mọi hoạt
động kinh doanh cũng như quản lý trong xã hội. Nhiều hệ quản trị cơ sở dữ liệu

mạnh với các công cụ phong phú và thuận tiện đã giúp con người khai thác có
hiệu quả các nguồn tài nguyên dữ liệu lớn. Trong đó, khai phá dữ liệu (Data
Mining) là quá trình chính trong phát hiện tri thức. Sử dụng các kỹ thuật và các
khái niệm của các lĩnh vực đã được nghiên cứu từ trước như học máy, nhận dạng,
thống kê, hồi quy, xếp loại, phân nhóm, đồ thị, mạng nơron, mạng Bayes,... được
sử dụng để khai phá dữ liệu nhằm phát hiện ra các mẫu mới, tương quan mới, các
xu hướng có ý nghĩa.
Luận văn với đề tài “Mạng Kohonen-SOM và ứng dụng phân cụm điểm
học sinh THPT” khảo sát lĩnh vực KPDL dùng mạng nơron. Luận văn tập
trung vào phương pháp học mạng nơron không có giám sát, dùng thuật toán
SOM để giải quyết bài toán phân cụm theo mô hình mạng nơron.
Luận văn được thực hiện dưới sự hướng dẫn khoa học của TS. Nguyễn Văn
Tảo. Tôi xin chân thành cảm ơn sâu sắc tới Thầy đã chỉ dẫn tận tình giúp tôi có
thể hoàn thành bản luận văn này. Tôi cũng vô cùng cảm ơn sự giúp đỡ và động
viên khích lệ của người thân trong gia đình tôi, bạn bè và các đồng nghiệp
trong trường THPT Ngô Sĩ Liên trong suốt quá trình thực hiện luận văn.
Bắc giang, ngày 15 tháng 9 năm 2012

Hà Thị Thư

1


CHƯƠNG 1
TỔNG QUAN VỀ MẠNG KOHONEN-SOM
---------------------------------------------------------------------------------------------Chương này đề cập các vấn đề sau:
1.1.

Sơ lược về mạng neural


1.2.

Tổng quan về mạng KOHONEN-SOM

1.3.

Cấu trúc của mạng neural KOHONEN

1.4.

Thực thi của mạng neural KOHONEN

1.5.

Kết luận

---------------------------------------------------------------------------------------------1.1. Sơ lược về mạng neural
1.1.1. Lịch sử phát triển
Mạng neural nhân tạo được xây dựng từ những năm 1940 nhằm mô phỏng
một số chức năng của bộ não người. Dựa trên quan điểm cho rằng bộ não người là
bộ điều khiển. Mạng neural nhân tạo được thiết kế tương tự như neural sinh học sẽ
có khả năng giải quyết hàng loạt các bài toán như tính toán tối ưu, điều khiển, công
nghệ robot…
Dưới đây là các mốc đáng chú ý trong lịch sử phát triển của mạng neural:
- Giai đoạn 1: Có thể tính từ nghiên cứu của William (1890) về tâm lý học với
sự liên kết các neural thần kinh. Năm 1940 Mc Culloch và Pitts đã cho biết neural
có thể mô hình hoá như thiết bị ngưỡng (Giới hạn) để thực hiện các phép tính logic
và mô hình mạng neural của Mc Culloch – Pitts cùng với giải thuật huấn luyện
mạng của Hebb ra đời năm 1943.
- Giai đoạn 2: vào khoảng gần những năm 1960, một số mô hình neural hoàn

thiện hơn đã được đưa ra như: Mô hình Perceptron của Rosenblatt (1958),
Adalile của Widrow (1962). Trong đó mô hình Perceptron rất được quan tâm vì
nguyên lý đơn giản, nhưng nó cũng có hạn chế vì như Marvin Minsky và Seymour
papert của MIT (Massachurehs Insritute of Technology) đã chứng minh nó không
dùng được cho các hàm logic phức (1969). Còn Adaline là mô hình tuyến tính, tự

2


chỉnh, được dùng rộng rãi trong điều khiển thích nghi, tách nhiễu và phát triển cho
đến nay.
- Giai đoạn 3: Có thể tính vào khoảng đầu thập niên 80. Những đóng góp
lớn cho mạng neural trong giai đoạn này phải kể đến Grossberg, Kohonen,
Rumelhart và Hopfield. Trong đó đóng góp lớn của Hopfield gồm hai mạng phản
hồi: Mạng rời rạc năm 1982 và mạng liên tục năm 1984. Đặc biệt, ông đã dự kiến
nhiều khả năng tính toán lớn của mạng mà một neural không có khả năng đó. Cảm
nhận của Hopfield đã được Rumelhart, Hinton và Williams đề xuất thuật toán sai
số truyền ngược nổi tiếng để huấn luyện mạng neural nhiều lớp nhằm giải bài toán
mà mạng khác không thực hiện được. Nhiều ứng dụng mạnh mẽ của mạng
neural ra đời cùng với các mạng theo kiểu máy Boltzmann và mạng
Neocognition của Fukushima.
- Giai đoạn 4: Tính từ năm 1987 đến nay, hàng năm thế giới đều mở hội
nghị toàn cầu chuyên ngành neural IJCNN (International Joit Conference on
Neural Networks). Rất nhiều công trình được nghiên cứu để ứng dụng mạng
neural vào các lĩnh vực như: Kỹ thuật tính, điều khiển, bài toán tối ưu, y học, sinh
học, thống kê, giao thông, hoá học,...Cho đến nay mạng neural đã tìm và khẳng
định được vị trí của mình trong rất nhiều ứng dụng khác nhau.
1.1.2. Ứng dụng
Kể từ khi ra đời và phát triển mạng neural đã được ứng dụng trong rất
nhiều lĩnh vực. Do vậy, liệt kê được tất cả các ứng dụng của mạng neural là không

thực tế. Tuy nhiên, ta có thể đưa ra một số ứng dụng điển hình của mạng neural
như sau:
-

Xử lý ảnh, nhìn máy: Gồm trùng khớp ảnh, tiền xử lý ảnh, phân đoạn và
phân tích ảnh, nén ảnh,...

-

Xử lý tín hiệu: Phân tích tín hiệu địa chấn và hình thái học.

-

Nhận dạng mẫu: Gồm việc tách các nét đặc biệt của mẫu, phân loại và
phân tích tín hiệu của rada, nhận dạng và hiểu tiếng nói, nhận dạng vân
tay, ký tự, chữ viết,...

3


-

Y học: Phân tích và hiểu tín hiệu điện tâm đồ, chuẩn đoán bệnh, xử lý ảnh
y học.

-

Quân sự: Các hệ phát hiện thuỷ lôi, phân loại luồng rada, nhận dạng nguời
nói.


-

Các hệ tài chính: Gồm phân tích thị trường chứng khoán, định giá bất
động sản, cấp phát thẻ tín dụng và thương mại an toàn.

-

Trí tuệ nhân tạo: Gồm các hệ chuyên gia,...

-

Dự đoán: Dự đoán các trạng thái của hệ thống,...

-

Quy hoạch, kiểm tra và tìm kiếm: Gồm cài đặt song song các bài toán thoả
mãn ràng buộc, tìm nghiệm bài toán người du lịch, điều khiển và robot

1.1.3. Căn nguyên sinh học
Bộ não con người gồm một số rất lớn neural (khoảng 10.000.000.000
neural) kết nối với nhau (trung bình mỗi neural kết nối với hàng chục ngàn neural
khác). Dưới con mắt của những người làm tin học, một neural được cấu tạo bởi
các thành phần: tế bào hình cây (dendrite) - tế bào thân (cell body) – và sợi trục
thần kinh (axon). Tế bào hình cây có nhiệm vụ mang các tín hiệu điện tới tế bào
thân, tế bào thân sẽ thực hiện gộp (Sum) và phân ngưỡng (Thresholds) các tín hiệu
đến. Sợi trục thần kinh làm nhiệm vụ đưa tín hiệu từ tế bào thân ra ngoài.

Hình 1.1: Cấu tạo tế bào neural
Điểm tiếp xúc giữa một sợi trục thần kinh của neural này và tế bào hình cây
của một neural khác được gọi là khớp thần kinh (synapse). Sự sắp xếp của các


4


neural và mức độ mạnh yếu của các khớp thần kinh được quyết định bởi các quá
trình hóa học phức tạp, sẽ thiết lập chức năng của mạng neural.
Một vài neural có sẵn từ khi sinh ra, các phần khác được phát triển thông
qua việc học, ở đó có sự thiết lập các liên kết mới và loại bỏ các liên kết cũ.
Mạng neural nhân tạo không tiếp cận đến sự phức tạp của bộ não. Mặc dù
vậy, có hai sự tương quan cơ bản giữa mạng neural nhân tạo và sinh học. Thứ nhất,
cấu trúc khối tạo thành chúng đều là các thiết bị tính toán đơn giản (mạng neural
nhân tạo đơn giản hơn nhiều) được liên kết chặt chẽ với nhau. Thứ hai, các liên kết
giữa các neural quyết định chức năng của mạng.
Mặc dù mạng neural sinh học hoạt động rất chậm so với các linh kiện điện
tử (10-3 giây so với

10-9 giây), nhưng bộ não có khả năng thực hiện nhiều công

việc nhanh hơn nhiều so với các máy tính thông thường. Đó một phần là do cấu
trúc song song của mạng neural sinh học: toàn bộ các neural hoạt động một cách
đồng thời tại một thời điểm. Mạng neural nhân tạo cũng chia sẻ đặc điểm này. Mặc
dù hiện nay, các mạng neural chủ yếu được thực nghiệm trên các máy tính số,
nhưng cấu trúc song song của chúng khiến chúng ta có thể thấy cấu trúc phù hợp
nhất là thực nghiệm chúng trên các vi mạch tích hợp lớn (VLSI: Very Large Scale
Integrated-circuit), các thiết bị quang và các bộ xử lý song song.
1.2. Tổng quan về mạng Kohonen-SOM
Cố giáo sư, tiến sĩ Teuvo Kohonen sinh ngày 11/07/1934, là giáo sư danh dự
của Viện hàn lâm Phần lan. Giáo sư Kohonen được biết đến nhiều trong các lĩnh
vực về mạng neural, bao gồm các thuật toán [9], phép học lượng tử hóa véctơ, các
lý thuyết cơ bản về phân bố và ánh xạ tối ưu,... Ông đã xuất bản nhiều cuốn sách

trong lĩnh vực neural nhân tạo làm nền tảng lý thuyết căn bản cho sự phát triển sau
này của tính toán neural. Bên cạnh đó là khoảng 200 bài báo trong lĩnh vực khoa
học đặc biệt này, là một trong những nhà nghiên cứu nổi tiếng và có nhiều công
trình trong lĩnh vực tính toán neural. Ông phát minh ra nhiều loại mạng khác nhau.
Cụm từ “mạng Kohonen” thường dùng để tham chiếu đến một trong ba loại mạng
sau đây.

5


1.2.1. Vecto Quantization – VQ
VQ là mạng cạnh tranh có thể được xem như công cụ đánh giá mật độ
không giám sát (Kohonen, 1995/1997; Hecht – Nielsen 1990), có quan hệ mật thiết
đến phương pháp phân tích gom nhóm K-mean (MacQueen, 1967; Anderberg,
1973). Mỗi đơn vị cạnh tranh tương ứng với một cụm (cluster), tâm của chúng
được gọi là “codebook vector”. Luật học Kohonen là thuật toán tìm những
codebook vector gần mẫu huấn luyện nhất và di chuyển codebook vector chiến
thắng đến gần mẫu huấn luyện hơn. Kohonen VQ thường được sử dụng cho việc
học offline, trong trường hợp đó dữ liệu huấn luyện được lưu giữ và luật học
Kohonen được áp dụng đến mỗi trường hợp, quay vòng trên tập dữ liệu nhiều lần.
1.2.2. Lerning Vector Quantization – LVQ
LVQ là mạng cạnh tranh cho phân lớp có giám sát. Mỗi codebook vector
được ấn định đến một phân lớp đích. Mỗi lớp có thể có một hoặc nhiều codebook
vector. Một mẫu được phân lớp bằng cách tìm codebook vector gần nhất và gán
mẫu đến lớp tương ứng với codebook vector. Do đó LVQ là một dạng của luật lân
cận gần nhất (nearest-neughbor).

Hình 1.2: Giáo sư Kohonen và mạng Neural

6



1.2.3. Bản đồ tự tổ chức – SOM
SOM (Self-Organizing Maps - Bản đồ tự tổ chức) là một trong nhiều loại
mạng AI do cố giáo sư, tiến sĩ Teuvo Kohonen phát triển vào những năm
80[6,8,10,11]. Vì thế có tên gọi khác cho loại mạng này là “bản đồ Kohonen”. Giải
thuật SOM ban đầu được phát triển cho mục đích phân loại tiếng nói, tuy nhiên
SOM còn có thể áp dụng được trong nhiều lĩnh vực khác như điều khiển tự động
(Control Engineering), hóa - sinh trắc học (Biomedical Sciences and Chemistry),
phân tích tài chính (Financial Analysis) và xử lý ngôn ngữ tự nhiên (Natural
Language Processing), xử lý ảnh (image processing), phân cụm dữ liệu (clustering
data) vv….
Các thuộc tính cơ bản nhằm phân biệt SOM với các mạng neural khác là
nó sử dụng ký số thay cho ký tự, không tham số (non-parametric), và học không
hướng dẫn. Phương pháp dùng số tự nhiên cho phép SOM xem xét, xử lý dữ liệu
số tự nhiên thống kê được và nhằm để biểu diễn các mối quan hệ đã được chọn lọc.
Do SOM không yêu cầu học có giám sát và là một dạng non-parametric nên nó có
thể tìm ra cả những cấu trúc không hề mong muốn từ dữ liệu đã cho.
Giải thuật huấn luyện mạng SOM đơn giản được thực hiện qua một số
lượng nhất định (thường rất lớn) vòng lặp và tại mỗi vòng lặp thực hiện các bước
cơ bản sau:
• Tìm neural chiến thắng (BMU- Best Matching Unit).
• Cập nhật trọng số và các lân cận của BMU.
• Lặp lại cho đến khi không có sự thay đổi nào trên các trọng số hoặc đạt
được số lần lặp xác định.
1.3. Cấu trúc mạng neural Kohonen
1.3.1. Mạng neural Kohonen
Mạng luyện không có thầy hướng dẫn, là một kiểu luyện mà ở đó các neural
tự xoay xở với các dữ liệu mẫu mà nó có được chứ không có “Ông thầy” gợi ý cần
luyện theo hướng nào.


7


Tự mình khám phá những quan hệ đang được quan tâm, ví dụ về các dạng
(patterns), các đặc trưng (features ) từ dữ liệu vào (input data) sau đó chuyển
thành dữ liệu ra (outputs). Như vậy thực chất đó là các mạng tự tổ chức (hay mạng
neural Kohonen) .
Định nghĩa: Mạng neural Kohonen là mạng có khả năng sử dụng những kinh
nghiệm của quá khứ để thích ứng với những biến đổi của môi trường (không dự
báo trước). Loại mạng này thuộc nhóm hệ học, thích nghi không cần có tín hiệu chỉ
đạo từ bên ngoài.
1.3.2. Cấu trúc của mạng neural Kohonen
Mạng Kohonen hai chiều gồm có 2 lớp đó là lớp vào và lớp ra Kohonen. Lớp
vào (Input layer): dùng để đưa dữ liệu huấn luyện vào mạng Kohonen. Kích thước của
lớp vào tương ứng với kích thước của mỗi mẫu học. Trong mạng Kohonen hai
chiều, các neural của lớp ra được sắp xếp trên một mảng 2 chiều, mảng này được gọi
là lớp ra Kohonen. Tất cả các neural của lớp vào đều được nối với các neural trên lớp ra
Kohonen. Mỗi liên kết giữa đầu vào và đầu ra của mạng Kohonen tương ứng với một
trọng số. Kích thước của mỗi vetor trọng số bằng kích thước của lớp vào. Ta có thể
hình dung cấu trúc mạng Kohonen theo hình sau:

Hình 1.3: Cấu trúc mạng Kohonen.

8


Giải thuật huấn luyện mạng:
Khởi tạo tham số thời gian t: t = 0.
Bước 1: Khởi tạo vector trọng số Wij cho mỗi neural i trong mạng Kohonen.

Bước 2: Lấy một mẫu huấn luyện x từ tập huấn luyện.
Bước 3: Tìm mẫu khớp tốt nhất (BMU) - phần tử neural chiến thắng:
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 nhập hiện hành. Công thức để tính khoảng cách Euclide được cho như sau:
Dist =

n

∑ (V − W )
i =0

i

2

i

V: vector nhập hiện hành;

W: vector trọng số của phần tử được

chọn.Nút có vector trọng số gần nhất với giá trị của vector nhập sẽ được chọn là BMU.
Bước 4: Xây dựng các phần tử lân cận: Đặc tính duy nhất của thuật toá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 số lần lặp nhất định. Điều này được thực hiện bằng cách co lại bán kính
của vùng lân cận theo số lần lặp.
Phép co sẽ được thực hiện theo hàm mũ nội suy sau:
 t
σ ( t ) = σ 0 exp  −  (t = 1, 2,3...)
 λ


σ: bán kính lân cận của BMU tại thời điểm t.
σ0: bán kính lân cận của BMU tại thời điểm t0.
λ: hằng số thời gian .

t: là bước lặp hiện tại .

Giá trị của hằng số λ phụ thuộc vào σ và số lần lặp để chạy giải thuật. Nó
được tính theo công thức sau: λ = N/log(σ0).

9


N: số lần lặp để chạy giải thuật (số lần học của mạng).
λ và σ sẽ được dùng để tính bán kính lân cận trong mỗi lần lặp của giải thuật.
Khi bán kính lân cận đã được xác định, việc xác định các phần tử lân cận của
BMU sẽ được thực hiện đơn giản bằng cách duyệt tất cả các phần tử trong mạng để
xem nó có nằm trong bán kính lân cận hay không.
Bước 5: Hiệu chỉnh trọng số của các phần tử lân cận – quá trình học của giải thuật
SOM : Trọng số của các phần tử lân cận được xác định ở bước trên bao gồm cả
BMU sẽ được điều chỉnh để chúng có giá trị gần giống với giá trị của vector nhập hơn.
Phần tử càng gần với BMU, thì trọng số của nó sẽ càng dễ bị thay đổi nhiều hơn. Các
vector trọng số sẽ được hiệu chỉnh theo công thức sau:
W (t + 1) = W(t ) + a (t ) L(t )(V (t ) − W(t ))

Hàm nội suy theo thời gian học thể hiện sự tác động của khoảng cách đối với
quá trình học và được tính theo công thức sau:
 dist 2 
a (t ) = exp  − 2  (t = 1, 2,3...)
 2σ (t ) 


dist : là khoảng cách từ một neural đến neural chiến thắng.
t

: bước lặp hiện tại.; L : tốc độ học (sẽ giảm dần theo số lần lặp).

Biểu thức trên cho thấy trọng số của một nút sau khi hiệu chỉnh chính là giá
trị trọng số cũ W của nó cộng thêm phần giá trị khác biệt giữa trọng số W và vector
nhập V theo hệ số tốc độ học.
Hàm nội suy tốc độ học L(t) cho mỗi bước lặp đựơc tính theo công thức sau:
 t
L(t ) = exp  −  (t = 1, 2,3...)
 λ

L0: Giá trị khởi tạo ban đầu của tốc độ học; λ: hằng số thời gian .

10


Càng tiến dần về điểm giữa thì tốc độ học sẽ càng giống với hàm mũ nội suy của
phép co. Tốc độ học sẽ được nội suy dần theo tốc độ học và giá trị của hàm sẽ tiến dần
về không khi số lần lặp đạt đến những bước cuối cùng.
Bước 6: Vòng lặp: Tăng t, lấy mẫu học tiếp theo. Lặp lại bước 2 cho đến khi giải
thuật tối ưu hoặc đạt đến số lần lặp xác định N cho trước. Số lượng vector của tập
huấn luyện là có giới hạn.
Trực quan mạng.
The U-matrix [11] (The Unified distance matrix - ma trận đồng nhất
khoảng cách) là phương thức được sử dụng phổ biến nhất để thể hiện khoảng cách
giữa các neural một cách trực quan. Phương thức này sử dụng khoảng cách giữa
các neural như là một tiêu chuẩn để xác định ranh giới giữa các cụm dữ liệu. Nó

chứa khoảng cách Euclid từ mỗi neural trung tâm đến các “láng giềng” của nó. Sau
khi U-Matrix được tính xong thì sẽ được hiển thị dưới dạng lưới các hình lục giác như
một công cụ trực quan mạng. Khoảng cách giữa các neural cũng được hiển thị với
những màu sắc khác nhau.
Dịch mạng.
• Xác định ranh giới giữa các cụm.
Cách dịch U-matrix như sau: nếu giá trị khoảng cách giữa các neural lớn biểu
thị cho những dữ liệu không giống nhau (không cùng cụm); và ngược lại giá trị bé
biểu thị cho những dữ liệu giống nhau. Ta có thể tưởng tượng trong không gian 3 chiều
giá trị càng lớn thì độ cao càng lớn và do đó nó tạo thành những bức tường (Walls)
phân ranh giới trong khi đó giá trị bé tạo thành những thung lũng (valley) bị bao quanh
bởi những bức tường. Do đó dữ liệu trong những “thung lũng” là được gộp nhóm cùng
nhau và hiển thị một cụm. Khoảng cách giữa các neural sau khi được tính, có thể được
hiển thị với những màu khác nhau. Màu tối giữa các neural biểu thị cho khoảng cách
lớn. Màu sáng giữa các neural biểu thị các giá trị nhập là gần nhau. Và do đó vùng màu
sáng biểu thị dữ liệu cùng thuộc một cụm và vùng màu tối chính là ranh giới phân cách
giữa các cụm. Việc hiển thị này giúp ta có một cái nhìn trực quan, đầy đủ, rõ ràng,

11


chính xác về dữ liệu.

Hình 1.4: Những bức tường trong Kohonen.
• Xác định tính chất của từng cụm:
Việc xác định tính chất của từng cụm được thực hiện bằng vector trọng số
của các neural thuộc cụm đó. Sử dụng phương pháp của Sestilo & Dillon,1997.
Thành phần thứ k của vector trọng số phản ánh mức độ đóng góp của thành phần
thứ k của vector nhập.
Gọi (wij1,wij2, . . ., wijn)là vector trọng sốtại nút i,j trên lớp ra Kohonen.

Tìm wijmax=max((wij1,wij2,. . . , wijn).
Các đầu vào k có | wijmax - wijk | < T với T là ngưỡng nằm trong khoảng từ 0 đến 1. Giá
trị của ngưỡng T phản ánh mức độ biến thiên quanh trị Wijmax.
1.4. Thực thi mạng neural Kohonen
Có vài lớp có thể được sử dụng cùng nhau để tạo ra một mạng neural
Kohonen.
- KohonenNetwork – Thực thi các phương thức thuộc về mạng neural Kohonen.
Đây là nơi mà mạng neural Kohonen được huấn luyện và lấy các mẫu.
- Network – Chứa đựng các phương pháp không thuộc về mạng neural Kohonen.
Các lớp này chứa các phương pháp để tính toán tích vô hướng, và chiều dài vector.
- NeuralReportable – Một giao diện đơn giản cho phép mạng neural Kohonen trả
về thông tin tiến bộ sau khi mạng neural được huấn luyện.
- TrainingSet – Một tập huấn luyện chứa đối tượng, đó là có thể chứa các mảng
của các lần huấn luyện riêng lẻ. Tập huấn luyện có thể chứa cả các phần tử dữ liệu
đầu vào và dữ liệu đầu ra.

12


1.5. Kết luận
Trong chương này, luận văn đã trình bày những nội dung chính chủ yếu về:
sơ lược mạng neural; mạng Kohonen - SOM. Mạng Kohonen gồm 2 lớp: lớp vào
và lớp ra. Mối liên kết giữa lớp vào và lớp ra của chúng tương ứng với trọng số.
Hơn nữa mạng Kohonen là một phương pháp KPDL mạnh và có thể đạt
được kết quả tốt hơn, hoàn hảo hơn cần kết hợp với các phương pháp KPDL khác
để có thể đưa ra được kết quả chính xác.

CHƯƠNG 2
SOM VÀ PHÂN CỤM DỮ LIỆU


13


---------------------------------------------------------------------------------------------Chương này đề cập các vấn đề sau:
2.1. Phân cụm dữ liệu
2.2. Những kỹ thuật tiếp cận trong PCDL
2.3.Một số thuật toán cơ bản trong PCDL
2.4. Mạng neural trong phân cụm
2.5. SOM- Bài toán phân cụm
2.6. Giải quyết các vấn đề tồn tại khi phân cụm
---------------------------------------------------------------------------------------------2.1. Phân cụm dữ liệu:
2.1.1. Khái niệm:
PCDL là quá trình nhóm một tập các đối tượng tương tự nhau trong một tập
dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là tương đồng còn
các đối tương thuộc các cụm khác nhau có sự không tương đồng.
PCDL là kỹ thuật sử dụng quan sát đối tượng, mục đích để tổ chức một tập
các đối tượng cụ thể hoặc từu tượng vào các nhóm, cụm phân biệt. Bài toán phân
cụm thường được thực hiện khi chúng ta không biết được nội dung thông tin của
các thành phần thuộc cụm để định nghĩa trước các lớp. Vì lý do này mà công việc
phân cụm thường được nhìn dưới con mắt của học máy không giám sát, phương
pháp học mà khi ta cho trước một mẫu chỉ gồm các đối tượng cần tìm một cấu trúc
đáng quan tâm của dữ liệu và nhóm lại các dữ liệu giống nhau.
Quy trình phân cụm thể hiện như hình:
THUẬT TOÁN

N ĐỐI TƯƠNG

PHÂN CỤM

K CỤM


2.1.2. Các bước cơ bản trong phân cụm:
Bài toán phân cụm nói chung dựa theo các bước sau đây:

14


Chọn lựa đặc trưng: Các đặc trưng phải được lựa chọn một cách thích hợp
để có thể mã hóa và giảm thiểu sự dư thừa các đặc trưng. Các đặc trưng cần được
tiền xử lý trước khi thực hiện các bước tiếp theo.
Chọn độ đo tương tự: là độ đo chỉ ra mức tương tự hay khoảng cách giữa các
vecto đặc trưng. Phải đảm bảo các vecto đặc trưng góp phần như nhau trong việc
tính toán độ đo tương tự và không có đặc trưng nào lấn át đặc trưng nào.
Tiêu chuẩn phân cụm: Có thể được biểu diễn bởi hàm chi phí hay một vài
quy tắc khác và cũng phụ thuộc vào người lập trình .
Thuật toán phân cụm: Lựa chọn một thuật toán riêng biệt nhằm sáng tỏ cấu
trúc phân cụm của tập dữ liệu.
Công nhận kết quả: Khi có kết quả phân cụm thì cần kiểm tra tính đúng đắn
bằng cách đánh giá độ chính xác.
Giải thích kết quả: Phải kết hợp kết quả phân cụm với những bằng chứng
thực nghiệm và phân tích để đưa ra các kết luận đúng đắn.
2.2. Những kỹ thuật tiếp cận trong phân cụm dữ liệu
Mục đích của phân cụm là giảm kích thước dữ liệu bằng cách phân loại
hoặc nhóm các thành phần giống nhau. Tồn tại một số kỹ thuật phân cụm điển
hình [8].
2.2.1. Phương pháp phân cụm phân hoạch
Kỹ thuật này phân hoạch một tập hợp dữ liệu có n phần tử thành k nhóm
cho đến khi xác định số các cụm được thiết lập. Số các cụm được thiết lập là các
đặc trưng được lựa chọn trước. Phương pháp này là tốt cho việc tìm các cụm hình
cầu trong không gian Euclidean. Ngoài ra, phương pháp này cũng phụ thuộc vào

khoảng cách cơ bản giữa các điểm để lựa chọn các điểm dữ liệu nào có quan hệ
là gần nhau với mỗi điểm khác và các điểm dữ liệu nào không có quan hệ hoặc
có quan hệ là xa nhau so với mỗi điểm khác. Tuy nhiên, phương pháp này không
thể xử lí các cụm có hình dạng kỳ quặc hoặc các cụm có mật độ các điểm dầy
đặc. Các thuật toán phân hoạch dữ liệu có độ phức tạp rất lớn khi xác định nghiệm

15


tối ưu toàn cục cho vấn đề PCDL, do nó phải tìm kiếm tất cả các cách phân hoạch
có thể được. Như vậy, ý tưởng chính của thuật toán phân cụm phân hoạch tối ư u
cục bộ là sử dụng chiến lược ăn tham (Greedy) để tìm kiếm nghiệm.
2.2.2. Phương pháp phân cụm phân cấp
Phương pháp này xây dựng một phân cấp trên cơ sở các đối tượng dữ
liệu đang xem xét. Nghĩa là sắp xếp một tập dữ liệu đã cho thành một cấu trúc có
dạng hình cây, cây phân cấp này được xây dựng theo kỹ thuật đệ quy. Có hai
cách tiếp cận phổ biến của kỹ thuật này đó là:
* Hòa nhập nhóm, thường được gọi là tiếp cận Bottom-Up
* Phân chia nhóm, thường được gọi là tiếp cận Top-Down

Hình 2.1: Các chiến lược phân cụm phân cấp
Thực tế có nhiều trường hợp kết hợp cả hai phương pháp phân cụm phân
hoạch và phân cụm phân cấp, nghĩa là kết quả thu được của phương pháp phân
cấp có thể cải tiến thông qua bước phân cụm phân hoạch. Phân cụm phân hoạch
và phân cụm phân cấp là hai phương pháp PCDL cổ điển, hiện đã có rất nhiều
thuật toán cải tiến dựa trên hai phương pháp này đã được áp dụng phổ biến trong
KPDL.
2.2.3. Phương pháp phân cụm dựa trên mật độ
Kỹ thuật này nhóm các đối tượng dữ liệu dựa trên hàm mật độ xác định,
mật độ là số các đối tượng lân cận của một đối tượng dữ liệu theo một nghĩa nào

đó. Trong cách tiếp cận này, khi một dữ liệu đã xác định thì nó tiếp tục được phát

16


triển thêm các đối tượng dữ liệu mới miễn là số các đối tượng lân cận này phải lớn
hơn một ngưỡng đã được xác định trước. Phương pháp phân cụm dựa trên mật độ
của các đối tượng để xác định các cụm dữ liệu có thể phát hiện ra các cụm dữ liệu
với hình thù bất kỳ.
2.2.4. Phương pháp phân cụm dựa trên lưới
Kỹ thuật phân cụm dựa trên lưới thích hợp với dữ liệu nhiều chiều, dựa
trên cấu trúc dữ liệu lưới để phân cụm, phương pháp này chủ yếu tập trung áp
dụng cho lớp dữ liệu không gian. Mục tiêu của phương pháp này là lượng hóa dữ
liệu thành các ô tạo thành cấu trúc dữ liệu lưới. Sau đó, các thao tác phân cụm chỉ
cần làm việc với các đối tượng trong từng ô trên lưới chứ không phải các đối
tượng dữ liệu. Cách tiếp cận dựa trên lưới này không di chuyển các đối tượng
trong các ô mà xây dựng nhiều mức phân cấp của nhóm các đối tượng trong một
ô. Phương pháp này gần giống với phương pháp phân cụm phân cấp nhưng
chúng không trộn các ô, đồng thời giải quyết khắc phục yêu cầu đối với dữ liệu
nhiều chiều mà phương pháp phân phân cụm dựa trên mật độ không giải quyết
được. Ưu điểm của phương pháp phân cụm dựa trên lưới là thời gian xử lí nhanh
và độc lập với số đối tượng dữ liệu trong tập dữ liệu ban đầu, thay vào đó là chúng
phụ thuộc vào số ô trong mỗi chiều của không gian lưới.

Hình 2.2: Cấu trúc phân cấp
2.2.5. Phương pháp phân cụm dựa trên mô hình
Phương pháp phân cụm dựa trên mô hình cố gắng khớp giữa các dữ liệu

17



×