1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu thuật toán k means và áp dụng trongbài toán phân đoạn ảnh 1

36 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Thuật Toán K-Means Và Áp Dụng Trong Bài Toán Phân Đoạn Ảnh
Tác giả Trần Việt Anh, Lê Hoàng Điệp, Nguyễn Khắc Thắng, Lê Văn Nghĩa, Tống Kim Hoàng Trường
Người hướng dẫn TS. Trần Hùng Cường
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Học Máy
Thể loại Báo Cáo Thực Nghiệm
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 36
Dung lượng 4,2 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Vì vậy, đã có rất nhiều phương pháp được áp dụng để giải quyết vấn đề nàynhư: Phân đoạn ảnh theo ngưỡng, phân đoạn ảnh theo đường biên, … và nóđược xây dựng bởi rất nhiều thuật toán nhưn

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

======***======

BÁO CÁO THỰC NGHIỆM HỌC PHẦN: HỌC MÁY

TÌM HIỂU THUẬT TOÁN K-MEANS VÀ ÁP DỤNG TRONG

BÀI TOÁN PHÂN ĐOẠN ẢNH

Giáo viên hướng dẫn: TS Trần Hùng Cường

Lớp: 20222IT6047002 Khoá: K15

 Nhóm: 12

Sinh viên thực hiện:

Mã SV: 2020602290 Họ và tên: Trần Việt Anh

Mã SV: 2020601903 Họ và tên: Lê Hoàng Điệp

Mã SV: 2020603381 Họ và tên: Lê Văn Nghĩa

Trang 3

MỤC LỤC

DANH MỤC HÌNH ẢNH 3

LỜI CẢM ƠN 4

MỞ ĐẦU 5

CHƯƠNG 1: TỔNG QUAN 6

1.1 Tìm hiểu về Machine Learning (Học Máy) 6

1.2 Một số kỹ thuật trong Machine Learning 7

1.3 Một số phương pháp của Machine Learning 8

1.3.1 Học có giám sát (supervised learning) 8

1.3.2 Học không có giám sát (unsupervised learning) 10

1.3.3 Học bán giám sát (semi-supervised learning) 11

1.3.4 Học tăng cường hay học củng cố (reinforcement learning) 12

1.4 Ứng dụng của Machine Learning 12

CHƯƠNG 2: THUẬT TOÁN K-MEANS 14

2.1 Giới thiệu thuật toán và các định nghĩa cơ sở 14

2.2 Mô tả về thuật toán 14

2.3 Ví dụ về thuật toán 15

2.4 Ưu điểm của thuật toán 20

2.5 Nhược điểm của thuật toán 20

CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN K-MEANS TRONG PHÂN ĐOẠN ẢNH 22

3.1 Giới thiệu về phân đoạn ảnh 22

3.1.1 Các hướng tiếp cận phân đoạn ảnh 22

3.1.2 Các phương pháp dựa trên không gian đặc trưng 23

Trang 4

3.1.3 Các phương pháp dựa trên không gian ảnh 24

3.1.4 Các phương pháp dựa trên mô hình vật lý 24

3.2 Các thư viện chính được sử dụng trong chương trình 25

3.3 Thực hiện bài toán 27

3.3.1 Các bước xây dựng mô hình cho bài toán 27

3.3.2 Mã giả xây dựng giải quyết bài toán: 28

KẾT LUẬN 34

TÀI LIỆU THAM KHẢO 35

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1.1: Mô hình tri thức kim tự tháp 6

Hình 1.2 Học có giám sát (Supervised learning) 8

Hình 1.3: Học không có giám sát (unsupervised learning) 10

Hình 1.4: Học bán giám sát (semi-supervised learning) 11

Hình 1.5: Học tăng cương (reinforcement learning) 12

Hình 2.1: Ví dụ thuật toán K-Means 16

Hình 2.2: Tính khoảng cách từ các đối tượng 16

Hình 3.1: Thư viện numpy 26

Hình 3.2: Thư viện Scikit learn 26

Hình 3.3: Thư viện Matpotlib 27

