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

Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine

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 (528.82 KB, 27 trang )

Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
Mục lục
HVTH: CH1301054 – Võ Nhựt Thanh 1
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
A. Giới thiệu
Mạng neural nhân tạo là một mô hình toán học đã được nghiên cứu từ lâu và được ứng
dụng nhiều vào các bài toán mô phỏng, nhận dạng, dự đoán. Gần đây mạng neural nhân tạo
được quan tâm và ứng dụng ngày càng nhiều vào các bài toán dự báo dữ liệu chuỗi thời gian.
Mục đích của đề tài này là tìm hiểu về nguyên tắc hoạt động, hai giải thuật huấn luyện mạng
neural: lan truyền ngược (backpropagation) và RPROP, cách áp dụng mạng neural nhân tạo
vào việc dự báo dữ liệu chuỗi thời gian, hiện thực một chương trình dự báo dữ liệu chuỗi thời
gian sử dụng mạng neural nhân tạo với hai giải thuật học là lan truyền ngược và RPROP , chạy
thử nghiệm chương trình trên một số bộ dữ liệu mẫu để đánh giá độ chính xác dự báo và tính
hữu hiệu của các giải thuật.
HVTH: CH1301054 – Võ Nhựt Thanh 2
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
B. Mạng neural nhân tạo
I. Cấu trúc của mạng neural nhân tạo:
Mạng neural nhân tạo là một mạng gồm một tập các node được kết nối với nhau
bằng các cạnh có trọng số, mỗi node là một đơn vị tính toán thường gọi là perceptron.
Một perceptron (Hình 1) thực hiện một công việc rất đơn giản: nó nhận tín hiệu
vào từ các perceptron phía trước hay một nguồn bên ngoài và sử dụng chúng để tính tín
hiệu ra. Mỗi perceptron có thể có nhiều tín hiệu đầu vào nhưng chỉ có một tín hiệu đầu
ra duy nhất. Đôi khi các perceptron còn có một giá trị gọi là độ lệch (bias) được gộp vào
các tính hiệu đầu vào để tính tín hiệu ra.

HÌNH : PERCEPTRON

Trong một mạng nơron có ba kiểu perceptron:
1) Các perceptron đầu vào, nhận tín hiệu từ bên ngoài;
2) Các perceptron đầu ra, gửi dữ liệu ra bên ngoài;


3) Các perceptron ẩn, tín hiệu vào của nó được truyền từ các perceptron khác
và tín hiệu ra được truyền đến các perceptron khác trong mạng.
Khi nhận được các tín hiệu đầu vào, một perceptron sẽ nhân mỗi tín hiệu với
trọng số tương ứng rồi lấy tổng các giá trị vừa nhận được. Kết quả sẽ được đưa vào
một hàm số gọi là hàm kích hoạt mà đôi khi còn gọi là hàm chuyển để tính ra tín hiệu
đầu ra.
Có 4 loại hàm kích hoạt thường dung:
1) Hàm đồng nhất (Identity function):
2) Hàm ngưỡng:
3) Hàm sigmoid:
HVTH: CH1301054 – Võ Nhựt Thanh 3
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
4) Hàm sigmoid lưỡng cực
Các perceptron liên kết với nhau qua các cạnh có trong số tạo thành mạng
neural nhân tạo. Tùy theo số lượng các perceptron và cách thức liên kết của chúng mà
tạo thành các mạng neural khác nhau có khả năng khác nhau. Có hai loại mạng neural
nhân tạo cơ bản là mạng truyền thẳng và mạng hồi quy.
1) Mạng truyền thẳng: Một perceptron ở lớp đứng trước sẽ kết nối với tất cả các
perceptron ở lớp đứng sau. Tín hiệu chỉ được truyền theo một hướng từ lớp đầu vào
qua các lớp ẩn (nếu có) và đến lớp đầu ra. Nghĩa là tín hiệu ra của một perceptron
không được phép truyền cho các perceptron trong cùng lớp hay ở lớp trước. Đây là
loại mạng rất phổ biến và được dung nhiều trong việc dự báo dữ liệu chuỗi thời gian.
Bài báo cáo này chỉ tập trung vào mô hình mạng này.
Hình 2: Mạng neural truyền thẳng
2) Mạng hồi quy: Khác với mạng truyền thẳng, mạng hồi quy có chứa các liên kết
ngược từ một perceptron đến perceptron ở lớp trước nó.
Hình 3: Mạng neural hồi quy
II. Nguyên tắc hoạt động của mạng neural
nhân tạo:
Trong mạng neural truyền thẳng nhiều

lớp, các tín hiệu sẽ được truyền từ các perceptron
đầu vào qua các perceptron ở lớp ẩn (nếu có) và
đến các perceptron ở lớp đầu ra. Các perceptron đầu vào là các perceptron đặc biệt,
chúng không thực hiện một tính toán nào cả mà chỉ truyền tín hiệu từ môi trường ngoài
sang các perceptron ở lớp sau. Một perceptron i không phải là perceptron ở lớp đầu vào
sẽ tính giá trị đầu ra của nó như sau. Đầu tiên nó sẽ tính tổ hợp tuyến tính các giá trị
đầu vào của mình
HVTH: CH1301054 – Võ Nhựt Thanh 4
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
( )
i j ij i
j pred i
net s w
θ

= −

Ở đây pred(j) là các perceptron đứng trước i và kết nối với i, s
j
là đầu ra của cá
perceptron này và cũng là đầu vào của I, w
ij
trọng số của cạnh nối từ perceptron j đến
perceptron i,
i
θ
là độ lệch (bias) của perceptron i. Đôi khi giá trị độ lệch được
biểu diễn bằng một trọng số của một cạnh kết nối từ một perceptron giả có giá trị đầu ra
luôn là 1 đến perceptron i. Sau đó giá trị net
i

sẽ được truyền vào hàm kết hợp để tính
giá trị đầu ra của s
i
của perceptron i. Nếu perceptron i là perceptron ở tầng suất của
mạng thì s
i
chính là tín hiệu đầu ra của mạng neural, nếu không thì s
i
sẽ được truyền
đến làm giá trị đầu vào cho các perceptron ở lớp kế sau. Ví dụ nếu hàm kích hoạt là
hàm sigmoid thì s
i
được tính như sau
1
1
i
i
net
s
e

