1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo đồ án trí tuệ nhân tạo: xây dựng chương trình sử dụng Radial basis functions networks để tìm đường phân lớp 2 tập điểm trên không gian

10 768 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 151 KB

Nội dung

I /Giới thiệu chung 1/ Giới thiệu về bài toán Bài toán được mô tả là có các tập điểm trên không gian 2 chiều, mỗi điểm mang nhãn 1 hoặc -1, hãy xây dựng chương trình sử dụng dụng Radial basis functions networks để tìm đường phân lớp 2 tập điểm nói trên Để giải quyết vấn đề của bài toán này chúng ta có thể dùng nhiều phương pháp khác nhau như hàm tuyến tính (hoặc affine), máy phân lớp sử dụng véctơ hỗ trợ (Support Vector Machines – SVM). Và một trong những cách khá phổ biến là sử dụng mạng các hàm cơ sở dạng bán kính (Radial Basis Functions network – RBF) do mạng hàm cơ sở bán kính có khá nhiều ưu điểm so với các phương pháp khác: 1. Hàm phân lớp tuyến tính đơn thuần (Perceptron) không thể phân lớp trong một số trường hợp. Ví dụ như hàm XOR: 2. Khả năng nhớ các mẫu học: nếu đầu vào của hàm phân lớp “gần giống” với một mẫu học đã biết trước đó thì kết quả phân lớp cũng phải “gần giống” kết quả phân lớp đã được học. 3. Ý tưởng phân lớp trên không gian có nhiều chiều hơn: có nhiều ví dụ cho thấy, khi được ánh xạ lên không gian nhiều chiều hơn lúc đầu, bài toán phân lớp trở nên dễ dàng hơn. 2/ Giới thiệu về Hàm bán kính (Radial function) Hàm bán kính là hàm chỉ phụ thuộc vào khoảng cách từ đối số x đến một điểm c (gọi là tâm) cho trước Với 1 số hàm bán kính Hàm Gaussian: Hàm đa thức: Hàm khoảng cách: Mạng hàm cơ sở bán kính (RBF): Giả sử ta có D tâm khi đó mạng hàm cơ sở bán kính là tổ hợp tuyến tính của các hàm bán kính tại các tâm này Nhận xét: 1. Mạng hàm cơ sở bán kính đã tạo ra ánh xạ 2. Kết quả của mạng là vì vậy, đây là hàm tuyến tính phân lớp dữ liệu trên không gian 3. Mạng RBF còn có thể dùng để xấp xỉ hàm số nếu ta trực tiếp dùng đầu ra

Trang 1

HỌC VIỆN KỸ THUẬT QUÂN SỰ

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HỌC

TRÍ TUỆ NHÂN TẠO

Giáo viên hướng dẫn: Ngô Hữu Phúc

HÀ NỘI 3/2010

Trang 2

Học viện kỹ thuật quân sự - khoa CNTT

Báo cáo môn trí tuệ nhân tạo

Đề tài:

xây dựng chương trình sử dụng Radial basis functions networks để

tìm đường phân lớp 2 tập điểm trên không gian

Sinh Viên: Nguyễn Minh Tiến – Tin 5a

Giáo viên: Ngô Hữu Phúc

Trang 3

I /Giới thiệu chung

1/ Giới thiệu về bài toán

Bài toán được mô tả là có các tập điểm trên không gian 2 chiều, mỗi điểm mang nhãn 1 hoặc -1, hãy xây dựng chương trình sử dụng dụng Radial basis functions networks để tìm đường phân lớp 2 tập điểm nói trên

Để giải quyết vấn đề của bài toán này chúng ta có thể dùng nhiều

phương pháp khác nhau như hàm tuyến tính (hoặc affine), máy phân lớp

sử dụng véctơ hỗ trợ (Support Vector Machines – SVM) Và một trong những cách khá phổ biến là sử dụng mạng các hàm cơ sở dạng bán kính (Radial

Basis Functions network – RBF) do mạng hàm cơ sở bán kính có khá nhiều ưu

điểm so với các phương pháp khác:

1 Hàm phân lớp tuyến tính đơn thuần (Perceptron) không thể phân lớp trong

một số trường hợp Ví dụ như hàm XOR:

2 Khả năng nhớ các mẫu học: nếu đầu vào của hàm phân lớp “gần giống”

với một mẫu học đã biết trước đó thì kết quả phân lớp cũng phải “gần giống” kết quả phân lớp đã được học

3 Ý tưởng phân lớp trên không gian có nhiều chiều hơn: có nhiều ví dụ cho

thấy, khi được ánh xạ lên không gian nhiều chiều hơn lúc đầu, bài toán phân lớp trở nên dễ dàng hơn

2/ Giới thiệu về Hàm bán kính (Radial function)

Hàm bán kính là hàm chỉ phụ thuộc vào khoảng cách từ đối số x đến một điểm c

(gọi là tâm) cho trước

Với

1 số hàm bán kính

Hàm Gaussian:

Hàm đa thức:

Hàm khoảng cách:

Mạng hàm cơ sở bán kính (RBF): Giả sử ta có D tâm khi đó mạng hàm cơ sở bán kính là tổ hợp tuyến tính của các hàm bán kính tại các tâm này

Trang 4

Nhận xét:

1 Mạng hàm cơ sở bán kính đã tạo ra ánh xạ

2 Kết quả của mạng là

vì vậy, đây là hàm tuyến tính phân lớp dữ liệu trên không gian

3 Mạng RBF còn có thể dùng để xấp xỉ hàm số nếu ta trực tiếp dùng đầu ra