Hình 3.4: Ảnh đầu vào 29

Hình 3.5: Thực hiện chương trình với số cụm bằng 2 (k=2) 30

Hình 3.6: Thực hiện chương trình với số cụm bằng 5 (k=5) 31

Hình 3.7: Thực hiện chương trình với số cụm bằng 10 (k=10) 31

Hình 3.8: Thực hiện chương trình với cụm bằng 15 (k=15) 32

Hình 3.9: Thực hiện chương trình với số cụm bằng 20 (k=20) 32

Trang 6

LỜI CẢM ƠN

Lời đầu tiên nhóm chúng em xin gửi lời cảm ơn sâu sắc đến giáo viênngười trực tiếp hướng dẫn, giảng dạy chúng em trong suốt quá trình học tập,nghiên cứu và hoàn thành đề tài Phân đoạn ảnh là một kĩ thuật luôn đượcquan tâm, phát triển để xây dựng được mô hình trong xử lí ảnh và học máy

Vì vậy, đã có rất nhiều phương pháp được áp dụng để giải quyết vấn đề nàynhư: Phân đoạn ảnh theo ngưỡng, phân đoạn ảnh theo đường biên, … và nóđược xây dựng bởi rất nhiều thuật toán nhưng nổi bật nhất là thuật toán K-Means ( một trong những thuật toán phổ biến nhất hiện nay trong xử lý ảnh)Mỗi mô hình đều có điểm mạnh riêng của mình và đều cho ra kết quả và

độ chính xác cao Tuy nhiên nhóm bọn em đã thực hiện và chọn thuật toán Means để làm giải quyết vấn đề đề tài kết thúc môn của mình Trong quá trìnhnghiên cứu và làm đề tài, do năng lực, kiến thức, trình độ bản thân chúng emcòn hạn hẹp nên không tránh khỏi những thiếu sót và chúng em mong mỏinhận được sự thông cảm và những góp ý từ quý thầy cô cũng như các bạntrong lớp Chúng em xin chân thành cảm ơn

K-  Chúng em xin chân thành cảm ơn!

Trang 7

LỜI MỞ ĐẦU

 Những năm gần đây, AI nổi lên như một bằng chứng của cuộc cáchmạng công nghiệp lần thứ 4 Trí tuệ nhân tạo có thể được định nghĩa như mộtngành của khoa học máy tính liên quan đến việc tự động hóa các hành vithông minh Machine learning là một lĩnh vực của trí tuệ nhân tạo (AI) Mụctiêu của machine learning nói chung là hiểu cấu trúc dữ liệu và điều chỉnh dữliệu đó thành các model mà mọi người có thể hiểu và sử dụng.Các ứng dụngcủa Machine Learning đã quá quen thuộc với con người: xe tự hành củaGoogle và Tesla, hệ thống tự tag khuôn mặt trên Facebook, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix …, chỉ là một vài trong

vô vàn những ứng dụng của trí tuệ nhân tạo và cụ thể là Machine Learning.Xuhướng phát triển công nghệ thông tin ngày càng tăng, song song với nó lượng

dữ liệu được sinh ra cũng ngày lớn Vì vậy nhu cầu để xử lý dữ liệu cũng lớnhơn, Machine Learning đang góp phần giải quyết vấn đề này Một trongnhững thuật toán thường dùng trong Machine Learning đó là thuật toán K-means Ứng dụng của thuật toán này được sử dụng rất nhiều và rộng rãi trongcác bài toán phân đoạn ảnh

Trang 8

CHƯƠNG 1: TỔNG QUAN

1.1 Tìm hiểu về Machine Learning (Học Máy)

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ữngkinh 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ườ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ápHọc máy là sự tự động của quy trình học và việc học thì tương đươngvớ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

Học máy kiểm tra những ví dụ trước đó và kiểm tra luôn cả những kếtquả 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

 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ậphuấn luyện Tập này chứa những mẫu dữ liệu mà nó được viết bằng mã theomột cách nào đó để máy có thể đọc và hiểu được

Trang 9

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