=
+
.
Mạng neural nhân tạo có thể được xem như một hàm số từ một tập các giá trị
đầu vào đến một tập các giá trị đầu ra có các tham số là số lớp, số perceptron trên mỗi
lớp và các tập hợp các trọng số w
ij
. Bài toán trên mạng neural là làm sao xác định được
các thông số trên để mạng neural thực hiện được yêu cầu mong muốn. Điều này được

thực hiện qua một quá trình gọi là quá trình huấn luyện mạng.
III. Huấn luyện mạng neural:
Chức năng của một mạng nơron được quyết định bởi các nhân tố như: hình
dạng mạng (số lớp, số đơn vị trên mỗi lớp, cách mà các lớp được liên kết với nhau) và
các trọng số của các liên kết bên trong mạng. Hình dạng của mạng thường là cố định,
và các trọng số được quyết định bởi một thuật toán huấn luyện (training algorithm). Tiến
trình điều chỉnh các trọng số để mạng “nhận biết” được quan hệ giữa đầu vào và đích
mong muốn được gọi là học (learning) hay huấn luyện (training). Rất nhiều thuật toán
huấn luyện đã được phát minh để tìm ra tập trọng số tối ưu làm giải pháp cho các bài
toán. Các thuật toán đó có thể chia làm hai nhóm chính: Học có giám sát (Supervised
learning) và Học không có giám sát (Unsupervised Learning).
Học có giám sát: mạng được huấn luyện bằng cách cung cấp cho nó các cặp
mẫu đầu vào và các đầu ra mong muốn (target values). Các cặp này có sẵn trong quá
trình thu nhập dữ liệu. Sự khác biệt giữa các đầu ra theo tính toán trên mạng so với các
đầu ra mong muốn được thuật toán sử dụng để thích ứng các trọng số trong mạng.
Điều này thường được đưa ra như một bài toán xấp xỉ hàm số - cho dữ liệu huấn luyện
bao gồm các cặp mẫu đầu vào x, và một đích tương ứng t, mục đích là tìm ra hàm f(x)
thoả mãn tất cả các mẫu học đầu vào. Đây là mô hình học rất phổ biến trong việc áp
dụng mạng neural vào bài toán dự báo dữ liệu chuỗi thời gian. Hai giả thuật được đề
cập trong bài báo cáo này, lan truyền ngược và RPROP là hai giải thuật học thuộc mô
hình này.
HVTH: CH1301054 – Võ Nhựt Thanh 5
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
Hình 4: Mô hình học có giám sát
Học không có giám sát: với cách học không có giám sát, không có phản hồi từ
môi trường để chỉ ra rằng đầu ra của mạng là đúng. Mạng sẽ phải khám phá các đặc
trưng, các điều chỉnh, các mối tương quan, hay các lớp trong dữ liệu vào một cách tự
động. Trong thực tế, đối với phần lớn các biến thể của học không có giám sát, các đích
trùng với đầu vào. Nói một cách khác, học không có giám sát luôn thực hiện một công
việc tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu vào.

Để huấn luyện một mạng và xét xem nó thực hiện tốt đến đâu, ta cần xây dựng
một hàm mục tiêu (hay hàm đánh giá) để cung cấp cách thức đánh giá khả năng hệ
thống một cách không nhập nhằng. Việc chọn hàm mục tiêu là rất quan trọng bởi vì hàm
này thể hiện các mục tiêu thiết kế và quyết định thuật toán huấn luyện nào có thể được
áp dụng. Để phát triển một hàm mục tiêu đo được chính xác cái chúng ta muốn không
phải là việc dễ dàng. Trong các bài toán dự báo dữ liệu chuỗi thời gian sử dụng các giải
thuật học có giám sát thì hàm tổng bình phương lỗi là hàm đánh giá rất hay dùng.
2
1
( )
2
p p
n n
p n
E t s
∈Ρ
= −
∑ ∑
Ở đây, P là tập hợp các mẫu dự liệu, mỗi mẫu p thuộc P là một cặp các giá trị
gồm một vector các giá trị đầu vào
p
x
và một vector các giá trị đầu ra
p
n
t

mong muốn,
p
n

s
là giá trị đầu ra tính toán theo mạng neural, n là số perceptron ở
tầng xuất.
Việc đạt được mục tiêu học tương đương với việc tìm được giá trị của các trọng
số w
ij
sao cho E đạt được giá trị tối ưu. Các trọng số liên kết được thay đổi theo hướng
tìm kiếm d(t), sẽ dần đưa các trọng số về giá trị làm cho E được cực tiểu.
( ) * ( )
( 1) ( ) ( )
w t d t
w t w t w t
ε
=
+ = +
V
V
HVTH: CH1301054 – Võ Nhựt Thanh 6
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
Ở đây
ε
là hệ số học (learning rate), có vai trò điều tiết mức độ thay đổi
của trọng số trong các bước cập nhập. Nó thông thường có giá trị nhỏ (ví dụ 0.1) và
thỉnh thoảng được điều chỉnh giảm khi số lần cập nhập các trọng số tăng lên. Giá trị của
d(t) được xác định giựa vào độ dốc (gradient) của E(t), cụ thể là
( )
( ) ( )
( )
E t
d t E t

w t

= −∇ = −

.
1. Giải thuật lan truyền ngược:
Giải thuật lan truyền ngược tìm tập các trọng số thích hợp cho một mạng neural
truyền thẳng nhiều lớp. Nó áp dụng phương pháp giảm độ dốc (gradient descent) để tối
thiểu hóa bình phương sai số giữa kết quả xuất của mạng với kết quả xuất mong muốn.
Ý tưởng chính của giải thuật là giá trị lỗi sẽ được lan truyền ngược từ tầng xuất về tầng
nhập để tính
E

(đạo hàm riêng phần của hàm mục tiêu E theo từng trọng số
w
ij
).
Ta tính đạo hàm riêng phần này như sau:
i
ij i ij
s
E E
w s w

∂ ∂
=
∂ ∂ ∂

với
'( )

i i i
i i
ij i ij
s s net
f net s
w net w
∂ ∂ ∂
= =
∂ ∂ ∂
Ở đây w
ij
là trọng số của cạnh nối perceptron j đến perceptron i, s
i
là kết quả xuất
của perceptron i, f() là hàm kích hoạt của các perceptron,
( )
i j ij i
j pred i
net s w
θ

= −

i
E
s


được tính theo hai trường hợp sau:
1) Nếu perceptron i là perceptron ở tầng xuất thì:


