Bài thuyết trình học phần trí tuệ nhân tạo tên đề tài thuật toán k nearest neighbors(k nn)

24 2 0
Bài thuyết trình học phần trí tuệ nhân tạo tên đề tài thuật toán k nearest neighbors(k nn)

Đ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

Trang 1

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG TP.HỒ CHÍ MINHKHOA CÔNG NGHỆ THÔNG TIN

1 Lê Gia Huy 2 Lê Quốc Huy 3 Hồ Văn Khánh

Thành phố Hồ Chí Minh, tháng 10 năm 2023

Trang 2

MỤC LỤC

Phần I MỞ ĐẦU 1

Phần II NỘI DUNG 2

I Tổng quan về bài thuyết trình 2

1 Lý do chọn chọn đề tài 2

2 Mục đích nghiên cứu 2

II Thuật toán K-NN 4

1 Giới thiệu về thuật toán 4

1.1 Khái niệm thuật toán 4

1.2 Ưu nhược điểm của thuật toán 4

2 Ứng dụng 5

3 So sánh thuật toán K-NN và Thuật toán khác 6

4 Nội dung thuật toán 6

4.1 Ý tưởng của thuật toán 6

Trang 3

Phần IV TÀI LIỆU THAM KHẢO 20

ii

Trang 4

Phần I

BẢNG PHÂN CÔNG CÔNG VIỆC

iii

Trang 5

Phần II

Phần III MỞ ĐẦU

Trong thời đại hiện nay, không thể phủ nhận sự thăng hoa của trí tuệ nhân tạo (AI) đã chuyển đổi toàn diện cả cuộc sống cá nhân và thế giới kinh doanh Sự phát triển vượt bậc của AI đã mang lại tiềm năng vô tận cho ứng dụng của nó trong đời sống hàng ngày và đa dạng các lĩnh vực công nghiệp Để hiểu sâu hơn về cách AI vận hành và khả năng đưa ra các quyết định logic có ảnh hưởng sâu rộng, không thể không xem xét một khía cạnh quan trọng – thuật toán K-Nearest Neighbors(K-NN) Đây không chỉ là một công cụ, mà là một trụ cột trong lĩnh vực học máy và logic trong AI, giúp máy tính tư duy và suy luận như con người

Trong bài báo cáo này, chúng ta sẽ tìm hiểu sâu hơn về vị trí quan trọng của thuật toán K-NN trong ngành AI, khám phá cách nó hoạt động và tác động của nó trên cuộc cách mạng trí tuệ nhân tạo đang diễn ra trên khắp thế giới.

iv

Trang 6

Phần IV NỘI DUNG

I Tổng quan về bài thuyết trình1 Lý do chọn chọn đề tài

- Thuật toán K-nn (K-nearest neighbors) là một lựa chọn tốt cho đề tài môn Trí tuệ Nhân tạo vì nó đơn giản nhưng mạnh mẽ Dưới đây là một số lý do chọn đề tài này:

+ Hiểu rõ về cơ bản của Machine Learning: K-nn là một thuật toán cơ bản trong machine learning, giúp bạn hiểu rõ về cách mà các thuật toán này hoạt động Nó làm rõ khái niệm về việc dự đoán dựa trên dữ liệu huấn luyện gần nhất.

+ Dễ Hiểu và Triển Khai: Thuật toán này rất dễ hiểu, đặc biệt là cho những người mới bắt đầu trong lĩnh vực trí tuệ nhân tạo Bạn có thể dễ dàng thấy cách nó hoạt động và áp dụng nó trong các bài toán cụ thể.

+ Ứng Dụng Rộng Rãi: K-nn được sử dụng trong nhiều lĩnh vực như nhận dạng hình ảnh, phân loại văn bản, và nhiều bài toán khác Bạn có thể tìm hiểu cách nó áp dụng vào các vấn đề thực tế.

+ Khám Phá và Nghiên Cứu Cải Tiến: Bạn có thể nghiên cứu về các phương pháp cải tiến của K-nn, ví dụ như việc sử dụng các phương pháp tối ưu hóa để cải thiện hiệu suất hoặc kết hợp nó với các phương pháp khác.

+ Tích Hợp với Big Data: K-nn có thể được áp dụng vào xử lý big data, đặc biệt là khi bạn muốn thực hiện các phân loại dựa trên sự tương đồng giữa các điểm dữ liệu.