o Lợi ích của học máy

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ôngtin đến từ nhiều nguồn khác nhau Học máy có thể giúp xứ lý và dự báo cácthô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ữngnơ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

Học máy giúp thiết kế hệ thống huấn luyện tự động (mạng nơron nhântạ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ệ Học máy 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 Một số kỹ thuật trong Machine Learning

 Trợ lý cá nhân ảo (Virtual Personal Assistants)

 Phân loại khuôn mặt , giọng nói , vân tay , chữ , số ,…

 Chuyển đổi lời nói thành văn bản

 Xử lý ngôn ngữ tự nhiên

 Chuyển đổi văn bản thành giọng nói

 Ứng dụng trong các mạng xã hội

 Tự động phân loại

Trang 10

1.3 Một số phương pháp của Machine Learning

1.3.1 Học có giám sát (supervised learning)

 Hình 1.2 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ọcgiú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ìmmộ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ụngcá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ới xi 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ể xemgiả 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ì)

Trang 11

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 giangiả 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ộthàm xấp xỉ tốt nhất 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ụ

-  Học bằng phép loại suy (analogy): hệ thống được dạy phản hồi đúngcho 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 racủ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 đượctạ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

Trang 12

1.3.2 Học không có giám sát (unsupervised learning)

 Hình 1.3: Học không có 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ĩatrướ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á trongtậ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 đầ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ữngmẫ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).Đốivớ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ácnhau đóng vai trò thuộc tính lớp, mà chúng ta đang tiên đoán.Kết quả sẽ là ntiê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ânlớ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)

Trang 13

1.3.3 Học bán giám sát (semi-supervised learning)

 Hình 1.4: Học bán giám sát (semi-supervised learning)

Học máy bán giám sát hoạt động khi các nhà khoa học cung cấp mộtlượng nhỏ dữ liệu đào tạo được gắn nhãn cho một thuật toán Từ đó, thuậttoán tìm hiểu các kích thước của tập dữ liệu, sau đó nó có thể áp dụng cho dữliệu mới, chưa được gắn nhãn Hiệu suất của các thuật toán thường được cảithiện khi chúng đào tạo trên các tập dữ liệu được gắn nhãn Tuy nhiên việcghi nhãn dữ liệu có thể tốn thời gian và tốn kém Học máy bán giám sát đặtnền tảng trung gian giữa hiệu suất của học máy có giám sát và hiệu quả củahọc máy không giám sát Một số lĩnh vực sử dụng phương pháp học máy bángiám sát bao gồm:

 Dịch máy: Dạy các thuật toán dịch ngôn ngữ dựa trên ít hơn một từđiển đầy đủ các từ

 Phát hiện gian lận: Xác định các trường hợp gian lận khi bạn chỉ cómột vài ví dụ tích cực

 Dán nhãn dữ liệu: Các thuật toán được đào tạo trên tập dữ liệu nhỏ

có thể học cách áp dụng nhãn dữ liệu cho các tập lớn hơn một cách

tự động

Trang 14

1.3.4 Học tăng cường hay học củng cố (reinforcement learning)

 Hình 1.5: Học tăng cường (reinforcement learning)

Học máy tăng cường hoạt động bằng cách lập trình một thuật toán vớimột mục tiêu riêng biệt và một bộ quy tắc được chỉ định để hoàn thành mụctiêu đó Các nhà khoa học cũng lập trình thuật toán để tìm kiếm phần thưởngtích cực mà nó nhận được khi thực hiện một hành động có lợi cho mục tiêucuối cùng và tránh các hình phạt – mà nó nhận được khi thực hiện một hànhđộng khiến nó càng xa mục tiêu cuối cùng Học máy tăng cường thường được

1.4 Ứng dụng của Machine Learning

 Ngày nay, Học máy ngày càng được ứng dụng rộng rãi, đa lĩnh vựctrong thực tiễn cuộc sống con người ngày nay Các bạn có thể dàng nhận thấyMachine Learning đang được sử dụng với mục đích phân tích dữ liệu lớn để

Trang 15