2
( )
1
( )
2
i i
i i
i i
t s
E
t s
s s
∂ −

= = − −
∂ ∂
, với t
i
là giá trị xuất mong muốn của
perceptron i
2) Nếu perceptron i là perceptron ở tầng ẩn thì:

( ) ( ) ( )
'( )
k k k
k ki
k succ i k succ i k succ i
i k i k k i k
s s net

E E E E
f net w
s s s s net s s
∈ ∈ ∈
∂ ∂ ∂
∂ ∂ ∂ ∂
= = =
∂ ∂ ∂ ∂ ∂ ∂ ∂
∑ ∑ ∑
HVTH: CH1301054 – Võ Nhựt Thanh 7
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
Ở đây succ(i) là các perceptron ở lớp ngay sau perceptron i. Các công thức này cho
phép ta xây dựng một thủ tục tính đạo hàm riêng của hàm mục tiêu E theo các trọng
số w
ij
như sau: Bắt đầu tính toán từ perceptron ở tầng xuất, sau đó sử dụng kết quả
vừa tính được vào việc tính toán ở các perceptron ở tầng trước. Nói các khác thông
tin về độ dốc (gradient) được lan truyền từ tầng xuất đến tầng nhập. Do đó giả thuật
này được gọi là giải thuật lan truyền ngược.
Mỗi khi thông tin về đạo hàm riêng phần đã biết, bước tiếp theo trong giải thuật lan
truyền ngược là cập nhập các trọng số w
ij
.
( ) * ( )
( 1) ( ) ( )
w t E t
w t w t w t
ε
∆ = − ∇
+ = + ∆

Ở đây
ε

là hệ số học (learning rate) có vai trò điều tiết mức độ thay đổi của
trọng số trong các bước cập nhập. Kỷ thuật tối ưu này gọi là giảm độ dốc (gradient descent).
Mặc dù giải thuật lan truyền ngược tương đối đơn giản nhưng trong thực tế việc lựa
chọn một hệ số học phù hợp là không hề đơn giản. Hệ số học quá nhỏ sẽ dẫn đến thời gian hội
tụ của giải thuật quá lâu, ngược lại hệ số học quá lớn sẽ dẫn đến hiện tượng giao động
(oscillation), ngăn không cho giá trị hàm mục tiêu hội tụ về một diểm nhất định. Hơn nữa, mặc
dù điểm tối ưu cục bô có thể được chứng minh là luôn có thể đạt được ở một vài trường hợp cụ
thể nhưng không có gì đảm bảo giải thuật sẽ tìm được tối ưu toàn cục của hàm mục tiêu E. Một
vấn đề khác nữa là kích cỡ của đạo hàm cũng ảnh hướng đến sự cập nhập các trọng số. Nếu
đạo hàm riêng phần quá nhỏ thì
w

nhỏ, nếu đạo hàm riêng phần lớn thì
w


lớn. Độ lớn của đạo hàm riêng phần thay đổi không thể biết trước được theo hình dạng của
hàm lỗi E trong mỗi lần lặp. Do đó quá trình học không ổn định.
Để cho quá trình học ổn định người ta thêm vào một hệ số quán tính (momentum term)
( ) ( ) * ( 1)
ij ij
ij
E
w t t w t
w
ε µ


∆ = − + ∆ −

Hệ số quán tính
µ
có tác dụng điều chỉnh mức độ ảnh hưởng của giá trị
( 1)
ij
w t
∆ −
ở bước lặp trước lên giá trị
( )
ij
w t

.
Cơ bản có hai phương pháp cập nhập các trọng số phân loại theo thời điểm cập nhập:
học theo mẫu (learning by pattern) và hoc theo epoch (learning by epoch). Một epoch là một lần
học duyệt qua tất cả các mẫu trong tập dữ liệu mẫu dùng để học.
Trong phương pháp học theo mẫu đôi khi còn dược gọi là học trực tuyến (online
learning), cứ mỗi lần một mẫu trong tập dữ liệu được duyệt qua thì các trọng số sẽ được cập
nhập. Phương pháp này cố gắng tối thiểu hàm lỗi tổng thể (overall error) bằng cách tối ưu hàm
lỗi cho từng mẫu trong tập dữ liệu học. Phương pháp này làm việc tốt cho các tập dữ liệu mẫu
có kích cỡ lớn và chứa đựng nhiều thông tin dư thừa.
Phương pháp học theo epoch (learning by epoch) thực hiện lấy tổng tất cả thông tin về
độ dốc (gradient) cho toàn bộ tập mẫu (pattern set) sau đó mới cập nhập các trọng số, nghĩa là
nó thực hiện việc cập nhập trọng số sau khi đã duyệt qua hết các mẫu trong tập dữ liệu.
Phương pháp này còn có tên gọi khác là học theo bó (batch learning).
Sau đây là mã giả cho giải thuật lan truyền ngược theo phương pháp học trực tuyến
(online learning):
1. Initialize all weights to small random number

2. Loop until terminated condition satisfied
2.1. For each training pattern, do
HVTH: CH1301054 – Võ Nhựt Thanh 8
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
2.1.1. Input the training pattern to the network and compute the network
outputs.
2.1.2. For each output perceptron k
2.1.2.1. Compute
kj
E
w


2.1.3. For each hidden perceptron h, from the last hidden to the first hidden
2.1.3.1. Compute
hj
E
w


2.1.4. For each w
ij
in the network
2.1.4.1. Compute
( ) ( ) * ( 1)
ij ij
ij
E
w t t w t
w

ε µ

∆ = − + ∆ −

2.1.4.2. Compute
( 1) ( ) ( )
ij ij ij
w t w t w t
+ = + ∆
2.1.5. End for
2.2. End for
3. End loop
Giải thuật lan truyền ngược cần hai thông số nhập vào đó là hệ số học và hệ số quán tính. Đối
với mỗi bài toán khác nhau các thông số này cần có các giá trị khác nhau để đạt được sự hiệu
quả trong quá trình học. Việc xác định các thông số này một cách đúng đắn không phải là một
việc dễ dàng cần nhiều công sức và kinh nghiệm.
2. Giải thuật RPROP:
Giải thuật lan truyền ngược gặp một vấn đề ở chỗ giá trị cập nhập trọng số (
( )
ij
w t

) không những phụ thuộc vào dấu của đạo hàm riêng phần mà còn bị ảnh
hưởng bởi độ lớn của nó, điều này làm cho quá trình học không được ổn định. Việc
thêm vào hệ số quán tính không giải quyết trọn vẹn vấn đề bởi vì ta không biết giá trị tối
ưu cho hệ số này là bao nhiêu. Để giải quyết vấn đề trên người ta đưa ra một giải thuật
mới gọi là RPROP.
RPROP là viết tắt của từ ‘resilient propagation’, nghĩa là lan truyền đàn hồi.
RPROP thực hiện cập nhập các trọng số w
ij