2 Mục đích nghiên cứu

v

Trang 7

-Hiểu Rõ Hơn về Quá Trình Quyết Định: Nghiên cứu về thuật toán K-nn có thể giúp hiểu rõ hơn về cách quá trình quyết định diễn ra trong mô hình Điều này bao gồm cách nó đo lường sự tương đồng giữa các điểm dữ liệu và quyết định dựa trên các điểm gần nhất.

- Hiệu Suất và Tối Ưu Hóa: Một mục đích quan trọng là nghiên cứu cách cải thiện hiệu suất của thuật toán K-nn Có thể xem xét các kỹ thuật tối ưu hóa, giảm thiểu độ phức tạp tính toán, hoặc xử lý hiệu quả với dữ liệu lớn.

-Ứng Dụng trong Lĩnh Vực Cụ Thể: Mục tiêu có thể tập trung vào cách K-nn có thể được áp dụng trong các lĩnh vực cụ thể như y tế, tài chính, hình ảnh, hay ngôn ngữ tự nhiên Các ứng dụng cụ thể sẽ giúp nâng cao hiểu biết và áp dụng thực tế của thuật toán.

-Khả Năng Áp Dụng Đa Nhiệm: Nghiên cứu có thể tập trung vào khả năng của K-nn trong các nhiệm vụ đa nhiệm, tức là làm thế nào nó có thể được sử dụng để giải quyết nhiều vấn đề cùng một lúc hoặc làm thế nào nó tương tác với các mô hình khác.

-Tích Hợp với Các Công Nghệ Mới: Mục tiêu nghiên cứu cũng có thể liên quan đến việc tích hợp thuật toán K-nn với các công nghệ mới như học máy tăng cường, học máy dựa trên biểu diễn, hoặc các kỹ thuật khác đang phát triển.

-Đối Mặt với Thách Thức Dữ Liệu: Một mục đích khác có thể là nghiên cứu làm thế nào thuật toán K-nn đối mặt với thách thức từ dữ liệu không đồng đều, nhiễu, hoặc thiếu sót.

=>> Nói chung, mục đích nghiên cứu của thuật toán K-nn trong trí tuệ nhân tạo là cải thiện hiểu biết, hiệu suất và ứng dụng thực tế của nó trong các lĩnh vực khác nhau.

vi

Trang 8

II Thuật toán K-NN

1 Giới thiệu về thuật toán

1.1 Khái niệm thuật toán

-KNN (K-Nearest Neighbors) là một trong những thuật toán học có giám sát đơn giản nhất được sử dụng nhiều trong khai phá dữ liệu và học máy Ý tưởng của thuật toán này là nó không học một điều gì từ tập dữ liệu học (nên KNN được xếp vào loại lazy learning), mọi tính toán được thực hiện khi nó cần dự đoán nhãn của dữ liệu mới.

-Lớp (nhãn) của một đối tượng dữ liệu mới có thể dự đoán từ các lớp (nhãn) của k hàng xóm gần nó nhất.

Có một vài khái niệm tương ứng người-máy như sau:

Ngôn ngữ ngườiNgôn ngữ Máy Họcin Machine Learning

Tập tài liệu mang vào phòng thi Tập dữ liệu tập huấn Training set

Câu hỏi trong dề thi Dữ liệu kiểm thử Test data point

Câu hỏi gần giống Điểm dữ liệu gần nhất Nearest Neighbor

1.2 Ưu nhược điểm của thuật toán

Đơn giản và dễ triển khai: Thuật toán

KNN đơn giản và dễ hiểu, không yêu cầu quá nhiều trọng số hay tham số phức

Yếu tố tính toán: Một trong

những hạn chế của KNN là yếu tố tính toán Với mỗi điểm dữ liệu

vii

Trang 9

tạp Điều này làm cho việc triển khai thuật toán trở nên dễ dàng và nhanh chóng.

mới cần phân loại, thuật toán phải tính toán khoảng cách đến tất cả các điểm dữ liệu huấn luyện đã biết Điều này đòi hỏi một lượng tính toán đáng kể, đặc biệt là với tập dữ liệu lớn.

Linh hoạt trong việc xử lý dữ liệu:

