1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

71 170 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 8,5 MB

Nội dung

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/ 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 tơi 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/ 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/ 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 Số hóa Trung tâm Học liệu - ĐHTN tnu.edu.vn/ http://www.lrc- 55 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 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 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/ 66 (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 tố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 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/ vii 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 tố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 khn khổ luận văn Thạc sỹ mình, qua việc trang bị môn học lý thuyết thuật tốn, xử lý ảnh, trí tuệ nhân tạo,… tơi lựa 22 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 Hình 3.5 Ví dụ phân vùng ảnh cối Ảnh gốc Vùng Vùng Vùng Vùng 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 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 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 tốn DBSCAN Kết giải thích chất thuật toán SSDBSCAN vượt qua hạn chế thuật tốn DBSCAN Hình 3.8 Kết với tập liệu image210 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 Hình 3.11 Kết với tập liệu image560 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 tốn phân cụm (K-means, Fuzzy Cmeans, DBSCAN,…) ứng dụng, - Đã nghiên cứu tìm hiểu tố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 tố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 hạn chế, khuôn khổ luận văn nghiên cứu kỹ tồn diện tố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 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ố - Tôi mong muốn tìm hiểu sâu tố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,… 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++) { 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++) { 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; } } 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 ... 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... thể ứng dụng cụ thể Việc nghiên cứu mục đích ứng dụng ảnh hưởng đến việc lựa chọn phương pháp phân cụm thực quan trọng 1.6 Các chiến lược phương pháp phân cụm liệu 1.6.1 Phương pháp phân cụm phân

Ngày đăng: 06/01/2019, 00:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w