MathLabs

Toán ứng dụng và Tính toán

Lý thuyết thông tin

Định lượng thông tin và giới hạn truyền thông bằng entropy, sáng lập bởi Claude Shannon.

Trực giácTrò chơi đoán và một thông điệp thực sự chứa bao nhiêu thông tin

Hãy tưởng tượng ai đó tung một đồng xu và cho bạn biết kết quả. Nếu đồng xu cân đối, mỗi lần bạn học được điều thực sự bất ngờ — ngửa và sấp có khả năng như nhau, nên bạn không thể đoán trước kết quả. Nếu đồng xu gần như luôn ra ngửa, nghe thấy "ngửa" hầu như không cho bạn biết gì thêm (bạn đã đoán trước điều đó), trong khi nghe thấy "sấp" hiếm gặp lại là một cú bất ngờ nhỏ mang nhiều thông tin hơn hẳn. Lý thuyết thông tin biến trực giác thường ngày này — kết quả hiếm, bất ngờ mang nhiều thông tin hơn kết quả quen thuộc, dễ đoán — thành một con số chính xác.

Một parabol lồi lên đạt đỉnh ở giữa trục hoành và giảm xuống thấp ở hai mép, minh họa hình dạng của hàm entropy nhị phân, triệt tiêu ở hai đầu và đạt cực đại tại xác suất một phần hai.
Đường cong y=−2x2+1y = -2x^2 + 1 được vẽ có hình dạng định tính giống hàm entropy nhị phân H(p)H(p): nhỏ gần hai mép và đạt đỉnh duy nhất ở giữa. Bản thân H(p)H(p) triệt tiêu tại p=0p=0 và p=1p=1 (không bất ngờ — kết quả chắc chắn) và đạt đỉnh tại p=0.5p=0.5 (bất ngờ tối đa — đồng xu cân đối).

Phổ thôngBit, sự bất ngờ và công thức entropy

Định nghĩa: Entropy Shannon

Với một biến ngẫu nhiên XX nhận giá trị ii với xác suất pip_i (với i=1,…,ni = 1, \dots, n), entropy Shannon H(X)H(X) là số bit bất ngờ trung bình trên mỗi kết quả: H(X)=−∑i=1npilog⁡2piH(X) = -\sum_{i=1}^n p_i \log_2 p_i. Số hạng −log⁡2pi-\log_2 p_i là "độ bất ngờ" của kết quả ii — lớn khi pip_i nhỏ (hiếm, bất ngờ) và bằng 00 khi pi=1p_i = 1 (chắc chắn, không bất ngờ) — và H(X)H(X) lấy trung bình độ bất ngờ đó, có trọng số theo tần suất thực tế xảy ra của mỗi kết quả.

H(X)=−∑i=1npilog⁡2piH(X) = -\sum_{i=1}^n p_i \log_2 p_i

Ở đây nn là số kết quả có thể xảy ra, pip_i là xác suất của kết quả ii (với ∑ipi=1\sum_i p_i = 1), và cơ số logarit bằng 22 nghĩa là H(X)H(X) được đo bằng bit. Trường hợp đặc biệt quan trọng nhất là một đồng xu với hai kết quả, xác suất pp và 1−p1-p: H(p)=−plog⁡2p−(1−p)log⁡2(1−p)H(p) = -p\log_2 p - (1-p)\log_2(1-p), gọi là hàm entropy nhị phân.

H(p)=−plog⁡2p−(1−p)log⁡2(1−p)H(p) = -p\log_2 p - (1-p)\log_2(1-p)
Entropy của một vài phân phối ví dụ, tính bằng bit
Phân phốiEntropy H(X)H(X)
Đồng xu cân đối, p=(0.5, 0.5)p=(0.5,\,0.5)11 bit (tối đa với 2 kết quả)
Đồng xu lệch, p=(0.9, 0.1)p=(0.9,\,0.1)≈0.469\approx 0.469 bit
Đều trên 88 kết quả33 bit (=log⁡28=\log_2 8)
Tất định, p=(1, 0)p=(1,\,0)00 bit (không có bất ngờ nào)

Đại họcBất đẳng thức Gibbs, mã tối ưu và dung lượng kênh

Cho hai phân phối xác suất pp và qq trên cùng nn kết quả, độ phân kỳ Kullback–Leibler D(p∥q)D(p\|q) đo mức "lãng phí" khi giả định các kết quả tuân theo qq trong khi thực ra chúng tuân theo pp: D(p∥q)=∑ipilog⁡2piqiD(p\|q) = \sum_{i} p_i \log_2\frac{p_i}{q_i}. Đại lượng này lý giải vì sao entropy có tính chất như vậy, và vì sao không mã nào có thể vượt qua cận entropy — cả hai đều là hệ quả của bất đẳng thức dưới đây.

Với hai phân phối xác suất bất kỳ p=(p1,…,pn)p=(p_1,\dots,p_n) và q=(q1,…,qn)q=(q_1,\dots,q_n) trên cùng nn kết quả (mọi pi,qi>0p_i, q_i > 0), D(p∥q)≥0D(p\|q) \ge 0, đẳng thức D(p∥q)=0D(p\|q) = 0 xảy ra khi và chỉ khi p=qp = q.

Vì sao đúng?

Logarit là hàm lõm, nên "trung bình" nó nằm dưới tiếp tuyến của mình. Bất đẳng thức Gibbs chính là bất đẳng thức Jensen áp dụng cho hàm lõm log⁡2\log_2, với trọng số pp: nó nói rằng thay mỗi tỉ số qi/piq_i/p_i bằng trung bình có trọng số pp của chúng (bằng 11) bên trong logarit chỉ có thể làm tăng tổng, buộc độ phân kỳ phải không âm.

Chứng minh

Bắt đầu từ bất đẳng thức sơ cấp ln⁡x≤x−1\ln x \le x - 1 với mọi x>0x > 0, đẳng thức chỉ xảy ra tại x=1x=1 (điều này đúng vì f(x)=ln⁡x−(x−1)f(x) = \ln x - (x-1) có f(1)=0f(1)=0, f′(x)=1/x−1f'(x) = 1/x - 1, dương khi x<1x<1 và âm khi x>1x>1, nên ff có cực đại duy nhất tại x=1x=1). Chia cho ln⁡2\ln 2 ta được log⁡2x≤(x−1)/ln⁡2\log_2 x \le (x-1)/\ln 2.

Áp dụng điều này với x=qi/pix = q_i/p_i cho mỗi ii: log⁡2(qi/pi)≤(qi/pi−1)/ln⁡2\log_2(q_i/p_i) \le (q_i/p_i - 1)/\ln 2. Nhân cả hai vế với pi>0p_i > 0 (không đổi chiều bất đẳng thức) và lấy tổng theo ii: ∑ipilog⁡2(qi/pi)≤1ln⁡2∑i(qi−pi)=1ln⁡2(∑iqi−∑ipi)=1ln⁡2(1−1)=0\sum_i p_i \log_2(q_i/p_i) \le \frac{1}{\ln 2}\sum_i (q_i - p_i) = \frac{1}{\ln 2}\left(\sum_i q_i - \sum_i p_i\right) = \frac{1}{\ln 2}(1 - 1) = 0, vì cả pp và qq đều là phân phối xác suất có tổng bằng 11.

Vế trái chính là −D(p∥q)-D(p\|q) (chú ý dấu đảo ngược do qi/piq_i/p_i thay vì pi/qip_i/q_i trong logarit), nên điều này chứng minh D(p∥q)≥0D(p\|q) \ge 0.

Đẳng thức toàn phần đòi hỏi đẳng thức trong ln⁡x≤x−1\ln x \le x-1 với mọi ii có pi>0p_i > 0, điều này chỉ xảy ra khi qi/pi=1q_i/p_i = 1 với mọi ii như vậy, tức là p=qp = q.

Để lưu trữ hoặc truyền kết quả của XX một cách hiệu quả, ta gán cho mỗi kết quả ii một từ mã nhị phân có độ dài lil_i, chọn sao cho không từ mã nào là tiền tố của từ mã khác (mã tiền tố), giúp bên nhận giải mã ngay lập tức chuỗi từ mã mà không mơ hồ. Không phải danh sách độ dài nào cũng khả thi: độ dài của một mã tiền tố phải thỏa bất đẳng thức Kraft, ∑i=1n2−li≤1\sum_{i=1}^n 2^{-l_i} \le 1.

∑i=1n2−li≤1\sum_{i=1}^n 2^{-l_i} \le 1

Với nguồn XX có entropy H(X)H(X), mọi mã tiền tố đều có độ dài từ mã trung bình LL thỏa L≥H(X)L \ge H(X), và tồn tại một mã tiền tố có H(X)≤L<H(X)+1H(X) \le L < H(X) + 1.

Vì sao đúng?

Cận dưới cho biết entropy là một sàn cứng: không mã tiền tố không mất mát nào có thể, trung bình, vượt qua H(X)H(X) bit trên mỗi kí hiệu, vì làm tốt hơn sẽ đòi hỏi phân phối do mã sinh ra khác với phân phối thật của XX theo cách mà bất đẳng thức Gibbs cấm. Cận trên cho biết sàn này gần như đạt được: làm tròn lên mỗi độ dài lý tưởng −log⁡2pi-\log_2 p_i thành số nguyên chỉ lãng phí ít hơn một bit trung bình.

Chứng minh

Với cận dưới, gọi lil_i là độ dài của một mã tiền tố bất kỳ, nên ∑i=1n2−li≤1\sum_{i=1}^n 2^{-l_i} \le 1. Đặt qi=2−li/Zq_i = 2^{-l_i}/Z với Z=∑j2−lj≤1Z=\sum_j 2^{-l_j} \le 1, khi đó qq là một phân phối xác suất. Theo bất đẳng thức Gibbs, 0≤D(p∥q)=∑ipilog⁡2(pi/qi)=∑ipilog⁡2pi−∑ipilog⁡2(2−li/Z)=−H(X)+∑ipili+log⁡2Z0 \le D(p\|q) = \sum_i p_i \log_2(p_i/q_i) = \sum_i p_i\log_2 p_i - \sum_i p_i \log_2(2^{-l_i}/Z) = -H(X) + \sum_i p_i l_i + \log_2 Z. Vì Z≤1Z \le 1 nên log⁡2Z≤0\log_2 Z \le 0, do đó 0≤−H(X)+L+log⁡2Z≤−H(X)+L0 \le -H(X) + L + \log_2 Z \le -H(X) + L, biến đổi ra L≥H(X)L \ge H(X).

Với cận trên (tính khả đạt), chọn li=⌈−log⁡2pi⌉l_i = \lceil -\log_2 p_i \rceil cho mỗi ii (làm tròn lên độ dài lý tưởng thành số nguyên gần nhất). Các độ dài này thỏa bất đẳng thức Kraft vì 2−li≤2−(−log⁡2pi)=pi2^{-l_i} \le 2^{-(-\log_2 p_i)} = p_i, nên ∑i2−li≤∑ipi=1\sum_i 2^{-l_i} \le \sum_i p_i = 1; theo cách dựng Kraft–McMillan, các độ dài như vậy luôn có thể hiện thực hóa thành một mã tiền tố thực sự (xây mã bằng cách gán các chuỗi nhị phân theo từng tầng trong một cây nhị phân).

Theo định nghĩa của hàm trần, li<−log⁡2pi+1l_i < -\log_2 p_i + 1. Nhân với pi≥0p_i \ge 0 và lấy tổng theo ii ta được L=∑ipili<∑ipi(−log⁡2pi+1)=H(X)+1L = \sum_i p_i l_i < \sum_i p_i(-\log_2 p_i + 1) = H(X) + 1.

Kết hợp hai phần, cách dựng này đạt được H(X)≤L<H(X)+1H(X) \le L < H(X) + 1.

Bây giờ giả sử các thông điệp được gửi qua một kênh nhiễu: bên nhận thấy YY khi XX được gửi đi, và nhiễu có thể làm lật kí hiệu. Thông tin tương hỗ I(X;Y)=H(X)−H(X∣Y)I(X;Y) = H(X) - H(X\mid Y) đo trung bình bao nhiêu bit về XX còn sống sót qua nhiễu — bằng entropy của XX trừ đi độ bất định còn lại H(X∣Y)H(X\mid Y) sau khi thấy YY. Dung lượng kênh C=max⁡p(x)I(X;Y)C = \max_{p(x)} I(X;Y) là thông tin tương hỗ lớn nhất đạt được bằng cách chọn phân phối đầu vào p(x)p(x) tốt nhất.

I(X;Y)=H(X)−H(X∣Y)I(X;Y) = H(X) - H(X\mid Y)
C=max⁡p(x)I(X;Y)C = \max_{p(x)} I(X;Y)

Kênh nhiễu đơn giản nhất là kênh nhị phân đối xứng (BSC): mỗi bit truyền đi bị lật độc lập với xác suất chéo pp. Dung lượng của nó là C=1−H(p)C = 1 - H(p), dùng cùng hàm entropy nhị phân H(p)H(p) ở trên — một cầu nối gọn gàng giữa hai nửa mã hóa nguồn và mã hóa kênh của lý thuyết.

Với một kênh không nhớ rời rạc có dung lượng CC, truyền tin đáng tin cậy (xác suất lỗi Pe→0P_e \to 0) là khả thi ở bất kỳ tốc độ truyền RR bit trên mỗi lần dùng kênh với R<CR < C, bằng cách dùng mã khối đủ dài; ngược lại, không sơ đồ mã nào có thể đạt Pe→0P_e \to 0 ở bất kỳ tốc độ R>CR > C.

Vì sao đúng?

Dung lượng không chỉ là một công thức tiện lợi — nó là một bức tường thực sự. Dưới ngưỡng đó, trải mỗi thông điệp trên một khối đủ dài giúp các từ mã trông ngẫu nhiên vẫn phân biệt được dù có nhiễu, nên lỗi có thể được đưa về không; trên ngưỡng đó, kênh phá hủy thông tin nhanh hơn bất kỳ mã nào có thể bảo vệ, dù mã có tinh vi đến đâu.

Chứng minh

**Chiều đảo (R>C⇒Pe↛0R > C \Rightarrow P_e \not\to 0).** Bất đẳng thức Fano chặn độ bất định còn lại của bên nhận về thông điệp khi biết đầu ra nhiễu: H(X∣Y)≤1+Pelog⁡2(n−1)H(X\mid Y) \le 1 + P_e \log_2(n-1), với nn là số thông điệp có thể. Đồng thời, cấu trúc xử lý dữ liệu của kênh buộc I(X;Y)≤CI(X;Y) \le C ở mỗi lần dùng, nên trên một khối NN lần dùng kênh, tổng thông tin bên nhận có thể trích ra tối đa là NCNC bit. Nếu tốc độ thật là R>CR > C bit mỗi lần dùng, thông điệp mang NRNR bit entropy nhưng kênh chỉ cung cấp khoảng NC<NRNC < NR bit về nó; bất đẳng thức Fano khi đó buộc PeP_e phải giữ khoảng cách khỏi 00 khi NN tăng, vì độ bất định còn lại H(X∣Y)H(X\mid Y) không thể triệt tiêu được.

**Phác thảo chiều thuận (R<C⇒Pe→0R < C \Rightarrow P_e \to 0).** Cố định một phân phối đầu vào p(x)p(x) đạt dung lượng và sinh ngẫu nhiên độc lập một bảng mã gồm 2NR2^{NR} từ mã độ dài NN từ p(x)Np(x)^N. Để giải mã, bên nhận tìm từ mã duy nhất đồng điển hình với chuỗi nhận được (nghĩa là có các mẫu thống kê giống một cặp đầu vào–đầu ra thật). Vì R<CR < C, số từ mã ứng viên (2NR2^{NR}) nhỏ hơn nhiều so với số đầu ra kênh phân biệt được về mặt thống kê (≈2NC\approx 2^{NC}), nên khi N→∞N \to \infty khả năng một từ mã khác, không được gửi, tình cờ trông đồng điển hình với chuỗi nhận được giảm về 00, và xác suất lỗi giải mã cũng vậy, tính trung bình theo lựa chọn ngẫu nhiên của bảng mã — do đó phải tồn tại ít nhất một bảng mã đạt được PeP_e nhỏ tùy ý.

Dung lượng của một vài kênh rời rạc tiêu chuẩn
KênhDung lượng CC
Kênh nhị phân không nhiễu11 bit mỗi lần dùng
Kênh nhị phân đối xứng, xác suất chéo ppC=1−H(p)C = 1 - H(p)
Kênh xóa nhị phân, xác suất xóa ppC=1−pC = 1-p
Kênh nhị phân đối xứng, p=0.5p=0.5 (nhiễu hoàn toàn)C=0C = 0 (không thông tin nào lọt qua)

Đại họcỨng dụng thực tiễn và Ví dụ minh họa

Mọi công nghệ số nén hoặc truyền dữ liệu đều dựa vào hai định lý này. Mã hóa nguồn là nền tảng của nén ZIP, JPEG và MP3 (tiến gần tới entropy của dữ liệu); mã hóa kênh là nền tảng của Wi-Fi, liên lạc không gian sâu và mã QR (thêm vừa đủ dư thừa để chống chịu nhiễu, nhưng không nhiều hơn mức CC đòi hỏi).

Ví dụ: Xây dựng một mã đạt đúng cận entropy

Một cảm biến báo cáo một trong bốn trạng thái với xác suất p=(0.5, 0.25, 0.125, 0.125)p=(0.5,\,0.25,\,0.125,\,0.125). Tìm H(X)H(X), đề xuất độ dài mã tiền tố lil_i thỏa bất đẳng thức Kraft với dấu bằng, và kiểm tra xem độ dài trung bình LL thu được có khớp với cận entropy hay không.

Lời giải

Trước hết tính entropy trực tiếp từ công thức: mỗi số hạng là −pilog⁡2pi-p_i\log_2 p_i, cho −0.5log⁡20.5=0.5-0.5\log_2 0.5 = 0.5, −0.25log⁡20.25=0.5-0.25\log_2 0.25 = 0.5, và hai số hạng −0.125log⁡20.125=0.375-0.125\log_2 0.125 = 0.375 mỗi số hạng. Cộng lại: H(X)=0.5+0.5+0.375+0.375=1.75H(X) = 0.5+0.5+0.375+0.375 = 1.75 bit.

Vì mỗi xác suất ở đây là một lũy thừa của hai (2−1,2−2,2−3,2−32^{-1}, 2^{-2}, 2^{-3}, 2^{-3}), các độ dài từ mã lý tưởng −log⁡2pi-\log_2 p_i đã là số nguyên: l=(1,2,3,3)l = (1, 2, 3, 3). Kiểm tra bất đẳng thức Kraft: 2−1+2−2+2−3+2−3=0.5+0.25+0.125+0.125=12^{-1}+2^{-2}+2^{-3}+2^{-3} = 0.5+0.25+0.125+0.125 = 1, thỏa mãn với dấu bằng, nên tồn tại một mã tiền tố có đúng các độ dài này (chẳng hạn 0,10,110,1110, 10, 110, 111).

Độ dài từ mã trung bình là L=∑ipili=0.5(1)+0.25(2)+0.125(3)+0.125(3)=0.5+0.5+0.375+0.375=1.75L = \sum_i p_i l_i = 0.5(1) + 0.25(2) + 0.125(3) + 0.125(3) = 0.5+0.5+0.375+0.375 = 1.75 bit.

Vậy L=H(X)=1.75L = H(X) = 1.75 chính xác, đạt cận dưới của định lý mã hóa nguồn không nhiễu với dấu bằng — điều này xảy ra chính xác vì phân phối này là dyadic (mọi xác suất đều là lũy thừa của hai), nên không bit nào bị lãng phí khi làm tròn độ dài thành số nguyên.

Ví dụ: Một chip nhớ nhiễu cần bao nhiêu dư thừa?

Một ô nhớ flash có xác suất lật bit thô p=0.11p=0.11 trên mỗi bit lưu trữ, được mô hình hóa như một kênh nhị phân đối xứng. Tính dung lượng kênh CC, và diễn giải ý nghĩa của nó về việc bao nhiêu phần bộ nhớ thô phải dùng cho dư thừa sửa lỗi để đọc lại dữ liệu một cách đáng tin cậy.

Lời giải

Trước hết tính entropy nhị phân tại p=0.11p=0.11: −0.11log⁡20.11≈0.350-0.11\log_2 0.11 \approx 0.350 và −0.89log⁡20.89≈0.150-0.89\log_2 0.89 \approx 0.150, nên H(0.11)≈0.500H(0.11) \approx 0.500 bit.

Dung lượng khi đó là C=1−H(0.11)≈1−0.500=0.500C = 1 - H(0.11) \approx 1 - 0.500 = 0.500 bit trên mỗi bit lưu trữ.

Điều này nghĩa là, về nguyên tắc, chỉ khoảng một nửa dung lượng lưu trữ thô có thể mang thông tin đáng tin cậy một khi thêm dư thừa sửa lỗi — một tốc độ RR gần C≈0.5C \approx 0.5 bit trên mỗi ô nhớ thô là mức tốt nhất mà bất kỳ mã sửa lỗi nào có thể đạt được trong khi vẫn đưa xác suất lỗi về gần không trên kênh này; các mã cố đạt tốc độ cao hơn không thể trở nên đáng tin cậy, dù thiết kế có tinh vi đến đâu.

Trong thực tế, các bộ điều khiển bộ nhớ flash thật sự dùng các mã sửa lỗi như BCH hay LDPC ở tốc độ được chọn an toàn dưới trần lý thuyết 0.50.5 bit này, đánh đổi một phần biên độ đó để lấy độ phức tạp giải mã thực tế và độ dài khối hữu hạn.

Một nguồn có ba kết quả đồng khả năng, p=(1/3, 1/3, 1/3)p=(1/3,\,1/3,\,1/3). H(X)H(X) bằng bao nhiêu?

Theo bất đẳng thức Gibbs, giá trị nhỏ nhất có thể của D(p∥q)D(p\|q) với hai phân phối xác suất p,qp, q là gì?

Với một nguồn có entropy H(X)H(X), phát biểu nào về độ dài trung bình LL của mã tiền tố tối ưu được định lý mã hóa nguồn không nhiễu của Shannon bảo đảm?

Một kênh nhị phân đối xứng có xác suất chéo p=0.5p=0.5 (mỗi bit bị lật với xác suất đúng một nửa). Dung lượng CC của nó là gì?

Tài liệu tham khảo

  1. Claude E. Shannon (1948). A Mathematical Theory of Communication
  2. Thomas M. Cover, Joy A. Thomas (2006). Elements of Information Theory
  3. David J. C. MacKay (2003). Information Theory, Inference, and Learning Algorithms
  4. Erdal Arıkan (2009). Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels · arXiv:0807.3917