dựa vào thông tin về dấu của các đạo hàm
riêng phần điều này giúp nó tránh được sự ảnh hưởng của độ lớn của các đạo hàm
riêng phần này. Để thực hiện điều này các trọng số sẽ có một giá trị cập nhập riêng
ij

chỉ phụ thuộc vào dấu của
ij
E
w


. Giá trị này được cập nhập trong quá
trình học theo quy luật sau:
HVTH: CH1301054 – Võ Nhựt Thanh 9
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
( 1) ( )
( 1)
( 1) ( )
( ) ( 1)
( 1)
* , * 0
* , * 0
,
t t
t
ij
ij ij
t t
t t
ij ij

ij ij
t
ij
E E
if
w w
E E
if
w w
else
η
η

+ −

− −


∂ ∂
∆ >

∂ ∂


∂ ∂

∆ = ∆ <

∂ ∂







Ở đây
0 1
η η
− +
< < <
là các hệ số cố định của quá trình học dùng để
hiệu chỉnh các giá trị cập nhập cho từng trọng số tùy theo hình dạng của hàm lỗi.
Mỗi lần đạo hàm riêng phần theo trọng số w
ij
của hàm lỗi E đổi dấu, nghĩa là giá
trị cập nhập vừa thực hiện là quá lớn và giải thuật đã nhảy vượt qua điểm tối ưu cục bộ
thì giá trị cập nhập
ij

sẽ giảm đi theo một thừa số
η

. Ngược lại nếu
đạo hàm riêng phần vẫn giữ nguyên dấu thì giá trị cập nhập
ij

sẽ được tăng lên
để tăng tốc độ hội tụ. Cứ mỗi lần giá trị cập nhập được biết thì các trọng số được điều
chỉnh theo luật sau: nếu đạo hàm riêng phần dương thì trọng số được giảm đi một
lượng bằng với giá trị cập nhập (

ij

), nếu đạo hàm riêng phần âm thì giá trị cập
nhập được cộng thêm vào trọng số.
( )
( )
( )
( ) ( )
, 0
, 0
0 ,
t
t
ij
ij
t
t t
ij ij
ij
E
if
w
E
w if
w
else


−∆ >







∆ = +∆ <








( 1) ( ) ( )t t t
ij ij ij
w w w
+
= + ∆
Tuy nhiên có một trường hợp đặc biệt đó là khi đạo hàm riêng phần đổi dấu,
nghĩa là bước cập nhập trước quá lớn làm cho điểm tối ưu bị nhảy vượt qua. Giá trị
trọng số phải được trả về giá trị trước khi thay đổi, giá trị cập nhập
ij

sẽ được
giảm xuống và ở bước kế sau ta sẽ không cập nhập giá trị này. Thực tế ta có thể làm
việc này bằng cách gán
( ) ( 1)t t
ij ij
w w


∆ = − ∆

( )
0
t
ij
E
w

=

HVTH: CH1301054 – Võ Nhựt Thanh 10
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
Giải thuật RPROP thực hiện việc thích nghi các giá trị cập nhập của các trọng số
tùy theo độ dốc (gradient) của hàm lỗi E, mà thông tin về tổng độ dốc của hàm lỗi cho
toàn bộ tập dữ liệu mẫu đáng tin hơn thông tin về độ dốc chỉ cho một mẫu trong tập mẫu
nên giải thuật RPROP thực hiện theo mô hình học theo bó (học theo epoch). Các thông
tin về đạo hàm riêng phần sẽ được cộng dồn qua từng mẫu trong tập huấn luyện và các
trọng số sẽ được cập nhập sau khi đã duyệt qua hết các mẫu.
Giải thuật RPROP ban đầu cũng thực hiện các bước giống như giải thuật lan
truyền ngược, các thông tin về đạo hàm riêng phần của hàm lỗi theo các trọng số sẽ
được lan truyền ngược từ các lớp sau đến các lớp trước. Khi các thông tin về các đạo
hàm riêng phần này có đủ thì giải thuật sẽ thực hiện việc cập nhập các trọng số theo
các quy tắc nêu ở trên.
Mã giả cho phần cập nhập trọng số của giải thuật RPROP như sau:
For all weights and biases {
if (
( 1) ( )
* 0

t t
ij ij
E E
w w

∂ ∂
>
∂ ∂
) then {

( )t
ij

= minimum (
( 1)
max
* ,
t
ij
η
− +
∆ ∆
)

( )t
ij
w

= - sign (
( )t

ij
E
w


)*
( )t
ij


( 1)t
ij
w
+
=
( )t
ij
w
+
( )t
ij
w

} else if (
( 1) ( )
* 0
t t
ij ij
E E
w w


∂ ∂
<
∂ ∂
) then {

( )t
ij

= maximum (
( 1)
min
* ,
t
ij
η
− −
∆ ∆
)

( 1)t
ij
w
+
=
( )t
ij
w
-
( 1)t

ij
w




( )
0
t
ij
E
w

=

}
else if (
( 1) ( )
* 0
t t
ij ij
E E
w w

∂ ∂
=
∂ ∂
) then {
HVTH: CH1301054 – Võ Nhựt Thanh 11
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine


( )t
ij
w

= - sign (
( )t
ij
E
w


)*
( )t
ij


( 1)t
ij
w
+
=
( )t
ij
w
+
( )t
ij
w


}
}
Ở đây hàm số minimum và maximum lần lược là hai hàm trả về giá trị nhỏ nhất
và lớn nhất của hai số. Hàm số sign(x) trả về 1 nếu x dương, trả về -1 nếu x âm và trả
về 0 trong các trường hợp còn lại.
Ban đầu các giá trị cập nhập
ij

sẽ được khởi tạo một giá trị dương ban
đầu
0

. Lựa chọn tốt cho
0

là 0.1 nhưng theo các nghiên cứu thì việc
lựa chọn tham số này không ảnh hưởng nhiều đến tốc độ hội tụ của giải thuật. Các
thông số về
min


