Tải bản đầy đủ (.pdf) (13 trang)

Tiểu luận môn khai phá dữ liệu Phương pháp Support Vector Machines

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 (675.58 KB, 13 trang )

Header Page 1 of 126.

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA CÔNG NGHỆ THÔNG TIN

Môn: KHAI PHÁ DỮ LIỆU
ĐỀ TÀI: Phương pháp Support Vector Machines
Danh sách sinh viên

:
-

Trần Thị Thơm

14110192

-

Huỳnh Nhật Thành

14110178

-

Nguyễn Quang Nhật 14110137

TP.HCM, ngày 26 tháng 04 năm 2017

Footer Page 1 of 126.



Header Page 2 of 126.

1. Nội dung chung
 Tên đề tài:
Phương pháp Support Vector Machines
 Giảng viên hướng dẫn:
Quách Đình Hoàng
 Sinh viên thực hiện:
- Trần Thị Thơm
- Huỳnh Nhật Thành
- Nguyễn Quang Nhật
 Thông tin liên lạc của sinh viên
Stt Tên
MSSV
1 Trần Thị Thơm
14110192
2 Huỳnh Nhật Thành
14110178
3 Nguyễn Quang Nhật 14110137

Email




 Chương trình, ứng dụng sử dụng:
- Chương trình sử dụng: R studio
- Ứng dụng:
2. Phân công thực hiện
Phân công

Cả nhóm

Thực hiện
Tìm kiếm, tổng hợp tài liệu
Lên nội dung cần làm cho đề tài, thời
gian thực hiện.
Trình bày slide
Sửa lỗi

Tiến độ
100%

Nguyễn Quang Nhật
Huỳnh Nhật Thành
Trần Thị Thơm

Tìm hiểu, xây dựng nội dung cơ bản
Triển khai nội dung chi tiết từng phần
Tổng hợp, viết bài báo cáo.

80%
90%
90%

Footer Page 2 of 126.


Header Page 3 of 126.

MỞ ĐẦU

Trong thời đại công nghệ thông tin hiện nay, sự phát triển của công nghệ kéo
theo sự gia tăng rất lớn của lưu lượng thông tin lưu trữ và trao đổi. Do đó, yêu cầu
về tổ chức lưu trữ và truy cập thông tin sao cho hiệu quả được đặt lên hàng đầu.
Hướng giải quyết được đưa ra là tổ chức, tìm kiếm và phân loại thông tin một cách
hiệu quả. Bản thân con người trong đời sống cũng tiếp nhận thế giới xung quanh
thông qua sự phân loại và tổ chức ghi nhớ tri thức một cách hiệu quả. Phân loại
thông qua các lớp và mô tả các lớp giúp cho tri thức được định dạng và lưu trữ
trong đó.
Có nhiều phương pháp phân loại đã được nghiên cứu và được áp dụng. Hiện
nay, phương pháp phân loại Support Vector Machines là một trong những phương
pháp mạnh và hiệu quả để giải quyết các bài toán lớp phi tuyến được Vapnik và
Chervonenkis giới thiệu vào năm 1995. Vì vậy, nhóm em chọn đề tài “Nghiên cứu
thuật toán máy SVM”.
Lý do chọn đề tài
Vấn đề phân lớp và dự đoán là khâu rất quan trọng trong học máy và khai
phá dữ liệu, phát triển tri thức. Kỹ thuật Support Vector Machines (SVM) được
đánh giá là công cụ mạnh và tinh vi nhất hiện nay cho những bài toán phân lớp phi
tuyến. Nhiều ứng dụng đã và đang được xây dựng dựa trên kỹ thuật SVM rất hiệu
quả.
Nội dung cơ bản bao gồm
Chương 1: Giới thiệu Support Vector Machines
Chương 2: Tại sao chọn Support Vector Machines
Chương 3: Đặt vấn đề
Chương 4: Bài toán phân 2 lớp với SVM
Chương 5: So sánh và cải tiến SVM
Phần kết luận
Phần Demo
Phần tài liệu tham khảo

Footer Page 3 of 126.



Header Page 4 of 126.

CHƯƠNG 1: GIỚI THIỆU VỀ SUPPORT VECTOR MACHINE

