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

Học từ điển và ứng dụng trong phân loại ảnh

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 (2.12 MB, 46 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-------------------------------------

Trịnh Tiến Hòa

HỌC TỪ ĐIỂN VÀ ỨNG DỤNG TRONG PHÂN LOẠI ẢNH

Chuyên ngành: Công nghệ thông tin

LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. Thân Quang Khoát

Hà Nội – 2017


MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ...........................................................................3
DANH MỤC CÁC BẢNG ......................................................................................................................4
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ..................................................................................................5
MỞ ĐẦU..................................................................................................................................................6
CHƯƠNG 1 – TỔNG QUAN CƠ SỞ LÝ THUYẾT .........................................................................8
1.1.

Giới thiệu học từ điển...........................................................................................................8

1.2.


Biểu diễn thưa của tín hiệu...................................................................................................8

1.3.

Mã hóa thưa..........................................................................................................................9

1.4.

Tiền xử lý ảnh ......................................................................................................................9

1.5.

Phân lớp SVM . ..................................................................................................................11

CHƯƠNG 2 - THUẬT TOÁN K-SVD .............................................................................................13
2.1. Giới thiệu thuật toán K-SVD cho học từ điển: ........................................................................13
2.2. Thuật toán K-means cho lượng hóa vector .............................................................................13
2.3. K-SVD-Tổng quát hóa K-Means ............................................................................................15
2.4. Mô tả chi tiết K-SVD. .............................................................................................................17
2.5. Từ K-SVD quay lại K –Means................................................................................................21
2.6. Các tính chất của K-SVD. .......................................................................................................22
CHƯƠNG 3 – MÔ TẢ BÀI TOÁN, MÔ HÌNH, KẾT QUẢ THỰC NGHIỆM VÀ MÔ PHỎNG ......23
3.1 Mô tả bài toán ..........................................................................................................................23
3.2. Mô hình học từ điển. ...............................................................................................................26
3.3. Xây dựng cơ sở dữ liệu ...........................................................................................................28
3.4. Mô tả dữ liệu thực nghiệm. .....................................................................................................29
3.5. Tiêu chí đánh giá .....................................................................................................................30
3.6. Phần mềm hỗ trợ phân lớp. .....................................................................................................31
3.7. Kết quả thực nghiệm ...............................................................................................................37
3.8. Tổng kết chương .....................................................................................................................42

KẾT LUẬN ............................................................................................................................................43
TÀI LIỆU THAM KHẢO......................................................................................................................44

1


LỜI CAM ĐOAN
Những kiến thức trình bày trong luận văn “Học từ điển và Ứng dụng trong
phân loại ảnh” là do tôi tìm hiểu, nghiên cứu và trình bày theo những kiến thức tổng
hợp của cá nhân. Kết quả nghiên cứu trong luận văn này chưa từng được công bố tại
bất kỳ công trình nào khác. Trong quá trình làm luận văn, tôi có tham khảo các tài
liệu có liên quan và đã ghi rõ nguồn tài liệu tham khảo. Tôi xin cam đoan đây là
công trình nghiên cứu của tôi và không sao chép của bất kỳ ai.
Tôi xin chịu hoàn toàn trách nhiệm, nếu sai, tôi xin chịu mọi hình thức kỷ
luật theo quy định.
Hà Nội, ngày 25 tháng 2 năm 2017
Học viên

Trịnh Tiến Hòa

1


LỜI CẢM ƠN
Để hoàn thành được luận văn này, tôi đã nhận được rất nhiều sự động viên,
giúp đỡ của nhiều cá nhân và tập thể.
Trước tiên, tôi xin bày tỏ lòng biết ơn sâu sắc tới TS.Thân Quang Khoát,
Viện CNTT-TT, Trường Đại Học Bách Khoa Hà Nội – Người thầy đã nhiệt tình
hướng dẫn, tạo điều kiện thuận lợi cho tôi nghiên cứu khoa học và giúp tôi hoàn
thành luận văn một cách tốt nhất.

Đồng thời, tôi cũng xin gửi lời cảm ơn tới các Thầy, cô trong Bộ môn Hệ
thống thông tin, Trường Đại Học Bách Khoa Hà Nội đã giúp đỡ tôi trong suốt quá
trình học tập và nghiên cứu tại Bộ môn.
Cuối cùng, tôi xin gửi lời cảm ơn chân thành đến gia đình, bạn bè, những
người đã luôn bên tôi, động viên và khuyến khích tôi trong quá trình thực hiện đề
tài nghiên cứu của mình.
Học viên

Trịnh Tiến Hòa

2


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Từ viết tắt

Thuật ngữ

Giải thích

K-SVD

K- Singular value decomposition

Phân rã K giá trị kỳ dị

MOD

Method of optimal directions


Phương pháp hướng tối ưu

SSE

Sum of Squared Error

Tổng lỗi trung bình bình phương

SNR

Signal-to-noise ratio

Tỉ lệ tín hiệu trên nhiễu

SVM

Support vector machine

Máy vector hỗ trợ

VQ

Vector quantization

Lượng hóa vector

MSE

Mean Squared Error


Trung bình bình phương sai số

OMP

Orthogonal matching pursuit

Đuổi khớp trực giao

BP

Basis pursuit

Đuổi khớp cơ sở

SSY

Sum of Squared Y

Tổng trung bình bình phương
ma trận biểu diễn tín hiệu Y

3


DANH MỤC CÁC BẢNG
Bảng 3.1 - Bảng kết quả phân lớp và các chỉ số của tập train và Test theo K.38

4



DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1.1 - Các chi tiết đặc trưng để phân biệt đối tượng ............................................ 9
Hình 2.1 - Thuật toán K-means ................................................................................. 14
Hình 2.2 - Thuật toán K-SVD ................................................................................... 19
Hình 3.1 - Chia tập ảnh thành 2 tập học và kiểm tra………….…………..………25
Hình 3.2 - Mô tả quá trình tạo túi từ.........................................................................26
Hình 3.3 - Biểu diễn đặc trưng bằng biểu đồ histogram...........................................27
Hình 3.4 - Biểu diễn các bức ảnh bằng biểu đồ histogram......................................27
Hình 3.5 - Đánh giá kết quả phân lớp của các bức ảnh...........................................27
Hình 3.6 - Mô tả hệ thống phân loại ảnh..................................................................28
Hình 3.7 - Mô tả ảnh Ôtô. laptop..............................................................................32
Hình 3.8 - Giao diện chính của phần mềm...............................................................34
Hình 3.9 - Chọn ảnh đầu vào....................................................................................35
Hình 3.10 - Chọn ảnh ôtô.........................................................................................36
Hình 3.11 - Kết quả phân tích là Car........................................................................37
Hình 3.12 - Hiển thị tên tác giả và các thông tin trợ giúp........................................38
Hình 3.13 - Kết quả phân tích là Laptop..................................................................39
Hình 3.14 - Sự thay đổi độ chính xác của tập Train và Test theo K ......................... 41
Hình 3.15 - Sự thay đổi SNR của tập Training và Testing theo K ........................... 40
Hình 3.16 - Sự thay đổi SSE của tập Train và Test theo K ...................................... 43
Hình 3.17 - Thời gian xử lý dữ liệu của tập Train .................................................... 44

5


MỞ ĐẦU
1. Tính cấp thiết của đề tài
Khoa học kỹ thuật phát triển, lĩnh vực nhận dạng ngày càng được ứng dụng
nhiều trong các hệ thống hiện đại. Một minh chứng chính là hiện nay nhiều hãng

máy tính lớn cũng xây dựng cho mình các công cụ đăng nhập tự động bằng phần
mềm nhận dạng nhằm tạo ra sự tiện dụng đến khách hàng. Bản chất thật sự của
nhận dạng chính là một bài toán phân lớp. Với ảnh đầu vào, phần mềm sẽ phân lớp
ảnh đó vào một lớp thích hợp trong hệ thống hoặc xác định là ảnh đó không tồn tại
trong cơ sở dữ liệu. Đây chính là một trong những nguyên nhân bài toán phân lớp
ảnh đang thu hút được nhiều sự quan tâm.
Ngoài ra, sự phát triển của điện thoại thông minh và máy ảnh kỹ thuật số ngày
nay đang kéo theo sự bùng nổ ảnh kỹ thuật số. Số lượng ảnh khổng lồ lưu thông
trên mạng đang đặt ra vấn đề về việc quản lý nội dung ảnh. Nếu ta có thể phân loại
ảnh tốt thì có nghĩa là ta có thể dễ dàng loại bỏ những ảnh không phù hợp trên các
trang web.
Đến đây, một trong những thuật toán hiệu quả để giải quyết vấn đề này là
thuật toán K-SVD. Ngoài ra bài toán xử lý ảnh cũng được đưa ra nhằm phân tích
các đặc trưng cơ bản của ảnh và áp dụng các đặc trưng vào thuật toán K-SVD.
Trong nghiên cứu này, xử lý ảnh là bước tiền xử lý thông tin quan trọng, sau đó
thông tin được đưa vào thuật toán K-SVD, SVM nhằm giải quyết bài toán phân lớp.
Kết quả đưa ra độ chính xác của quá trình phân lớp.
Đề tài “Học từ điển và ứng dụng trong phân loại ảnh” nhằm mục đích hiểu
được cách thức và phương pháp phân loại ảnh hiệu quả.
2. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu tập trung vào việc xử lý ảnh bằng phương pháp trích
chọn đặc trưng.

6


Tìm hiểu thuật toán K-SVD, máy vector hỗ trợ SVM sử dụng cho phân lớp
ảnh.
Phạm vi nghiên cứu giới hạn trong việc phân lớp hai nhóm ảnh ô tô và máy
tính từ 131 bức ảnh ban đầu. Trong đó chia ra 70% số bức ảnh làm tập học và 30%

số bức ảnh làm tập kiểm tra. Kết quả được độ chính xác của quá trình phân lớp ảnh.
3. Mục tiêu nghiên cứu
Về mặt lý thuyết, tác giả nghiên cứu:
- Phương pháp học từ điển.
- Các đặc trưng cơ bản của ảnh. Đây là bước tiền xử lý dữ liệu quan trọng, những
đặc trưng được lựa chọn có ảnh hưởng lớn đến kết quả của quá trình phân lớp.
- Thuật toán K-SVD.
- Máy vector hỗ trợ SVM.
- Những kiến thức nền tảng toán học xử lý ma trận
Về mặt ứng dụng thực tiễn, tác giả xây dựng một chương trình phần mềm có
sử dụng thư viện mở thuật toán K-SVD, SVM để từ các bức ảnh ban đầu chương
trình sẽ phân lớp ảnh và đưa ra độ chính xác cho quá trình phân lớp.
4. Bố cục luận văn
Nội dung luận văn gồm ba chương, trong đó:
Chương 1 - Tổng quan cơ sở lý thuyết
Chương 2 - Thuật toán K-SVD
Chương 3 - Mô tả bài toán, mô hình, Kết quả thực nghiệm và mô phỏng.

7


CHƯƠNG 1 – TỔNG QUAN CƠ SỞ LÝ THUYẾT

1.1. Giới thiệu học từ điển
Số lượng thông tin kích thước khổng lồ được ghi lại trong mỗi giây của bộ
cảm biến tự nhiên như mắt hoặc tai, cũng như cảm biến nhân tạo như máy ảnh hoặc
microphones. Thông tin này phần lớn là dư thừa ở hai khía cạnh chính: nó thường
chứa nhiều phiên bản giống nhau của thế giới vật lý và mỗi phiên bản thường có
mật độ mẫu dày đặc bởi cảm biến. Thông tin thích hợp được xử lý trong quá trình
quan sát có kích thước giảm rất nhiều so với tập dữ liệu được ghi. Nguồn gốc thông

tin thích hợp này nhận dạng bởi đặc trưng bên trong các lớp của tín hiệu. Phương
pháp học từ điển là học các đặc trưng bên trong, có kích thước không gian biểu diễn
nhỏ so với không gian biểu diễn ban đầu mà có thể biểu diễn chính xác được thông
tin ban đầu của tín hiệu và tốt cho nhiệm vụ xử lý (như phân lớp dữ liệu).
1.2. Biểu diễn thưa của tín hiệu
Sử dụng một ma trận từ điển hoàn chỉnh
thành phần tín hiệu cho các cột

K
j 1

, một tín hiệu

có chứa K nguyên mẫu
có thể được biểu diễn

như là một sự kết hợp tuyến tính của các thành phần thưa. Biểu diễn của y có thể
một trong hai là chính xác y=Dx hoặc gần đúng y≈Dx , thỏa mãn ||y-Dx||p <ε. Các
vector

chứa các hệ số biểu diễn của tín hiệu y. Trong phương pháp xấp xỉ,

tiêu chuẩn điển hình được sử dụng để đo lường sai lệch là chuẩn

cho p=1,2 và ∞.

Nếu ncác vấn đề biểu diễn tín hiệu. Do đó phải thiết lập giải pháp với số lượng ít nhất các
hệ số khác không là một biểu diễn hấp dẫn. Biểu diễn thưa nhất là giải pháp của một
trong hai biểu thức sau:

( )
Hoặc:

(

)

‖ ‖ 0 đối tượng

y=Dx

‖ ‖ 0 đối tượng ||y-Dx||2≤

8

(1.1)
(1.2)


Trong đó ||.||0 là chuẩn l0, đếm các hệ số khác 0 của một vector.
1.3. Mã hóa thưa
Mã hóa thưa [4] là quá trình tính toán các hệ số biểu diễn x dựa trên các tín
hiệu nhất định y và từ điển D. Quá trình này, thường được gọi là "phân rã thành
phần," yêu cầu giải quyết (1.1) hoặc (1.2), và điều này thường thực hiện bởi "lớp
các thuật toán" mà tìm thấy một giải pháp gần đúng. Mã hóa thưa là một giai đoạn
cần thiết trong phương pháp K-SVD, do đó điều quan trọng là phải có một cái nhìn
tổng quan tốt của phương pháp để đạt được mục đích. Xác định chính xác, chứng
minh biểu diễn thưa nhất là một vấn đề khó vì vậy giải pháp gần đúng được coi là
sự thay thế.
1.4. Tiền xử lý ảnh

Trước khi có thể đi vào vấn đề chính thì việc đầu tiên cần phải làm đó là đọc
được ảnh. Trong thực tế, nhiều chương trình có thể đọc được một file ảnh ở dạng
nhị phân rồi thể hiện nó ở dạng hình ảnh cho chúng ta xem, tuy nhiên đó không phải
là cách đọc ảnh mà ta cần.

Hình 1.1 - Các chi tiết đặc trưng để phân biệt đối tượng

9


Như hình 1.1 minh họa, điều ta cần ở đây chính là có thể đọc được các đối
tượng khác nhau trong ảnh hay đơn giản là đọc được những chi tiết có khả năng đặc
trưng cho các đối tượng với nhau. Trong Matlab hỗ trợ trích lọc các đặc trưng cục
bộ từ ảnh. Đó là những đặc trưng thường rất ít bị tác động bởi các thành phần như tỉ
lệ phóng to hay góc xoay của đối tượng nên có thể coi đây là những đặc trưng bất
biến (invariant). Đầu tiên người ta sẽ tìm những điểm đặc biệt (interest point),
những điểm này thường nằm ở những vùng có kết cấu (texture) đặc biệt trên ảnh.
Sau đó từ các đặc trưng thu được xung quanh mỗi điểm đặc biệt người ta sẽ biểu
diễn nó bằng một vector 128 chiều. Đến đây với những vector đặc trưng trích lọc
được từ ảnh, người ta có thể dùng để đối sánh nội dung của hai ảnh với nhau hoặc
dựa vào tỉ lệ, góc xoay để biết được đối tượng đã được phóng to, thu nhỏ hay thay
đổi góc độ như thế nào.
Các đặc trưng trích chọn là:
1.4.1. Entropy [7]: là độ đo mức độ ngẫu nhiên của thông tin lấy được trong một
phạm vi nhất định và được tính bằng công thức

(

)


∑ ( )

(1.3)

( )

với z là biến ngẫu nhiên, p(zi) là xác xuất của điểm ảnh thứ i với i = 1, 2, ...,
L (L là số lượng điểm ảnh).
1.4.2. Edge-value và intensity [7]: là độ đo số lượng thay đổi trong giá trị điểm ảnh
tại một vùng


(

)






(



)

{




(1.4)
(






(
(

)



)
)

10

(1.5)


(

√(

)


(

)

)

(

(

)

(1.6)
)

với f x, y  là độ dài của véc tơ gradient, b(x,y) là ảnh nhị phân và e(x,y)
intensity của ảnh xám, T1 là ngưỡng. Những đặc trưng này được chuẩn hóa
bởi công thức:
(

)

(

)

(

)
(


(

(1.7)
)

)
(

(1.8)
)

1.4.3. Red-Green-Blue (RGB) [9]
Đặc trưng này mô tả màu sắc của ảnh dựa vào giá trị Đỏ, Xanh lá cây và
Xanh da trời. Đối với ảnh 24 bit, đặc trưng RGB được tính toán như sau
[

]

(1.9)

Trong đó: h: là histogram của màu sắc. h là vector [h1,……,hn].
N: là số lượng điểm ảnh trong bức ảnh.
Có một cách khác để tính đặc trưng RGB, đó là tính từng ma trận hR[],hG[],hB[].
1.5. Phân lớp SVM
Phân lớp SVM [5] 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. 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

11


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. 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 học 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αiK(xi,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 xi tương ứng trong
dữ liệu học. 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.
- Biểu diễn tập r các mẫu học (training examples)
{(x1, y1), (x2, y2 ), …, (xr,yr )},
- Các vectơ được ký hiệu bởi các chữ đậm nét.
+ xi là một vectơ đầu vào được biểu diễn trong không gian X  Rn
+ yi là một nhãn lớp (giá trị đầu ra), yi  {1,-1}
+ yi =1: lớp dương (positive); y1 =-1: lớp âm (negative)

Với dữ liệu đầu vào được gán nhãn -1 hoặc +1, máy véc tơ hỗ trợ phân lớp dữ
liệu này được kết quả dữ liệu của 2 lớp. dùng biến đếm để liệt kê các giá trị -1, +1
sau khi phân lớp bằng SVM so sánh với nhãn lớp -1, +1 ban đầu, được kết quả là tỉ
lệ chính xác phân lớp bằng SVM.

12


CHƯƠNG 2 - THUẬT TOÁN K-SVD
2.1. Giới thiệu thuật toán K-SVD cho học từ điển:
K –SVD là thuật toán phân rã K giá trị D. Thuật toán này bắt nguồn từ thuật
toán K-means chẳng hạn như khi tìm 1 giá trị dk trong mỗi lần tính toán thì thực
chất là thuật toán K-means. Nhưng khi tìm K giá trị dk (phân rã D thành K giá trị dk)
thì thiết kế của nó dẫn đến tổng quát hóa của thuật toán K-means. Thuật toán KSVD có hiệu quả cao, đúng cho hiệu quả mã hóa thưa và tăng tốc cập nhật từ điển.
Mỗi bước của thuật toán là mạch lạc với nhau, cả hai bước làm giá trị lỗi nhỏ hơn,
kết quả thu được bộ từ điển hoàn chỉnh.
2.2. Thuật toán K-means cho lượng hóa vector
Cho vector tín hiệu

N
i 1

(

) với yi ={x1,x2,…,xr}. xi là một ví dụ

(một vectơ trong một không gian n chiều). Thuật toán K-means phân chia tập dữ
liệu thành k cụm, mỗi cụm (cluster) có một điểm trung tâm, được gọi là centroid.
k(tổng số các cụm thu được) là một giá trị được cho trước (vd: được chỉ định bởi
người thiết kế hệ thống phân cụm).Với một giá trị k được xác định trước, Chọn

ngẫu nhiên k ví dụ (được gọi là các hạt nhân – seeds) để sử dụng làm các điểm
trung tâm ban đầu (initial centroids) của k cụm, Lặp liên tục cho đến khi gặp điều
kiện hội tụ (convergence criterion). Đối với mỗi ví dụ, gán nó vào cụm (trong số k
cụm) mà có tâm (centroid) gần ví dụ đó nhất. Đối với mỗi cụm, tính toán lại điểm
trung tâm (centroid) của nó dựa trên tất cả các ví dụ thuộc vào cụm đó. Quá trình
phân cụm kết thúc nếu không có (hoặc có không đáng kể) việc gán lại các ví dụ vào
các cụm khác, hoặc không có (hoặc có không đáng kể) thay đổi về các điểm trung
tâm (centroids) của các cụm, hoặc giảm không đáng kể về tổng lỗi phân cụm.
Từ điển của từ mã lượng hóa vector VQ là kiểu học sử dụng thuật toán Kmeans, biểu thị ma trận từ điển bởi C=[c1,c2,….., ck] , từ mã là các cột. Khi C được
đưa ra, mỗi tín hiệu biểu diễn từ mã gần nhất của nó (dưới khoảng cách chuẩn l2).
13


Có thể viết yi=Cxi, Trong đó xi=ej là một vector, với tất cả mục là 0 trừ một trong số
ở vị trí thứ j. Các chỉ số j được lựa chọn như sau.
2
2

≤‖

‖ 22

Đây được xem như là một trường hợp mã hóa thưa nhất trong khả năng chỉ có một
thành phần được phép tham gia trong cấu trúc của yi và hệ số buộc phải là1.
Nhiệm vụ: Tìm từ từ điển tốt nhất có thể để biểu diễn mẫu dữ liệu

N
i 1

bởi


hàng xóm gần nhất, được giải quyết bởi biểu thức


‖ 22 đ ều kiện



Đầu tiên: cài đặt ma trận mã

à

á ị .

à đặ

Lặp lại đến khi hội tụ (sử dụng thước đo để dừng lại):
 Giai đoạn biểu diễn thưa: Chia mẫu đào tạo Y thành K cụm
(

) chọn ngẫu nhiên K mẫu (được gọi là các hạt nhân –

seeds) làm các điểm trung tâm ban đầu của K cụm. Đối với mỗi mẫu

(

)

gán nó vào cụm (trong số K cụm) mà có tâm (centroid) gần mẫu đó nhất
với điều kiện

(

)

(

)

(

)

2

2

.

 Giai đoạn cập nhật từ điển: Đối với mỗi cụm tính toán lại điểm trung tâm
của nó dựa trên tất cả các mẫu thuộc vào cụm đó cho mỗi cột k trong C(J-1),
cập nhật nó bởi
( )


iRk

Trong đó:

( )


(

i

)

là giá trị trung bình của cụm.

|Rk| kích thước của cụm Rk (tổng số mẫu trong Rk )
 Cài đặt J=J+1.
Hình 2.1 - Thuật toán K-means

14




Biểu diễn MSE cho mỗi yi được định nghĩa là:
MSE tổng là:



2
i



‖ 22

‖ 22 và

(

)

Vấn đề đào tạo VQ là tìm một từ điển C giảm thiểu lỗi E, chịu sự hạn chế về
cấu trúc của X, các cột phải được lấy từ giá trị thấp.
2
2



với

à

á ị

(

)

Thuật toán K-means là một phương pháp lặp được sử dụng để thiết kế từ điển
tối ưu nhất cho lượng hóa vector VQ. Trong mỗi lần lặp có hai giai đoạn: một cho
mã hóa thưa mà chủ yếu đánh giá lại X và một cho việc cập nhật từ điển. Hình 2.1
cung cấp nhiều mô tả chi tiết các bước này.
Các giai đoạn mã hóa thưa giả định biết một từ điển C(J-1) và sẽ tính toán khả
thi X để giảm thiểu giá trị của (2.2). Tương tự như vậy, giai đoạn cập nhật từ điển
cố định X như đã biết và tìm kiếm cập nhật sao cho biểu thức (2.2) có giá trị nhỏ
nhất. Rõ ràng, ở mỗi lần lặp, hoặc là giảm hoặc giá trị MSE không thay đổi. Hơn
nữa, ở mỗi giai đoạn như vậy, bước giảm thiểu có tổng là tốt nhất. Khi MSE bị chặn

dưới bởi không, và thuật toán đảm bảo đơn điệu giảm của MSE, hội tụ để ít nhất là
một giải pháp đảm bảo tối thiểu địa phương.
2.3. K-SVD-Tổng quát hóa K-Means
Vấn đề biểu diễn thưa có thể được xem như là một sự tổng quát VQ của mục
tiêu biểu thức(2.2), trong đó chúng ta cho phép mỗi đầu vào tín hiệu được biểu diễn
bởi một sự kết hợp tuyến tính của các từ mã, cái chúng ta gọi là các thành phần từ
điển. Vì vậy các hệ số vector hiện tại cho phép nhiều hơn một giá trị khác không, và
chúng có thể có giá trị thay đổi. Đối với trường hợp này, giá trị nhỏ nhất phù hợp
biểu thức (2.2) là tìm kiếm từ điển tốt nhất có thể cho các biểu diễn thưa của tập
mẫu Y
{||Y-DX|| 22 } với

‖ ‖

0

0

(2.3)

15


Một mục tiêu tương tự khác có thể được đáp ứng bằng cách xem xét
∑ ‖ ‖ 0 với ||Y-DX|| 22 ≤

(

)


cho một giá trị cố định .
Trong thuật toán, giá trị nhỏ nhất của biểu thức (2.3) có tác động qua lại lẫn
nhau. Đầu tiên cố định D và nhằm mục đích để tìm hệ số tốt nhất ma trận X. Như đi
tìm X thực sự tối ưu là không thể, sử dụng phương pháp xấp xỉ. Bất kỳ thuật toán
nào như vậy có thể sử dụng để tính toán các hệ số, miễn là nó có thể cung cấp một
giải pháp với giá trị cố định và được xác định trước số lượng các hệ số T0 khác 0.
Một khi nhiệm vụ mã hóa thưa được thực hiện, giai đoạn thứ hai được thực
hiện để tìm kiếm cho một từ điển tốt hơn. Quá trình này cập nhật một cột tại một
thời điểm, cố định tất cả các cột trong D ngoại trừ một dk, và tìm kiếm một cột mới
~
d k và giá trị mới cho các hệ số của nó tốt nhất làm giảm giá trị MSE. Điều này là

khác nhau rõ rệt từ tất cả khái quát K-means đã được mô tả trong phần 2.1. Tất cả
những phương pháp đóng băng X trong khi tìm kiếm D tốt hơn. Cách tiếp cận là
khác nhau, như chúng ta thay đổi các cột của D tuần tự và cho phép thay đổi các hệ
số thích hợp. Trong một nghĩa nào đó, cách tiếp cận này là một sự tổng quát trực
tiếp hơn của thuật toán K-means vì nó cập nhật mỗi cột riêng biệt, như thực hiện
trong K-means. Một điều có thể lập luận rằng trong K-means các mục khác không
trong X là cố định trong việc cải thiện của ck, nhưng như chúng ta sẽ thấy tiếp theo,
điều này là đúng bởi vì trong K-means (hình dạng có lợi VQ ), vấn đề cập nhật cột
được tách riêng, trong khi đó ở nhiều thiết lập chung, đây không phải là trường hợp
lựa chọn.
Quá trình cập nhật chỉ có một cột của D tại một thời điểm là một vấn đề có
một giải pháp đơn giản dựa trên phân rã giá trị số ít (SVD). Hơn nữa, cho phép một
thay đổi giá trị hệ số trong khi cập nhật cột từ điển để tăng tốc hội tụ, kể từ khi các
cột tiếp theo được cập nhật dựa trên các hệ số phù hợp hơn. Hiệu quả tổng thể là rất
phù hợp với những bước nhảy vọt như gradient descent đến các phương pháp

16



Gauss-Seidel trong tối ưu hóa. Ở đây người ta có thể để đề nghị bỏ qua các bước
của mã hóa thưa và chỉ sử dụng cập nhật các cột trong D cùng với hệ số của chúng,
áp dụng trong một thời kỳ, lặp đi lặp lại. Điều này sẽ không làm việc tốt, như hỗ trợ
của biểu diễn sẽ không bao giờ bị thay đổi, và một thuật toán như vậy nhất thiết sẽ
rơi vào một cái bẫy tối thiểu địa phương.
2.4. Mô tả chi tiết K-SVD.
Bây giờ sẽ thảo luận chi tiết về K-SVD. Nhớ lại rằng hàm mục tiêu là.
{||Y-DX|| 22 } với

‖ ‖

0

0

(2.5)

Cho phép đầu tiên xem xét các giai đoạn mã hóa thưa, giả định D là cố định,
và xem xét các vấn đề ở trên như tìm kiếm cho biểu diễn thưa với hệ số tổng hợp
trong ma trận X tốt nhất. Điều kiện phạt có thể được viết lại như sau


‖ 22








2
2

.

Do đó vấn đề đặt ra trong (2.5) có thể được tách riêng với khoảng cách N theo
biểu thức:


‖ 22

ớ |

|0

(

0

)

Chúng ta đã thấy rằng nếu T0 là đủ nhỏ, giải pháp là một xấp xỉ tốt lý tưởng đó
là số lượng có thể tính toán.
Bây giờ chuyển sang phần thứ hai, và bao gồm nhiều hơn một chút, xử lý cập
nhật từ điển với các hệ số khác 0. Giả sử rằng cả hai X và D được cố định và chỉ có
một cột trong từ điển dk và hệ số phù hợp với nó, hàng thứ k trong X , biểu diễn
(đây không phải là vector xk mà là cột thứ k trong X). Quay trở lại với hàm mục tiêu
(2.5), các điều kiện phạt có thể được viết lại như sau



‖ 22







2
2

17


=‖(



=‖

)

)





2

2

2

(

2

)

Trong biểu thức (2.7) đã tách các phép nhân DX với tổng của K ma trận cấp 1.
Trong đó, K-1 nhóm là cố định,và một cột thứ k còn lại thay đổi. Ma trận Ek là lỗi
cho tất cả N mẫu khi các thành phần thứ k được loại bỏ.
Một biện pháp giải quyết vấn đề trên là đơn giản và cũng khá trực quan. Định
nghĩa

nhóm của chỉ số trỏ đến mẫu

những phần tử trong đó

( ) là khác không. Do đó
|

Định nghĩa:
thứ (

có sử dụng các thành phần dk vân vân,

()


(

như là một ma trận kích thước

)
với môt số thành phần

( ) ) trên và các thành phần bằng 0 khác. khi nhân

sẽ làm co lại các vector hàng

bằng cách loại bỏ các phần tử bằng 0.

18

, Điều này


Nhiệm vụ: Tìm từ điển tốt nhất biểu diễn mẫu dữ liệu

N
i 1

như tổng hợp thành

phần thưa bởi biểu thức:


‖ 22 với


0

Ban đầu: Cài đặt ma trận

với chuẩn

2

. Đặt

.

Lặp đến khi hội tụ ( dừng lại bởi giới hạn số lần lặp):
 Giai đoạn mã hóa thưa: Sử dụng với bất kỳ thuật toán để tính toán biểu
diễn vector xi cho mỗi mẫu yi, bởi các giải pháp xấp xỉ của i=1,2,…,N,
‖ 22 } ớ

{‖

0

 Giai đoạn cập nhật từ điển: Cho mỗi cột k = 1,2,…,K trong D(J-1), cập nhật
bởi
- Định nghĩa nhóm của mẫu sử dụng thành phần
{i|1≤i≤N,

()

- Tính tổng lỗi biểu diễn ma trận, Ek, bởi biểu thức
Ek=




- Hạn chế Ek bởi chọn duy nhất cột phù hợp

Chọn cập nhật từ điển với cột ̃ là

- Cập nhật SVD phân rã

cột đầu tiên của U. Cập nhật hệ số vector
(

và đạt được

là cột đầu tiên của V bởi

)

 đặt J=J+1.
Hình 2.2 - Thuật toán K-SVD

Kết quả với các vector hàng

có chiều dài |

tạo ra một ma trận kích thước nx

|. Tương tự như vậy, việc nhân
bao gồm một tập hợp con của các


mẫu mà hiện đang sử dụng các thành phần dk. Hiệu quả tương tự xảy ra với
, bao hàm một sự lựa chọn của các cột lỗi tương ứng với các mẫu có sử
dụng thành phần dk.

19


Với ký hiệu này, bây giờ trở lại (2.7) và gợi ý giảm thiểu mối quan hệ cho cả
hai dk và

, nhưng hiệu quả lần này với giải pháp của ̃ để có sự hỗ trợ tương tự

như bản gốc


. Điều này tương đương với việc giảm thiểu của
‖ 22



‖ 22

(2.9)

và lần này nó có thể được thực hiện trực tiếp qua SVD. Lấy ma trận giới hạn

. Định nghĩa các giải pháp cho ̃ như là cột

SVD phân tách nó thành
đầu tiên của U, và hệ số vector


,

như cột đầu tiên của V nhân lên bởi (

). Lưu

ý rằng, trong giải pháp này, chúng ta nhất thiết phải có i) các cột của D vẫn bình
thường và ii) sự hỗ trợ của tất cả các biểu diễn hoặc là vẫn như vậy hoặc trở nên
nhỏ hơn bởi điều kiện có thể kết thúc.
Chúng ta sẽ gọi thuật toán "K-SVD" này song song tên K-means. Trong khi
K-means áp dụng K tính toán của means để cập nhật các từ điển, K-SVD sẽ thu
được cập nhật từ điển bởi K- SVD tính toán, xác định mỗi một cột. Đầy đủ mô tả
thuật toán được đưa ra trong Hình.2.2
Trong thuật toán K-SVD, quét qua các cột và luôn sử dụng các hệ số cập nhật
nhất khi chúng xuất hiện từ trước bước SVD. Phiên bản song song của thuật toán
này có thể cũng được xem xét, nơi mà tất cả các bản cập nhật của từ điển trước
được thực hiện giống như X. Các thí nghiệm cho thấy, trong khi đó Phiên bản này
cũng hội tụ, nó mang lại một giải pháp kém hơn và thường đòi hỏi nhiều hơn bốn
lần số lần lặp.
Khi nào thuật toán K-SVD sẽ hội tụ? Đầu tiên cho rằng chúng ta có thể thực
hiện giai đoạn mã hóa thưa hoàn hảo, lấy xấp xỉ tốt nhất cho tín hiệu yi mà không
chứa nhiều hơn T0 các mục khác không. trong trường hợp này, giả sử một từ điển D
cố định, mỗi bước mã hóa thưa giảm tổng lỗi biểu diễn ‖

‖ 22 , đặt ra trong

(2.5). Ngoài ra, tại bước cập nhật cho dk , giảm thêm hoặc không thay đổi trong
MSE, trong khi không vi phạm các ràng buộc thưa. Thực hiện một loạt các bước


20


đảm bảo như vậy đơn điệu giảm MSE, và do đó, hội tụ đến một tối thiểu địa
phương được đảm bảo.
Thật không may, những đòi hỏi trên phụ thuộc vào sự thành công của các lớp
thuật toán mạnh xấp xỉ các giải pháp (2.6), và do đó hội tụ không phải luôn luôn
được đảm bảo. Tuy nhiên, khi T0 là đủ nhỏ tương đối với n, OMP, FOCUSS, và
phương pháp xấp xỉ BP được biết để thực hiện rất tốt.Trong những trường hợp hội
tụ được đảm bảo.Có thể đảm bảo hội tụ bởi bên ngoài nhiễu bằng cách so sánh tốt
nhất giải pháp sử dụng sự hỗ trợ đã được trao cho một trong những đề xuất mới
chạy của lớp thuật toán, và việc áp dụng tốt hơn. Bằng cách này, chúng ta sẽ luôn
luôn nhận được sự cải thiện.
2.5. Từ K-SVD quay lại K –Means
Điều gì xảy ra khi mẫu của mô hình T0 =1 ? Trường hợp này tương ứng với
hình dạng VQ, và như vậy điều quan trọng là, K -SVD trở thành một phương pháp
cho học từ điển. Khi T0 =1, Ma trận hệ số X chỉ có một mục khác không mỗi cột.
Như vậy, tính toán lỗi

chuyển giao trong (2.9).

(

Điều này là do giới hạn



)

(


)

chỉ lấy những cột trong Ek sử dụng các thành phần

dk như vậy là cần thiết, họ không sử dụng các thành phần khác, bao hàm cho tất cả
.
Bao hàm của kết quả trên là các SVD trong trường hợp T0 =1 được thực hiện
trực tiếp trên nhóm của các mẫu trong

. Ngoài ra, K cập nhật các cột của D trở

nên độc lập nhau, bao hàm một quá trình xử lý tuần tự như trước, hoặc quá trình
song song, cả hai đều dẫn đến cùng một thuật toán.Tôi đã đề cập trước rằng bản cập
nhật K-means của các trọng tâm cụm có thể được hiểu là một quá trình tuần tự. Giai
đoạn biểu diễn dàng buộc trong tương lai, ngoài sự lựa chọn T0 =1, giới hạn các
mục khác không của X là 1. Điều này đưa chúng ta trở lại vấn đề phân cụm cổ điển
21


như được mô tả trước đó. Trong trường hợp này có

được làm đầy, do đó

. K-SVD sau đó cần phải xấp xỉ ma trận lỗi bị hạn chế
ma trận

cấp -1. Giải pháp là giá trị trung bình của các cột

bởi một

, chính xác như

các gợi ý của K-means.
2.6. Các tính chất của K-SVD.
Cũng giống như K -means, thuật toán K-SVD là nhạy cảm để bẫy tối thiểu địa
phương. Thí nghiệm cho thấy cải thiện kết quả có thể đạt được nếu các biến sau đây
được áp dụng.
• Khi sử dụng phương pháp xấp xỉ với cố định số lượng các hệ số, thấy rằng
FOCUSS chứng tỏ là tốt nhất nhận được của mỗi lần lặp. Tuy nhiên, từ một điểm
thời gian chạy của khung hình, OMP đã được tìm thấy để dẫn đến thuật toán tổng
thể hiệu quả hơn nhiều.
• Khi một thành phần từ điển không được sử dụng "đủ" (cân đối số lượng thành
phần từ điển và số lượng mẫu), nó có thể thay thế với biểu diễn thành phần tín hiệu
tối thiểu, sau khi chuẩn hóa (biểu diễn được đo với các thành phần từ điển đó sẽ
được thay thế). Khi số lượng các thành phần dữ liệu là lớn hơn nhiều so với số
lượng các thành phần từ điển, và khi mô hình giả định cho thấy rằng thành phần từ
điển là quan trọng như nhau, thay thế như vậy là rất hiệu quả trong việc tránh cực
tiểu địa phương và overfitting.
• Tương tự như ý tưởng loại bỏ thành phần không được phổ biến từ từ điển, cho
thấy rằng nó là rất hiệu quả để tỉa các từ điển có thành phần quá gần. Nếu thực sự
như một cặp thành phần được tìm thấy (cơ sở của chúng nằm bên trong một số
ngưỡng), một trong những thành phần cần được loại bỏ và thay thế bằng biểu diễn
tối thiểu thành phần tín hiệu.
Tương tự như các K-means, có thể đề xuất nhiều kỹ thuật để nâng cao hơn nữa
thuật toán K-SVD. Hấp dẫn nhất trong danh sách này là cách tiếp cận multiscale và
đào tạo dựa trên cây mà số lượng các cột K được phép tăng trong các thuật toán.

22



CHƯƠNG 3 - MÔ TẢ BÀI TOÁN, MÔ HÌNH, KẾT QUẢ THỰC NGHIỆM
VÀ MÔ PHỎNG

3.1 Mô tả bài toán
Từ một tập các bức ảnh ban đầu (imageSets) ta trích chọn ra các đặc trưng
ảnh. Sau khi trích chọn đặc trưng ta chia thành hai tập con. Một tập gồm 70% bức
ảnh ban đầu làm tập học (trainingSets), một tập 30% bức ảnh ban đầu làm tập kiểm
tra (testSets). Tập học được đưa vào thuật toán K-SVD để chuyển không gian biểu
diễn từ các đặc trưng ban đầu sang miền không gian biểu diễn K-chiều, ta thu được
một bộ từ điển D và ma trận hệ số từ điển X. Lấy ma trận hệ số từ điển X đưa vào
máy vector hỗ trợ SVM để phân lớp ảnh. Khi SVM học xong các tham số của tập
học ta thu được một mô hình phân lớp. Cuối cùng đưa tập kiểm tra vào để đánh giá
độ chính xác phân lớp của mô hình.
Bước 1: từ một tập các bức ảnh ban đầu ta chia ra làm 2 tập con. 70% tập ảnh
ban đầu được sử dụng làm tập học, 30% còn lại được sử dụng làm tập kiểm tra.

Hình 3.1- Chia tập ảnh thành 2 tập học và kiểm tra
Bước 2: Tạo ra túi các đặc trưng.
Tạo từ vựng trực quan hoặc túi các đặc trưng trích xuất được mô tả từ biểu diễn
những bức ảnh của mỗi tập

23


×