Trong giới hạn của đồ án này chúng ta sẽ khảo sát qua các khái niệm cơ bản về máy học, thuật toán K-means và ứng dụng của thuật toán K-means trong phân đoạn ảnh.. Một trong những định ng
Trang 1THUẬT TOÁN K-MEANS VÀ ỨNG
DỤNG TRONG BÀI TOÁN PHÂN ĐOẠN ẢNH
Giảng viên hướng dẫn: PGS TS Vũ Thanh Nguyên Học viên thực hiện: Trần Quốc Bảo
MSHV: CH1301004
TP Hồ Chí Minh, tháng 03/2014
Trang 2Trong thập kỷ qua, việc ứng dụng máy học vào khoa học kỹ thuật đã giúp cho chúng ta có thể tạo ra được những chiếc xe tự lái, nhận dạng giọng nói thực tế, tìm kiếm web có hiệu quả, và sự hiểu ngày càng sâu sắc hơn về bộ gen của con người,v.v Ngày nay máy học phổ biến đến nỗi chúng ta có thể sử dụng nó hàng chục lần một ngày mà không hề hay biết biết
Trong giới hạn của đồ án này chúng ta sẽ khảo sát qua các khái niệm cơ bản
về máy học, thuật toán K-means và ứng dụng của thuật toán K-means trong phân đoạn ảnh
Tôi chân thành tỏ lòng biết ơn PGS TS Vũ Thanh Nguyên, Trưởng khoa Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin, người đã cung cấp cho tôi các kiến thức cơ bản ban đầu để có thể tìm hiểu sâu thêm trong lĩnh vực máy học
Trang 31.2 Tiến trình máy học và phân loại các thuật toán 2
Chương II: THUẬT TOÁN K-MEANS 6
2.1 Giới thiệu thuật toán và các định nghĩa cơ sở 6
2.2 Thuật toán K-Means 6
2.3 Ví dụ minh họa 8
2.4 Ưu và khuyết điềm của thuật toán 9
Chương III: ỨNG DỤNG THUẬT TOÁN K-MEANS TRONG PHÂN ĐOẠN ẢNH 10
3.1 Giới thiệu về phân đoạn ảnh 10
3.2 Phát biểu ứng dụng 13
TÀI LIỆU THAM KHẢO 17
Trang 4Chương I CƠ SỞ LÝ THUYẾT
1.1 Máy học là gì
Rất khó để có thể định nghĩa một cách chính xác về máy học Một trong những định nghĩa rộng nhất về thuật ngữ máy học là: “một cụm từ dùng để chỉ khả năng một chương trình máy tính để tăng tính thực thi dựa trên những kinh nghiêm
đã trải qua” hoặc “là để chỉ khả năng một chương trình có thể phát sinh ra một cấu trúc dữ liệu mới khác với các cấu trúc dữ liệu cũ”
Lợi điểm của các phương pháp máy học là nó phát sinh ra các luật tường minh, có thể được sửa đổi, hoặc được huấn luyện trong một giới hạn nhất định.Các phương pháp này học trên các dữ liệu có đặc tả thông tin Cấu trúc thông tin gồm 4 mức được gọi là tri thức kim tự tháp
Hình 1.1 Mô hình tri thức kim tự tháp
Máy học là sự tự động của quy trình học và việc học thì tương đương với việc xây dựng những luật dựa trên việc quan sát trạng thái trên cơ sở dữ liệu và những sự chuyển hoá của chúng
Máy học kiểm tra những ví dụ trước đó và kiểm tra luôn cảnhững kết quả của chúng khi xuất và học làm cách nào để tái tạo lại những kết quả này và tạo nên những sự tổng quát hóa cho những trường hợp mới
Trang 5Nói chung, máy học sử dụng một tập hữu hạn dữ liệu được gọi là tập huấn luyện Tập này chứa những mẫu dữ liệu mà nó được viết bằng mã theo một cách nào đó để máy có thể đọc và hiểu được
Tuy nhiên, tập huấn luyện bao giờ cũng hữu hạn do đó không phải toàn bộ
dữ liệu sẽ được học một cách chính xác
Lợi ích của máy học
Các thông tin ngày càng nhiều, hàng ngày ta phải xử lý rất nhiều thông tin đến từ nhiều nguồn khác nhau Máy học có thể giúp xứ lý và dự báo các thông tin
đó bằng cách tạo ra các luất sản xuất từdữ liệu thu thập.Ở những nơi không có chuyên gia, máy học có thể giúp tạo ra được các quyết định từ các dữ liệu có được.Các thuật toán sử dụng trong máy học máy học có thể giúp xử lý khi dữ liệu không đầy đử, không chính xác
Máy học giúp thiết kế hệ thống huấn luyện tự động (mạng nơrôn nhân tạo)
và giải mã mối liên hệ giữa các tri thức được lưu trữtrong mạng từ dữ liệu.Công nghệ Máy học là một trong những phương pháp chính trong khai phá dữ liệu Nó được sử dụng trong tiến trình khám phá tri thức
1.2 Tiến trình máy học và phân loại các thuật toán
1.2.1 Tiến trình máy học
Một tiến trình máy học bao gồm 2 giai đoạn:
Giai đoạn học: hệ thống phân tích dữ liệu và nhận ra sự mối quan hệ
(có thể là phi tuyến hoặc tuyến tính) giữa các đối tượng dữ liệu Kết quả của việc học có thể là: nhóm các đối tượng vào trong các lớp, tạo
ra các luật, tiên đoán lớp cho các đối tượng mới
Giai đoạn thử nghiệm: Mối quan hệ (các luật, lớp ) được tạo ra
phải được kiểm nghiệm lại bằng một số hàm tính toán thực thi trên một phần của tập dữ liệu huấn luyện hoặc trên một tập dữ liệu lớn
Trang 61.2.2 Phân loại các thuật toán
Các thuật toán máy học được chia làm 3 loại: học giám sát, học không giám sát và học nửa giám sát
Học có giám sát (Supervised Learning).
Đây là cách học từ những mẫu dữ liệu mà ở đó các kỹ thuật máy học giúp hệ thống xây dựng cách xác định những lớp dữ liệu Hệ thống phải tìm một sự
mô tả cho từng lớp (đặc tính của mẫu dữ liệu).Người ta có thể sử dụng các luật phân loại hình thành trong quá trình học và phân lớp để có thể sử dụng dự báo các lớp dữ liệu sau này
Thuật toán học có giám sát gồm tập dữ liệu huấn luyện M cặp:
S = {(xi, cj) i=1,…,M; j=1,…,C}
Các cặp huấn luyện này được gọi là mẫu, vớixi là vector n-chiều còn gọi
là vector đặc trưng,cj là lớp thứ j đã biết trước
Thuật toán máy học giám sát tìm kiếm không gian của những giả thuyết
có thể, gọi là H Đối với một hay nhiều giả thuyết, mà ước lượng tốt nhất hàm không được biết chính xác f : x c.Đối với công việc phân lớp có thể xem giả thuyết như một tiêu chí phân lớp
Thuật toán máy học tìm ra những giả thuyết bằng cách khám phá ra những đặc trưng chung của những ví dụ mẫu thể hiện cho mỗi lớp.Kết quả nhận được thường ở dạng luật (Nếu thì)
Khi áp dụng cho những mẫu dữ liệu mới, cần dựa trên những giả thuyết
đã có để dự báo những phân lớp tương ứng của chúng Nếu như không gian giả thuyết lớn, thì cần một tập dữ liệu huấn luyện đủ lớn nhằm tìm kiếm một hàm xấp
xỉ tốt nhất f.Tùy thuộc vào mức độ của thuật toán học giám sát, người ta có những
mô hình học giám sát như sau:
Trang 7- Học vẹt (rote): hệ thống luôn luôn được “dạy” những luật
đúng, rồi có học hội tụ
- Học bằng phép loại suy (analogy): hệ thống được dạy phản hồi
đúng cho một công việc tương tự, nhưng không xác định Vì thế hệ thống phải hiệu chỉnh phản hồi trước đó bằng cách tạo ra một luật mới có thể áp dụng cho trường hợp mới
- Học dựa trên trường hợp (case-based learning): trong trường
hợp này hệ thống học lưu trữ tất cả các trường hợp, cùng với kết quả đầu
ra của chúng Khi bắt gặp một trường hợp mới, nó sẽ cố gắng hiệu chỉnh đến trường hợp mới này cách xử lý trước đó của nó đã được lưu trữ
- Học dựa trên sự giải thích (explanation-based learning), hệ
thống sẽ phân tích tập hợp những giải pháp nhằm chỉ ra tại sao mỗi phương pháp là thành công hay không thành công Sau khi những giải thích này được tạo ra, chúng sẽ được dùng để giải quyết những vấn đề mới
Một số thuật toán học có giám sát.
- Support Vector Machine – SVM.
- K Nearest Neighbours – KNN.
- Centroid–base vector.
- Linear Least Square Fit – LLSF.
Học Không giám sát (Unsupervised Learning).
Trang 8Đây là việc học từ quan sát và khám phá Hệ thống khai thác dữ liệu được ứng dụng với những đối tượng nhưng không có lớp được định nghĩa trước, mà
để nó phải tự hệ thống quan sát những mẫu và nhận ra mẫu Hệ thống này dẫn đến một tập lớp, mỗi lớp có một tập mẫu được khám phá trong tập dữ liệu.Học không giám sát còn gọi là học từ quan sát và khám phá
Trong trường hợp chỉ có ít, hay gần như không có tri thức về dữ liệu đầu vào, khi đó một hệ thống học không giám sát sẽ khám phá ra những phân lớp của dữ liệu, bằng cách tìm ra những thuộc tính, đặc trưng chung của những mẫu hình thành nên tập dữ liệu.Một thuật toán máy học giám sát luôn có thể biến đổi thành một thuật toán máy học không giám sát (Langley 1996).Đối với một bài toán mà những mẫu dữ liệu được mô tả bởi n đặc trưng, người ta có thể chạy thuật toán học giám sát n-lần, mỗi lần với một đặc trưng khác nhau đóng vai trò thuộc tính lớp, mà chúng ta đang tiên đoán.Kết quả sẽ là n tiêu chí phân lớp (n bộ phân lớp), với hy vọng là ít nhất một trong n bộ phân lớp đó là đúng
Một số thuật toán học không giám sát:
- Hệ thống ART(adaptive resonance theory)
Học nửa giám sát.
Học nửa giám sát là các thuật toán học tích hợp từ học giám sát và học không giám sát Việc học nửa giám sát tận dụng những ưu điểm của việc học giám sát và học không giám sát và loại bỏ những khuyết điểm thường gặp trên hai kiểu học này
Một số thuật toán học nửa giám sát.
- EM - Expectation Maximization.
Trang 9- TSVM - Transductive Support Vector Machine.
- Các phương pháp dựa trên đồ thị (graph-based).
Chương II: THUẬT TOÁN K-MEANS
2.1 Giới thiệu thuật toán và các định nghĩa cơ sở
Thuật toán K-means thuộc vào loại thuật toán không giám sát rất đơn giản và được áp dụng rộng rãi vào các mẫu bài toán phân cụmdo MacQueen giới thiệu trong tài liệu “J Some Methods for Classification and Analysis of Multivariate Observations” năm 1967
Bài toán phân cụm là quá trình nhóm một nhóm các điềm dữ liệu vào trong một số lượng nhỏ các cụm Tổng quát về mặt biểu diễn toán học, chúng ta có n điểm dữ liệu xi,i=1 n cần phải được phân vào trong k cụm Mục tiêu của bài toán
là một điểm dữ liệu cho một cụm Thuật toán K-means cung cấp cho chúng ta một phương pháp để tìm ra được vị trí các điểm μi,i=1 ki,i=1 k của các cụm sao cho hàm khoảng cách từ các điểm đến các cụm là nhỏ nhất
Trong đó ci là một tập các điểm bên trong cụm i Thuật toán K-means sử dụng khoảng cách Euclidean
2.2 Thuật toán K-means
Thuật toán K-means được dùng để giải bài toán về phân cụm hoạt động qua từng bước như sau:
Đầu tiên chúng ta cần xác định số cụm k
Trang 101 Khởi tạo điểm trung
tâm của cụm μii,i=1, ,k
2 Gán các điểm dữ liệu
vào các cụm gần nhất
3 Thiết lập lại điểm
trung tâm của mỗi
cụm
4 Lập lại các bước 2-3
cho đến khi hội tụ
Ghi chú |c|= số phần tử trong c
Thuật toán k-means trên được chứng minh là hội tụ và có độ phức tạp tính toán là:
Trong đó, n là số đối tượng dữ liệu, k là số cụm dữ liệu, d là số chiều, τ là số vòng lặp, Tflop là thời gian để thực hiện một phép tính cơ sở như phép tính nhân, chia, Như vậy, do K-means phân tích phân cụm đơn giản nên có thể áp dụng đối với tập dữ liệu lớn.Tuy nhiên, nhược điểm của K-means là chỉ áp dụng với dữ liệu
có thuộc tính số và khám phá ra các cụm có dạng hình cầu, k-means còn rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu Hơn nữa, chất lượng phân cụm
dữ liêuk của thuật toán k-means phụ thuộc nhiều vào các tham số đầu vào như: số cụm k và k trọng tâm khởi tạo ban đầu Trong trường hợp các trọng tâm khởi tạo ban đầu mà quá lệch so với các trọng tâm cụm tự nhiên thì kết quả phân cụm của k-means là rất thấp, nghĩa là các cụm dữ liệu được khám phá rất lệch so với các cụm
Trang 11trong thực tế Trên thực tế chưa có một giải pháp tối ưu nào để chọn các tham số đầu vào, giải pháp thường được sử dụng nhất là thử nghiệm với các giá trị đầu vào k khác nhau rồi sau đó chọn giải pháp tốt nhất
2.3 Ví dụ minh họa
Trong phần này chúng ta sẽ xem qua các bước thực hiện của thuật toán K-means bằng đồ họa
Hình 2.1.Giá trị gốc ban đầu Hình 2.2 Khởi tạo các cụm ban đầu
Hình 2.3 Gán các điểm dữ liệu vào các
cụm
Hình 2.4 Tính toán lại vị trí các điểm
trung tâm của cụm
Trang 12Hình 2.5 Gán các điểm dữ liệu vào
trong các cụm
Hình 2.6 Thuật toán dừng lại vì không có
điểm thay đổi
Thuật toán kết thúc vì không có sự thay đổi của các đối tượng trong từng cụm
2.4 Ưu và khuyết điềm của thuật toán
Ưu điểm:
Với số lượng biến lớn thì thuật toán K-means có thể tính toán nhanh hơn so với các thuật toán phân nhóm phân cấp khác (nếu K là nhỏ)
K-means có thể gom các cụm chặt chẽ hơn so với phân cụmtheo cấp bậc, đặc biệt là nếu các cụm hình cầu
Khuyết điểm: Giống như các thuật toán khác, k- means cũng có một số
khuyết điềmnhất định:
Việc khởi tạo phần tử trung tâm của các cụm ban đầu ảnh hưởng đến
sự phân chia đối tượng vào cụm trong trường hợp dữ liệu không lớn
Số cụm k luôn phải được xác định trước
Không xác định được rõ ràng vùng của các cụm, cùng 1 đối tượng, nó
có thể được đưa vào cụm này hoặc cụm khác khi dung lượng dữ liệu thay đổi
Trang 13 Điều kiện khởi tạo có ảnh hưởng lớn đến kết quả Điều kiện khởi tạo khác nhau có thể cho ra kết quả phân cụm khác nhau
Không xác định được mức độ ảnh hưởng của thuộc tính đến quá trình tạo các cụm
Chương III: ỨNG DỤNG THUẬT TOÁN K-MEANS TRONG PHÂN ĐOẠN ẢNH
3.1 Giới thiệu về phân đoạn ảnh
Phân đoạn ảnh là một thao tác ở mức thấp trong toàn bộ quá trình xử lý ảnh Quá trình này thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồng nhất với nhau hay nói cách khác là xác định các biên của các vùng ảnh đó Các vùng ảnh đồng nhất này thông thường sẽ tương ứng với tòan bộ hay từng phần của các đối tượng thật sự bên trong ảnh Vì thế, trong hầu hết các ứng dụng của lĩnh vực xử lý ảnh (image processing), thị giác máy tính, phân đoạn ảnh luôn đóng một vai trò cơ bản và thường là bước tiền xử lý đầu tiên trong toàn bộ quá trình trước khi thực hiện các thao tác khác ở mức cao hơn như nhận dạng đối tượng, biểu diễn đối tượng, nén ảnh dựa trên đối tượng, hay truy vấn ảnh dựa vào nội dung …
Vào những thời gian đầu, các phương pháp phân vùng ảnh được đưa ra chủ yếu làm việc trên các ảnh mức xám do các hạn chế về phương tiện thu thập và lưu trữ Ngày nay, cùng với sự phát triển về các phương tiện thu nhận và biểu diễn ảnh , các ảnh màu đã hầu như thay thế hoàn toàn các ảnh mức xám trong việc biểu diễn
và lưu trữ thông tin do các ưu thế vượt trội hơn hẳn so với ảnh mức xám Do đó, các
kỹ thuật, thuật giải mới thực hiện việc phân vùng ảnh trên các loại ảnh màu liên tục được phát triển để đáp ứng các nhu cầu mới Các thuật giải, kỹ thuật này thường
được phát triển dựa trên nền tảng các thuật giải phân vùng ảnh mức xám đã có sẵn.
Các hướng tiếp cận phân đoạn ảnh
Phân đoạn ảnh là chia ảnh thành các vùng không trùng lắp Mỗi vùng gồm một nhóm pixel liên thông và đồng nhất theo một tiêu chí nào đó Tiêu chí này phụ
Trang 14thuộc vào mục tiêu của quá trình phân đoạn Ví dụ như đồng nhất về màu sắc, mức xám, kết cấu, độ sâu của các layer… Sau khi phân đoạn mỗi pixel chỉ thuộc về một vùng duy nhất Để đánh giá chất lượng của quá trình phân đoạn là rất khó Vì vậy trước khi phân đoạn ảnh cần xác định rõ mục tiêu của quá trình phân đoạn là gì Xét một cách tổng quát, ta có thể chia các hướng tiếp cận phân đoạn ảnh thành ba nhóm chính như sau:
Các kỹ thuật phân đoạn ảnh dựa trên không gian đặc trưng
Các kỹ thuật dựa trên không gian ảnh
Các kỹ thuật dựa trên các mô hình vật lý
Các phương pháp dựa trên không gian đặc trưng
Nếu chúng ta giả định màu sắc bề mặt của các đối tượng trong ảnh là một thuộc tính bất biến và các màu sắc đó được ánh xạ vào một không gian màu nào đó,
vậy thì chúng ta sẽ có một cái nhìn đối với mỗi đối tượng trong ảnh như là một cụm
(cluster) các điểm trong không gian màu đó Mức độ phân tán của các điểm trong trong một cụm được xác định chủ yếu bởi sự khác biệt về màu sắc Một cách khác, thay vì ánh xạ các pixel trong ảnh vào một không gian màu cụ thể, ta xây dựng một
histogram dựa trên các đặc trưng màu dạng ad-hoc cho ảnh đó (ví dụ như Hue), và
thông thường, các đối tượng trong ảnh sẽ xuất hiện như các giá trị đỉnh trong histogram đó Do đó, việc phân vùng các đối tượng trong ảnh tương ứng với việc xác định các cụm – đối với cách biểu diễn thứ nhất – hoặc xác định các vùng cực trị của histogram – đối với cách biểu diễn thứ hai
Các phương pháp tiếp cận này chỉ làm việc trên một không gian màu xác định chẳng hạn phương pháp của Park áp dụng trên không gian màu RGB, còn phương pháp của Weeks và Hague thì áp dụng trên không gian màu HIS Dựa trên không gian đặc trưng, ta có các phương pháp phân đoạn: phương pháp phân nhóm đối tượng không giám sát, phương pháp phân lớp trung bình-k thích nghi, phương pháp lấy ngưỡng histogram