max

để tránh vấn đề tràn số của các biến thực. Giá
trị
min

được thiết lập thường là 1.0e-6, còn giá trị
max


là 50.0. Thông
thường độ hội tụ của giải thuật không bị ảnh hưởng bởi các thông số này nhưng đôi khi
thông số
max

được chọn là một giá trị nhỏ (ví dụ 1.0) để ngăn giải thuật không
rơi quá nhanh vào một cực tiểu cục bộ. Hai thông số
η
+

η

được cố
định ở hai giá trị lần lược là 1.2 và 0.5, để việc lựa chọn các tham số cho giải thuật
được đơn giản. Trong thực tế, hai thông số cần được lưa chọn cho giải thuật RPROP là
0


max

.
HVTH: CH1301054 – Võ Nhựt Thanh 12
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
C. Support Vector Machine (SVM)
Máy vectơ hỗ trợ (SVM - viết tắt tên tiếng Anh support vector machine) là một
khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương pháp học
có giám sát liên quan đến nhau để phân loại và phân tích hồi quy. SVM dạng chuẩn
nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau. Do đó SVM là một thuật
toán phân loại nhị phân. Với một bộ các ví dụ luyện tập thuộc hai thể loại cho trước,
thuật toán luyện tập SVM xây dựng một mô hình SVM để phân loại các ví dụ khác vào

hai thể loại đó. Một mô hình SVM là một cách biểu diễn các điểm trong không gian và
lựa chọn ranh giới giữa hai thể loại sao cho khoảng cách từ các ví dụ luyện tập tới ranh
giới là xa nhất có thể. Các ví dụ mới cũng được biểu diễn trong cùng một không gian và
được thuật toán dự đoán thuộc một trong hai thể loại tùy vào ví dụ đó nằm ở phía nào
của ranh giới.
Một máy vectơ hỗ trợ xây dựng một siệu phẳng hoặc một tập hợp các siêu
phẳng trong một không gian nhiều chiều hoặc vô hạn chiều, có thể được sử dụng cho
phân loại, hồi quy, hoặc các nhiệm vụ khác. Một cách trực giác, để phân loại tốt nhất thì
các siêu phẳng nằm ở càng xa các điểm dữ liệu của tất cả các lớp (gọi là hàm lề) càng
tốt, vì nói chung lề càng lớn thì sai số tổng quát hóa của thuật toán phân loại càng bé.
Trong nhiều trường hợp, không thể phân chia các lớp dữ liệu một cách tuyến
tính trong một không gian ban đầu được dùng để mô tả một vấn đề. Vì vậy, nhiều khi
cần phải ánh xạ các điểm dữ liệu trong không gian ban đầu vào một không gian mới
nhiều chiều hơn, để việc phân tách chúng trở nên dễ dàng hơn trong không gian mới.
Để việc tính toán được hiệu quả, ánh xạ sử dụng trong thuật toán SVM chỉ đòi hỏi tích
vô hướng của các vectơ dữ liệu trong không gian mới có thể được tính dễ dàng từ các
tọa độ trong không gian cũ. Tích vô hướng này được xác định bằng một hàm hạt
nhân K(x,y) phù hợp.
[1]
Một siêu phẳng trong không gian mới được định nghĩa là tập hợp
các điểm có tích vô hướng với một vectơ cố định trong không gian đó là một hằng số.
Vectơ xác định một siêu phẳng sử dụng trong SVM là một tổ hợp tuyến tính của các
vectơ dữ liệu luyện tập trong không gian mới với các hệ số α
i
. Với siêu phẳng lựa chọn
như trên, các điểm x trong không gian đặc trưng được ánh xạ vào một siêu mặt phẳng
là các điểm thỏa mãn:
Σ
i
α

i
K(x
i
,x) = hằng số.
Ghi chú rằng nếu K(x,y) nhận giá trị ngày càng nhỏ khi y xa dần khỏi x thì mỗi số
hạng của tổng trên được dùng để đo độ tương tự giữa x với điểm x
i
tương ứng trong dữ
liệu luyện tập. Như vậy, tác dụng của tổng trên chính là so sánh khoảng cách giữa điểm
cần dự đoán với các điểm dữ liệu đã biết. Lưu ý là tập hợp các điểm x được ánh xạ vào
một siêu phẳng có thể có độ phức tạp tùy ý trong không gian ban đầu, nên có thể phân
tách các tập hợp thậm chí không lồi trong không gian ban đầu.
Phân loại thống kê là một nhiệm vụ phổ biến trong học máy. Trong mô hình học
có giám sát, thuật toán được cho trước một số điểm dữ liệu cùng với nhãn của chúng
thuộc một trong hai lớp cho trước. Mục tiêu của thuật toán là xác định xem một điểm dữ
liệu mới sẽ được thuộc về lớp nào. Mỗi điểm dữ liệu được biểu diễn dưới dạng một
vector p-chiều, và ta muốn biết liệu có thể chia tách hai lớp dữ liệu bằng một siêu
HVTH: CH1301054 – Võ Nhựt Thanh 13
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
phẳng p − 1 chiều. Đây gọi là phân loại tuyến tính. Có nhiều siêu phẳng có thể phân loại
được dữ liệu. Một lựa chọn hợp lý trong chúng là siêu phẳng có lề lớn nhất giữa hai lớp.
I. SVM tuyến tính:
Ta có một tập huấn luyện gồm n điểm có dạng
với y
i
mang giá trị 1 hoặc −1, xác định lớp của điểm . Mỗi là một
vectơ thực p-chiều. Ta cần tìm siêu phẳng có lề lớn nhất chia tách các điểm
có và các điểm có . Mỗi siêu phẳng đều có thể được
viết dưới dạng một tập hợp các điểm thỏa mãn
với kí hiệu cho tích vô hướng và là một vector pháp tuyến của

siêu phẳng. Tham số xác định khoảng cách giữa gốc tọa độ và siêu phẳng
theo hướng vectơ pháp tuyến .
Chúng ta cần chọn và để cực đại hóa lề, hay khoảng cách
giữa hai siêu mặt song song ở xa nhau nhất có thể trong khi vẫn phân chia được dữ
liệu. Các siêu mặt ấy được xác định bằng