1. Giới thiệu
Bài toán phân lớp (Classification) và dự đoán (Prediction) là hai bài
toán cơ bản và có rất nhiều ứng dụng trong tất cả các lĩnh vực như: học máy,
nhận dạng, trí tuệ nhân tạo , . v. v. Trong đề tài này, chúng em sẽ đi sâu
nghiên cứu phương pháp Support Vector Machines (SVM), một phương
pháp rất hiệu quả hiện nay.
Phương pháp SVM được coi là công cụ mạnh cho những bài toán
phân lớp phi tuyến tính được các tác giải Vapnik và Chervonenkis phát triển
mạnh mẽ năm 1995. Phương pháp này thực hiện phân lớp dựa trên nguyên
lý Cực tiểu hóa rủi ro có Cấu trúc SRM (Structural Risk Minimization), được
xem là một trong các phương pháp phân lớp giám sát không tham số tinh vi
nhất cho đến nay. Các hàm công cụ đa dạng của SVM cho phép tạo không
gian chuyển đổi để xây dựng mặt phẳng phân lớp.
2. Lịch sử
Thuật toán Support Vector Machines (SVM) ban đầu tìm ra bởi
Vladimir N.Vapnik và dạng chuẩn hiện nay sử dụng lề mềm được tìm ra bởi
Vapnik và Corinna Cortes năm 1995.
3. Định nghĩa
Là phương pháp dựa trên nền tảng của lý thuyết thống kê nên có một
nền tảng toán học chặt chẽ để đảm bảo rằng kết quả tìm được là chính xác.
Là thuật toán học giám sát (supervied learning) được sử dụng cho
phân lớp dữ liệu.
Là một phương pháp thử nghiệm, đưa ra 1 trong những phương pháp
mạnh và chính xác nhất trong số các thuật toán nổi tiếng về phân lớp dữ liệu.

SVM là một phương pháp có tính tổng quát cao nên có thể được áp
dụng cho nhiều loại bài toán nhận dạng và phân loại.

Footer Page 4 of 126.


Header Page 5 of 126.

4. Ứng dụng
- Nhận dạng: tiếng nói, ảnh, chữ viết tay (hơn mạng nơron)
- Phân loại văn bản, khai mỏ dữ liệu văn bản
- Phân tích dữ liệu theo thời gian
- Phân tích dữ liệu gien, nhận dạng bệnh, công nghệ bào chế thuốc
- Phân tích dữ liệu marketing

CHƯƠNG 2: TẠI SAO CHỌN SUPPORT VECTOR MACHINES
Sử dụng thuật toán Support vector machines có nhiều lơi ích:
 SVM rất hiệu quae để giải quyết bài toán dữ liệu có số chiều lớn (ảnh
của dữ liệu biểu diễn gien, protein, tế bào)
 SVM giải quyết vấn đề overfitting rất tốt (dữ liệu có nhiễu và tách rời
nhóm hoặc dữ liệu huấn luyện quá ít)
 Là phương pháp phân lớp nhanh
 Có hiệu suất tổng hợp tốt và hiệu suất tính toán cao.

CHƯƠNG 3: ĐẶT VẤN ĐỀ
1. Ý tưởng
Cho trước một tập huấn luyện, được biểu diễn trong không gian
vector, trong đó mỗi tài liệu là một điểm, phương pháp này tìm ra một
siêu phẳng f quyết định tốt nhất có thể chia các điểm trên không gian này
thành hai lớp riêng biệt tương ứng là lớp “+” và lớp “-”. Chất lượng của

siêu phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm
dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khi đó, khoảng cách
biên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại
càng chính xác.
Ý tưởng của nó là ánh xạ (tuyến tính hoặc phi tuyến) dữ liệu vào
không gian các vector đặc trưng (space of feature vectors) mà ở đó một
siêu phẳng tối ưu được tìm ra để tách dữ liệu thuộc hai lớp khác nhau.
Mục đích của phương pháp SVM là tìm được khoảng cách biên lớn
nhất.

Footer Page 5 of 126.


Header Page 6 of 126.

Đường tô đậm là siêu phẳng tốt nhất và các điểm được bao bởi hình
chữ nhật là những điểm gần siêu phẳng nhất, chúng được gọi là các
vector hỗ trợ (support vector). Các đường nét đứt mà các support vector
nằm trên đó được gọi là lề (margin).
2. Cơ sở lý thuyết
SVM thực chất là một bài toán tối ưu, mục tiêu của thuật toán này là
tìm được một không gian F và siêu phẳng quyết định f trên F sao cho sai
số phân loại là thấp nhất.
Cho tập mẫu D = {(x1, y1), (x2,y2), …, (xl, yl)} với xi ∈ 𝑅𝑛 , thuộc vào
hai lớp nhãn yi ∈ {-1,1} là tập nhãn lớp tương ứng của các xi (-1 biểu thị
lớp I, 1 biểu thị lớp II).
Ta có, phương trình siêu phẳng chứa vector ⃗⃗⃗
𝑥𝑖 trong không gian:
𝑥𝑖 . 𝑤
⃗⃗⃗

