Xem mẫu

  1. Tuyển tập Hội nghị Khoa học thường niên năm 2019. ISBN: 978-604-82-2981-8 ỨNG DỤNG MÔ HÌNH MAPREDUCE TRONG PHÂN CỤM ẢNH Vũ Thị Hường1, Nguyễn Tu Trung2 1 Sinh viên khoa Công nghệ thông tin – Trường Đại học Thủy lợi, huongvt52@wru.vn 2 Trường Đại học Thủy lợi 1. ĐẶT VẤN ĐỀ MapReduce là mô hình xử lý tính toán song song và phân tán do google đề xuất. Nó Phân cụm là kỹ thuật rất quan trọng trong bao gồm hai chức năng cơ bản: "Map" và khai phá dữ liệu, nó thuộc lớp các phương "Reduce" được xác định bởi người dùng [4]. pháp Unsupervised Learning trong Machine Dữ liệu đầu vào được chia thành nhiều mảnh Learning. Về bản chất ta có thể hiểu phân nhỏ và xử lý song song bởi các Worker cụm là quá trình tìm cách nhóm các đối (MapTasktracker và ReduceTasktracker), tượng đã cho vào các cụm, sao cho các đối như được thể hiện trong hình 1. tượng trong cùng 1 cụm tương tự nhau và các đối tượng khác cụm thì không tương tự nhau. 3. THUẬT TOÁN PHÂN CỤM SONG Có nhiều phương pháp phân cụm khác SONG PKMEANS nhau như: phương pháp hình thái, phương Từ thuật toán KMeans [6] và mô hình xử pháp họ KMeans, tách và hợp... Trong [2], lý dữ liệu phân tán MapReduce, Jaatun và các tác giả đã đề xuất thuật toán KMeans sử công sự đã đưa ra thuật toán PKMeans dựa dụng thay thế tâm cụm. Trong [1], Balaji và trên MapReduce gồm 2 thuật toán chính cho cộng sự trình bày phương pháp phân đoạn hàm map và hàm reduce. ảnh mới dựa trên đặc trưng màu từ ảnh với việc chuyển điểm ảnh từ không gian RGB Bảng 1: Thuật toán cho hàm map(key,value) sang không gian L*a*b*. Input: Global variable centers, the offset key, the sample Sự bùng nổ của nguồn dữ liệu lớn (Big value Output: pair, where the key’ is the index of the closest Data), những phương pháp xử lý mới. center point and value’ is a string comprise of sample MapReduce là mô hình xử lý dữ liệu phân tán information rất hiệu quả, đã và đang được ứng dụng rộng 1. Construct the sample instance from value; rãi trong xử lý dữ liệu lớn. Trong [3] [7], các 2. minDis = Double.MAX VALUE; 3. index = -1; tác giả đã trình bày thuật toán KMeans song 4. For i=0 to centers.length do dis= ComputeDist(instance, song và hiệu quả dựa trên MapReduce. Tuy centers[i]); If dis < minDis { minDis = dis; index = i; } nhiên, các tác giả chưa chỉ ra cách ứng dụng 5. End For 6. Take index as key’; thuật toán này cho dữ liệu ảnh lớn. 7. Construct value’ as a string comprise of the values of Bài báo này đề xuất cải tiến thuật toán phân different dimensions; cụm KMeans dựa trên mô hình MapReduce để 8. output < key , value > pair; 9. End có thể áp dụng cho phân cụm ảnh. Từ thuật toán cho hàm map, ta thấy đầu 2. MÔ HÌNH MAPREDUCE vào cho thuật toán PKMeans phải ở dạng list các đối tượng dữ liệu mà có thể chuyển về dạng key/value. Tuy nhiên, với dữ liệu ảnh thì cần có một bước chuyển đổi. Ngoài ra, với kết quả của hàm reduce như trên, mặc dù đã thu được tâm và thông tin điểm ảnh nhưng rất bất tiện nếu thực hiện các thao tác tiếp theo trên ảnh mà sử dụng kết quả phân cụm vì thông tin Hình 1: Mô hình MapReduce [4]. vị trí không bao gồm trong kết quả. 151
  2. Tuyển tập Hội nghị Khoa học thường niên năm 2019. ISBN: 978-604-82-? Bảng 2. Thuật toán cho hàm reduce(key,V) Hình 2 minh họa sơ đồ thuật toán Input: key is the index of the cluster, V is the list of the ImagePKMeans. Dữ liệu ảnh sẽ được chia partial sums from different host thành nhiều mảnh khác nhau. Với mỗi mảnh, Output: < key , value > pair, where the key’ is the index of dữ liệu được gom cụm dựa trên hàm mapImage the cluster, value’ is a string representing the new center 1. Initialize one array record the sum of value of each (key, value). Hệ thống thực hiện việc này song dimensions of the samples contained in the same cluster, song trên các mảnh dữ liệu. Sau khi tất cả các e.g. the samples in the list V; mảnh dữ liệu đều thực hiện gom cụm, dữ liệu 2. Initialize a counter NUM as 0 to record the sum of sample number in the same cluster; được gom theo từng cụm. Sau đó, quá trình tính 3. while(V.hasNext()){ Construct the sample instance from tâm được thực hiện trên từng cụm. Cuối cùng, V.next(); Add the values of different dimensions of thuật toán kiểm tra độ hội tụ và quyết định kết instance to the array NUM += num; 4. } thúc hay tiếp tục vòng lặp mới. 5. Divide the entries of the array by NUM to get the new Để giải quyết vấn đề trên, trong bài báo center’s coordinates; này, chúng tôi cải tiến thuật toán PKMeans 6. Take key as key’; 7. Construct value’ as a string comprise of the center’s thành ImagePKMeans gồm 2 thuật toán chính coordinates; với các hàm mapImage và reduceImage. 8. output < key , value > pair; 9. End Bảng 3: Thuật toán cho hàm 4. GIẢI PHÁP PHÂN CỤM ẢNH DỰA mapImage(key,value) TRÊN MAPREDUCE Input: Global variable centers, the offset key, the sample value is the list of color bands and position Để phân cụm ảnh với mô hình Output: pair, where the key’ is the index of the closest MapReduce, chúng tôi đề xuất lược đồ phân center point and value’ is a string comprise of color bands and position cụm như sau: 1. Construct the sample instance from value; • B1: Chuyển đổi dữ liệu 2. minDis = Double.MAX VALUE; • B2: Phân cụm với thuật toán 3. index = -1; 4. For i=0 to centers.length do dis= ImagePKMeans ComputeDist(instance, centers[i]); If dis < minDis { • B3: Khôi phục kết quả phân cụm ảnh minDis = dis; index = i; } 5. End For 6. Take index as key’; 5. CHUYỂN ĐỔI d÷ LIỆU 7. Construct value’ as a string comprise of the values of different dimensions and position; Yêu cầu: 8. output < key , value > pair; • Chuyển đổi dữ liệu điểm ảnh thành list 9. End các hàng. Bảng 4: Thuật toán cho hàm reduce • Mỗi hàng bao gồm: thông tin vị trí và Image(key,V) danh sách giá trị là các thành phần của vector Input: key is the index of the cluster, V is the list of color biểu diễn cho một điểm ảnh. bands and position of the same cluster from different host Output: < key , value > pair, where the key’ is new center 4.1. Cải tiến thuật toán PKMeans cho of the cluster, value’ is a string representing values of phân cụm dữ liệu ảnh different dimensions and position 1. Initialize one array record the sum of value of each dimensions of the samples contained in the same cluster, e.g. the samples in the list V; 2. Initialize a counter NUM as 0 to record the sum of sample number in the same cluster; 3. while(V.hasNext()){ Construct the sample instance by extract values of different dimensions from V.next(); Add the values of different dimensions of instance to the array NUM += num; 4. } 5. Divide the entries of the array by NUM to get the new center’s coordinates; 6. Take key as key’; 7. Construct value’ as a string comprise of the center’s coordinates and position; 8. output < key , value > pair; Hình 2: Sơ đồ thuật toán ImagePKMeans. 9. End 152
  3. Tuyển tập Hội nghị Khoa học thường niên năm 2019. ISBN: 978-604-82-2981-8 5.2. Khôi phục kết quả phân cụm ảnh Thuật ImagePKMeans KMeans Từ dữ liệu đầu ra của của thuật toán toán ImagePKMeans, đơn giản nhất, có thể khôi Thời gian 63556 87955 phục lại ảnh kết quả phân cụm từ thông tin vị chạy (ms) trí và tâm cụm… Ngoài ra, sau đó, chúng ta Tâm cụm 111.34,144.54,57.47 111.34,144.54,57.47 có thể thực hiện những việc khác đánh giá dữ sau hội tụ 171.97,65.98,151.51 171.97,65.98,151.51 liệu, phân tích dữ liệu, nhận dạng, phân lớp, 241.18,178.06,232.22 241.18,178.06,232.22 ra quyết định… về sau. 27.09,39.43,17.52 27.09,39.43,17.52 61.75,73.56,36.08 61.75,73.56,36.08 6. THỬ NGHIỆM VÀ ĐÁNH GIÁ Thời gian 57224 108054 Dữ liệu thử nghiệm Lấy từ bộ dữ liệu của chạy (ms) Kaggle, bao gồm 210 bản ghi [5]. Một số kết Tâm cụm 129.69,138.09,78.88 129.69,138.09,78.89 quả phân cụm với 5 cụm được thống kê trong sau hội tụ 219.20,221.84,62.35 219.2,221.84,62.35 bảng 5 và 6. 224.67,230.73,152.24 224.67,230.73,152.24 33.32,39.65,23.32 33.32,39.65,23.32 Bảng 5. Ảnh kết quả phân cụm 85.66,90.67,42.43 85.66,90.67,42.43 với KMeans và ImagePKMeans Thời gian 125549 173422 Đầu vào ImagePKMeans K-means chạy (ms) 7. KẾT LUẬN Trong bài báo này, tác giả đã đề xuất lược đồ phân cụm ảnh với việc sử dụng thuật toán ImagePKMeans được cải tiến từ thuật toán PKMeans dùng cho phân cụm ảnh. Các kết quả thử nghiệm cho thấy thuật toán ImagePKMeans cho kết quả phân cụm tốt tương đương và hiệu suất cao hơn với KMeans. Trong khi, thuật toán ImagePKMeans có thể thực hiện song song và phân tán trên cụm máy tính để tăng cường Từ dữ liệu trong bảng 6, ta thấy tập tâm hiệu suất thực hiện. cụm sinh ra bởi 2 thuật toán là như sau. Nói Trong nghiên cứu tiếp theo, chúng tôi dự cách khác, hai thuật toán cho chất lượng phân kiến áp dụng mô hình MapReduce cho những cụm tương đương nhau. Tuy nhiên, về thời gian thực thi, thuật toán ImagePKMeans có thuật toán học máy khác để có thể khai thác, hiệu suất tốt hơn. phân tích và xử lý dữ liệu lớn hiệu quả hơn. Bảng 6. Tâm cụm sinh ra sau khi hội tụ 8. TÀI LIỆU THAM KHẢO Thuật toán ImagePKMeans KMeans [1] Balaji T., Sumathi M., Relational Features of Tâm cụm 121.25,33.69,38.11 121.25,33.69,38.11 Remote Sensing Image classification using sau hội tụ 186.78,37.58,64.25 186.78,37.58,64.25 Effective KMeans Clustering, International 224.81,65.30,98.80 224.81,65.30,98.80 Journal of Advancements in Research & 247.19,111.52,154.32 247.19,111.52,154.32 30.13,21.61,14.97 30.13,21.61,14.97 Technology, Volume 2, Issue 8, August- 2013, pp. 103-107. Thời gian 63556 246916 [2] Chih-Tang Chang và cộng sự, A Fuzzy chạy (ms) Tâm cụm 102.13,119.54,63.75 102.13,119.54,63.75 KMeans Clustering Algorithm Using sau hội tụ 21.72,24.67,17.19 21.72,24.67,17.19 Cluster Center Displacement, Journal of 215.19,71.73,14.58 215.19,71.73,14.56 Information science and Engineering 27, 249.06,124.79,24.10 249.06,124.79,24.10 2011, pp. 995-1009. 62.65,71.94,36.40 62.65,71.94,36.40 153
nguon tai.lieu . vn