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

70 24 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 ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG Phan Thị Thu Nga NGHIÊN CỨU PHƢƠNG PHÁP PHÂN CỤM NỬA GIẢM SÁT VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH Thái Nguyên, tháng năm 2015 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ ii 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 đƣợc tơi thực dƣới 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 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 MỤC LỤC Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ iii LỜI CAM ĐOAN ii 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 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 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ iv 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 đƣợc 58  Hƣớng phát triển đề tài 58 PHỤ LỤC 60 TÀI LIỆU THAM KHẢO 63 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ v DANH MỤC CÁC HÌNH Số hiệu Tên hình Trang Các mơ hình học máy hình Hình 1.1 Ví dụ liệu tố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 tốn phân cụm 17 Hình 1.6 Bài tố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 khơng thể 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 đƣợc kết 26 nối để tạo cluster Hình 2.5 Minh họa thuật tốn Fuzzy C-Means với cụm Số hóa Trung tâm Học liệu - ĐHTN 30 http://www.lrc-tnu.edu.vn/ vi (a) Các điểm tƣơng ứng với tập liệu đầu vào, seed (các liệu đƣợc 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 đƣợc biểu diễn tƣơng ứng đoạn thẳng nét 31 liền nét đứt Hình 2.7 Bảng 2.1 Hình 2.8 Hình 2.9 Hình 3.1 Hình 3.2 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: 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) đƣợc 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 tố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 Ví dụ phân vùng ảnh cối 52 Hình 3.6 Ví dụ phân vùng ảnh động vật 55 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 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ vii 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 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 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 đƣợ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 nhƣ 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 tồ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 nhƣ 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 tốn thực tế giống nhƣ hoạt động não ngƣời Trí tuệ nhân tạo đƣợc bắt đầu nghiên cứu từ năm 50 kỷ 20 khoảng 30 năm trở lại đƣợc cộng đồng nhà khoa học quan tâm mạnh mẽ Rất nhiều hội thảo lớn đƣợc tổ chức hàng năm Mỹ nhƣ 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 khn khổ luận văn Thạc sỹ mình, qua việc đƣợc trang bị môn học lý thuyết nhƣ thuật tố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 đƣợc 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 tốn phân cụm liệu bản, thuật toán phân cụm nửa giám sát nhƣ đá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 tốn phân cụm ảnh Tóm lƣợc kết thực đƣợc đề hƣớng phát triển đề tài 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 nhƣ 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 đƣợc trích rút 19 nhƣ 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 tốn DBSCAN SSDBSCAN đƣợc hình 3.8-3.11 Độ đo phân cụm xác sử dụng Rand Index nhƣ trình bày chƣơng 3.3.2 Kết Nhìn vào kết so sánh thuật tốn DBSCAN SSDBSCAN thấy, với lƣợng nhỏ seed thuật toán SSDBSCAN cho kết tốt thuật tốn DBSCAN Kết đƣợc giải thích chất thuật tốn SSDBSCAN nhƣ vƣợt qua hạn chế thuật tố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 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 tố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 cịn hạn chế, khn khổ luận văn tơi khơng thể nghiên cứu kỹ tồ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 nhƣ sau: - Trong thời gian tới 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 khơng phải liệu số 59 - Tơi mong muốn tìm hiểu sâu tốn học máy khác nhƣ phân lớp có giám sát nhƣ 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 tố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 ... để phân cụm liệu 19 CHƢƠNG MỘT SỐ THUẬT TOÁN PHÂN CỤM NỬA GIÁM SÁT 2.1 Giới thiệu toán phân cụm nửa giám sát Một hƣớng nghiên cứu quan trọng năm gần phát triển phƣơng pháp phân cụm nửa giám sát. .. 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... đề 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

Ngày đăng: 25/02/2021, 09:05

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

Tài liệu liên quan