Nghiên cứu phương pháp phân cụm nửa giám sát và ứng dụng

69 521 0
Nghiên cứu phương pháp phân cụm nửa giám sát và ứng dụng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

i LỜI CAM ĐOAN Tôi xin cam đoan đề tài với tiêu đề Nghiên cứu phương pháp phân cụm nửa giám sát ứng dụng công trình nghiên cứu thực hướng dẫn giáo viên hướng dẫn khoa học Các kết nghiên cứu kết thử nghiệm nêu luận văn trung thực chưa công bố tài liệu khác Trong phần kiến thức chung, nghiên cứu giải thuật áp dụng số thực nghiệm kết tương ứng có tham khảo số tài liệu có trích dẫn đầy đủ Học viên Phan Thị Thu Nga ii MỤC LỤC LỜI CAM ĐOAN i LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ HỌC MÁY VÀ BÀI TOÁN PHÂN CỤM, PHÂN CỤM NỬA GIÁM SÁT 1.1 Khái niệm trí tuệ nhân tạo học máy 1.2 Các nghiên cứu sử dụng học máy 1.3 Ứng dụng phương pháp học máy 1.4 Khái niệm toán phân cụm 1.5 Các yêu cầu toán phân cụm 1.6 Các chiến lược phương pháp phân cụm liệu [2] 11 1.8 Đánh giá kết thuật toán phân cụm 17 1.9 Phương pháp phân cụm nửa giám sát 17 CHƯƠNG MỘT SỐ THUẬT TOÁN PHÂN CỤM NỬA GIÁM SÁT 19 2.1 Giới thiệu toán phân cụm nửa giám sát 19 2.2 Thuật toán phân cụm nửa giám sát với K-Means 21 2.2.1 Thuật toán K-Means 21 2.2.2 Thuật toán Seed K-Means 26 2.3 Thuật toán phân cụm nửa giám sát SSDBSCAN 27 2.3.1 Thuật toán DBSCAN 27 2.3.2 Thuật toán SSDBSCAN 29 2.3.3 Thuật toán ActSSDBSCAN 32 2.4 Thuật toán phân cụm nửa giám sát Fuzzy C-Means 37 2.4.1 Thuật toán Fuzzy C-Means 37 2.4.2 Thuật toán Seed Fuzzy C-means 40 iii CHƯƠNG ỨNG DỤNG THUẬT TOÁN PHÂN CỤM TRONG LĨNH VỰC XỬ LÝ ẢNH 43 3.1 Giới thiệu tổng quan 43 3.2 Phân vùng ảnh (Image segmentation) sử dụng Fuzzy C-Means 43 3.2.1 Tóm lược vấn đề xử lý ảnh số (Digital Image Processing) 43 3.2.2 Lập trình thử nghiệm 45 3.3 Phân cụm ảnh với thuật toán SSDBSCAN 53 3.3.1 Dữ liệu 53 3.3.2 Kết 55 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 58  Những kết đạt 58  Hướng phát triển đề tài 58 PHỤ LỤC 60 TÀI LIỆU THAM KHẢO 63 iv DANH MỤC CÁC HÌNH Số hiệu hình Hình 1.1 Tên hình Trang Các mô hình học máy Ví dụ liệu toán phân cụm: hình bên trái bao Hình 1.2 gồm cụm rời tuyến tính hình bên phải có cụm hình dạng không tuyến tính Hình 1.3 Hình 1.4 Một số ví dụ phân đoạn ảnh sử dụng clustering Ứng dụng clustering việc phát vùng bị hỏng trái 14 15 Hình 1.5 Bài toán phân cụm 17 Hình 1.6 Bài toán phân cụm nửa giám sát 17 Minh họa thuật toán K-Means: Sự phụ thuộc vào Hình 2.1 trọng tâm bước khởi tạo dẫn đến kết khác 22 sau lần chạy Hình 2.2 Hình 2.3 Dữ liệu (với cụm) mà K-Means phát xác cụm Minh họa bước thuật toán hierarchical clustering 22 24 Quá trình xây dựng cluster DBSCAN: Các hình Hình 2.4 cầu bán kính chứa MinPts điểm kết nối để tạo cluster 26 v Hình 2.5 Minh họa thuật toán Fuzzy C-Means với cụm 30 (a) Các điểm tương ứng với tập liệu đầu vào, seed (các liệu gán nhãn) tương ứng điểm Hình 2.6 ký hiệu dấu cộng, dấu nhân, dấu (b) ràng buộc (constraint) must-link cannotlink biểu diễn tương ứng đoạn thẳng nét 31 liền nét đứt Hình 2.7 Quá trình xây dựng cluster SSDBSCAN 33 Các tập liệu sử dụng (n: số phần tử cần clustering, m: Bảng 2.1 Hình 2.8 Hình 2.9 Hình 3.1 Hình 3.2 số thuộc tính, k số cluster) Kết thực nghiệm thuật toán ActSSDBSCAN SSDBSCAN Kết thực nghiệm thuật toán SECM Tổng quan hệ thống xử lý ảnh máy tính [5] Ảnh gốc (a) vùng (màu sáng) phân tách bới thuật toán Fuzzy C-means 38 40 43 46 48 Hình 3.3 Các cụm phân tách từ thuật toán Fuzzy C-means 50 Hình 3.4 Phân tách vùng với cụm khác 50 Hình 3.5 Hình 3.6 Ví dụ phân vùng ảnh cối Ví dụ phân vùng ảnh động vật 52 55 vi Hình 3.7 Dữ liệu lấy từ trang UCI 56 Hình 3.8 Kết với tập liệu image210 57 Hình 3.9 Kết với tập liệu image300 58 Hình 3.10 Kết với tập liệu image420 58 Hình 3.11 Kết với tập liệu image560 59 LỜI MỞ ĐẦU Lí chọn đề tài Công nghệ thông tin lĩnh vực quan trọng phát triển xã hội toàn giới Những ứng dụng công nghệ thông tin (CNTT) gặp nơi đâu, lĩnh vực Từ năm 50 kỷ 20, Liên Xô phóng thành công tàu vũ trụ, để thực điều rõ ràng cần đến chương trình máy tính phần mềm Những năm 60 nước Mỹ có hệ thống mạng máy tính phục vụ cho quốc phòng an ninh lĩnh vực trọng yếu Mạng Internet đời kết nối toàn giới mạng lại hiệu vô lớn cho nhân loại Ngày phát triển CNTT toàn cầu hóa, tất quốc gia coi việc phát triển lĩnh vực mũi nhọn công cụ để thúc đẩy phát triển Tất hệ thống tinh vi đại tàu vũ trụ, máy bay, tàu ngầm, ô tô, người máy có hạt nhân quan trọng CNTT Trí tuệ nhân tạo hướng nghiên cứu lĩnh vực CNTT Khoa học máy tính nhằm phát triển hệ thống thông minh giải toán thực tế giống hoạt động não người Trí tuệ nhân tạo bắt đầu nghiên cứu từ năm 50 kỷ 20 khoảng 30 năm trở lại cộng đồng nhà khoa học quan tâm mạnh mẽ Rất nhiều hội thảo lớn tổ chức hàng năm Mỹ giới Các ứng dụng tiêu biểu trí tuệ nhân tạo vào đời sống xã hội bao gồm: người máy, robot, xử lý ngôn ngữ tự nhiên, nhận dạng, phát dị thường, an ninh quốc phòng, tin sinh học, khoa học vũ trụ trái đất… Trong khuôn khổ luận văn Thạc sỹ mình, qua việc trang bị môn học lý thuyết thuật toán, xử lý ảnh, trí tuệ nhân tạo,… lựa chọn đề tài Nghiên cứu phương pháp phân cụm nửa giám sát ứng dụng Chủ đề phân cụm liệu nhánh nhỏ nằm lĩnh vực học máy (machine learning) trí tuệ nhân tạo nhằm nghiên cứu ứng dụng toán phân cụm thực tế Hơn phân cụm có giám sát hướng tốt khoảng 10 năm trở lại chứng minh tính ưu việt Đối tượng phạm vi nghiên cứu 2.1 Đối tượng nghiên cứu Vấn đề phân cụm liệu (clustering), phân cụm nửa giám sát (semisupervised clustering) 2.2 Phạm vi nghiên cứu - Lý thuyết: Nghiên cứu thuật toán phân cụm liệu phân cụm nửa giám sát - Thực nghiệm: Lập trình ngôn ngữ C# cho ứng dụng phân vùng ảnh phân cụm ảnh Phương pháp nghiên cứu - Phương pháp nghiên cứu khoa học suy luận logic - Phương pháp nghiên cứu mô tả, giải thích, giải pháp Ý nghĩa khoa học thực tiễn đề tài - Về khoa học Nghiên cứu thuật toán phân cụm phân cụm nửa giám sát, đánh giá ưu, nhược điểm giải thích kết đạt phương pháp - Về thực tiễn Ứng dụng thuật toán phân cụm vào toán phân vùng ảnh phân cụm ảnh từ rút nhận xét, đánh giá vào thực tiễn Cấu trúc luận văn Chương 1: Giới thiệu tổng quan học máy toán phân cụm liệu phân cụm liệu nửa giám sát Chương 2: Trình bày số thuật toán phân cụm liệu bản, thuật toán phân cụm nửa giám sát đánh giá ưu nhược điểm thuật toán Chương 3: Cài đặt thử nghiệm hai ứng dụng toán phân cụm bao gồm toán phân vùng ảnh toán phân cụm ảnh Tóm lược kết thực đề hướng phát triển đề tài CHƯƠNG TỔNG QUAN VỀ HỌC MÁY VÀ BÀI TOÁN PHÂN CỤM, PHÂN CỤM NỬA GIÁM SÁT 1.1 Khái niệm trí tuệ nhân tạo học máy Trí tuệ nhân tạo lĩnh vực nhằm nghiên cứu phát triển hệ thống (phần mềm, phần mềm nhúng) có khả giải toán giống cách thức giải người Theo [6], hệ thống trí tuệ nhân tạo có khả như: suy nghĩ, lập luận, cảm nhận, định, học, điều khiển, nhận dạng,… Các hệ thống trí tuệ nhân tạo bắt đầu nghiên cứu từ năm 1956 thể kỷ 20 với nghiên cứu Stanford mạng nơ ron, lý thuyết tự động John MacCarthy [6] Học máy (machine learning) lĩnh vực trí tuệ nhân tạo nghiên cứu phát triển phần mềm dùng cho máy tính hệ thống máy tính giải tình cụ thể nhận dạng mẫu giống người Máy tính hệ thống máy tính hiểu hệ thống mà nạp sử dụng phần mềm để thực Trong lĩnh vực học máy có ba phương pháp học bao gồm: học có giám sát, học nửa giám sát học không giám sát Ý tưởng học có giám sát hiểu cung cấp số mẫu (ví dụ liệu, hình ảnh, đồ vật gán nhãn) cho hệ thống học sau thiết kế phát triển hệ thống suy diễn hay nhận biết mẫu nằm phạm vi học Học nửa giám sát khác với học có giám sát thuật toán dạng sử dụng lượng nhỏ mẫu (các liệu gán nhãn) để học suy luận liệu chưa gán nhãn 49 50 Hình 3.5 Ví dụ phân vùng ảnh cối Ảnh gốc 51 Vùng Vùng 52 Vùng Vùng 53 Vùng Hình 3.6 Ví dụ phân vùng ảnh động vật Với hình 3.5 3.6 hình quang cảnh hay động vật, kết thuật toán Fuzzy C-Means làm bật vùng có điểm ảnh tương tự Tóm lại từ kết phân vùng ảnh trên, thấy áp dụng vào toán phát dị thường chẳng hạn bề mặt trái cây, hay làm bật đối tượng ảnh (hình 3.6),… 3.3 Phân cụm ảnh với thuật toán SSDBSCAN 3.3.1 Dữ liệu Để thực việc so sánh kết hai thuật toán DBSCAN SSDBSCAN, sử dụng tập liệu từ trang UCI machine learning 54 repository, trang sở liệu dùng nhiều nghiên cứu học máy [4] (xem hình 3.7) Hình 3.7 Dữ liệu lấy từ trang UCI Các thuộc tính ảnh trích rút 19 hình 3.7 Số lượng liệu 2310 Từ liệu để kiểm nghiệm kết lấy ngẫu nhiên tạo 55 tập liệu gồm: 210, 300, 420, 560 phần tử Kết so sánh thuật toán DBSCAN SSDBSCAN hình 3.8-3.11 Độ đo phân cụm xác sử dụng Rand Index trình bày chương 3.3.2 Kết Nhìn vào kết so sánh thuật toán DBSCAN SSDBSCAN thấy, với lượng nhỏ seed thuật toán SSDBSCAN cho kết tốt thuật toán DBSCAN Kết giải thích chất thuật toán SSDBSCAN vượt qua hạn chế thuật toán DBSCAN Hình 3.8 Kết với tập liệu image210 56 Hình 3.9 Kết với tập liệu image300 Hình 3.10 Kết với tập liệu umage420 57 Hình 3.11 Kết với tập liệu image560 58 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN  Những kết đạt Sau thực luận văn với chủ đề nghiên cứu phương pháp phân cụm, phân cụm nửa giám sát ứng dụng, thực công việc sau đây: - Đã tìm hiểu nắm bắt thuật toán phân cụm (K-means, Fuzzy Cmeans, DBSCAN,…) ứng dụng, - Đã nghiên cứu tìm hiểu toán phân cụm nửa giám sát, ưu điểm toán phân cụm nửa giám sát đặc biệt phương pháp dựa mật độ bao gồm DBSCAN, SSDBSCAN ASSDBSCAN, - Đã lập trình ngôn ngữ C# cho toán phân vùng ảnh phân cụm ảnh Các kết cho thấy tính ưu việt thuật toán phân cụm từ có khả ứng dụng vào toán thực tiễn  Hướng phát triển đề tài Do thời gian kiến thức hạn chế, khuôn khổ luận văn nghiên cứu kỹ toàn diện toán phân cụm Trong tương lai, số hướng nghiên cứu mà dự kiến tiếp tục sau: - Trong thời gian tới mong muốn tìm hiểu kỹ phương pháp phân cụm phân cụm nửa giám sát tiếp tục lập trình kiểm thử tìm ứng dụng cho toán thực tế lĩnh vực xử lý ảnh - So sánh phương pháp phân cụm với tập liệu khác không gian nhiều chiều, liệu phức tạp liệu số 59 - Tôi mong muốn tìm hiểu sâu toán học máy khác phân lớp có giám sát so sánh phương pháp phân lớp có giám sát phân cụm nửa giám sát - Cuối cùng, phát triển thuật toán phù hợp với điều kiện thực tế lĩnh vực phải làm việc với liệu lớn như, sinh học, y học, ngân hàng,… 60 PHỤ LỤC MỘT SỐ MODULES CHÍNH CỦA CHƯƠNG TRÌNH private void tinh_gia_tri_ham_thuoc() { for (int i = 0; i < this.Points.Count; i++) { double max = 0.0; double = 0.0; double sum = 0.0; double newmax = 0; var p = this.Points[i]; for (int j = 0; j < this.Clusters.Count; j++) { max = U[i, j] > max ? U[i, j] : max; = U[i, j] < ? U[i, j] : min; } for (int j = 0; j < this.Clusters.Count; j++) { U[i, j] = (U[i, j] - min) / (max - min); sum += U[i, j]; } for (int j = 0; j < this.Clusters.Count; j++) { U[i, j] = U[i, j] / sum; if (double.IsNaN(U[i, j])) { U[i, j] = 0.0; } newmax = U[i, j] > newmax ? U[i, j] : newmax; } p.ClusterIndex = newmax; }; } public void buoc_lap() { for (int c = 0; c < Clusters.Count; c++) 61 { for (int h = 0; h < Points.Count; h++) { double top; top = khoang_cach_ocolit (Points[h], Clusters[c]); if (top < 1.0) top = Eps; double sumTerms = 0.0; for (int ck = 0; ck < Clusters.Count; ck++) { sumTerms += top / khoang_cach_ocolit(Points[h], Clusters[ck]); } U[h, c] = (double)(1.0 / Math.Pow(sumTerms, (2 / (this.Fuzzyness - 1)))); } }; this.tinh_gia_tri_ham_thuoc(); } private double khoang_cach_ocolit(ClusterPoint p, ClusterCentroid c) { return Math.Sqrt(Math.Pow(p.PixelColor.R - c.PixelColor.R, 2.0) + Math.Pow(p.PixelColor.G - c.PixelColor.G, 2.0) + Math.Pow(p.PixelColor.B c.PixelColor.B, 2.0)); } public double tinh_ham_muc_tieu() { double Jk = 0.0; for (int i = 0; i < this.Points.Count;i++) { for (int j = 0; j < this.Clusters.Count; j++) 62 { Jk += Math.Pow(U[i, j], this.Fuzzyness) * Math.Pow(this khoang_cach_ocolit(Points[i], Clusters[j]), 2); } } return Jk; } public void tinh_trong_tam() { for (int j = 0; j < this.Clusters.Count; j++) { ClusterCentroid c = this.Clusters[j]; double l = 0.0; c.PixelCount = 1; c.RSum = 0; c.GSum = 0; c.BSum = 0; c.MembershipSum = 0; for (int i = 0; i < this.Points.Count; i++) { ClusterPoint p = this.Points[i]; l = Math.Pow(U[i, j], this.Fuzzyness); c.RSum += l * p.PixelColor.R; c.GSum += l * p.PixelColor.G; c.BSum += l * p.PixelColor.B; c.MembershipSum += l; if (U[i, j] == p.ClusterIndex) { c.PixelCount += 1; } } 63 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phạm Việt Bình, Đỗ Năng Toàn, Xử lý ảnh, Nhà xuất Khoa học Kỹ thuật, 2008 [2] Vũ Lan Phương, Nghiên cứu cài đặt số giải thuật phân cụm phân lớp, Luận văn Thạc sỹ Đại học Bách khoa Hà Nội, 2006 [3] Vũ Việt Vũ, Nghiên cứu phương pháp học máy cho toán phân cụm nửa giám sát, Đề tài khoa học công nghệ cấp đại học, 2015 Tiếng Anh [4] M Lichman, UCI Machine Learning Repository [archive.ics.uci.edu/ml] Irvine, CA: University of California, School of Information and Computer Science, 2013 [5] Rafael C Gonzalez and Richard E Woods, Digital Image Processing, Prentice Hall, 2007 [6] Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall, 2009 [7] W M Rand Objective criteria for the evaluation of clustering methods Journal of the American Statistical Association, 66 (336): 846–850, 1971 [8] Violaine Antoine, Nicolas Labroche, Viet-Vu Vu Evidential seed-based semi-supervised clustering Proceeding of the 7th International Conference on Soft Computing and Intelligent Systems and 15th International Symposium on Advanced Intelligent Systems, Japan, December, 3-6, 2014

Ngày đăng: 17/08/2016, 16:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan