luận văn về phương pháp ước lượng xác suất thử cáp dựa trên lý thuyết entropy cực đại ứng dụng nền dữ liệu
Trang 1PHƯƠNG PHÁP ƯỚC LƯỢNG XÁC SUẤT THỨ CẤP DỰA TRÊN
LÝ THUYẾT ENTROPY CỰC ĐẠI TRONG ỨNG DỤNG NÉN DỮ LIỆU
SECONDARY PROBABILITY ESTIMATION METHODS BASED ON MAXIMUM
ENTROPY PRINCIPLE IN DATA COMPRESSION APPLICATIONS
SVTH: Nguyễn Hải Triều Anh
Lớp 05DT1, Khoa Điện tử Viễn thông, Trường Đại học Bách khoa
GVHD: ThS Hoàng Lê Uyên Thục
Khoa Điện tử Viễn thông, Trường Đại học Bách khoa
TÓM TẮT
Mô hình hóa dữ liệu và mã hóa là hai quá trình quan trọng nhất của nén dữ liệu Mã hóa được thực hiện tối ưu và hiệu quả với mã hóa số học Tuy nhiên không thể tính toán mô hình tối
ưu cho một nguồn dữ liệu cho trước Bài báo sẽ giới thiệu phương pháp ước lượng xác suất thứ cấp Trong đó mỗi mô hình sơ cấp ước lượng xác suất bit tiếp theo là bit 1 hoặc bit 0 một cách độc lập Các xác suất ước lượng được kết hợp lại với nhau bằng phương pháp tương tự như mạng nơtron Sau khi bit được mã hóa, bộ ước lượng được cập nhật theo hướng tối thiểu chi phí mã hóa thay vì theo hướng giảm sai số dự đoán
ABSTRACT
Data modeling and coding is two most important processes of data compression An optimal and effective coding process can be implemented using arithmetic coding However, optimal model is not computable This paper introduces a secondary probability estimation method
In this method, each primary model independently estimates the probability that the next bit of data
is 0 or 1 Results of estimation are combined by using a method similar to a neural network After a bit is coded, the estimator will be updated in the direction that minimizes coding cost instead of the direction that minimizes mean square error
1 Đặt vấn đề
Nén dữ liệu là biện pháp nhằm giảm số bit cần dùng để lưu trữ hoặc truyền dữ liệu Các thuật toán nén có hai quá trình thiết yếu nhất là quá trình ước lượng phân bố xác suất
và quá trình mã hóa Người ta đã chứng minh được rằng không thể tìm ra ước lượng phân
bố xác suất tối ưu cho một nguồn cho trước [1][2] Tuy nhiên quá trình mã hóa có thể được thực hiện hiệu quả và tối ưu với mã hóa số học [3] Độ dài từ mã trung bình mà bộ mã hóa tạo ra bị giới hạn bởi entropy của nguồn Giả sử biến ngẫu nhiên x nhận giá trị thuộc tập X={x1, x2, …}; mỗi giá trị xi có xác suất là pi, lí thuyết thông tin [4] định nghĩa entropy của x là:
)
1 ( log )
i i
i p p
x
Entropy của nguồn tin được xác định nếu ta biết trước được phân bố xác suất của nguồn
đó Tổng quát thì phân bố xác suất của nguồn là không thể biết trước đồng thời phân bố tối
ưu của nguồn là không tính toán được, vì vậy chỉ có thể thực hiện ước lượng các giá trịp i
Do đó tính hiệu quả của một thuật toán nén dữ liệu phụ thuộc chủ yếu vào quá trình ước
Trang 2lượng xác suất Mặt khác để ước lượng xác suất p i của sự kiện x i người ta có thể sử dụng nhiều phương pháp, nhiều cách tiếp cận khác nhau Bài toán đặt ra là thực hiện kết hợp ước lượng xác suất từ các bộ ước lượng sơ cấp để tạo ra phân bố xác suất thích hợp nhất nhằm
mã hóa nguồn tin hiệu quả nhất
2 Phương pháp kết hợp dựa trên lí thuyết entropy cực đại
2.1 Cơ sở lí thuyết
Ta xét biến ngẫu nhiên xnhận giá trị thuộc tập X={x1, x2, …, xn} Xác suất ước lượng của xi với i 1,n từ m bộ ước lượng sơ cấp khác nhau là P S (x i)
k , với k 1,m Xác suất ước lượng tại đầu ra của bộ kết hợp là P M(x i)
Các điều kiện ràng buộc của P M(x i) [5]:
) (
1 ( log ) ( )
(
1
2
i M n
i
i M
x P x
P x
- Kì vọng của các xác suất sơ cấp:
n
i
i S i M
F
k
1
) ( )
- Mặt khác P M(x i) phải thỏa mãn:
n
i
i
P
1
1 ) ( (4)
Áp dụng phương pháp số nhân Lagrange với các điều ràng buộc như trên Định nghĩa các hằng số , k (k 1,m) và hàm Lagrange L:
m
k
k i S n
i
i M k n
i
i
P x
H
L
k
1
)]
) ( ) ( ( [ ) 1 ) ( ( )
Lý thuyết entropy cực đại dựa trên tiền đề là khi ước lượng phân bố xác suất với các ràng buộc cho trước ta nên chọn phân bố có entropy cực đại [5][6] Có nghĩa là tìm ,
k(k 1,m), và P M(x i) (i 1,n) sao cho L lớn nhất [5] Tức là xác suất tại đầu ra
)
( i
P phải thỏa mãn điều kiện 0
) ( i
P
L
và các điều kiện (2)(3)(4) Suy ra:
n
i
x P
x P
i
k
i k k
m
k
i k k
x
P
1
) (
) (
1 1
2
2 )
Các giá trị k có thể được xác định bằng phương pháp lặp tổng quát và đảm bảo sẽ hội tụ đến nghiệm duy nhất [6]
Dựa vào công thức (6) ta thấy: để có thể kết hợp các bộ dự đoán một cách đơn giản nhất thì các bộ dự đoán phải là các bộ dự đoán nhị phân (dự đoán từng bit) Gọi P là xác suất bit tiếp theo là bit 1, xác suất bit tiếp theo là bit 0 là (1-P) Tương tự gọi P S k là xác
Trang 3suất sơ cấp bit tiếp theo là bit 1 thì
(1-k S
P ) là xác suất sơ cấp bit tiếp theo là bit 0 Công thức (6) có thể viết lại:
m
k
k
P
1
) 1 2 (
2 1
1
Gọi y là bit vừa mã hóa, u là số bit để mã hóa y Theo lí thuyết thông tin [4]:
P
u log2 khi y = 1 và u log2(1 P) khi y = 0 Tương đương với: u log2[1 y (2y 1)P] (8)
Vi phân từng phần của (8) theo k ta được: ( )(2 1)
k S k
P P y
u
(9)
Sau khi mã hóa bit y, các trọng số k được cập nhật sao cho số bit cần dùng để mã hóa thay đổi ngược chiều với chiều biến thiên của u theo k:
) 1 2 )(
( :
k S k
Với là hệ số học có thể là một hằng số cho trước (ví dụ 0.01) hoặc thay đổi thích nghi như [6] Kí hiệu:= biểu thị cho phép gán Hiệu (y-P) chính là sai số dự đoán
Dựa vào công thức (8) và (10) ta thấy bộ kết hợp tương tự như một mạng nơtron perceptron gồm 2 lớp trong đó lớp đầu vào có m nút, lớp ra có 1 nút với hàm ngưỡng là
x
g
2
1
1 Đầu ra của nơtron i của lớp vào là Pr 2 1
i S
i P , đầu ra của nơtron lớp ra là
) Pr
(
1
m
k
k k
g
k k
2.2 Phương pháp thực hiện (hình 1)
Dữ liệu nguồn được tiền xử lí bằng thuật toán
LZ tiên đoán nhằm giảm bớt kích thước Đầu ra của
bộ tiền xử lí được đưa vào 4 bộ ước lượng xác suất sơ
cấp
k
S
P
Các giá trị xác suất thuộc đoạn [0, 1) được
biểu diễn bằng các số nguyên trong đoạn [0,8192)
Hàm sigmoid
x
g
2 1
1
được tính toán trước
và thực hiện dưới dạng bảng tra với x mang giá trị
trong đoạn [-8192, 8192) biểu diễn cho dải từ -16 đến
16 với độ phân giải 9
2 Giá trị 4
1
Pr
k
k k
x lưu trong một thanh ghi
32 bit Sau đó x được chuẩn hóa đến dải giá trị đầu vào của hàm sigmoid
Hình 1 Thủ tục mã hóa một bit
Trang 4Xác suất kết hợp từ 4 bộ ước lượng xác suất sơ cấp sẽ được dùng để mã hóa bit y bằng phương pháp mã hóa số học
Sau khi mã hóa, các giá trị kđược điều chỉnh nhằm làm giảm số bit dùng để mã hóa, đồng thời cập nhật các bộ ước lượng sơ cấp
Hệ số học được chọn trước có dạng l
2, với l 26,0 nhằm mục đích thay thế phép nhân với trong công thức (10) bằng phép dịch bit
2.3 Kết quả và đánh giá
2.3.1 So sánh với phương pháp kết hợp được sử dụng trong chuẩn ZPAQ
Bài báo thực hiện so sánh 3 phương pháp kết hợp khác nhau Phương pháp thứ nhất thực hiện tính trung bình cộng các xác suất sơ cấp Phương pháp thứ hai là phương pháp đã nêu ở mục 2.1 Phương pháp thứ ba là phương pháp của chuẩn ZPAQ, phương pháp này tương tự như phương pháp thứ hai, tuy nhiên đầu ra của nơtron i của lớp vào là
)
(
Pri g 1 P S i với g 1(x) là hàm ngược của g(x) thay vì Pr 2 1
i S
i P Ở cả ba phương pháp, các bộ dự đoán sơ cấp nhằm dự đoán xác suất của bit tiếp theo là hoàn toàn giống nhau Hệ số học được chọn bằng 17
2 Dữ liệu để kiểm chứng là Calary.tar [1] và enwik8 [1] Calgary là tập hợp các file văn bản và file nhị phân thường dùng để so sánh các thuật toán nén dữ liệu Tập hợp này có 14 file gồm các bài báo khoa học, mã nguồn, ảnh bitmap và chương trình thực thi Tất cả được đóng gói thành một file TAR* (tape archive: định dạng lưu trữ không nén khá phổ biến) nhằm đánh giá khả năng thích nghi của thuật toán với nguồn dữ liệu có phân bố thay đổi Enwik8 là 8
10 byte dữ liệu đầu tiên của bách khoa toàn thư mở wikipedia ngày 3/3/2006 Hiện nay enwik8 cũng được dùng với mục đích tương tự như bộ dữ liệu calgary
Bảng 1 Kết quả so sánh các phương pháp ước lượng thứ cấp
Phương pháp 1 Phương pháp 2 Phương pháp 3 File Kích thước
(byte)
Kích thước sau khi nén (byte)
Thời gian nén (s)
Kích thước sau khi nén (byte)
Thời gian nén (s)
Kích thước sau khi nén (byte)
Thời gian nén (s) Calgary.tar 3152896 1031116 1.015 976056 1.516 939918 1.738 Enwik8 100000000 33154937 31.778 31825330 44.964 30390024 50.056
2.3.2 Ảnh hưởng của hệ số học
Sử dụng phương pháp kết hợp thứ hai, ta thay đổi hệ số học để xem xét ảnh hưởng của nó tới kích thước file sau khi nén Bằng phương pháp thử - sai - sửa ta thấy giá trị 17
2 là phù hợp
Bảng 2 Kích thước file nén (byte) khi thay đổi hệ số học
Kích thước
gốc (byte)
12
Calgary.tar 3152896 7203636 980534 977378 976056 975690 975850 Enwik8 100000000 244105971 31968473 31866841 31825330 31813578 31816184
2.3.3 Đánh giá
Theo lí thuyết chiều dài mô tả ngắn nhất [2] ta suy ra phương pháp kết hợp ước
Trang 5lượng cho file nén nhỏ nhất là mô hình chính xác nhất Đo đó phương pháp kết hợp sử dụng trong chuẩn ZPAQ là phương pháp tốt nhất trong ba phương pháp trên
Trung bình cộng của các xác suất ước lượng sơ cấp không phải là phân bố xác suất
mô tả nguồn thích hợp
Phương pháp kết hợp được sử dụng trong ZPAQ thay thế Pr 2 1
i S
i P trong công
1 ( log ) (
i
i i
S
S S
i
P
P P
Đặc điểm của hàm g 1(x) là độ dốc của nó thay đổi chậm khi x nằm gần giá trị 0.5
và thay đổi rất nhanh khi x nằm gần giá trị 0 hoặc 1 Phương pháp của ZPAQ đạt tỉ lệ nén cao chứng tỏ xác suất từ bộ ước lượng càng gần với giá trị 0 hoặc 1 thì độ tin cậy của chúng càng cao, và xác suất càng gần với giá trị 0.5 thì độ tin cậy chúng càng thấp Phương pháp suy ra từ lí thuyết entropy cực trị không đạt hiệu quả cao nhất là do phương pháp này không xem xét đến độ tin cậy của xác suất được ước lượng
Phương pháp kết hợp cho tỉ lệ nén càng cao thì càng chậm Tùy theo mục đích thiết
kế mà ta lựa chọn phương pháp thích hợp
Hệ số học có tác động rất lớn đến hiệu quả nén dữ liệu, và cần lựa chọn cẩn thận nếu không sẽ không đạt hiệu quả như mong muốn
3 Kết luận
Bài báo đã giới thiệu một phương pháp kết hợp hiệu quả các bộ dự đoán dựa trên lí thuyết entropy cực đại Đồng thời cho thấy khi kết hợp các xác suất ta cần quan tâm đến độ tin cậy của nó Do ứng dụng trong nén dữ liệu cho nên bộ kết hợp được huấn luyện trực tuyến (online-training) theo hướng giảm số bit dùng để mã hóa một bit dữ liệu thay vì huấn luyện theo hướng giảm sai số ước lượng Để ước lượng chính xác hơn ta phải tăng số lượng và độ chính xác của các bộ ước lượng sơ cấp Ưu điểm lớn nhất của phương pháp này là có thể xây dựng nhiều bộ ước lượng sơ cấp khác nhau cho các kiểu dữ liệu khác nhau, rồi kết hợp các ước lượng đó để tạo ra xác suất ước lượng tốt nhất Vì vậy ta dễ dàng tạo ra thuật toán nén dữ liệu làm việc tốt đối với nhiều nguồn dữ liệu khác nhau như hình ảnh, văn bản, âm thanh, video …
TÀI LIỆU THAM KHẢO
[1] Matt Mahoney (2010), Data compression explain, Ocarina Networks, Section 1 and
section 4
[2] Volker Nannen (2003), A Short Introduction to Model Selection, Kolmogorov Complexity and Minimum Description Length
[3] Khalid Sayood (2003), Lossless compression handbook, Academic Press, Chapter 5
[4] C.E.Shannon (1948), “A Mathematical Theory of Communication”, The Bell System Technical Journal
Trang 6[5] Department of Electrical Engineering and Computer Science (2004), Information and Entropy, Massachusetts Institute of Technology, Chapter 9-10
[6] Matt Mahoney (2000), “Fast Text Compression with Neural Networks”, Florida Institute of Technology
[7] Matt Mahoney (2009), “The ZPAQ Open Standard Format for Highly Compressed Data - Level 1”