Tải bản đầy đủ (.docx) (24 trang)

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)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (491.21 KB, 24 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>BỘ CÔNG THƯƠNG</b>

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

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

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

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>MỤC LỤC</b>

<b>Phần I. MỞ ĐẦU...1</b>

<b>Phần II. NỘI DUNG...2</b>

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

<b>1. Lý do chọn chọn đề tài...2</b>

<b>2. Mục đích nghiên cứu...2</b>

<b>II. Thuật tốn K-NN...4</b>

<b>1. Giới thiệu về thuật toán...4</b>

<i><b>1.1. Khái niệm thuật toán...4</b></i>

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

<b>2. Ứng dụng...5</b>

<b>3. So sánh thuật toán K-NN và Thuật toán khác...6</b>

<b>4. Nội dung thuật toán...6</b>

<i><b>4.1. Ý tưởng của thuật toán...6</b></i>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Phần IV. TÀI LIỆU THAM KHẢO...20</b>

<small>ii</small>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>Phần I. </b>

<b>BẢNG PHÂN CÔNG CÔNG VIỆC</b>

<small>iii</small>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>Phần II. </b>

<b>Phần III. MỞ ĐẦU</b>

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 tố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.

<small>iv</small>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>Phần IV. NỘI DUNG</b>

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

- 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ự đố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 tố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.

<b>2. Mục đích nghiên cứu</b>

<small>v</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

-Hiểu Rõ Hơn về Q Trình Quyết Định: Nghiên cứu về thuật tốn K-nn có thể giúp hiểu rõ hơn về cách q 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 tố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 tố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 tố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.

<b><small>=>></small></b> Nói chung, mục đích nghiên cứu của thuật tố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.

<small>vi</small>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>II. Thuật toán K-NN</b>

<b>1. Giới thiệu về thuật toán</b>

<i><b>1.1. Khái niệm thuật toán</b></i>

-KNN (K-Nearest Neighbors) là một trong những thuật tố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 tố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 tốn được thực hiện khi nó cần dự đố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ự đố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:

<b>Ngôn ngữ ngườiNgôn ngữ Máy Học<sup>in Machine </sup><sub>Learning</sub></b>

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

<i><b>1.2. Ưu nhược điểm của thuật toán</b></i>

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

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

<b>Yếu tố tính toán: Một trong </b>

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

<small>vii</small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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 tố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 tốn đáng kể, đặc biệt là với tập dữ liệu lớn.

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

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.

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

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 tốn, vì nó có thể gây ra các dự đốn sai lệch.

<b>Khơng cần q trình huấn luyện phứctạp: KNN khơng u cầu q trình huấn</b>

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.

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

của thuật tố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 tốn của thuật tốn.

<b>2. Ứng dụng </b>

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.

<small>viii</small>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Thuật tố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.

<b>3. So sánh thuật toán K-NN và Thuật toán khác</b>

-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.

<b>4. Nội dung thuật toán</b>

<small>ix</small>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<i><b>4.1. Ý tưởng của thuật toán</b></i>

Thuật toán KNN cho rằng những dữ liệu tương tự nhau sẽ tồn tại

<b>gầnnhau</b>

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

<i><b>4.2. Các bước thực hiện</b></i>

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ự đố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 tốn

<small>x</small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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 tốn dự đố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 tốn. Ngồ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.

<i><b>4.3. 1 số phép đo khoảng các</b></i>

<i>4.3.1. Khoảnh cách Euclid (đường chim bay)</i>

<small>xi</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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 P<small>1</small>(x<small>1</small>,y<small>1</small><b>) và P</b><small>2</small>(x<small>2</small>,y<small>2</small>) thì khoảng cách Euclid sẽ được tính theo công thức:

<i>4.3.2. Khoảnh cách Manhattan</i>

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

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Giả sử bài tố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 vng 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 vng 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 vng 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 vng xanh và hai hình tam giác đỏ, lúc này chấm xanh được xếp vào lớp hình vng xanh. Trường hợp lấy K=4, ta nhận thấy sẽ có hai hình vng 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.

<small>xiii</small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<i><small>Vidu 1</small></i>

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.

<i><b>5.2. Ví dụ về K-NN nhiễu</b></i>

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.

<i><b>5.3. Ví dụ</b></i>

<small>xiv</small>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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ự đố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 (+).

<small>xv</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>III. Demo code</b>

Đị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ử

<small>xvi</small>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<small>xvii</small>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<small>xviii</small>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

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

<small>xix</small>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="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

<small>xx</small>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="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

<small>xxi</small>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>Phần V. KẾT LUẬN</b>

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. Ngồ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 tố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.

<small>xxii</small>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>Phần VI. TÀI LIỆU THAM KHẢO</b>

</div>

×