Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
0,94 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN THUẬ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 TÓM LƯỢC o Trong 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. MỤC LỤC Trang4 Chươ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. Trang5 Nó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. 1.2.2. Phân loại các thuật toán Trang6 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: - 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ụ. Trang7 - 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. - Naïve Bayes – NB. - Decision Tree – DT. - Neural Network – Nnet. - Centroid–base vector. - 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 đến Trang8 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: - Thuật toán K-means - Mô hình mạng Neural - 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. - TSVM - Transductive Support Vector Machine. - Self-training. - Co-training. Trang9 - 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 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 Trang10 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, T flop 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 trong 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 [...]... đề cập trong phần này chỉ áp dụng cho hai loại vật chất là kim loại và điện môi không đồng nhất Một thuật toán tổng quát và phức tạp hơn cũng được Maxwell và Shafer đề xuất 3.2 Phát biểu ứng dụng Thuật toán K-means phân cụm thường được sử dụng trong thị giác máy tính là một hình thức phân đoạn ảnh thuộc nhóm phương pháp dựa trên không gian đặc trưng Các kết quả của các phân đoạn thường được sử dụng để... bằng 12 (k=12) Kết luận của chương trình • Phân oạn ảnh được thực hiện bằng việc sử dụng thuật toánK-means trong không gian màuRGB hoạt động rất tốt với tất cả các hình ảnh • Sự rõ nét trong hình ảnh đã phân đoạn bằng K-meanslà rấttốt • Sự rõ nét của hình ảnh cũng phụ thuộc vào số lượng các cụm (số k) được sử dụng • Một bất lợi của thuật toán này là số lượng cụm là phải được xác định trong mỗi lần lặp... 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á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 Trang13 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. .. 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 Trang14 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... 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... 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. .. liệu vào các cụm Hình 2.2 Khởi tạo các cụm ban đầu Hình 2.4 Tính toán lại vị trí các điểm trung tâm của cụm Trang12 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 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. .. được phân thành các nhóm sau: • Các thuật giải áp dụng kỹ thuật chia và trộn vùng • Các thuật giải áp dụng kỹ thuật tăng trưởng vùng • Các thuật giải áp dụng lý thuyết đồ thị • Các giải thuật áp dụng mạng neural • Các giải thuật dựa trên cạnh Các phương pháp dựa trên mô hình vật lý Tất cả các giải thuật được xem xét qua, không ít thì nhiều ở mặt nào đó đều có khả năng phát sinh việc phân vùng lỗi trong. .. biên và xác định đối tượng Ứng dụng mẫu sau đây thực hiện phân đoạn ảnh bằng cách sử dụng các tiêu chuẩn bình phương khoảng cách Euclide trênkhông gian màu RGB Các phương thức xác định khoảng cách tốt hơn để phân đoạn ảnh sẽ không được thể hiện trong ví dụ này Trang17 Trong chương trình này có sử dụng framework Accord.NET phiên bản 2.1.2 Đây là một bộ framework chuyên dùng trong lĩnh vực thị giác máy. .. tuê nhân tạo – xử lý ảnh, mạng neural, các thuật toán di truyền, máy học, robotics,.v.v… Thuật toán K-means được thực hiện trong thư viện Accord.MachineLearning Hình 3.1.Giao diện chính của chương trình Dữ liệu cần đưa vào là một tập tin hình ảnh và chọn số cụm cần được phân chia Kết quả sau khi xử lý sẽ được hiển thị trong phần result Kết quả thực hiện với số cụm lần lượt là 4, 2 và 12 như sau: Trang18 . 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. định được mức độ ảnh hưởng của thuộc tính đến quá trình tạo các cụm. Trang13 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. ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN THUẬ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