có thể đưa ra những dự đoán xu hướng trong tương lai Ví dụ như dự đoán kếtquả bầu cử chính trị, dự đoán biến động của thị trường chứng khoán …

Machine Learning cũng được áp dụng trong công nghệ nhận diện hìnhảnh nhằm cung cấp dữ liệu cho các mô hình định giá hoặc mô hình kinh tế.Bằng khả năng phân tích dữ liệu từ hệ thống vệ tinh, thuật toán học máy sẽtiến hành xử lý và cung cấp tới bạn những thông tin về số lượng khách hàngtại bãi đậu xe, các hoạt động vận chuyển, sản lượng sản xuất …

Machine Learning ngày càng thể hiện được rõ vai trò của mình trong sự phát triển của công nghệ trong thời đại mới Am hiểu về học máy sẽ giúp bạn

có thể mở ra những cơ hội phát triển cùng sự thăng tiến trong tương lai Do

đó, bạn hãy xây dựng cho mình một lộ trình nghiên cứu học máy từ cơ bảnđến nâng cao để nâng cao trình độ chuyên môn của mình tốt hơn nhé

Trang 16

CHƯƠNG 2: 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 đơngiả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 MacQueengiớ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à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êucủ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ấpcho chúng ta một phương pháp để tìm ra được vị trí các điểm μi,i=1 k củacá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 Mô tả về thuật toán

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:

Trang 17

3 Gán điểm dữ liệu vào các cụm:

o Tính khoảng cách giữa mỗi điểm dữ liệu và các điểm trung tâmcụm

o Gán mỗi điểm dữ liệu vào cụm có điểm trung tâm gần nhất

6 Kết quả:

o Các điểm dữ liệu được gán vào các cụm tương ứng

o Các điểm trung tâm cuối cùng của các cụm là kết quả cuối cùngcủa thuật toán

Thuật toán k-means trên được chứng minh là hội tụ và có độ phức tạptính toán là:

2.3 Ví dụ về thuật toán

 Ví dụ minh họa thuật toán K-Mean:

Giả sử ta có 4 loại thuốc A,B,C,D, mỗi loại thuộc được biểu diễn bởi 2 đặc

trưng X và Y như sau Mục đích của ta là nhóm các thuốc đã cho vào 2 nhóm(K=2) dựa vào các đặc trưng của chúng

Trang 18

Bước 1 . Khởi tạo tâm (centroid) cho 2 nhóm Giả sử ta chọn A là tâm của

nhóm thứ nhất (tọa độ tâm nhóm thứ nhất c1(1,1)) và B là tâm của nhóm thứ

2 (tạo độ tâm nhóm thứ hai c2 (2,1))

 Hình 2.6: Ví dụ thuật toán K-Means

Bước 2 . Tính khoảng cách từ các đối tượng đến tâm của các nhóm (Khoảngcách Euclidean)

Ngày đăng: 12/12/2023, 15:11

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Bài giảng môn học “Máy học” (2014)Giảng viên: PGS.TS Vũ Thanh  Nguyên.Tr Sách, tạp chí
Tiêu đề: Bài giảng môn học “Máy học”
Tác giả: PGS.TS Vũ Thanh Nguyên
Năm: 2014
[2] Kiri Wagsta, Claire Cardie, Seth Rogers, Stefan Schroedl (2001)“Constrained K-means Clustering with Background Knowledge” Sách, tạp chí
Tiêu đề: Constrained K-means Clustering with Background Knowledge
Tác giả: Kiri Wagsta, Claire Cardie, Seth Rogers, Stefan Schroedl
Năm: 2001
[3] “K-means clustering”From Wikipedia Sách, tạp chí
Tiêu đề: K-means clustering
[4] R. Rojas: Neural Networks, Springer-Verlag, Berlin (1996),“Unsupervised Learning and ClusteringAlgorithms” pp 101 – 120 Sách, tạp chí
Tiêu đề: Neural Networks
Tác giả: R. Rojas
Nhà XB: Springer-Verlag
Năm: 1996
[5] “K-means clustering”www.onmyphd.com Sách, tạp chí
Tiêu đề: K-means clustering

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w