II / Giới thiệu chương trình

Chương trình được viết bằng ngôn ngữ VB.Net với các thành phần cơ bản như sau

Trang 5

Trong đó: Form 1: form main chính của chương trình

Form 2: Sử dụng để test kết quả của ma trận trọng số mới tạo ra

Class Matran: Lưu các phương thức của ma trận như nghịch đảo, nhân

Class Toado: Các thuộc tính về tọa độ của 1 điểm bào gồm TdoX và TdoY

Sau khi khởi động chương trình chúng ta có thể đánh dấu các điểm huấn luyện trên canvas chính sử dụng chuột trái (tạo ra màu đỏ mang giá trị 1) hoặc phải (tạo ra màu xanh mang giá trị -1)

Trang 6

Hoặc có thể lấy mặc định 4 điểm XOR

Sau khi bấm nút Train, chương trình sẽ tạo ra ma trận trọng số W có thể sử dụng

để phân lớp các tập điểm

Sau khi đã có ma trận trọng số W, chúng ta có thể sử dụng nút test để kiểm tra 1 điểm bất kỳ sẽ thuộc về phần tập điểm nào

Trang 7

III/ Thuật toán

Chương trình sẽ sử dụng hàm

Với tâm là tất cả các điểm huấn luyện

*/ Khi khởi chạy chương trình sẽ tạo ra

Public mangx(50) As toado

Dim mangy(50, 1) As Double

Mangx kiểu toado sẽ lưu vị trí của các điểm huấn luyện

Mangy kiểu double sẽ lưu giá trị của điểm huấn luyện tương ứng, mảng y này thực chất chỉ cần là mảng 1 chiều kiểu int (do chỉ có giá trị 1 hoặc -1) nhưng để

dễ dàng thao tác khi nhân ma trận nên e để là mảng 2 chiều kiểu double

*/ Khi bắt đầu huấn luyện chương trình

Ví dụ chúng ta sử dụng hàm XOR

Trang 8

Thế W mới tìm được vào hàm F(x)

Dim i, j As Integer

'tao ra mang phi voi phi(r) = exp (-r binh)

For i = 0 To (sodiem - 1)

For j = 0 To (sodiem - 1)

mangphi(i, j) = Math.Exp(-(tinhkhoangcach(mangx(i),

mangx(j)) * (tinhkhoangcach(mangx(i), mangx(j)))))

Next

Next

nghichdaophi = matran.Inv(mangphi)

W = matran.Multiply(nghichdaophi, mangy)

TextBox1.Text = ""

For i = 0 To sodiem - 1

thapphan = Format$(W(i, 0), "0.000" )

TextBox1.Text += thapphan + vbCrLf

'vbcrlf la de xuong dong thoi

Next

Sau bước này chúng ta đã có ma trận trọng số W dạng n hàng 1 cột và được thể hiện ra trong textbox 1

Sau khi đã có ma trận trọng số W chúng ta có thể test lại ma trận mới tạo ra này với 1 số điểm bất kỳ

'tao ra mang phi voi phi(r) = exp (-r binh)

For i = 0 To (Form1.sodiem - 1)

j = Form1.tinhkhoangcach(test, Form1.mangx(i))

khoangcach(i, 0) = Math.Exp(-(j * j))

Next

For i = 0 To Form1.sodiem - 1

chuyenviW(0, i) = Form1.W(i, 0)

Next

For i = 0 To Form1.sodiem - 1

ketqua += chuyenviW(0, i) * khoangcach(i, 0)

Next

If ketqua < 0 Then

Trang 9

ketqua = -1

MsgBox( "điểm test có giá trị -1 (Blue)" )

Else

ketqua = 1

MsgBox( "điểm test có giá trị 1 (Red)" )

End If

Sau khi điểm test được nhập vào thông qua form 2, chương trình sẽ tính khoảng cách từ điểm test này đến các tâm của mạng, các giá trị này sẽ được lưu vào 1

ma trận khoangcach có n hàng 1 cột

Ma trận W sau khi chuyển vị có 1 hàng n cột nhân với ma trận khoảng cách n hàng 1 cột sẽ tạo ra 1 số thực, số thực này được hardlim để xem sẽ thuộc về phần phân lớp nào

IV/ 1 số nhược điểm

Do thời gian và khả năng có hạn, chương trình không thể tránh khỏi có 1 số nhược điểm khá lớn như sau:

- Chương trình không tính được số tâm tối ưu cho mạng mà sẽ sử dụng hết tất cả các điểm huấn luyện được cho để làm tâm (Nếu tìm số tâm sẽ có tình trạng mảng phi khi tạo ra sẽ không vuông, không nghịch đảo được,

khi đó sẽ phải áp dụng phương pháp giả nghịch đảo (pseudo-inverse) hoặc

biến đổi gauss khá phức tạp)

- Chưa thể áp dụng ma trận trọng số W để vẽ ra 1 đường thẳng hoặc siêu phẳng trên thực tế để đáp ứng được yêu cầu phân lớp

- Chương trình còn chưa tối ưu, giao diện còn xấu

Trang 10

V/ Tài liệu tham khảo

- Giáo trình trí tuệ nhân tạo _ Thầy Ngô Hữu Phúc _ HVKTQS

- Trang web Wikipedia

- Trang web http://csstudyfun.etintin.com/

- Giáo trình Pattern Recognition with Neural Networks in C++

- 1 số tài liệu khác trên internet

Ngày đăng: 25/03/2014, 22:19

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w