Một trongnhữ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 kinhnghiêm đã trải qua” hoặc “
Trang 1MỤC LỤC
PHÂN CÔNG CÔNG VIỆC 1
LỜI MỞ ĐẦU 2
CHƯƠNG I CƠ SỞ LÝ THUYẾT 3
1.1 Máy học là gì 3
1.2 Tiến trình máy học và phân loại các thuật toán 4
1.2.1 Tiến trình máy học 4
1.2.2 Phân loại các thuật toán 5
CHƯƠNG II THUẬT TOÁN K-MEANS 9
2.1 Giới thiệu thuật toán và các định nghĩa cơ sở 9
2.2 Thuật toán K-means 9
2.3 Ví dụ minh họa 10
2.4 Ưu và khuyết điềm của thuật toán 12
2.5 Cải tiến thuật toán K-means 12
CHƯƠNG III ỨNG DỤNG THUẬT TOÁN K-MEANS TRONG PHÂN ĐOẠN ẢNH 15
3.1 Giới thiệu về phân đoạn ảnh 15
3.1.1 Các phương pháp dựa trên không gian đặc trưng 16
3.1.2 Các phương pháp dựa trên không gian ảnh 16
3.1.3 Các phương pháp dựa trên mô hình vật lý 17
3.2 Phát biểu ứng dụng 18
KẾT LUẬN 22
TÀI LIỆU THAM KHẢO 23
Trang 2PHÂN CÔNG CÔNG VIỆC
1 Ngụy Đình Thành - Trưởng nhóm
- Tìm hiểu nội dung liên quan và thiết kế khung của bài tiểu luận.
- Thực hiện cải tiến thuật toán.
- Thực hiện chương trình phân đoạn ảnh và demo.
2 Đoàn Hữu Phước
- Tìm hiểu lý thuyết và thuyết trình.
- Tìm hiểu ứng dụng phân đoạn ảnh của thuật toán K-Means.
3 Nguyễn Hữu Khánh
- Tìm hiểu về tổng quan về thuật toán K-Means.
- Tổng hợp word và chỉnh sửa bài tiểu luận.
4 Đặng Văn Chung
- Tìm hiểu tổng quan cơ sở lý thuyết học máy.
- Tổng hợp word và làm slides.
Trang 3LỜI MỞ ĐẦU
Trong thời đại hiện nay, sự phát triển như vũ bão của công nghệ thông tin(CNTT) đã kéo theo sự phát triển của nhiều lĩnh vực khác Có thể nói, CNTTđang làm thay đổi hình hài của nền kinh tế thế giới, giúp nhân loại bước nhữngbước vững chắc đầu tiên trên con đường của kinh tế tri thức, thương mại điệntử… Ngày nay, con người không còn phải vất vả nhọc nhằn trong công việc thuthập dư liệu vì đã có trợ thủ đắc lực là hệ thống máy tính và mạng truyền số liệutriển khai ở quy mô toàn cầu
Tuy nhiên, sự phát triển vượt bậc của CNTT đã làm tăng số lượng giaodịch thông tin trên mạng Internet một cách đáng kể, đặc biệt là thư điện tử, tintức điện tử Một yêu cầu lớn đặt ra đối với chứng ta là làm sao tổ chức, tìmkiếm thông tin một cách hiệu quả nhất và phân loại thông tin là một trong nhữnggiải pháp hợp lý cho yêu cầu này Nhưng vối một khối lượng thông tin quá lớn
và đòi hỏi phải xử lý nhanh thì việc phân loại thủ công là điều không tưởng.Hướng giải quyết là xây dựng các giải pháp cho phép thuật toán hóa và chươngtrình hóa trên máy tính để có thể tự động phân loại các thông tin trên
Trong thập kỷ qua, việc ứng dụng máy học vào khoa học kỹ thuật đã giúpcho 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ủacon 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 Nhìn thấy khả năng và ứng
dụng của ML, đề tài nghiên cứu của chúng em là “Tìm hiểu thuật toán
K-Means và ứng dụng của thuật toán K-means trong phân đoạn ảnh” Ngoài
phần mở đầu, kết luận, bài tìm hiểu của nhóm gồm 3 chương:
Chương I: Cơ sở lý thuyết.
Chương II: Thuật toán K-Means.
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 trongnhữ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 kinhnghiê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ườngminh, 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úcthô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ớiviệ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ủachú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ênnhữ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ấnluyệ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áchnà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ôngtin đó 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ôngnghệ 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ủaviệ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ầncủ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ámsá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ậtphâ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áocá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àmkhô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á ranhữ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àmxấ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:
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ụ
Trang 7 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ệuchỉ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 chotrườ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ủachúng Khi bắt gặp một trường hợp mới, nó sẽ cố gắng hiệu chỉnh đếntrườ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.
- Linear Least Square Fit – LLSF.
Học Không giám sát (Unsupervised Learning).
Đâ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
Trang 8đế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ọckhô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 đầuvà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ớpcủ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ẫuhì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 đổithà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àitoán mà những mẫu dữ liệu được mô tả bởi n đặc trưng, người ta có thể chạythuậ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:
- Thuật toán K-means
Một số thuật toán học nửa giám sát.
- EM - Expectation Maximization.
- TSVM - Transductive Support Vector Machine.
- Self-training.
Trang 9- Các phương pháp dựa trên đồ thị (graph-based).
Trang 10CHƯƠ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ụm do MacQueen giớithiệ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àotrong 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ủabà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 chochúng ta một phương pháp để tìm ra được vị trí các điểm μi,i=1 k của các cụmi,i=1 k của các cụmsao 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 độngqua từng bước như sau:
Đầu tiên chúng ta cần xác định số cụm k
1 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
Trang 11Trong đó, 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ínhnhân, chia Như vậy, do K-means phân tích phân cụm đơn giản nên có thể ápdụ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ụngvớ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-meanscò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ấtlượ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ợpcá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ênthì 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 đượckhám phá rất lệch so với các cụm trong thực tế Trên thực tế chưa có một giảipháp tối ưu nào để chọn các tham số đầu vào, giải pháp thường được sử dụngnhấ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áptố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 means bằng đồ họa
Trang 12K-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
Hì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
Trang 13Thuậ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ềm nhấ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
Đ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ácnhau 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ạocác cụm
2.5 Cải tiến thuật toán K-means
Như phần trên, nhóm em đã giới thiệu thuật toán K-Means, tuy nhiênthuật toán có những hạn chế nhất định Do đó, nhóm em cải tiến thuật toán nàynhằm khắc phục những hạn chế của thuật toán K-means
Nội dung: thay vì chọn số điểm (k) làm trọng tâm, chúng ta không chọn
số điểm (k) làm trọng tâm cho số cụm mà sẽ tăng số cụm từ 1 lên k cụm bằng
Trang 14Với thuật toán K-means bắt đầu bằng cách chọn k cụm và chọn ngẫunhiên k điểm làm trung tâm cụm, hoặc chọn phân hoạch ngẫu nhiên k cụm vàtính trọng tâm của từng cụm này Việc chọn ngẫu nhiên k điểm làm trung tâmcụm như đã nói ở trên có thể cho ra các kết quả khác nhau tùy vào chọn k điểmnày
Thuật toán K-means cải tiến:
Bước 1: Khởi tạo giá trị ban đầu cho K: K=1
Bước 2:
Bước 2.1: Kiểm tra điều kiện K
Nếu K=1: chọn bất kỳ một điểm làm trung tâm của cụm
Nếu K>1: thêm trung tâm của cụm mới vào cụm có biến dạng max
Bước 2.2: Gán từng điểm vào cụm có trung tâm gần nhất với điểm đangxét và cập nhật lại trung tâm cụm
Bước 2.3: Nếu trung tâm cụm không thay đổi, chuyển sang bước 3
Ngược lại, quay trở lại bước 2.2 (bước 2)
Bước 3: (Tăng số cụm)
Nếu K≤ giá trị ấn định số cụm thì K:=K+1, quay trở lại bước 2.1 (bước 2)
Ngược lại, thuật toán dừng
Với thuật toán K-means cải tiến: đưa ra sự khác biệt, đó là mức độ biếndạng của các cụm (dựa trên biến dạng để phân cụm) Mức độ biến dạngcủa các cụm được tính như sau:
I=S-N(d(w, x))
Trang 15Trong đó: w: trung tâm của cụm; N: Số các thành phần trong cụm; S:Tổng bình phương khoảng cách giữa các thành phần trong cụm và trungtâm của không gian Euclidean; I: Mức độ biến dạng của cụm; d(w, x): làkhoảng cách giữa trung tâm w của cụm và trung tâm của không gianEuclidean x.
Với thuật toán K-means cải tiến:
+ Bước 2: như K-means nhưng khác là: không xác định trước k điểm mà tăng klên dần từ 1 Và chọn cụm có mức độ biến dạng lớn để phân ra 2 cụm (khi đó 2cụm này có mức độ biến dạng giảm, nhỏ hơn)
+ Thuật toán cải tiến K-means có độ phức tạp là O(k^2*nt), như vậy so với thuậttoán K-means có độ phức tạp O(tkn) thì: O(k^2*nt)>O(tkn), nhưng vẫn chấpnhận được, do k<<n
Tuy nhiên ưu điểm của thuật toán là giảm sự phụ thuộc vào việc khởi tạocác cụm ban đầu nên ta sẽ không phải lặp lại thuật toán với việc chọn các cụmban đầu khác nhau để tìm ra kết quả tối ưu như ở K-Means