Người sử dụng mạng nơron nhân tạo thu thập các dữ liệu đặc trưng, và sau đó gọi các thuật toán huấn luyện để có thể tự học cấu trúc của dữ liệu.. Mô hình nơron nhân tạo cơ bản Nơron nh
Trang 1Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LÂM VIỆT THẮNG
MẠNG NƠRON KOHONEN – SOM ỨNG DỤNG TRONG PHÂN NHÓM SINH VIÊN
DỰA TRÊN KẾT QUẢ HỌC TẬP
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên 2014
Trang 2
Trước hết, em xin chân thành cảm ơn đến quý thầy cô trường Đại học Công nghệ thông tin và Truyền thông, đặc biệt là thầy cô đã tận tình dạy bảo cho em trong suốt thời gian học tập tại trường
Em xin gửi lời biết ơn sâu sắc đến thầy giáo Tiến sĩ Nguyễn Văn Tảo Thầy
đã dành rất nhiều thời gian, tâm huyết và tận tình giúp đỡ, hướng dẫn cho em trong suốt quá trình nghiên cứu và giúp em hoàn thành luận văn này
Mặc dù đã có nhiều cố gắng hoàn thiện luận văn bằng tất cả sự nhiệt tình và năng lực của mình, tuy nhiên không thể tránh khỏi những thiếu sót, rất mong nhận được những đóng góp quý báu của quý thầy cô và các bạn
Thái Nguyên, ngày 28 tháng 8 năm 2014
Học viên
Lâm Việt Thắng
Trang 3để hiểu được nó thì những phương pháp phân loại bình thường là chưa đủ mạnh Thực tế đã chứng minh cách tốt nhất để phân loại dữ liệu là dùng bộ óc con người Tất nhiên đó là điều vô cùng quý giá và khi ứng dụng chúng để giải quyết những vấn đề trong tin học đã đem lại những thành công ngoài mong đợi
Một máy tính, dù có mạnh đến đâu chăng nữa, đều phải làm việc theo một chương trình chính xác đã được hoạch định trước bởi các chuyên gia Bài toán càng phức tạp thì việc lập trình càng công phu
Từ lâu các nhà khoa học đã nhận thấy những ưu điểm của bộ óc con người
và tìm cách phát triển để máy tính có khả năng học tập, nhận dạng và phân loại Các mạng nơron nhân tạo (Artificial Neural Network, ANN) đã ra đời từ những nỗ lực đó ANN là một lĩnh vực nghiên cứu rộng lớn và chỉ mới phát triển mạnh khoảng 15 năm gần đây Tuy có nhiều kết quả khích lệ, nhưng ANN hãy còn xa mới đạt được sự hoàn chỉnh như bộ óc con người Và những ứng dụng trong công nghệ thông tin còn nhiều hạn chế
Trong khuôn khổ luận văn xin trình bày những nghiên cứu tổng quan về ANN, những lỗ lực cải tiến thuật toán, cài đặt và những ứng dụng của mạng nơron trong việc phân cụm dữ liệu số
Trang 44
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
NHIỆM VỤ LUẬN VĂN
Trong luận văn tập trung nghiên cứu nền tảng lý thuyết và ứng dụng của mạng nơron nhân tạo Cụ thể giải quyết bài toán phân cụm dữ liệu số trên máy tính với sự trợ giúp của mạng Kohonen-SOM Vì vậy trong khuôn khổ luận văn sẽ hướng tới hai mục đích chính:
1 Nghiên cứu mạng nơron cụ thể là mạng SOM, từ ý tưởng tự nhiên tới phương cách cài đặt trên máy tính đồng thời đưa ra những phương pháp cải tiến về mặt giải thuật nhằm đưa mạng nơron ứng dụng giải quyết bài toán phân cụm dữ liệu số
2 Ứng dụng mạng nơron giải quyết bài toán phân cụm thực tế biến những nghiên cứu, cải tiến trở lên hữu dụng
Trang 55
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
MỤC LỤC
MỤC LỤC 5
CHƯƠNG 1: TỔNG QUAN MẠNG NƠRON 7
1.1 Giới thiệu chung 7
1.2 Ý tưởng sinh học 7
1.3 Mô hình nơron nhân tạo cơ bản 9
1.4 Sử dụng mạng nơron nhân tạo 11
1.5 Thu thập dữ liệu cho mạng nơron nhân tạo 12
1.6 Perceptron nhiều lớp 14
1.6.1 Huấn luyện Perceptron nhiều lớp 14
1.6.2 Thuật toán backpropagation 15
1.6.3 Học quá mức và tổng quát hóa 16
1.6.4 Chọn lựa dữ liệu 18
1.7 Mô hình mạng nơron 18
1.7.1 Mô hình nơron và cấu trúc mạng 19
1.7.2 Cấu trúc dữ liệu 23
1.7.3 Kiểu huấn luyện 23
1.8 Tóm tắt 23
CHƯƠNG 2: KOHONEN-SOM VÀ PHÂN CỤM DỮ LIỆU 26
2.1 Tìm hiểu mạng Kohonen 26
2.2 Mạng Kohonen là gì? 26
2.2.1 Cấu trúc mô hình mạng Kohonen 28
2.2.2 Thuật toán phân cụm bằng mạng Kohonen 28
- – SOM 32
2.3.1 Tổng quan về SOM 32
2.3.2 SOM cơ bản 33
2.3.3 Khởi tạo mạng Kohonen (SOM) 33
2.3.4 Huấn luyện mạng Kohonen - Som 34
2.3.5 Tỉ lệ học 34
2.3.6 Cập nhật lại trọng số 35
Trang 66
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.3.7 Xác định nơron chiến thắng 36
2.4 Kohonen (SOM) và phân cụm dữ liệu 37
2.4.1 SOM phân cụm với bản đồ 1 chiều 37
2.4.2 SOM phân cụm với bản đồ 2 chiều 37
2.4.3 Xác định ranh giới các cụm 38
2.4.4 Trực quan mạng 39
2.4.5 Số lượng nhóm khi phân cụm 40
2.5 SOM –Thách thức trong quá trình phân cụm dữ liệu 41
2.5.1 SOM –Bài toán phân cụm màu 41
2.5.2 SOM –Thách thức phân nhóm 45
2.5.3 SOM –Vấn đề số lượng nhóm 47
2.6 SOM –Giải quyết những vấn đề tồn tại khi phân cụm 48
2.6.1 Giải pháp phân cụm tự nhiên trong quá trình học 48
2.6.2 Giới hạn điều chỉnh số lượng nhóm trên mạng SOM 51
CHƯƠNG 3: ỨNG DỤNG PHÂN CỤM ĐIỂM 54
3.1 Phát biểu bài toán ứng dụng 54
3.1.1 Nội dung 54
3.1.2 Mục đính- Yêu cầu 55
3.2 Phân tích thiết kế hệ thống cho ứng dụng 56
3.2.1 Xác định các tác nhân và các Use case 56
3.2.2 Biểu đồ Use Case 57
3.2.3 Biểu đồ trình tự cho từng Use Case 57
3.3 Chương trình ứng dụng 61
3.3.1 Giao diện tổng quan cho ứng dụng 61
3.3.2 Một số tính năng cho ứng dụng 62
3.3.3 Hướng dẫn sử dụng, chạy thử nghiệm 68
KẾT LUẬN 71
TÀI LIỆU THAM KHẢO 73
Trang 77
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CHƯƠNG 1: TỔNG QUAN MẠNG NƠRON
Mạng nơron nhân tạo (Artificial Neural Networks) trong một vài năm trở
lại đây đã được nhiều người quan tâm và đã áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa chất và vật lý Thật vậy, bất cứ ở đâu có vấn
đề về dự báo, phân loại và điều khiển, mạng nơron nhân tạo đều có thể ứng dụng được Sự thành công nhanh chóng của mạng mạng nơron nhân tạo có thể là do
một số nhân tố chính sau:
Năng lực: mạng nơron nhân tạo là những kỹ thuật mô phỏng rất tinh vi, có
khả năng mô phỏng các hàm cực kỳ phức tạp Đặc biệt, mạng nơron nhân tạo hoạt động phi tuyến Trong nhiều năm, mô hình tuyến tính là kỹ thuật được sử dụng rộng rãi trong hầu hết các lĩnh vực, vì thế mô hình tuyến tính có tính chiến lược tối
ưu hóa được biết nhiều nhất
Dễ sử dụng: mạng nơron nhân tạo có tính học theo các ví dụ Người sử
dụng mạng nơron nhân tạo thu thập các dữ liệu đặc trưng, và sau đó gọi các thuật toán huấn luyện để có thể tự học cấu trúc của dữ liệu Mặc dù người sử dụng làm tất cả những điều cần thiết để có thể chọn và chuẩn bị dữ liệu, sử dụng loại mạng phù hợp và có thể hiểu được các kết quả, nhưng mức độ người sử dụng biết cách
áp dụng thành công mạng nơron nhân tạo vẫn thấp hơn nhiều những người sử dụng các phương pháp thống kê truyền thống…
Mạng nơron nhân tạo dựa trên việc mô phỏng cấp thấp hệ thống nơron sinh
học Trong tương lai với sự phát triển mô phỏng nơron sinh học, chúng ta có thể có loại máy tính thông minh thật sự
1.2 Ý tưởng sinh học
Mạng nơron nhân tạo phát triển từ nghiên cứu về trí tuệ nhân tạo; đặc biệt
cố gắng bắt chước bộ não có cấu trúc cấp thấp về khả năng học và chấp nhận sai của hệ thống nơron sinh học
Suốt những năm 1960 – 1980 các nhà nghiên cứu về trí tuệ nhân tạo đã tìm
ra hệ chuyên gia dựa trên mô hình cấp cao về xử lý lý luận của bộ não Mặc dù mô
Trang 88
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
hình đã rất thành công trong một vài lĩnh vực, nhưng vẫn chưa bắt chước được trí tuệ con người Điều này là do cấu trúc mô hình chưa bằng bộ não Do đó, để tái tạo trí thông minh, chúng ta cần phải xây dựng những hệ thống có cấu trúc giống bộ não con người
Bộ não con người gồm một số rất lớn nơron (khoảng 10.000.000.000 nơron) kết nối với nhau (trung bình mỗi nơron kết nối với hàng chục ngàn nơron khác) Mỗi nơron là một tế bào đặc biệt, có thể truyền các tín hiệu điện Nơron có cấu trúc rễ ngõ vào, thân tế bào và cấu trúc rễ ngõ ra (sợi thần kinh) Các sợi thần kinh của một tế bào kết nối với các tế bào khác thông qua synapse Khi một nơron kích hoạt, nó tạo ra xung điện hóa học dọc theo sợi thần kinh Tín hiệu này đi qua các synapse đến các nơron khác, và tiếp tục bị kích hoạt Nơron hoạt động chỉ khi tất
cả các tín hiệu nhận được ở thân tế bào thông qua rễ ngõ vào vượt quá một mức nào đó (ngưỡng hoạt động)
Hình 1.2 : Cấu tạo tế bào nơron
Cường độ tín hiệu thu được của nơron phụ thuộc vào độ nhạy của synapse Chỉ có việc học làm thay đổi cường độ kết nối synapse Ví dụ như theo thí nghiệm
có điều kiện Pavlovian cổ điển, gõ chuông trước khi cho chó ăn tối, con chó nhanh chóng học được rằng rung chuông gắn liền với ăn Kết nối synapse giữa phần vỏ não thính giác và tuyến nước bọt đã nhạy hơn, vì thế khi rung chuông vỏ não thính giác bị kích thích, con chó bắt đầu tiết nước bọt
Do đó, từ một số rất lớn các đơn vị xử lý rất đơn giản này (mỗi đơn vị thực hiện tổng trọng số các ngõ vào sau đó kích hoạt một tín hiệu nhị phân nếu tổng ngõ
Trang 99
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
vào vượt quá ngưỡng), bộ não điều khiển để hoạt động những công việc cực kì phức tạp Dĩ nhiên, sự phức tạp trong hoạt động của bộ não không thể trình bày hết, nhưng dù sao mạng trí tuệ nhân tạo có thể đạt được một vài kết quả đáng chú ý với mô hình không phức tạp hơn bộ não
1.3 Mô hình nơron nhân tạo cơ bản
Nơron nhân tạo được định nghĩa như sau:
Nơron nhân tạo nhận một số các ngõ vào (từ dữ liệu gốc, hay từ ngõ ra các nơron khác trong mạng) Mỗi kết nối đến ngõ vào có một cường độ (hay trọng số), những trọng số này tương ứng với tác dụng synapse trong nơron sinh học Mỗi nơron cũng có một giá trị ngưỡng
Tín hiệu được truyền qua hàm kích hoạt (hay còn gọi là hàm truyền) tạo giá trị ngõ ra nơron
Hình 1.3(a): Mô hình nơron nhân tạo cơ bản
Nếu sử dụng hàm truyền nấc (nghĩa là ngõ ra nơron là 0 nếu ngõ vào nhỏ hơn 0, và là 1 nếu ngõ vào lớn hơn hay bằng 0) thì nơron hoạt động giống như nơron sinh học Thực tế, hàm nấc ít khi sử dụng trong mạng trí tuệ nhân tạo Lưu ý rằng trọng số có thể âm, nghĩa là synapse có tác dụng kiềm chế hơn là kích hoạt nơron, các nơron kiềm chế có thể tìm thấy trong bộ não
Trên đây mô tả các nơron đơn lẻ Trong thực tế các nơron được kết nối với nhau Khi mạng hoạt động, chúng phải có ngõ vào (mang giá trị hoặc biến của thế giới thực) và ngõ ra (dùng để dự báo hoặc điều khiển) Ngõ vào và ngõ ra tương ứng với các nơron giác quan và vận động, như tín hiệu đưa vào mắt và điều khiển
Trang 1010
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
cánh tay Tuy nhiên chúng còn có các nơron ẩn đóng vai trò ẩn trong mạng Ngõ vào, nơron ẩn và ngõ ra cần được kết nối với nhau
Hình 1.3(b): Mô hình mạng nơron nhân tạo cơ bản
Vấn đề chính ở đây là hồi tiếp Một mạng đơn giản có cấu trúc tiến: tín hiệu
đi vào ở ngõ vào, qua các nơron ẩn và cuối cùng đến các nơron ngõ ra Cấu trúc như thế chạy ổn định Tuy nhiên, nếu mạng có hồi tiếp (chứa các kết nối ngược trở
về các nơron trước đó) mạng có thể chạy không ổn định và dao động rất phức tạp Mạng hồi tiếp rất được các nhà nghiên cứu quan tâm, nhưng cấu trúc tiến đã chứng minh rất hiệu quả trong việc giải quyết các vấn đề thực tế
Mạng nơron nhân tạo tiến cho như hình dưới Các nơron được sắp xếp theo
cấu trúc liên kết lớp riêng biệt Lớp ngõ vào không phải là nơron thực: các nơron này hoạt động đơn giản là giới thiệu các giá trị của các biến vào Các nơron lớp ẩn
và lớp ngõ ra được kết nối với tất cả các nơron lớp trước đó Cũng như vậy chúng
ta có thể định nghĩa mạng có các kết nối một phần với một vài nơron trong lớp trước đó, tuy nhiên trong hầu hết các ứng dụng mạng có kết nối đầy đủ vẫn tốt hơn
Hình 1.3 ( c):Cấu trúc mạng nơron nhân tạo
Trang 1111
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Khi mạng hoạt động, các giá trị biến ngõ vào được đặt vào các nơron ngõ vào, và sau đó các nơron lớp ẩn và lớp ngõ ra lần lượt được kích hoạt Mỗi nơron tính giá trị kích hoạt của chúng bằng cách lấy tổng các trọng số ngõ ra của các nơron lớp trước đó, và trừ cho ngưỡng Giá trị kích hoạt truyền qua hàm kích hoạt tạo ra giá trị ngõ ra của nơron Khi toàn bộ mạng đã hoạt động, các ngõ ra của lớp ngõ ra hoạt động như ngõ ra của toàn mạng
1.4 Sử dụng mạng nơron nhân tạo
Một loạt vấn đề dẫn tới việc giải quyết bằng mạng nơron được định nghĩa
bằng cách nó làm việc hoặc nó được huấn luyện Mạng nơron nhân tạo làm việc từ
những ngõ vào khác nhau, đưa ra những ngõ ra khác nhau Do đó có thể sử dụng khi biết một vài thông tin và sẽ dự đoán những thông tin chưa biết
Điều kiện quan trọng trong việc sử dụng mạng nơron nhân tạo là phải biết
mối liên hệ giữa ngõ vào và ngõ ra biết trước Mối quan hệ này có thể kéo theo nhiều thứ nhưng nó nhất định phải tồn tại
Tổng quát, nếu ta sử dụng một mạng mạng nơron nhân tạo ta sẽ không biết
chính xác trạng thái tự nhiên của mối liên hệ giữa ngõ vào và ngõ ra, nếu ta biết
mối liên hệ ta sẽ làm mô hình đó trực tiếp Một tính năng khác của mạng nơron nhân tạo là nó có thể học mối liên hệ giữa ngõ vào và ngõ ra thông qua việc huấn luyện Có hai loại huấn luyện sử dụng trong mạng nơron nhân tạo là huấn luyện có
giám sát và không giám sát Với những loại mạng khác nhau thì sử dụng các loại huấn luyện khác nhau Huấn luyện có giám sát sử dụng thông dụng nhất
Trong việc học có giám sát, người sử dụng mạng phải có một tập hợp dữ liệu cần huấn luyện Tập hợp này chứa những ngõ vào mẫu với ngõ ra tương ứng và mạng
Trang 1212
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
sẽ huấn luyện để đưa ra mối liên hệ giữa ngõ ra và ngõ vào Tập hợp dữ liệu thường được lấy từ những bản ghi chép trước đó
Mạng nơron nhân tạo sau đó được huấn luyện bằng một trong các thuật
toán học có giám sát (ví dụ backpropagation), sử dụng các dữ liệu để điều chỉnh trọng số và ngưỡng của mạng sao cho cực tiểu hóa sai số trong việc dự báo của mạng trên tập huấn luyện Nếu mạng được huấn luyện chính xác, nghĩa là nó đã học mô phỏng một hàm chưa biết với mối liên hệ giữa ngõ ra và ngõ vào, do đó với các tín hiệu vào đến sau, mạng sẽ dự báo tín hiệu ra tương ứng
1.5 Thu thập dữ liệu cho mạng nơron nhân tạo
Một khi ta quyết định giải quyết một vấn đề sử dụng mạng nơron nhân tạo
ta cần phải thu thập dữ liệu cho mục tiêu huấn luyện Tập hợp dữ liệu huấn luyện bao gồm một số các trường hợp, mỗi trường hợp chứa những giá trị của tầm ngõ vào và ngõ ra khác nhau Những việc đầu tiên cần làm là: những biến nào sử dụng, bao nhiêu trường hợp cần thu thập
Sự lựa chọn các biến do trực giác quyết định Công việc chuyên môn của ta trong lĩnh vực cần giải quyết sẽ cho ta những ý tưởng về các biến ngõ vào phù hợp
Trong mạng nơron nhân tạo, ta có thể chọn và loại bỏ nhiền biến và mạng nơron nhân tạo cũng có thể xác định bằng thực nghiệm những biến hữu ích Trong bước
một ta nên tính đến bất kì biến nào mà ta nghĩ có ảnh hưởng đến quá trình thiết kế
Mạng nơron nhân tạo xử lý dữ liệu số trong một tầm giới hạn rõ ràng Điều
này đưa ra một vấn đề nếu dữ liệu nằm trong một vùng đặc biệt như dữ liệu chưa biết hay không phải dữ liệu số May mắn thay có nhiều phương pháp lý tưởng cho
vấn đề này, được xây dựng trên mạng nơron nhân tạo Dữ liệu số được chia nhỏ
thành những khoảng thích hợp cho mạng và những giá trị thiếu có thể được thay thế bằng giá trị trung bình hay giá trị thống kê của biến đó thông qua những biến khác đã được huấn luyện
Xử lý dữ liệu không phải là số thì khó hơn Loại dữ liệu không phải là số thông thường nhất là những biến có giá trị danh định như giới tính (nam, nữ) Biến
có giá trị danh định có thể biểu diễn bằng số học và mạng nơron nhân tạo có chức
Trang 1313
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
năng hỗ trợ điều này Tuy nhiên mạng nơron nhân tạo làm việc tốt với những
trường hợp biến danh định là một tập nhiều giá trị
Số trường hợp mẫu dùng để huấn luyện mạng rất khó xác định Đã có một vài hướng dẫn về mối liên hệ giữa số trường hợp mẫu với kích thước mạng (cách đơn giản nhất là số trường hợp mẫu gấp 10 lần số kết nối trong mạng) Thực ra số trường hợp mẫu cũng liên quan đến độ phức tạp của hàm mà mạng phải học Khi
số biến tăng lên, số trường hợp mẫu cần để huấn luyện cũng tăng phi tuyến, vì thế với một số nhỏ các biến (50 hoặc nhỏ hơn) thì lại cần một số lớn các trường hợp mẫu
Trong hầu hết các vấn đề trong thực tế, số trường hợp mẫu là khoảng hàng trăm hay hàng ngàn mẫu Đối với những vấn đề rất phức tạp thì cần nhiều hơn, nhưng trường hợp này rất ít Nếu dữ liệu huấn luyện ít hơn, rõ ràng không đủ thông tin để huấn luyện mạng, và cách tốt nhất là dùng mạng tuyến tính
Nhiều vấn đề trong thực tế có dữ liệu không đáng tin cậy, một vài dữ liệu bị phá
hỏng do nhiễu, hoặc các giá trị không phối hợp được với nhau Mạng nơron nhân tạo có khả năng đặc biệt xử lý dữ liệu bị mất (sử dụng giá trị trung bình hay những
giá trị thống kê khác) Vì thế nếu dữ liệu đưa vào ít, ta nên đưa vào những trường
hợp giá trị bị mất (rõ ràng nếu không có thì không lý tưởng) mạng nơron nhân tạo
cũng chịu được nhiễu, nhưng cũng phải có giới hạn Nếu thỉnh thoảng có giá trị nằm xa ra khỏi vùng giá trị bình thường thì mạng huấn luyện phải có ngưỡng Cách tốt nhất đối với trường hợp này là nhận ra và loại bỏ những giá trị nằm xa đó (có thể hủy trường hợp này hoặc xem giá trị nằm xa này là giá trị bị mất) Nếu giá
trị xa này khó nhận ra, mạng nơron nhân tạo có chức năng huấn luyện chịu được
giá trị nằm khỏi vùng này nhưng cách huấn luyện này thường kém hiệu quả hơn là huấn luyện chuẩn Tóm lại, cách thu thập dữ liệu có thể nói gọn lại như sau:
- Chọn những giá trị huấn luyện có tác dụng
- Dữ liệu số và danh định có thể xử lý trực tiếp bằng mạng nơron nhân tạo Chuyển những loại biến khác sang một trong các dạng này
Trang 1414
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Cần hàng trăm hoặc hàng ngàn trường hợp mẫu huấn luyện; càng nhiều biến thì càng nhiều mẫu huấn luyện mạng nơron nhân tạo có khả năng nhận ra những biến hữu dụng để huấn luyện
1.6 Perceptron nhiều lớp
Ngày nay, Perceptron là cấu trúc mạng được dùng phổ biến nhất Mỗi nơron lấy tổng trọng số và ngưỡng của ngõ vào, qua hàm truyền đến ngõ ra, các nơron được sắp xếp theo các lớp tới Vì thế mạng có thể mô phỏng các hàm phức tạp tùy theo số lớp và số nơron mỗi lớp
Tùy theo vấn đề mà các nơron có số ngõ vào và ngõ ra khác nhau Chúng ta không thể biết chính xác sẽ sử dụng bao nhiêu ngõ vào Tuy nhiên, chúng ta giả sử rằng số ngõ vào có thể chọn lựa dễ dàng Và để dễ dàng, thường ta chọn có một lớp ẩn và số nơron trong đó bằng một nửa tổng số ngõ vào và ngõ ra
1.6.1 Huấn luyện Perceptron nhiều lớp
Khi số các lớp, số nơron mỗi lớp đã được chọn, trọng số và ngưỡng của mạng phải được cài đặt sao cho có được cực tiểu sai số trong việc dự đoán của mạng Đây chính là công việc của các thuật toán huấn luyện Các trường hợp mẫu chúng ta thu thập đưa qua mạng để mạng tự điều chỉnh trọng số và ngưỡng sao cho cực tiểu hóa lỗi Lỗi trong một cấu hình cụ thể của mạng được xác định bằng cách cho chạy tất cả các trường hợp huấn luyện qua mạng, so sánh giá trị ngõ ra của mạng với giá trị mong muốn Lỗi này được tính theo hàm sai số của mạng Thông thường hàm sai số là tổng bình phương lỗi (SSE – Sum Squared Error)
Khái niệm cần biết thêm là mặt phẳng sai số Mỗi trọng số và ngưỡng trong tổng số N trọng số và ngưỡng được xem là một chiều trong không gian Chiều thứ (N + 1) là sai số mạng Đối với bất kỳ cấu hình trọng số nào, lỗi cũng có thể vẽ ở chiều thứ (N+1), tạo thành mặt phẳng lỗi Đối tượng của việc huấn luyện mạng là tìm điểm thấp nhất trong mặt phẳng nhiều chiều này
Trong mạng tuyến tính có hàm sai số SSE, mặt phẳng sai số là parapol, nghĩa là có một giá trị nhỏ nhất Do đó chúng dễ dàng xác định giá trị cực tiểu Chúng ta không thể xác định được vị trí giá trị nhỏ nhất của mặt phẳng sai số, và vì
thế huấn luyện mạng mạng nơron nhân tạo cần phải phân tích tỉ mĩ mặt phẳng sai
Trang 1515
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
số Từ cấu hình ngẫu nhiên các trọng số và ngưỡng ban đầu (nghĩa là điểm ngẫu nhiên trên mặt phẳng sai số) các thuật toán huấn luyện tìm kiếm đến giá trị nhỏ nhất Thông thường, việc tìm kiếm dựa trên gradient (độ dốc) trên mặt phẳng sai số tại điểm hiện tại, và sau đó sẽ di chuyển xuống giá trị nhỏ hơn Do đó có nhiều khả năng thuật toán dừng ở điểm thấp là điểm giá trị cực tiểu cục bộ (nhưng dù sao cũng hy vọng là giá trị nhỏ nhất)
1.6.2 Thuật toán backpropagation
Các ví dụ phổ biến nhất về thuật toán huấn luyện mạng nơron nhân tạo là
backpropagation Các thuật toán bậc hai hiện đại như conjugate gradient descent
và Levenberg – Marquardt cơ bản nhanh hơn trong nhiều vấn đề, nhưng backpropagation vẫn có một số ưu điểm trong một vài trường hợp khác, và là thuật toán dễ hiểu nhất
Trong backpropagation, vector gradient của mặt phẳng sai số được tính toán Vector này chỉ ra đường giảm dốc nhất và vị trí hiện tại, vì thế chúng ta biết rằng nếu chúng ta di chuyển dọc theo nó một “khoảng ngắn”, cuối cùng chúng ta
sẽ đạt được giá trị nhỏ nhất Khó khăn ở đây là quyết định độ lớn của từng bước di chuyển
Bước lớn có thể hội tụ nhanh hơn, nhưng có thể vượt quá điểm cần đến hay
đi ra khỏi vùng có cực tiểu (nếu mặt phẳng sai số bị lệch tâm) Ngược lại, bước quá nhỏ có thể đi đến đúng hướng nhưng chúng ta cần phải thực hiện phép lặp nhiều lần Trong thực tiễn, kích thước bước tỷ lệ với độ dốc và hằng số đặc biệt: tốc độ học Giá trị chính xác tốc độ học phụ thuộc vào từng ứng dụng cụ thể, và thường được chọn qua thực tiễn
Thuật toán thường có thêm khái niệm momentum Momentum sẽ thúc đẩy
di chuyển đi theo theo một hướng xác định nếu sau khi qua nhiều bước đi cùng một hướng, thuật toán sẽ di chuyển nhanh hơn, đưa đến khả năng thoát khỏi vùng giá trị cực tiểu cục bộ và cũng có thể di chuyển nhanh chóng qua vùng bằng phẳng
Thuật toán do đó xử lý lặp đi lặp lại, sau một số epoch Ở mỗi epoch, các trường hợp huấn luyện sẽ được đưa ra xem xét trong mạng, các ngõ ra thực và mong muốn được so sánh và tính toán lỗi Lỗi này kết hợp với gradent mặt phẳng
Trang 1616
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
sai số, sử dụng để điều chỉnh trọng số và sau đó quá trình xử lý lặp lại Cấu hình mạng ban đầu là ngẫu nhiên, và huấn luyện chỉ dừng lại khi số vòng lặp epoch tối
đa cho phép xảy ra hay khi sai số đạt được ở một mức cho phép, hoặc khi sai số không tăng nữa
1.6.3 Học quá mức và tổng quát hóa
Một vấn đề mà các kỹ thuật trên không thực sự cực tiểu sai số là khi chúng
ta đưa một trường hợp mới vào mạng Nói cách khác, thuộc tính mong muốn nhất của mạng là khả năng tổng quát hóa các trường hợp mới Thực ra, mạng được huấn luyện cực tiểu hóa sai số dựa trên tập huấn luyện, tập này không hoàn hảo và hữu hạn, rõ ràng sẽ không đúng khi cực tiểu sai số trên mặt phẳng sai số thực – mặt phẳng sai số của mô hình cơ sở và chưa biết
Sự phân biệt ở đây chính là học quá mức hay khít quá mức Cách dễ nhất để minh họa khái niệm này là việc dò theo đồ thị đường cong đa thức hơn là minh họa
bằng mạng nơron nhân tạo nhưng ý nghĩa thì giống nhau
Đa thức là phương trình có các hệ số và lũy thừa hằng số
ta muốn tìm ra đa thức biểu diễn dữ liệu này Dữ liệu có thể có nhiễu, vì thế chúng
ta không cần thiết tìm ra phương trình đúng nhất cho tất cả các điểm Đa thức bậc thấp hơn sẽ không thể đủ chính xác với tất cả các điểm, trong khi đó đa thức bậc cao hơn chính xác tất cả các dữ liệu sẽ rất phức tạp, đa thức này sẽ có đồ thị không đúng với hàm cơ sở
Mạng nơron nhân tạo cũng có vấn đề như vậy Mạng có càng nhiều trọng
số thì hàm càng phức tạp và do đó sẽ rơi vào tình trạng khít quá mức Mạng có ít trọng số hơn sẽ không đủ khả năng để mô phỏng hàm cơ sở Ví dụ như mạng không có các lớp ẩn chỉ mô phỏng hàm truyền tuyến tính đơn giản
Trang 1717
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Vậy chúng ta sẽ chọn lựa độ phức tạp của mạng đúng như thế nào? Mạng lớn hơn sẽ hầu như luôn luôn có được sai số nhỏ hơn, nhưng điều này có thể là khít quá mức hơn là một mô hình tốt
Câu trả lời là sử dụng xác nhận mức giao Vài mẫu huấn luyện được lưu lại
và không thực sự dùng cho huấn luyện trong thuật toán backpropagation Để thay thế, những mẫu này được sử dụng để kiểm tra độc lập trong quá trình của thuật toán Như vậy hiệu suất ban đầu của mạng luôn luôn bằng nhau ở những tập huấn luyện và xác minh lại Trong quá trình huấn luyện, sai số huấn luyện tự nhiên giảm xuống, và cho phép huấn luyện cực tiểu hóa hàm sai số thực, sai số xác minh cũng giảm xuống Tuy nhiên, nếu sai số xác minh không giảm, hay bắt đầu tăng lên, điều này có nghĩa là mạng bắt đầu khít quá mức dữ liệu, và huấn luyện nên dừng
lại (có thể cài đặt mạng nơron nhân tạo tự động dừng lại khi bắt đầu học quá mức)
Trường hợp khít quá mức xảy ra trong quá trình xử lý huấn luyện gọi là học quá mức Trong trường hợp này, chúng ta nên giảm số nơron ẩn hay/và lớp ẩn vì mạng quá mạnh đối với vấn đề này Ngược lại, nếu mạng không đủ mạnh để mô phỏng hàm cơ sở, học quá mức không có khả năng xảy ra, cũng như sai số huấn luyện hay xác minh lại không rơi vào mức bão hòa
Những vấn đề liên quan đến cực tiểu cục bộ, và những quyết định sử dụng quá kích thước của mạng, nghĩa là chúng ta phải chạy thử trên nhiều mạng khác nhau, có thể huấn luyện mỗi mạng vài lần (để tránh rơi vào trường hợp cực tiểu cục bộ sai số) và quan sát hiệu suất từng mạng Điều quan trọng là quan sát sai số xác minh Tuy nhiên, nên nhớ rằng nên mô phỏng mạng đơn giản hơn là mạng phức tạp, chúng ta cũng thể chọn mạng nhỏ hơn là mạng lớn có khả năng cải thiện sai số xác minh không đáng kể
Vấn đề đối với kỹ thuật này về việc thí nghiệm lặp đi lặp lại là tập xác minh không thực sự đóng vai trò chọn lựa mạng, nghĩa là nó chỉ là một phần trong quá trình huấn luyện Độ tin cậy của nó chỉ ở mức độ vừa phải – khi số lần thí nghiệm
đủ, chúng ta có khả năng rơi vào trường hợp mạng thực hiện tốt trên tập xác minh
Để thêm độ tin cậy hiệu suất của mô hình cuối cùng thì trong thực tế thường sử dụng thêm một tập thứ ba – là tập kiểm tra Mô hình cuối cùng được kiểm tra với
Trang 1818
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
tập dữ liệu kiểm tra để đảm bảo rằng kết quả của tập xác minh và huấn luyện là thật
Tóm lại, việc thiết kế mạng (khi các biến ngõ vào đã được chọn) gồm các bước sau:
Chọn cấu hình ban đầu (thường một lớp ẩn có số nơron ẩn bằng nửa tổng số nơron ngõ vào và ngõ ra)
Thực hiện lặp đi lặp lại số thí nghiệm của mỗi cấu hình, giữ lại mạng tốt nhất (thường dựa trên sai số xác minh) Thí nghiệm nhiều lần trên mỗi cấu hình mạng để tránh rơi vào sai số cục bộ
Trong mỗi lần thí nghiệm, nếu xảy ra việc học chưa đủ (mạng không đạt được mức hiệu suất chấp nhận) thì thử tăng số nơron trong lớp ẩn Nếu không hiệu quả, thì thêm một lớp ẩn
Nếu xảy ra học quá mức (sai số xác minh bắt đầu tăng lên) thử bỏ bớt một vài nơron ẩn (và có thể bỏ lớp ẩn)
1.6.4 Chọn lựa dữ liệu
Các bước mô tả trên đều dựa trên một giả định, đó là dữ liệu huấn luyện, xác minh và kiểm tra phải đại diện cho mô hình cơ sở (hơn nữa, ba tập này phải độc lập) Nếu dữ liệu huấn luyện không đặc trưng thì giá trị mô hình chỉ là một sự dàn xếp, xấu nhất có thể không sử dụng được
Tương lai không phải là quá khứ Dữ liệu huấn luyện đặc trưng cho những
gì đã xảy ra Nếu môi trường thay đổi, mối quan hệ nơron trong mạng không còn phù hợp nữa
Tất cả các trường hợp phải được khái quát Mạng nơron nhân tạo chỉ có thể học từ những mẫu được đưa vào Do đó mạng nơron nhân tạo không thể có một quyết định đúng khi nơron chưa được huấn luyện
Mạng chỉ có thể học theo cách dễ nhất mà nó có thể Backpropagation có tính chất tốt như nhau nếu dữ liệu rất ít
1.7 Mô hình mạng nơron
Mô hình mạng nơron tổng quát có dạng như sau:
Trang 1919
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1.7: Mô hình mạng nơron nhân tạo
Ngày nay mạng Nơron có thể giải quyết nhiều vấn đề phức tạp đối với con người, áp dụng trong nhiều lĩnh vực như nhận dạng, định dạng, phân loại, xử lý tín hiệu, hình ảnh v.v…
1.7.1 Mô hình nơron và cấu trúc mạng
1.7.1.1 Mô hình nơron
Cấu trúc một Nơron:
Ngõ vào một nơron có thể là đại lượng vô hướng hoặc có hướng, đại lượng này được nhân với trọng số tương ứng để đưa vào nơron, hoặc có thể cộng thêm ngưỡng (bias), thường bằng 1 Dưới đây là mô hình một nơron với ngõ vào vô hướng p không có ngưỡng b (hình bên trái) và có ngưỡng b (hình bên phải) Ngõ vào vô hướng p được nhân với trọng số vô hướng w tạo thành wp, đối số wp (hình
bên trái) qua hàm truyền f cho kết quả đầu ra là vô hướng a = f(wp) Hình bên phải
là nơron có ngưỡng b, giá trị b được cộng với wp rồi qua hàm truyền f cho kết quả đầu ra là vô hướng a = f(wp+b) Có thể điều chỉnh những thông số của nơron như
trọng số và ngưỡng (w và b) để đạt được yêu cầu mong muốn nghĩa là “huấn luyện” mạng
Trang 2020
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1.7.1.1(a) : Cấu trúc một Nơron
Hàm truyền
Có rất nhiều hàm truyền áp dụng trong mạng nơron nhân tạo, trong đó ba
hàm thường sử dụng nhất là Hard Limit, Linear, Log-Sigmoid Tổng quát với một hàm truyền có đầu vào là một hoặc một nhóm vector thì đầu ra là :
Nơron với Vector nhập
Một nơron được cho trên hình vẽ sau với vector nhập p = [p1 , p2 , ……pR ], trọng số W = w1,1, w1,2,……w1,R, ngưỡng b và hàm truyền f Tổng đối số và
ngưỡng tạo ở ngõ ra n là
n = w1,1p1 + w1,2,p2 + ……w1,R pR + b
hay n = W*p + b
Hình 1.7.1.1(b) : Nơron với vector nhập
Nếu có nhiều nơron thì cách biểu diễn trên không hiệu quả, do đó có thể định nghĩa một lớp gồm nhiều nơron như sau
Trang 2121
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1.7.1.1(c) : Nơron với vector nhập
1.7.1.2 Cấu trúc mạng
Hai hay nhiều nơron kết hợp thành một lớp, và một mạng riêng biệt có thể chứa một hay nhiều lớp nơron
Một lớp nơron
Trong hình dưới mô tả một lớp nơron với:
R: số phần tử của vectơ đầu vào
S: số nơron trong lớp
a: vector ngõ ra của lớp nơron
Hình 1.7.1.2 (a) : Một lớp nơron
Ma trận trọng số W:
Trang 2222
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
R S S
S
R R
w w
w
w w
w
w w
w W
, 2
, 1 ,
, 2 2
, 1 1 , 2
, 1 2
, 1 1 , 1
đƣợc gọi là lớp ngõ ra _ output layer, tất cả các lớp còn lại đƣợc gọi là lớp ẩn _ hidden layers Mạng đa lớp có khả năng xử lý rất lớn Chẳng hạn nhƣ một mạng có
hai lớp, lớp thứ nhất là sigmoid, lớp thứ hai là linear có thể đƣợc huấn luyện đến một hàm gần đúng với một số kết nối cố định
Trang 2323
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
1.7.2 Cấu trúc dữ liệu
Cấu trúc định dạng của dữ liệu vào ảnh hưởng đến việc mô phỏng của
mạng Có hai loại mạng static network và dynamic network Hai kiểu vector đầu
vào cơ bản là kiểu xảy ra đồng thời (concurrently) và kiểu xảy ra liên tục theo thời gian (sequentially)
Kiểu đầu vào xảy ra đồng thời được mô phỏng trong mạng tĩnh (không có hồi tiếp hoặc trễ), thứ tự của các vector đầu vào không quan trọng và chúng không ảnh hưởng lẫn nhau
Kiểu đầu vào xảy ra liên tục được mô phỏng trong mạng dynamic Thứ tự các giá trị đầu vào rất quan trọng Trong trường hợp này, giá trị đầu ra thu được là
do giá trị vào hiện tại và giá trị vào trước đó Nếu thay đổi thứ tự của dữ liệu vào thì sẽ làm thay đổi dữ liệu ra
1.7.3 Kiểu huấn luyện
Trong phần này mô tả hai kiểu huấn luyện khác nhau
Incremental training: trọng số và ngưỡng của mạng được cập nhập mỗi
khi có dữ liệu vào mạng Kiểu này ứng dụng trong cả hai mạng tĩnh và động, tuy nhiên thường dùng trong mạng động nhiều hơn, như là những bộ lọc thích ứng
Batch training: trọng số và ngưỡng của mạng chỉ được cập nhập sau khi tất
cả dữ liệu đã vào mạng, dùng trong cả hai mạng tĩnh và động
1.8 Tóm tắt
Từ khi ra đời và phát triển, mạng nơron đã được ứng dụng trong nhiều lĩnh vưc khác nhau Không thể liệt kê được hết ứng dụng của mạng nơron, tuy nhiên ta
có thể thấy một số ứng dụng điển hình như sau:
- Tài chính - ngân hàng: định giá bất động sản, cho vay, kiểm tra tài sản cầm
cố giá mức độ hợp tác, phân tích đường tín dụng, chương trình thương mại thông qua giấy tờ, cấp phát thẻ tín dụng, phân tích tài chính liên doanh, dự báo tỉ giá tiền tệ,…
- Quân sự: định vị phát hiện vũ khí, dò tìm mục tiêu, nhận dạng người nói, phân luồng rada
Trang 2424
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Y học: xử lý, chuẩn đoán hình ảnh trong y học, phân tích tín hiệu điện tâm đồ,…
- Bảo hiểm: Đánh giá việc áp dụng các chính sách xã hội, tối ưu hóa sản phẩm
- Giao thông: các hệ thống dẫn đường tự động trong ô tô, các bộ phận hoạt động của xe,…
- Hàng không: 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ận phát hiện lỗi,
- Giải trí: tạo các hiệu ứng đặc biệt, hoạt hình,
- Thiết bị điện tử: dự báo mã tuần tự, sơ đồ chip IC, điều khiển tiến trình, phân tích nguyên nhân hỏng chip,
- Nhận dạng mẫu: phân loại 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,
- Xử lý tín hiệu: phân tích tín hiệu địa chấn và hình thái học
- 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,…
- Vấn đề lập kế hoạch, điều khiển và tìm kiếm: Gồm cài đặt song song các bài toán thỏa mãn ràng buộc, bài toán lập thời khóa biểu cho trường đại học, bài toán người đi du lịch,
- Giải các bài toán tối ưu: Vấn đề chính là tìm những thuật toán huấn luyện mạng để góp phần tìm nghiệm cho nhiều lớp bài toán tối ưu toàn cục
Tóm lại, mạng nơron nhân tạo được xem là một cách tiếp cận đầy tiềm năng
để giải quyết các bài toán có tính phi tuyến, phức tạp và đặc biệt trong tình hình các dữ liệu đầu vào không tường minh
Đầu vào của một nơron gồm ngưỡng b và tổng các trọng số vào Ngõ ra của nơron phụ thuộc vào đầu vào và hàm truyền nơron đơn rất ít sử dụng Tuy nhiên một vài nơron có thể kết hợp thành một lớp hay nhiều lớp thì khả năng xử lý cao hơn Vấn đề đơn giản có thể trình bày bằng một lớp đơn Tuy nhiên, nó không giải quyết được nhiều vấn đề phức tạp Mạng đa lớp feedforward có khả năng giải quyết lớn hơn
Trang 2525
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Cấu trúc một mạng có thể mô tả bằng số lớp, số nơron trong một lớp, hàm truyền của mỗi lớp và kết nối giữa các lớp Tùy thuộc vấn đề mạng cần giải quyết
mà có cấu trúc khác nhau
Nếu một ánh xạ tuyến tính cần mô tả nên sử dụng nơron tuyến tính Tuy nhiên, mạng tuyến tính không thể thực hiện bất cứ tính toán phi tuyến nào Sử dụng hàm truyền phi tuyến để tạo cho mạng có khả năng thực hiện mối quan hệ phi tuyến giữa đầu vào và đầu ra Mạng có ngƣỡng b có thể mô tả mối quan hệ giữa đầu vào và đầu ra dễ dàng hơn mạng không có ngƣỡng b Ví dụ một nơron không có ngƣỡng sẽ luôn tạo ra ngõ vào zero cho hàm truyền (khi tất cả ngõ vào nơron là zero) Tuy nhiên một nơron với ngƣỡng có thể học để tạo ra một ngõ nhập cho bất kỳ hàm truyền
Trang 2626
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CHƯƠNG 2: KOHONEN-SOM VÀ PHÂN CỤM DỮ LIỆU
2.1 Tìm hiểu mạng Kohonen
Trong các kiểu khác nhau của mạng nơron, mạng nơron Kohonen giống với mạng nơron sinh học hơn cả về cấu tạo lẫn cơ chế học Mạng nơron nhân tạo này lần đầu tiên được giới thiệu bởi Kohonen vào năm 1982, nó được biết đến như là ánh xạ đặc trưng tự tổ chức (SOM) Ánh xạ tự tổ chức của Kohonen còn được biết đến là một trong những mô hình khá đơn giản của mạng nơron, và người ta thường gọi đó là mạng nơron Kohonen
Mạng nơron Kohonen (hay nơron tự tổ chức) mô hình hóa cách hoạt động
bộ não của con người, mặc dù nó khá đơn giản Chúng ta có thể nhận được một số
ý tưởng cách bộ não lưu trữ hình ảnh và cách nó nhận dạng các hình ảnh
Cách xử lý thông tin các mạng nơron khác thường chỉ quan tâm đến giá trị
và dấu hiệu của thông tin đầu vào, chưa quan tâm khai thác các mối liên hệ có tính chất cấu trúc trong lân cận của các vùng dữ liệu mẫu, hay toàn thể không gian Nhưng trong mạng nơron Kohonen đã quan tâm đến các yếu tố này
Tự tổ chức trong mạng nơron là một trong những chủ đề cuốn hút trong mạng nơron Một mạng nơron như vậy có thể được luyện để tìm ra các quy luật và các tương quan, các giá trị nhập vào và dự đoán các kết quả tiếp theo Các nơron của mạng thông qua quá trình luyện cạnh tranh để nhận ra một nhóm các đối tượng đầu vào tương đương nhau Mục đích chính của việc luyện trong mạng nơron Kohonen là nhận dạng một nhóm các vector đầu vào cùng loại
2.2 Mạng Kohonen là gì?
Mạng Kohonen là một kỹ thuật trực quan dữ liệu được phát minh bởi giáo sư Teuvo Kohonen, nó giúp giảm số chiều (kích thước) của dữ liệu, qua đó giúp cho chúng ta hiểu được dữ liệu với kích thước lớn đó
Điểm nổi bật của thuật toán SOM là nó sẽ chuyển các dạng quan hệ phức tạp, thống kê rời rạc giữa các đối tượng dữ liệu đa chiều (n chiều) về các quan hệ hình học trực quan đơn giản với số chiều được rút gọn đi nhiều lần - thường là một hoặc
Trang 2727
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
hai chiều Về bản chất giải thuật đƣợc biết đến nhƣ là kỹ thuật nén dữ liệu dựa trên véc tơ trọng số [2]
Trang 2828
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.2.1 Cấu trúc mô hình mạng 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 nơron 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 nơron của lớp vào đều được nối với các nơron 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 2.1 Cấu trúc mạng Kohonen
2.2.2 Thuật toán phân cụm bằng mạng Kohonen
Xét một tập dữ liệu là các véc tơ trong không gian n chiều
V = [V1, V2, ,Vn]
Khởi tạo tham số thời gian t: t = 0
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ử nơron chiến thắng:
Trang 2929
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 2.2 Phần tử nơron chiến thắng BMU
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:
2 0
Bước 4: Xây dựng các phần tử lân cận
Các nơron lân cận tùy thuộc vào bán kính, được sắp xếp trong lưới theo hình chữ nhật hoặc hình lục giác Số các lân cận xác định trọng tâm của ma trận kết quả, có ảnh hưởng đến độ chính xác và khả năng sinh ma trận của SOM
Hình 2.3 Các vùng lân cận
Trang 3030
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Đặ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:
σ: 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)
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:
Trang 3131
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- 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:
L0: Giá trị khởi tạo ban đầu của tốc độ học; λ: hằng số thời gian
- 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
Chú ý: Số lượng vector của tập huấn luyện là có giới hạn Để cho việc huấn
luyện mang lại kết quả tốt nhất đòi hỏi số bước huấn luyện phải lớn và nếu kích thước của tập huấn luyện là nhỏ thì những mẫu huấn luyện có thể được sử dụng lặp lại, những mẫu có thể được áp dụng đều đặn theo chu kỳ hoặc theo một trật tự hoán vị ngẫu nhiên [8]
Thuật toán SOM với những ưu điểm của nó, đã trở thành công cụ có ích trong phân cụm và rút gọn kích thước dữ liệu Đó là tạo ra hàm phân bố xác suất cho tập dữ liệu bao lớp, dễ giải thích và quan trọng nhất là trực quan mạng tốt Tùy theo vấn đề cần giải quyết, các chuyên gia phân cụm dữ liệu có thể chọn phương pháp khác nhau
để phân tích dữ liệu đưa ra
Trong phân cụm dữ liệu, có rất nhiều phương pháp ứng dụng nó Độ đo khoảng cách có thể căn cứ vào liên kết đơn hoặc liên kết đầy đủ Hạn chế trong liên kết đó là các cụm dễ trở thành chuỗi dài do đó không điển hình cho dữ liệu Mặt khác, liên kết đầy đủ đôi khi vượt quá giới hạn cho phép Việc kết hợp liên kết giữa liên kết đơn và liên kết đầy đủ được thực hiện bằng cách gắn độ đo các điểm trong cụm với trọng số phù hợp Như vậy, độ đo vừa gắn được giá trị cho tất cả các điểm giống nhau như khoảng cách vừa giữ được hình thái của cụm dữ liệu Phương pháp SOM có thể hoàn toàn được dùng như một phép đo
Trang 3232
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
SOM là phương pháp phân cụm theo cách tiếp cận mạng nơron Véc tơ trọng số của ma trận SOM chính là trọng tâm cụm, việc phân cụm có thể cho ra kết quả tốt hơn bằng cách kết hợp các đơn vị trong ma trận để tạo thành các cụm lớn hơn [7]
Dùng SOM như một bước trung gian để phân cụm, đó là cách tiếp cận gồm hai mức: lớp đầu tiên phân cụm dữ liệu và sau đó phân cụm SOM Với mỗi véctơ dữ liệu của tập dữ liệu bao lớp thuộc cùng một cụm có mẫu gần nó nhất Một ưu điểm của cách tiếp cận này là giảm thời gian tính toán, điều này dễ dàng phân biệt được với các thuật toán phân cụm khác mà điển hình là cây phân cấp thậm chí với một lượng nhỏ các ví dụ bao lớp cũng trở lên nặng nề Chính vì vậy cách tiếp cận này là hoàn toàn phù hợp cho việc phân cụm một tập các mẫu hơn là làm trực tiếp trên tập dữ liệu
Đây là một phép chiếu phi tuyến tính đem lại một “mạng đặc trưng” hai chiều có thể được
sử dụng trong việc phát hiện và phân tích những đặc trưng trong không gian
dạng tiếng nói, phân lớp ảnh và gom cụm văn bản
2.3.1 Tổng quan về SOM
SOM (Self-Organizing Maps – Mạng nơron 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 đề xướng vào những năm 70 của thế kỷ trước Vì thế có tên gọi khác cho loại mạng này là “Mạng
(Financial Analysis) v(Natural Language Processing), xử lý ảnh (image processing), phân cụm dữ liệu (clustering data) vv…
-, 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
Trang 3333
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
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 Bởi 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
2.3.3 Khởi tạo mạng Kohonen (SOM)
Trong thuật toán SOM cơ sở mối quan hệ giữa các topo và số nơron được
bố trí ngay từ đầu Số lượng các nơron thường được lựa chọn là lớn nhất với kích thước lân cận điều chỉnh độ mịn và tính khái quát của bản đồ Bản đồ không bị ảnh hưởng nhiều khi số lượng nơron vượt quá số lượng vector đầu vào nếu kích thước lân cận được lựa chọn thích hợp Khi kích thước của bản đồ tăng số lượng nơron các giai đoạn huấn luyện trở nên nặng nề và khó khăn Trước khi huấn luyện phải khởi tạo giá trị ban đầu cho vector trọng số Có ba phương pháp khởi tạo được sử dụng: Khởi tạo ngẫu nhiên, khởi tạo sử dụng hàm mẫu ban đầu, khởi tạo tuyến tính
- Khởi tạo ngẫu nhiên: Các giá trị ngẫu nhiên được gán cho vector bảng mã đây là trường hợp được sử dụng khi dữ liệu đầu vào tại thời gian khởi tạo không có
gì hoặc ít được biết đến
- Khởi tạo sử dụng mẫu ban đầu: Sử dụng các mẫu ban đầu được thực hiện bởi các mẫu ban đầu của bộ dữ liệu đầu vào và có thể được sử dụng cho khởi tạo vector bảng mã Điều này có lợi thế mà các điểm tự động đặt trong cùng một phần
tử không gian đầu vào với dữ liệu
- Khởi tạo tuyến tính: Phương pháp khởi tạo sử dụng phân tích các thành phần chính của dữ liệu đầu vào Vector bảng mã được khởi tạo nằm trong cùng
Trang 3434
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
một không gian đầu vào được kéo dài bởi 2 vector đặc trưng tương ứng với những giá trị riêng lớn nhất của dữ liệu đầu vào Điều này có tác dụng kéo SOM cùng hướng dữ liệu có năng lượng quan trọng nhất Phương pháp khởi tạo tuyến tính được sử dụng thành công Tuyến tính là phương pháp tốt cho khởi tạo bản đồ đa chiều
2.3.4 Huấn luyện mạng Kohonen - Som
Bước 1: Lựa chọn ngẫu nhiên vector mẫu x từ tập dữ liệu đầu vào và sử dụng các biện pháp đo khoảng cách giữa vector mẫu và các vector trọng số của bản đồ Thông thường sử dụng biện pháp đo khoảng cách Euclide Chọn phần tử trùng khớp nhất BMU kí hiệu c là đơn vị của vector trọng số có sự tương đồng lớn nhất với mẫu đầu vào x BMU được xác định bằng công thức:
hướng về vector mẫu
Thông thường quá trình huấn luyện được thực hiện qua hai giai đoạn Giai đoạn 1: So sánh giá trị ban đầu và bán kính vùng lân cận Giai đoạn 2 giá trị ban đầu và bán kính vùng lân cận phải nhỏ hơn giai đoạn 1 Giai đoạn này điều chỉnh khoảng cách lần đầu tiên của dữ liệu đầu vào với vector trọng số sau đó tinh chỉnh lại bản đồ [2]
2.3.5 Tỉ lệ học
Tỉ lệ học kí hiệu là α, là một hằng số và luôn luôn nhỏ hơn 1, thông thường ta đặt cho tham số học một giá trị từ 0.4 đến 0.5 hoặc thấp hơn Tỉ lệ học lớn sẽ làm cho quá trình học nhanh hơn Tuy nhiên nếu tỉ lệ học quá cao thì hội tụ sẽ không bao giờ xảy ra
Một số thuộc tính của hàm
- 1> α(t) >0
Trang 3535
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Giảm dần đều theo thời gian
Tỉ lệ học α có thể chấp nhận một số hàm khác nhau:
α(t)=1- α0(t/T) Với kết quả phân cụm tốt nhƣng hội tụ chậm hơn
α(t)=a0ta Hội tụ nhanh hơn và kết quả tốt hơn
α(t)=a0l-at Hội tụ nhanh nhất nhƣng kết quả không đúng
Hàm thứ 2 là chấp nhận đƣợc với α(t) trong khoảng [0.05-0.9] và luôn chọn giá trị nhỏ hơn gần đến 1
Hình 2.4: Hàm tỉ lệ học theo thời gian
2.3.6 Cập nhật lại trọng số
Sau khi tìm kiếm các đơn vị phù hợp nhất Các đơn vị trong SOM sẽ đƣợc cập nhật Trong suốt quá trình cập nhật, đơn vị phù hợp nhất sẽ đƣợc cập nhật để đƣợc gần hơn các vector mẫu trong không gian đầu vào Topo lân cận của đơn vị
Trang 3636
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
phù hợp nhất cũng được cập nhật Việc cập nhật sẽ được trải dài BMU và topo lân cận đối với vector mẫu Có hai phương thức cập nhật trọng số khi huấn luyện SOM Phương thức thứ nhất là phương pháp cộng: Một phần nhỏ cuả vector đầu vào sẽ được thêm vào vector trọng số sau đó tổng hợp lại đơn vị chiều dài X là vector huấn luyện mạng, w(t) là vector trọng số của nơron chiến thắng tại thời điểm t, cập nhật vector trọng số w(t+1) có thể tính toán với công thức:
Với : w(t): Vector trọng số; w(t+1): Cập nhật vector trọng số
x: vector đầu vào; α(t): Tỉ lệ học
Ngoài phương pháp cộng người ta có thể sử dụng phương pháp trừ được mô
tả bằng công thức:
w(t 1) w(t) α(t)[x(t)-w(t)]
Với w(t): Vector trọng số; w(t+1): Cập nhật vector trọng số
x: vector đầu vào; α(t): Tỉ lệ học
2.3.7 Xác định nơron chiến thắng
SOM gồm có một lớp nơron tự tổ chức, mảng hai chiều hoặc đa chiều Nơron
có nhiều kết nối đầu vào do bởi có một số thuộc tính được sử dụng trong phân loại Thủ tục huấn luyện gồm có: Tìm ra nơron với trọng số gần nhất từ vector dữ liệu đầu vào và khai báo nơron như là nơron chiến thắng Khi trọng số của tất cả các nơron ở lân cận nơron chiến thắng được điều chỉnh bởi số lượng tỉ lệ với khoảng cách Phạm vi được công nhận bị giảm như là số lần lặp được tăng lên Quá trình huấn luyện được hoàn thành nếu một số quy định lặp đạt được
Khoảng cách Euclide được sử dụng SOM xác định nơron chiến thắng Mỗi đầu vào được gán cho một trọng số bởi một nơron tương ứng với vector trọng số
và kết quả được tổng hợp Điều này đại diện cho đầu vào thực của nơron đặc biệt
K đại diện cho nơron thứ k và n thuộc tính được sử dụng đại diện cho đầu vào cuối cùng