Để ý rằng nếu dữ liệu huấn luyện có thể được chia tách một cách tuyến tính, thì
ta có thể chọn hai siêu phẳng của lề sao cho không có điểm nào ở giữa chúng và sau
đó tăng khoảng cách giữa chúng đến tối đa có thể. Bằng hình học, ta tìm được khoảng
cách giữa hai siêu phẳng là . Vì vậy ta muốn cực tiểu hóa giá trị
. Để đảm bảo không có điểm dữ liệu nào trong lề, ta thêm vào các điều kiện sau, với
mỗi ta có
thuộc lớp thứ nhất
hoặc
thuộc lớp thứ hai
Có thể viết gọn lại như sau với mọi :
Tóm lại, ta có bài toán tối ưu hóa sau:
HVTH: CH1301054 – Võ Nhựt Thanh 14
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
Cực tiểu hóa (theo )
với điều kiện (với mọi )
IV. Dạng ban đầu:
Bài toán tối ưu ở mục trên tương đối khó giải vì hàm mục tiêu phụ thuộc vào ||
w||, là một hàm có khai căn. Tuy nhiên có thể thay ||w|| bằng hàm mục
tiêu (hệ số 1/2 để tiện cho các biến đổi toán học sau này) mà không làm
thay đổi lời giải (lời giải của bài toán mới và bài toán ban đầu có cùng w và b). Đây là
một bài toán quy hoạch toàn phương. Cụ thể hơn:
Cực tiểu hóa (theo )
với điều kiện (với mọi )
Bằng cách thêm các nhân tử Lagrange , bài toán trên trở thành

nghĩa là ta cần tìm một điểm yên ngựa. Khi đó, tất cả các điểm không nằm trên lề,
nghĩa là đều không ảnh hưởng đến giá trị hàm
mục tiêu vì ta có thể chọn bằng không.
Có thể giải bài toán này bằng các kĩ thuật thông thường cho quy hoạch toàn
phương. Theo điều kiện Karush–Kuhn–Tucker, lời giải có thể được viết dưới dạng tổ
hợp tuyến tính của các vectơ luyện tập
Chỉ có một vài nhận giá trị lớn hơn 0. Các điểm tương ứng
là các vectơ hỗ trợ nằm trên lề và thỏa mãn . Từ điều kiện
này, ta nhận thấy
HVTH: CH1301054 – Võ Nhựt Thanh 15
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
từ đó ta suy ra được giá trị . Trên thực tế, một cách thức tốt hơn để
tính là tính giá trị trung bình từ tất cả vectơ hỗ trợ:
V. Dạng đối ngẫu:
Nếu viết điều kiện phân loại dưới dạng đối ngẫu không điều kiện thì sẽ dễ dàng
nhận thấy siêu phẳng với lề lớn nhất, và do đó nhiệm vụ phân loại, chỉ phụ thuộc vào
các điểm luyện tập nằm trên lề, còn gọi là các vectơ hỗ trợ.
Vì và , ta nhận thấy bài toán
đối ngẫu của SVM là chính là bài toán tối ưu hóa sau:
Cực đại hóa (theo )
với điều kiện (với mọi )
và điều kiện sau ứng với việc cực tiểu hóa theo
Ở đây hàm hạt nhân được định nghĩa là .
Sau khi giải xong, có thể tính từ các giá trị tìm được như sau:
VI. Lề mềm:
Năm 1995, Corinna Cortes và Vladimir N. Vapnik đề xuất một ý tưởng mới cho
phép thuật toán gán nhãn sai cho một số ví dụ luyện tập. Nếu không tồn tại siêu phẳng
nào phân tách được hai lớp dữ liệu, thì thuật toán lề mềm sẽ chọn một siêu phẳng phân
tách các ví dụ luyện tập tốt nhất có thể, và đồng thời cực đại hóa khoảng cách giữa siêu
HVTH: CH1301054 – Võ Nhựt Thanh 16

Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
phẳng với các ví dụ được gán đúng nhãn. Phương pháp này sử dụng các biến
bù , dùng để đo độ sai lệch của ví dụ
Hàm mục tiêu có thêm một số hạng mới để phạt thuật toán khi khác
không, và bài toán tối ưu hóa trở thành việc trao đổi giữa lề lớn và mức phạt nhỏ. Nếu
hàm phạt là tuyến tính thì bài toán trở thành:
với điều kiện (với mọi )
Có thể giải bài toán trên bằng nhân tử Lagrange tương tự như trường hợp cơ
bản ở trên. Bài toán cần giải trở thành:
với .
1. Dạng đối ngẫu:
Cực đại hóa (theo )
với điều kiện (với mọi )

Ưu điểm của việc dùng hàm phạt tuyến tính là các biến bù biến mất khỏi bài toán
đối ngẫu, và hằng số C chỉ xuất hiện dưới dạng một chặn trên cho các nhân tử
Lagrange. Cách đặt vấn đề trên đã mang lại nhiều thành quả trong thực tiễn, và Cortes
và Vapnik đã nhận được giải Paris Kanellakis của ACM năm 2008 cho đóng góp
này. Các hàm phạt phi tuyến cũng được sử dụng, đặc biệt là để giảm ảnh hưởng của
các trường hợp ngoại lệ, tuy nhiên nếu không lựa chọn hàm phạt cẩn thận thì bài toán
trở thành không lồi, và việc tìm lời giải tối ưu toàn cục thường là rất khó.
HVTH: CH1301054 – Võ Nhựt Thanh 17
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
VII. Thuật toán học có giám sát Support vector machine (SVM):
SVM là phương pháp phân lớp rất hiệu quả được Vapnik giới thiệu vào năm
1995 để giải quyết nhận dạng mẫu hai lớp sử dụng nguyên lý Cực tiểu hoá Rủi ro Cấu
trúc (Structural Risk Minimization).
Ý tưởng chính của thuật toán này là 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 mặt phẳng h 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ớp + và lớp Chất lượng của siêu mặt 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.
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. Mục đích thuật toán SVM tìm ra được khoảng cách biên lớn
nhất để tạo kết quả phân lớp tốt.
Hình minh họa cho thuật toán này:
Siêu phẳng h phân chia dữ liệu huấn luyện thành 2 lớp + và – với khoảng cách
biên lớn nhất. Các điểm gần h nhất là các vector hỗ trợ.
SVM sử dụng thuật toán học nhằm xây dựng một siêu phẳng làm cực tiểu hoá
độ phân lớp sai của một đối tượng dữ liệu mới. Độ phân lớp sai của một siêu phẳng
được đặc trưng bởi hoảng cách bé nhất tới siêu phẳng đấy. SVM có khả năng rất lớn
cho các ứng dụng được thành công trong bài toán phân lớp văn bản.
Như đã biết, phân lớp văn bản là một cách tiếp cận mới để tạo ra tập phân lớp
văn bản từ các mẫu cho trước. Cách tiếp cận này phối hợp với sự thực thi ở mức độ
cao và hiệu suất cùng với những am hiểu về mặt lý thuyết, tính chất thô ngày càng
được hoàn thiện. Thông thường, hiệu quả ở mức độ cao không có các thành
phần suy nghiệm.
Phương pháp SVM có khả năng tính toán sẵn sàng và phân lớp, nó trở thành lý
thuyết học mà có thể chỉ dẫn những ứng dụng thực tế trên toàn cầu. Đặc trưng cơ bản
HVTH: CH1301054 – Võ Nhựt Thanh 18
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
quyết định khả năng phân lớp là khả năng phân lớp những dữ liệu mới dựa vào
những tri thức đã tích luỹ được trong quá trình huấn luyện. Sau quá trình huấn
luyện nếu hiệu suất tổng quát hoá của bộ phân lớp cao thì thuật toán huấn
luyện được đánh giá là tốt. Hiệu suất tổng quát hoá phụ thuộc vào hai tham số là sai số
huấn luyện hay và năng lực của máy học. Trong đó sai số huấn luyện là tỷ lệ lỗi phân
lớp trên tập dữ liệu huấn luyện. Còn năng lực của máy học được xác định bằng kích
thước Vapnik-Chervonenkis (kích thước VC). Kích thước VC là một khái niệm quan
trọng đối với một họ hàm phân tách (hay là tập phân lớp). Đại lượng này được xác định