KNN có khả năng phân loại dữ liệu với nhiều đặc trưng và nhãn khác nhau Nó không giới hạn bởi các giả định về phân phối của dữ liệu và có thể áp dụng cho nhiều loại bài toán khác nhau.

Nhạy cảm với dữ liệu nhiễu:

KNN có thể nhạy cảm với dữ liệu nhiễu và các điểm dữ liệu outlier Điều này có thể ảnh hưởng đến độ chính xác của thuật toán, vì nó có thể gây ra các dự đoán sai lệch.

Không cần quá trình huấn luyện phứctạp: KNN không yêu cầu quá trình huấn

luyện phức tạp như các thuật toán học máy khác Thay vào đó, nó sử dụng các điểm dữ liệu huấn luyện đã biết để phân loại điểm dữ liệu mới.

Lựa chọn K và phương pháp tính khoảng cách: Độ chính xác

của thuật toán KNN phụ thuộc vào giá trị của K (số lượng điểm gần như cây KD-Tree hoặc cấu trúc dữ liệu băm Điều này giúp cải thiện hiệu suất tính toán của thuật toán.

2 Ứng dụng

KNN là một mô hình đơn giản và trực quan nhưng vẫn có hiệu quả cao vì nó không tham số; mô hình không đưa ra giả định nào về việc phân phối dữ liệu Hơn nữa, nó có thể được sử dụng trực tiếp để phân loại đa lớp.

viii

Trang 10

Thuật toán KNN có nhiều ứng dụng trong ngành đầu tư, bao gồm dự đoán phá sản, dự đoán giá cổ phiếu, phân bổ xếp hạng tín dụng trái phiếu doanh nghiệp, tạo ra chỉ số vốn và trái phiếu tùy chỉnh.

3 So sánh thuật toán K-NN và Thuật toán khác

-K-nn vs Học máy tăng cường (Reinforcement Learning):

+K-nn: Dùng cho bài toán phân loại và dự đoán dựa trên sự tương đồng với các điểm dữ liệu lân cận.

+Reinforcement Learning: Chủ yếu dùng trong bài toán quyết định chuỗi hành động để tối ưu hóa một hàm thưởng.

-K-nn vs Mạng Nơ-ron (Neural Networks):

+K-nn: Dễ hiểu, không yêu cầu nhiều tham số, thích hợp cho dữ liệu có cấu trúc đơn giản.

+Neural Networks: Mạnh mẽ với khả năng học đặc trưng phức tạp, phù hợp cho nhiều loại dữ liệu, đặc biệt là hình ảnh, văn bản.

-K-nn vs Xử lý Ngôn Ngữ Tự Nhiên (Natural Language Processing - NLP): +K-nn: Có thể sử dụng cho phân loại văn bản đơn giản dựa trên sự tương đồng.

+NLP: Sử dụng các mô hình như Transformer để hiểu và tạo ra ngôn ngữ tự nhiên, phức tạp hơn so với việc so sánh dựa trên sự tương đồng.

4 Nội dung thuật toán

ix

Trang 11

4.1 Ý tưởng của thuật toán

Thuật toán KNN cho rằng những dữ liệu tương tự nhau sẽ tồn tại gầnnhau trong một không gian, từ đó công việc của chúng ta là sẽ tìm k điểm gần với dữ liệu cần kiểm tra nhất Việc tìm khoảng cách giữa 2 điểm củng có nhiều công thức có thể sử dụng, tùy trường hợp mà chúng ta lựa chọn cho phù hợp

4.2 Các bước thực hiện

Phương pháp K-Nearest Neighbors (K-NN) là một thuật toán học máy không parametric, tức là nó không giả định bất kỳ mô hình hay phân phối cụ thể nào về dữ liệu Thay vào đó, nó dựa vào việc so sánh và lựa chọn các điểm dữ liệu gần nhất để thực hiện phân loại hoặc dự đoán.

Dưới đây là các bước cơ bản để triển khai thuật toán K-NN:

luyện có nhãn, trong đó mỗi điểm dữ liệu đã được gán nhãn Nếu bạn đang làm việc trên bài toán phân loại, nhãn sẽ là các nhãn lớp (class labels) Nếu bạn đang làm việc trên bài toán dự đoán, nhãn có thể là các giá trị số (ví dụ: dự đoán giá trị của một thuộc tính).

thường là một số lẻ Giá trị của K quyết định số lượng hàng xóm sẽ được lựa chọn để thực hiện phân loại hoặc dự đoán cho một điểm dữ liệu mới.

độ tương đồng (hoặc khoảng cách) giữa các điểm dữ liệu trong tập huấn luyện và điểm dữ liệu mới Khoảng cách Euclide là một phương pháp phổ biến để tính toán

x

Trang 12

độ tương đồng, nhưng có thể sử dụng các phương pháp đo khác như khoảng cách Manhattan, khoảng cách Cosine, hoặc hàm kernel.

điểm dữ liệu gần nhất với điểm dữ liệu mới Các điểm dữ liệu này được xem là "hàng xóm" trong thuật ngữ K-NN.

xóm để phân loại hoặc dự đoán cho điểm dữ liệu mới Đối với bài toán phân loại, chúng ta thực hiện đa số phiếu bầu (voting) để xác định nhãn cuối cùng dựa trên nhãn của K hàng xóm Đối với bài toán dự đoán, chúng ta có thể tính trung bình giá trị của các hàng xóm hoặc sử dụng các phương pháp khác tùy thuộc vào bài toán cụ thể.

Điều quan trọng khi triển khai thuật toán K-NN là lựa chọn đúng giá trị K và phương pháp đo độ tương đồng phù hợp với bài toán Ngoài ra, việc chuẩn bị và tiền xử lý dữ liệu cũng có thể ảnh hưởng đáng kể đến kết quả của thuật toán.

Bước 1: Xác định tham số K= số láng giềng gần nhất.

Bước 2: Tính khoảng cách đối tượng cần phân lớp với tất cả các đối tượng trong training data.

Bước 3: Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gần nhất với đối tượng cần phân lớp

Bước 4: Lấy tất cả các lớp của K láng giềng gần nhất.

Bước 5: Dựa vào phần lớn lớp của K để xác định lớp cho đối tượng cần phân lớp.

4.3 1 số phép đo khoảng các

4.3.1 Khoảnh cách Euclid (đường chim bay)

xi

Trang 13

Khoảng cách Euclid (Euclidean distance) là việc chúng ta tìm khoảng cách giữa hai điểm trong không gian, ví dụ cho hai điểm P1(x1,y1) và P2(x2,y2) thì khoảng cách Euclid sẽ được tính theo công thức:

4.3.2 Khoảnh cách Manhattan

Khoảng cách Manhattan (Manhattan distance) còn được gọi là khoảng cách L1 hay khoảng cách trong thành phố, là một dạng khoảng cách giữa hai điểm trong không gian Euclid với hệ tọa độ Descartes Đại lượng này được tính bằng tổng chiều dài của hình chiếu của đường thẳng nối hai điểm này trong hệ trục tọa

Trang 14

Giả sử bài toán được đặt ra: mình mới quen một người bạn, tuy nhiên mình là fan của Us-Uk vậy nên mình cần biết người bạn này có phải là fan của K-Pop hay không Qua thời gian tìm hiểu mình đã thu thập được một số dữ liệu và đã biểu hiện dưới dạng hình vẽ trên.

Ta dễ dàng nhìn thấy có hai loại: hình vuông màu xanh biểu diễn cho những người là fan của K-pop, tam giác màu đỏ biểu diễn cho những người không là fan của K-pop, hình tròn màu xanh là người bạn mình muốn biết có phải là fan K-pop hay không, khoảng cách giữa chấm tròn và các điểm còn lại biểu diễn độ thân thiết của bạn đó với những người bạn.

Phương pháp đơn giản nhất để kiểm tra xem bạn đó chơi thân với người bạn nào nhất, tức là tìm xem điểm gần chấm xanh thuộc class nào (hình vuông hay tam giác) Từ hình trên ta dễ dàng nhận thấy điểm gần chấm xanh nhất là hình tam giác màu đỏ, do đó nó sẽ được phân vào lớp tam giác màu đỏ.

Có một vấn đề trong phương pháp trên, xung quanh cấm xanh xuất hiện rất nhiều hình vuông màu xanh nên việc xét điểm gần nhất là chưa khả thi Vì vậy, ta sẽ xét k điểm gần nhất Giả sử, ta lấy K=3, dựa theo hình trên ta dễ dàng nhận ra có hai

hình tam giác đỏ và một hình vuông xanh có khoảng cách gần chấm xanh nhất, do đó chấm xanh được phân vào lớp tam giác đỏ Lấy K=7, ta có năm hình vuông xanh và hai hình tam giác đỏ, lúc này chấm xanh được xếp vào lớp hình vuông xanh Trường hợp lấy K=4, ta nhận thấy sẽ có hai hình vuông xanh và hai hình tam giác đỏ, đây là trường hợp có điểm bằng nhau, với trường hợp này KNN sẽ xử lý bằng cách so sánh tổng khoảng cách của các hình gần nhất với điểm ta đang xét.

xiii

Trang 15

Vidu 1

Do xuất hiện trường hợp có điểm bằng nhau, vì vậy người ta thường chọn k là số lẻ Đó cũng là ý tưởng của KNN.

5.2 Ví dụ về K-NN nhiễu

Hình trên là bài toán phân lớp với ba lớp: đỏ, lam, lục Mỗi điểm dữ liệu mới sẽ được gán nhãn theo màu của điểm đó mà nó thuộc về Trong hình này, chú ý vùng khoanh tròn màu vàng, ta nhận thấy rằng điểm màu lục nằm giữa hai vùng lớn với nhiều dữ liệu đỏ và lam, điểm này rất có thể là nhiễu dẫn đến việc dữ liệu test nếu rơi vào vùng này sẽ có nhiều khả năng cho kết quả sai lệch.

5.3 Ví dụ

xiv

Trang 16

Giả sử ta có tập dữ liệu D có gắn nhãn gồm 15 điểm như trên ảnh Bước 1.Điểm cần dự đoán nhãn A(3,9)

Bước 2.Ta tính khoảng cách từ điểm A đến các điểm dữ liệu trong D bằng công thức Euclidian.

Bước 3.Ta chọn K= 5, và tìm ra 5 điểm có khoảng cách gần với điểm A nhất Bước 4.Trong 5 điểm ta thấy có 4 điểm mang nhãn (+) và 1 điểm mang nhãn (-).

Bước 5.Vậy ta có thể đưa ra kết luận là điểm A cần dự đoán mang nhãn (+).

xv

Trang 17

III Demo code

Định nghĩa 1 cấu trúc mô tả 1 điểm và tọa độ của điểm đó và khoảng cách từ cái điểm cần tìm đến điểm đó

Khai báo khởi tạo danh sách các phần tử

xvi

Trang 18

xvii

Trang 19

xviii

Trang 20

Khai báo tọa độ của giá trị cần tìm

xix

Trang 21

Hàm xác định điểm cần tìm thuộc lớp 0 hay lớp 1

Kết quả tính khoảng cách từ điểm cần tìm tới các điểm khác tăng dần

xx

Trang 22

Trong các điểm K gần điểm cần tìm nhất các điểm thuộc lớp nào nhiều hơn thì điểm cần tìm cũng thuộc lớp đó

Kết quả điểm cần tìm thuộc lớp

xxi

Trang 23

Phần V KẾT LUẬN

Trong bài thuyết trình này, chúng em đã giới thiệu về khái niệm, cú pháp và ngữ nghĩa của Thuật toán K-NN, một phương pháp suy luận quan trọng trong trí tuệ nhân tạo Chúng em cũng đã minh hoạ cách áp dụng thuật toán K-NN để chứng minh các định lý trong logic mệnh đề và logic vị từ cấp một Ngoài ra, chúng tôi cũng đã chỉ ra một số ưu điểm và nhược điểm của thuật toán K-NN so với các phương pháp suy luận khác.

Thuật toán K-NN là một công cụ mạnh mẽ để biểu diễn và lập luận với các tri thức logic Tuy nhiên, thuật toán K-NN cũng gặp một số khó khăn khi xử lý các tri thức phức tạp, không chắc chắn hoặc mơ hồ Do đó, các nghiên cứu về cải tiến và mở rộng thuật toán K-NN vẫn đang được tiếp tục trong lĩnh vực trí tuệ nhân tạo Chúng tôi hy vọng bài thuyết trình này sẽ giúp các bạn có cái nhìn tổng quan và sâu sắc hơn về K-NN và vai trò của nó trong trí tuệ nhân tạo.

xxii

Trang 24

Phần VI TÀI LIỆU THAM KHẢO

Ngày đăng: 10/04/2024, 23:34

Tài liệu cùng người dùng

Tài liệu liên quan