⃗⃗ + b = 0
+1, ⃗⃗⃗
𝑥𝑖 . 𝑤
⃗⃗ + b > 0
−1, ⃗⃗⃗
𝑥𝑖 . 𝑤
⃗⃗ + b < 0
Như vậy, f(𝑥
⃗⃗⃗𝑖 ) biểu diễn sự phân lớp của ⃗⃗⃗
𝑥𝑖 vào hai lớp như nêu trên.
Ta nói yi = +1 nếu thuộc lớp I và yi = -1 nếu ⃗⃗⃗
𝑥𝑖 thuộc lớp II.
Đặt f(𝑥
⃗⃗⃗𝑖 ) = sign(𝑥
⃗⃗⃗𝑖 . 𝑤
⃗⃗ + b) ={

Footer Page 6 of 126.


Header Page 7 of 126.

CHƯƠNG 4: BÀI TOÁN PHÂN 2 LỚP VỚI SVM
Bài toán đặt ra là: Xác định hàm phân lớp lớp để phân lớp các mẫu
trong tương lai, nghĩa là với một mẫu dữ liệu mới xi thì cần phải xác định
xi được phân lớp +1 hay lớp -1.
Ta xét 3 trường hợp, mỗi trường hợp sẽ có 1 bài toán tối ưu, giải được
bài toán tối ưu đó sẽ tìm được siêu phẳng cần tìm.
1. Trường hợp 1
Tập D có thể phân chia tuyến tính được mà không có nhiễu (tất cả các điểm

được gán nhãn +1 thuộc về phía dương của siêu phẳng, tất cả các điểm được
gán nhãn -1 thuộc về phía âm của siêu phẳng)

Hình 2. Tập dữ liệu được phân chia tuyến tính
Ta sẽ tìm siêu phẳng tách với w ∈ 𝑅𝑛 là vector trọng số, b ∈ 𝑅𝑛 là hệ số tự
do, sao cho:
+1, ⃗⃗⃗
𝑥𝑖 . 𝑤
⃗⃗ + b > 0
Đặt f(𝑥
⃗⃗⃗𝑖 ) = sign(𝑥
⃗⃗⃗𝑖 . 𝑤
⃗⃗ + b) ={
∀(𝑥𝑖 , 𝑦𝑖 ) ∈ D
−1, ⃗⃗⃗
𝑥𝑖 . 𝑤
⃗⃗ + b < 0
Lúc này ta cần giải toán tối ưu:
{

Footer Page 7 of 126.

𝑀𝑖𝑛 (𝐿(𝑤)) =

1
2

||𝑤||2

𝑦𝑖 (𝑥𝑖 . 𝑤 𝑇 + 𝑏) ≥ 1, 𝑖 = 1, … , 𝑙



Header Page 8 of 126.

2. Trường hợp 2
Tập dữ liệu D có thể phân chia tuyến tính được nhưng có nhiễu. Trong
trường hợp này, hầu hết các điểm đều được phân chia đúng bởi siêu phẳng.
Tuy nhiên có 1 số điểm bị nhiễu, nghĩa là: điểm có nhãn dương nhưng lại
thuộc phía âm của siêu phẳng, điểm có nhãn âm nhưng lại thuộc phía dương
của siêu phẳng.

Hình 3. Tập dữ liệu phân chia tuyến tính nhưng có nhiễu
Trong trường hợp này, ta sử dụng 1 biến mềm 𝜀𝑖 ≥ 0 sao cho:
⃗⃗⃗ + b) ≥ 𝟏 − 𝜺𝒊 , i=1,…,l
yi.( ⃗⃗⃗
𝒙𝒊 . 𝒘
Bài toán tối ưu trở thành :
{

𝑀𝑖𝑛 (𝐿(𝑤, 𝜀)) =

1
2

||𝑤||2 + 𝐶 ∑𝑙𝑖=1 𝜀𝑖

𝑦𝑖 (𝑥𝑖 . 𝑤 𝑇 + 𝑏) ≥ 1 − 𝜀𝑖 , 𝑖 = 1, … , 𝑙; 𝜀𝑖 ≥ 0
Trong đó C là tham số xác định trước, định nghĩa giá trị ràng buộc, C
càng lớn thì mức độ phạm vi đối với những lỗi thực nghiệm (là lỗi xảy ra lúc
huấn luyện, tính bằng thương số của số phần tử lỗi và tổng số phần tử huấn

luyện) càng cao.

Footer Page 8 of 126.


Header Page 9 of 126.

3. Trường hợp 3
Ta dữ liệu D không thể phân chia tuyến tính được, ta sẽ ánh xạ các vector dữ
liệu x từ không gian n chiều vào một không gian m chiều (m > n), sao cho
trong không gian m chiều, D có thể phân chia tuyến tính được.

Hình 4. Tập dữ liệu không phân chia tuyến tính.
Gọi ∅ là ánh xạ phi tuyến từ không gian 𝑅𝑛 vào không giam 𝑅𝑚
∅: 𝑅 𝑛 → 𝑅𝑚
Bài toán tối ưu trở thành:
𝑀𝑖𝑛 (𝐿(𝑤, 𝜀)) =

1
2

||𝑤||2 + 𝐶 ∑𝑙𝑖=1 𝜀𝑖

{
𝑦𝑖 (∅(𝑥𝑖 ). 𝑤 𝑇 + 𝑏) ≥ 1 − 𝜀𝑖 , 𝑖 = 1, … , 𝑙; 𝜀𝑖 ≥ 0
4. Bài toán phân đa lớp của SVM
Để phân đa lớp thì kỹ thuật SVM sẽ chia không gian dữ liệu thành 2 phần và
tiếp tục với không gian đã được phân chia. Khi đó hàm quyết định phân dữ
liệu vào lớp thứ I sẽ là:
𝑓𝑖 (𝑥) = 𝑤𝑖𝑇 (𝑥) + 𝑏𝑖

Những phần tử x là support vector nếu thỏa điều kiện:
1, ∈ 𝑖
𝑓𝑖 (𝑥) = {
−1, ∉ 𝑖

Footer Page 9 of 126.


Header Page 10 of 126.

Giả sử bài toán phân loại k lớp (k ≥ 2), ta sẽ tiến hành k(k-1)/2 lần phân
lớp nhị phân sử dụng phương pháp SVM. Mỗi lớp sẽ tiến hành phân tách
với k-1 lớp còn lại để xác định k-1 hàm phân tách (chiến lược “một-đốimột” (one-against-one).
Kỹ thuật phân đa lớp bằng phương pháp hiện vẫn đang được tiếp tục
nghiên cứu và phát triển.
LƯU Ý: CÁC BƯỚC CHÍNH CỦA PHƯƠNG PHÁP SVM
 Tiền xử lý dữ liệu: Phương pháp SVM yêu cầu được diễn tả như
các vector của các số thực. Như vậy nếu đầu vào chưa phải là số
thực thì ta cần tìm cách chuyển chúng về dạng số SVM. Tránh các
số quá lớn, thường nên co giãn dữ liệu để chuyển đoạn [-1,1] hoặc
[0,1].
 Chọn hàm hạt nhân: cần chọn hàm hạt nhân phù hợp tương ứng
cho từng bài toán cụ thể để đạt được độ chính xác cao trong quá
trình học tập.
 Thực hiện việc kiểm tra chéo để xác định các tham số cho ứng
dụng.
 Sử dụng các tham số cho việc huấn luyện tập mẫu.
 Kiểm thử tập dữ liệu Test.
CHƯƠNG 5: SO SÁNH VÀ MỘT SỐ CẢI TIỀN


Một số phương pháp như neuron, fuzy logic, mạng fuzzy-neuron,…,
cũng được sử dụng thành công để giải quyết bài toán phân lớp. Ưu điểm của
phương pháp này là không cần xác định mô hình đối của đối tượng.
SVM có 2 đặc trưng cơ bản:
- Nó luôn kết hợp với các dữ liệu có ý nghĩa về mặt vật lý, do vậy dễ dàng
giải thích được một cách tường minh,
- Cần một tập các mẫu huấn luyện rất nhỏ.
Phương pháp SVM hiện nay được xem là một công cụ mạnh và tinh vi nhất
hiện any cho những bài toán phân lớp phi tuyến. Nó có một số biến thể như
Footer Page 10 of 126.


Header Page 11 of 126.

C-SVC, v-SVC. Cải tiến mới nhất hiện nay của phương pháp SVM đã được
công bố là thuật toán NNSRM (Nearest Neighbor Structural Risk
Minimization) là sự kết hợp giữa 2 kỹ thuật SVM và Nearest Neighbor.

KẾT LUẬN
1. Ưu điểm và nhược điểm của phương pháp Support Vector Machines
1.1. Ưu điểm
Là một kĩ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưu điểm
trong số đó có việc tính toán hiệu quả trên các tập dữ liệu lớn. Có thể kể thêm
một số ưu điểm của phương pháp này như:







Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán
hiệu quả trong không gian chiều cao, trong đó đặc biệt áp dụng cho
các bài toán phân loại văn bản và phân tích quan điểm nơi chiều có
thể cực kỳ lớn
Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử
dụng trong quá trình huấn luyện và ra quyết định thực tế cho các điểm
dữ liệu mới nên chỉ có những điểm cần thiết mới được lưu trữ trong
bộ nhớ khi ra quyết dịnh
Tính linh hoạt - phân lớp thường là phi tuyến tính. Khả năng áp dụng
Kernel mới cho phép linh động giữa các phương pháp tuyến tính và
phi tuyến tính từ đó khiến cho hiệu suất phân loại lớn hơn.

1.2. Nhược điểm
 Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) của
tập dữ liệu lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho
kết quả khá tồi
 Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc
cố gắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng
SVM. Điều này chưa giải thích được xác suất xuất hiện của một thành
viên trong một nhóm là như thế nào. Tuy nhiên hiệu quả của việc
phân lớp có thể được xác định dựa vào khái niệm margin từ điểm dữ
liệu mới đến siêu phẳng phân lớp mà chúng ta đã bàn luận ở trên.
2. Những kết quả đạt được
Footer Page 11 of 126.


Header Page 12 of 126.

- Nghiên cứu và trình bày cơ sở của lý thuyết của phương pháp học máy.
- Trình bày phương pháp SVM. Đây là một phương pháp phân lớp hiệu

quả được nghiên cứu nhiều nhất trong thời gian qua.
- Phân tích những giải pháp cho phép mở rộng và cải tiến để nâng cao hiệu
quả ứng dụng của SVM:
 Kết hợp phương pháp SVM với một số phương pháp khác như
phương pháp người láng giếng gần nhất (nearest neighbor),…
để làm tăng hơn nữa tốc độ tính toán, cũng như độ chính xác
cho SVM.
 Cải tiến SVM cho phép phân chia không gian dữ liệu một cách
tốt hơn, nhằm loại bỏ những vùng không được phân lớp bằng
cách đưa kỹ thuật mờ vào SVM.
3. Hướng phát triển của đề tài
- Thông qua các ứng dụng thực tiễn đã và đang nghiên cứu sử dụng
phương pháp SVM, có thể thấy được những khả năng to lớn của nó, đồng
thời mở ra những ứng dụng mới.
- Kết hợp phương pháp SVM với những phương pháp khác phù hợp với
từng đối tượng cụ thể nhằm làm tăng hơn nữa hiệu quả phân lớp, tốc độ
tính toán cũng như độ chính xác cho SVM.
DEMO
TÀI LIỆU THAM KHẢO
[1] Thái Sơn: Luận văn thạc sỹ khoa học: Kỹ thuật Support Vector Machines và
ứng dụng. Ngành toán tin ứng dụng: Đại học Bách khoa Hà Nội, 2006.
[2] PGS.TS Vũ Thành Nguyên, Thi Minh Nguyễn: Một số cải tiến của bài toán
phân lớp văn bản sử dụng thuật toán SVM và áp dụng trong phân tích tiếng Việt.
Đại học Công nghệ thông tin – ĐHQG, 2011.

Footer Page 12 of 126.


Header Page 13 of 126.


[3] Phạm Văn Sơn: Đồ án tốt nghiệp đại học hệ chính quy: Tìm hiểu về Support
Vector Machines cho bài toán phân lớp quan điểm.Đại học dân lập Hải
Phòng,2012.
[4]Jiawei Han, Micheline Kamber, Jian Pei Data Mining. Concepts and
Techniques, 3rd Edition.

Footer Page 13 of 126.



×