bằng số điểm cực đại mà họ hàm có thể phân tách hoàn toàn trong không gian đối
tượng. Một tập phân lớp tốt là tập phân lớp có năng lực thấp nhất (có nghĩa là đơn giản
nhất) và đảm bảo sai số huấn luyện nhỏ. Phương pháp SVM được xây dựng trên ý
tưởng này.
1. Thuật toán SVM:
Xét bài toán phân lớp đơn giản nhất – phân lớp hai lớp với tập dữ liệu mẫu:


Trong đó mẫu là các vector đối tượng được phân lớp thành các mẫu dương và
mẫu âm như trong hình trên:
- Các mẫu dương là các mẫu x i thuộc lĩnh vực quan tâm và được gán nhãn y i
= 1.
- Các mẫu âm là các mẫu x i không thuộc lĩnh vực quan tâm và được gán y i =
- 1.
Thực chất phương pháp này là một bài toán tối ưu, mục tiêu là tìm ra một không
gian H và siêu mặt phẳng quyết định h trên H sao cho sai số phân lớp là thấp nhất.
Trong trường hợp này, tập phân lớp SVM là mặt siêu phẳng phân tách các mẫu
dương khỏi các mẫu âm với độ chênh lệch cực đại, trong đó độ chênh lệch – còn gọi là
Lề (margin) xác định bằng khoảng cách giữa các mẫu dương và các mẫu âm gần mặt
siêu phẳng nhất (hình 1). Mặt siêu phẳng này được gọi là mặt siêu phẳng lề tối ưu
Các mặt siêu phẳng trong không gian đối tượng có phương trình là:
Tương đương với công thức
HVTH: CH1301054 – Võ Nhựt Thanh 19
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
Với w = w 1 + w 2 + …+ w n là bộ hệ số siêu phẳng hay là vector trọng số, C là
độ dịch, khi thay đổi w và C thì hướng và khoảng cách từ gốc toạ độ đến mặt siêu
phẳng thay đổi.
Tập phân lớp SVM được định nghĩa như sau:
Trong đó
sign(z) = +1 nếu z ≥ 0,

sign(z) = -1 nếu z < 0.
Nếu f(x) = +1 thì x thuộc về lớp dương (lĩnh vực được quan tâm), và ngược lại,
nếu f(x) = -1 thì x thuộc về lớp âm (các lĩnh vực khác).
Máy học SVM là một học các siêu phẳng phụ thuộc vào tham số vector trọng số
w và độ dịch C. Mục tiêu của phương pháp SVM là ước lượng w và C để cực đại hoá lề
giữa các lớp dữ liệu dương và âm. Các giá trị khác nhau của lề cho ta các họ siêu mặt
phẳng khác nhau, và lề càng lớn thì năng lực của máy học càng giảm. Như vậy, cực đại
hoá lề thực chất là việc tìm một máy học có năng lực nhỏ nhất. Quá trình phân lớp là tối
ưu khi sai số phân lớp là cực tiểu.
Ta phải giải phương trình sau:
tìm ra được vector trọng số w và sai số của mỗi điểm trong tập huấn luyện là η i
từ đó ta có phương trình tổng quát của siêu phẳng tìm ra được bởi thuật toán SVM là:
Với i = 1,…, n. Trong đó n là số dữ liệu huấn luyện.
Sau khi đã tìm được phương trình của siêu phẳng bằng thuật toán SVM, áp
dụng công thức này để tìm ra nhãn lớp cho các dữ liệu mới.
3. Huấn luyện SVM:
Huấn luyện SVM là việc giải bài toán quy hoạch toàn phương SVM. Các phương
pháp số giải bài toán quy hoạch này yêu cầu phải lưu trữ một ma trận có kích thước
bằng bình phương của số lượng mẫu huấn luyện. Trong những bài toán thực tế,
điều này là không khả thi vì thông thường kích thước của tập dữ liệu huấn luyện
thường rất lớn (có thể lên tới hàng chục nghìn mẫu). Nhiều thuật toán khác nhau
được phát triển để giải quyết vấn đề nêu trên. Những thuật toán này dựa trên việc
HVTH: CH1301054 – Võ Nhựt Thanh 20
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
phân rã tập dữ liệu huấn luyện thành những nhóm dữ liệu. Điều đó có nghĩa là bài toán
quy hoạch toàn phương với kích thước nhỏ hơn. Sau đó, những thuật toán này kiểm tra
các điều kiện KKT (Karush-Kuhn-Tucker) để xác định phương án tối ưu.
Một số thuật toán huấn luyện dựa vào tính chất: Nếu trong tập dữ liệu huấn
luyện của bài toán quy hoạch toàn phương con cần giải ở mỗi bước có ít nhất một mẫu
vi phạm các điều kiện KKT, thì sau khi giải bài toán náy, hàm mục tiêu sẽ tăng. Như vậy,

