Tải bản đầy đủ (.pdf) (3 trang)

Ứng dụng mô hình MapReduce trong phân cụm ảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (311.1 KB, 3 trang )

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
1

Vũ Thị Hường1, Nguyễn Tu Trung2
Sinh viên khoa Công nghệ thông tin – Trường Đại học Thủy lợi,
2
Trường Đại học Thủy lợi

1. ĐẶT VẤN ĐỀ

Phân cụm là kỹ thuật rất quan trọng trong
khai phá dữ liệu, nó thuộc lớp các phương
pháp Unsupervised Learning trong Machine
Learning. Về bản chất ta có thể hiểu phân
cụm là q trình tìm cách nhóm các đối
tượng đã cho vào các cụm, sao cho các đối
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.
Có nhiều phương pháp phân cụm khác
nhau như: phương pháp hình thái, phương
pháp họ KMeans, tách và hợp... Trong [2],
các tác giả đã đề xuất thuật toán KMeans sử
dụng thay thế tâm cụm. Trong [1], Balaji và
cộng sự trình bày phương pháp phân đoạn
ả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
sang không gian L*a*b*.
Sự bùng nổ của nguồn dữ liệu lớn (Big
Data), những phương pháp xử lý mới.


MapReduce là mơ hình xử lý dữ liệu phân tán
rất hiệu quả, đã và đang được ứng dụng rộng
rãi trong xử lý dữ liệu lớn. Trong [3] [7], các
tác giả đã trình bày thuật tốn KMeans song
song và hiệu quả dựa trên MapReduce. Tuy
nhiên, các tác giả chưa chỉ ra cách ứng dụng
thuật toán này cho dữ liệu ảnh lớn.
Bài báo này đề xuất cải tiến thuật toán phân
cụm KMeans dựa trên mơ hình MapReduce để
có thể áp dụng cho phân cụm ảnh.
2. MƠ HÌNH MAPREDUCE

Hình 1: Mơ hình MapReduce [4].

MapReduce là mơ hình xử lý tính tốn
song song và phân tán do google đề xuất. Nó
bao gồm hai chức năng cơ bản: "Map" và
"Reduce" được xác định bởi người dùng [4].
Dữ liệu đầu vào được chia thành nhiều mảnh
nhỏ và xử lý song song bởi các Worker
(MapTasktracker và ReduceTasktracker),
như được thể hiện trong hình 1.
3. THUẬT TỐN PHÂN CỤM SONG
SONG PKMEANS
Từ thuật tốn KMeans [6] và mơ hình xử
lý dữ liệu phân tán MapReduce, Jaatun và
cơng sự đã đưa ra thuật toán PKMeans dựa
trên MapReduce gồm 2 thuật tốn chính cho
hàm map và hàm reduce.
Bảng 1: Thuật toán cho hàm map(key,value)

Input: Global variable centers, the offset key, the sample
value
Output: pair, where the key’ is the index of the closest
center point and value’ is a string comprise of sample
information
1. Construct the sample instance from value;
2. minDis = Double.MAX VALUE;
3. index = -1;
4. For i=0 to centers.length do dis= ComputeDist(instance,
centers[i]); If dis < minDis { minDis = dis; index = i; }
5. End For
6. Take index as key’;
7. Construct value’ as a string comprise of the values of
different dimensions;
8. output < key , value > pair;
9. End

Từ thuật toán cho hàm map, ta thấy đầu
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. Ngồ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
vị trí khơng bao gồm trong kết quả.

151



Tuyển tập Hội nghị Khoa học thường niên năm 2019. ISBN: 978-604-82-?

Hình 2 minh họa sơ đồ thuật tốn
ImagePKMeans. Dữ liệu ảnh sẽ được chia
thành nhiều mảnh khác nhau. Với mỗi mảnh,
dữ liệu được gom cụm dựa trên hàm mapImage
(key, value). Hệ thống thực hiện việc này song
song trên các mảnh dữ liệu. Sau khi tất cả các
mảnh dữ liệu đều thực hiện gom cụm, dữ liệu
được gom theo từng cụm. Sau đó, q trình tính
tâm được thực hiện trên từng cụm. Cuối cùng,
thuật toán kiểm tra độ hội tụ và quyết định kết
thúc hay tiếp tục vòng lặp mới.
Để giải quyết vấn đề trên, trong bài báo
này, chúng tôi cải tiến thuật toán PKMeans
thành ImagePKMeans gồm 2 thuật toán chính
với các hàm mapImage và reduceImage.

Bảng 2. Thuật tốn cho hàm reduce(key,V)
Input: key is the index of the cluster, V is the list of the
partial sums from different host
Output: < key , value > pair, where the key’ is the index of
the cluster, value’ is a string representing the new center
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 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;
8. output < key , value > pair;
9. End

4. GIẢI PHÁP PHÂN CỤM ẢNH DỰA
TRÊN MAPREDUCE

Để phân cụm ảnh với mơ hình
MapReduce, chúng tơi đề xuất lược đồ phân
cụm như sau:
• B1: Chuyển đổi dữ liệu
• B2: Phân cụm với thuật tốn
ImagePKMeans
• B3: Khơi phục kết quả phân cụm ảnh
5. CHUYỂN ĐỔI d÷ LIỆU

Yêu cầu:
• Chuyển đổi dữ liệu điểm ảnh thành list
các hàng.
• Mỗi hàng bao gồm: thơng tin vị trí và
danh sách giá trị là các thành phần của vector
biểu diễn cho một điểm ảnh.
4.1. Cải tiến thuật toán PKMeans cho

phân cụm dữ liệu ảnh

Hình 2: Sơ đồ thuật tốn ImagePKMeans.
152

Bảng 3: Thuật toán cho hàm
mapImage(key,value)
Input: Global variable centers, the offset key, the sample
value is the list of color bands and position
Output: pair, where the key’ is the index of the closest
center point and value’ is a string comprise of color bands
and position
1. Construct the sample instance from value;
2. minDis = Double.MAX VALUE;
3. index = -1;
4.
For
i=0
to
centers.length
do
dis=
ComputeDist(instance, centers[i]); If dis < minDis {
minDis = dis; index = i; }
5. End For
6. Take index as key’;
7. Construct value’ as a string comprise of the values of
different dimensions and position;
8. output < key , value > pair;
9. End


Bảng 4: Thuật toán cho hàm reduce
Image(key,V)
Input: key is the index of the cluster, V is the list of color
bands and position of the same cluster from different host
Output: < key , value > pair, where the key’ is new center
of the cluster, value’ is a string representing values of
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;
9. End


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
Từ dữ liệu đầu ra của của thuật toán
ImagePKMeans, đơn giản nhất, có thể khơi
phục lại ảnh kết quả phân cụm từ thơng tin vị
trí và tâm cụm… Ngồi ra, sau đó, chúng ta
có thể thực hiện những việc khác đánh giá dữ
liệu, phân tích dữ liệu, nhận dạng, phân lớp,
ra quyết định… về sau.

Thuật
toán

6. THỬ NGHIỆM VÀ ĐÁNH GIÁ
Dữ liệu thử nghiệm Lấy từ bộ dữ liệu của
Kaggle, bao gồm 210 bản ghi [5]. Một số kết
quả phân cụm với 5 cụm được thống kê trong
bảng 5 và 6.
Bảng 5. Ảnh kết quả phân cụm
với KMeans và ImagePKMeans
Đầu vào

ImagePKMeans

K-means

ImagePKMeans

KMeans

Thời gian

chạy (ms)

63556

87955

Tâm cụm
sau hội tụ

111.34,144.54,57.47
171.97,65.98,151.51
241.18,178.06,232.22
27.09,39.43,17.52
61.75,73.56,36.08

111.34,144.54,57.47
171.97,65.98,151.51
241.18,178.06,232.22
27.09,39.43,17.52
61.75,73.56,36.08

Thời gian
chạy (ms)

57224

108054

Tâm cụm
sau hội tụ


129.69,138.09,78.88
219.20,221.84,62.35
224.67,230.73,152.24
33.32,39.65,23.32
85.66,90.67,42.43

129.69,138.09,78.89
219.2,221.84,62.35
224.67,230.73,152.24
33.32,39.65,23.32
85.66,90.67,42.43

Thời gian
chạy (ms)

125549

173422

7. KẾT LUẬN

Từ dữ liệu trong bảng 6, ta thấy tập tâm
cụm sinh ra bởi 2 thuật toán là như sau. Nói
cách khác, hai thuật tốn cho chất lượng phân
cụm tương đương nhau. Tuy nhiên, về thời
gian thực thi, thuật toán ImagePKMeans có
hiệu suất tốt hơn.
Bảng 6. Tâm cụm sinh ra sau khi hội tụ
Thuật toán


ImagePKMeans

KMeans

Tâm cụm 121.25,33.69,38.11
sau hội tụ
186.78,37.58,64.25
224.81,65.30,98.80
247.19,111.52,154.32
30.13,21.61,14.97

121.25,33.69,38.11
186.78,37.58,64.25
224.81,65.30,98.80
247.19,111.52,154.32
30.13,21.61,14.97

Thời gian 63556
chạy (ms)
Tâm cụm 102.13,119.54,63.75
sau hội tụ
21.72,24.67,17.19
215.19,71.73,14.58
249.06,124.79,24.10
62.65,71.94,36.40

246916
102.13,119.54,63.75
21.72,24.67,17.19

215.19,71.73,14.56
249.06,124.79,24.10
62.65,71.94,36.40

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 tố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
hiệu suất thực hiện.
Trong nghiên cứu tiếp theo, chúng tơi dự
kiến áp dụng mơ hình MapReduce cho những
thuật tốn học máy khác để có thể khai thác,
phân tích và xử lý dữ liệu lớn hiệu quả hơn.
8. TÀI LIỆU THAM KHẢO
[1] Balaji T., Sumathi M., Relational Features of

Remote Sensing Image classification using
Effective KMeans Clustering, International
Journal of Advancements in Research &
Technology, Volume 2, Issue 8, August2013, pp. 103-107.
[2] Chih-Tang Chang và cộng sự, A Fuzzy
KMeans Clustering Algorithm Using
Cluster Center Displacement, Journal of
Information science and Engineering 27,
2011, pp. 995-1009.


153



×