một chuỗi các bài toán quy hoạch toàn phương con với ít nhất một mẫu vi phạm các
điều kiện KKT được đảm bảo hội tụ đến một phương án tối ưu. Do đó, ta có thể duy trì
một tập dữ liệu làm việc đủ lớn có kích thước cố định và tại mỗi bước huấn luyện, ta loại
bỏ và thêm vào cùng một số lượng mẫu.
4. Các ưu thế của SVM trong phân lớp văn bản:
Như đã biết, phân lớp văn bản là một tiến trình đưa các văn bản chưa biết chủ
đề vào các lớp văn bản đã biết (tương ứng với các chủ đề hay lĩnh vực khác nhau). Mỗi
lĩnh vực được xác định bởi một số tài liệu mẫu của lĩnh vực đó. Để thực hiện quá trình
phân lớp, các phương pháp huấn luyện được sử dụng để xây dựng tập phân lớp từ các
tài liệu mẫu, sau đó dùng tập phân lớp này để dự đoán lớp của những tài liệu mới (chưa
biết chủ đề).
Chúng ta có thể thấy từ các thuật toán phân lớp hai lớp như SVM đến các thuật
toán phân lớp đa lớp đều có đặc điểm chung là yêu cầu văn bản phải được biểu diễn
dưới dạng vector đặc trưng, tuy nhiên các thuật toán khác đều phải sử dụng
các uớc lượng tham số và ngưỡng tối ưu trong khi đó thuật toán SVM có thể tự tìm ra
các tham số tối ưu này. Trong các phương pháp thì SVM là phương pháp sử
dụng không gian vector đặc trưng lớn nhất (hơn 10.000 chiều) trong khi đó các
phương pháp khác có số chiều bé hơn nhiều (như Naïve Bayes là 2000, k-Nearest
Neighbors là 2415…).
Trong công trình của mình năm 1999 [12], Joachims đã so sánh SVM với Naïve
Bayesian, k-Nearest Neighbour, Rocchio, và C4.5 và đến năm 2003 [13],
Joachims đã chứng minh rằng SVM làm việc rất tốt cùng với các đặc tính được đề cập
trước đây của văn bản. Các kết quả cho thấy rằng SVM đưa ra độ chính xác phân lớp
tốt nhất khi so sánh với các phương pháp khác.
Theo Xiaojin Zhu [15] thì trong các công trình nghiên cứu của nhiều tác
giả (chẳng hạn như Kiritchenko và Matwin vào năm 2001, Hwanjo Yu và Han
vào năm 2003, Lewis vào năm 2004) đã chỉ ra rằng thuật toán SVM đem lại kết quả tốt
nhất phân lớp văn bản. Kiritchenko và Matwin đã nghiên cứu và so sánh phương pháp
SVM với kỹ thuật Naïve Bayesian, sau đó đã chứng minh được rằng SVM là phương
pháp tốt nhất cho phân lớp thư điện tử cũng như phân lớp văn bản.

Hwanjo Yu và Han cho thấy rằng SVM hoàn toàn được tiến hành tốt nhất so với
các phương pháp phân lớp văn bản khác. Tất cả các tài liệu nghiên cứu hiện nay cho
thấy rằng SVM đưa ra kết quả chính xác nhất trong khía cạnh phân lớp văn bản.
Lewis đã nghiên cứu phân lớp văn bản và đã khám phá ra rằng kết quả của
SVM là tốt nhất. Lewis đã đưa ra tập hợp nhỏ các tài liệu của phân lớp văn bản. Tác giả
HVTH: CH1301054 – Võ Nhựt Thanh 21
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
đã cố gắng cải tiến phương pháp RCV1 cho phân lớp văn bản và sử dụng phương pháp
mới được ứng dụng cho một số kỹ thuật phân lớp văn bản khác nhau. SVM đã đưa ra
kết quả tốt nhất khi đặt dựa vào k-người láng giềng gần nhất và kỹ thuật tập phân lớp
Rocchio-Style Prototype.
Những phân tích của các tác giả trên đây cho thấy SVM có nhiều điểm phù hợp
cho việc ứng dụng phân lớp văn bản. Và trên thực tế, các thí nghiệm phân lớp văn bản
tiếng Anh chỉ ra rằng SVM đạt độ chính xác phân lớp cao và tỏ ra xuất sắc hơn so với
các phương pháp phân lớp văn bản khác.
Vấn đề căn bản của học bán giám sát là chúng ta có thể tận dụng dữ liệu chưa
gán nhãn để cải tiến hiệu quả của độ chính xác trong khi phân lớp, điều này được đưa
ra để so sánh với một tập phân lớp được thiết kề mà không tính đến dữ liệu chưa gán
nhãn.
Trong phần sau của chương này, khóa luận sẽ giới thiệu một phương thức cải
tiến của SVM là bán giám sát SVM (semi-supervised support vector machine – S 3 VM)
[16, 17]. Bán giám sát SVM được đưa ra nhằm nâng SVM lên một mức cao hơn, trong
khi SVM là một thuật toán học có giám sát, sử dụng dữ liệu đã gán nhãn thì bán giám
sát SVM sử dụng cả dữ liệu gán nhãn (tập huấn luyện – training set) kết hợp với dữ liệu
chưa gán nhãn (working set).
HVTH: CH1301054 – Võ Nhựt Thanh 22
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
D. Ứng dụng SVM vào phân với màu
• Phạm vi:
Áp dụng giải thuật svm phân lớp cho 2 màu khác nhau.

• Mục tiêu:
Kiểm chứng và đánh giá thuật giải.
• Mộ tả:
Cho phép người dùng chọn 2 màu phân biệt trên ma trận ô vuông có kích thước 20
x 20.
Sau đó, chương trình sẽ áp dụng thuật giải svm để tô màu cho ma trận này với các
màu đã chọn.
Người dùng có thể kiểm chứng nhiều lần.
• Giao diện:
Màn hình chưa chọn màu:
Màn hình sau khi chọn màu:
HVTH: CH1301054 – Võ Nhựt Thanh 23
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
Màn hình kết quả:
HVTH: CH1301054 – Võ Nhựt Thanh 24
Mạng neural nhận tạo và Ứng dụng giải thuật Support Vector Machine
HVTH: CH1301054 – Võ Nhựt Thanh 25

×