Théorème du codage de source

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

L'article doit être débarrassé d'une partie de son jargon ().

Sa qualité peut être largement améliorée en utilisant un vocabulaire plus directement compréhensible. Discutez des points à améliorer en page de discussion.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Cet article est une ébauche concernant l’informatique et l’informatique théorique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Le théorème du codage de source (ou premier théorème de Shannon, ou encore théorème de codage sans bruit) est un théorème en théorie de l'information, énoncé par Claude Shannon en 1948, qui énonce la limite théorique pour la compression d'une source.

Le théorème montre que l'on ne peut pas compresser une chaine de variables aléatoires i.i.d, quand la longueur de celle-ci tend vers l'infini, de telle sorte à ce que la longueur moyenne des codes des variables soit inférieure à l'entropie de la variable source. Cependant, on peut avoir une compression avec une longueur moyenne de code arbitrairement proche de l'entropie lorsque la longueur de la chaîne tend vers l'infini.

Enoncés du théorème

Théorème du codage de source

Soit une variable aléatoire X {\displaystyle X} , posons X n = X 1 X 2 . . . X n {\displaystyle X^{n}=X_{1}X_{2}...X_{n}} la suite de n {\displaystyle n} variables aléatoires i.i.d de loi X {\displaystyle X} et en notant L ( Y , δ ) {\displaystyle L(Y,\delta )} la longueur minimale d'un code pour Y {\displaystyle Y} à erreur de probabilité au plus δ {\displaystyle \delta } .

Le théorème énonce que lim n L ( X n , δ ) n = H ( X ) {\displaystyle \lim _{n\rightarrow \infty }{\frac {L(X^{n},\delta )}{n}}=H(X)} , c'est-à-dire, lorsque n {\displaystyle n} tend vers l'infini, que X n {\displaystyle X^{n}} ne peut être compressée en moins de n   H ( X ) {\displaystyle n\ H(X)} bits sans perte d'information presque certaine. On peut en revanche trouver un code à probabilité d'erreur négligeable approchant cette borne d'arbitrairement près.

Théorème du codage de source pour les codes par symboles

On considère une suite de n {\displaystyle n} symboles provenant d'une source a {\displaystyle a} -aire stationnaire (suite de variables i.i.d), le théorème se simplifie en: H ( X ) l o g 2 ( a ) E [ l ( X ) ] < H ( X ) l o g 2 ( a ) + 1 {\displaystyle {\frac {H(X)}{log_{2}(a)}}\leq \mathbb {E} [l(X)]<{\frac {H(X)}{log_{2}(a)}}+1} avec l ( X ) {\displaystyle l(X)} la longueur d'un code optimal pour X {\displaystyle X} .

Preuves

Preuve du théorème de codage de source

Soit donc X {\displaystyle X} une variable aléatoire, notons X n = X 1 X 2 . . . X n {\displaystyle X^{n}=X_{1}X_{2}...X_{n}} la suite de n {\displaystyle n} réalisations différentes de X {\displaystyle X} ( ( X i ) i n {\displaystyle (X_{i})_{i\leq n}} suivent la même loi que X {\displaystyle X} et sont indépendantes). Le théorème affirme que lim n L ( X n , δ ) n = H ( X ) {\displaystyle \lim _{n\rightarrow \infty }{\frac {L(X^{n},\delta )}{n}}=H(X)} , encadrons donc cette limite par deux inégalités.

Preuve d'atteignabilité

Pour n N {\displaystyle n\in \mathbb {N} } et ϵ > 0 {\displaystyle \epsilon >0} , on définit un ensemble de réalisations typiques de X n {\displaystyle X^{n}} ainsi : S δ = { x n A n /   P ( X n = x n ) 2 n ( H ( X ) + ϵ ) } {\displaystyle S_{\delta }=\{x^{n}\in A^{n}/\ \mathbb {P} (X^{n}=x^{n})\geq 2^{-n(H(X)+\epsilon )}\}} .

On a alors, avec h X ( x ) = log ( p ( X = x ) ) {\displaystyle h_{X}(x)=-\log(p(X=x))} et H {\displaystyle H} l'entropie :

P ( X 1 . . . X n S δ ) = P X { P ( X n = x n ) 2 n ( H ( X ) + ϵ ) } = P X { log P ( X n = x n ) n ( H ( X ) + ϵ ) } = P X { log ( P ( X 1 = x 1 ) . . . P ( X n = x n ) ) n ( H ( X ) + ϵ ) } = P X { i = 1 n h X ( X i ) n ( H ( X ) + ϵ ) } = P X { 1 n i = 1 n h X ( X ) H ( X ) + ϵ } {\displaystyle {\begin{aligned}\mathbb {P} (X_{1}...X_{n}\in S_{\delta })&=\mathbb {P} _{X}{\{\mathbb {P} (X^{n}=x^{n})\geq 2^{-n(H(X)+\epsilon )}\}}\\&=\mathbb {P} _{X}\{-\log {\mathbb {P} (X^{n}=x^{n})}\leq n(H(X)+\epsilon )\}\\&=\mathbb {P} _{X}\{-\log(\mathbb {P} (X_{1}=x_{1})...\mathbb {P} (X_{n}=x_{n}))\leq n(H(X)+\epsilon )\}\\&=\mathbb {P} _{X}\{\sum _{i=1}^{n}h_{X}(X_{i})\leq n(H(X)+\epsilon )\}\\&=\mathbb {P} _{X}\{{\frac {1}{n}}\sum _{i=1}^{n}h_{X}(X)\leq H(X)+\epsilon \}\\\end{aligned}}}

Puisque H ( X ) = E ( h X ( X ) ) {\displaystyle H(X)=E(h_{X}(X))} , la loi faible des grands nombres nous assure lim n P { X 1 . . . X n S δ } = 1 {\displaystyle \lim _{n\rightarrow \infty }\mathbb {P} \{X_{1}...X_{n}\in S_{\delta }\}=1} .

Pour n {\displaystyle n} assez grand, P { X 1 . . . X n S δ } 1 δ {\displaystyle \mathbb {P} \{X_{1}...X_{n}\in S_{\delta }\}\geq 1-\delta } et comme | S δ | 2 n ( H ( X ) + ϵ ) {\displaystyle |S_{\delta }|\leq 2^{n(H(X)+\epsilon )}} on peut coder cet ensemble avec moins de n ( H ( X ) + ϵ ) {\displaystyle n(H(X)+\epsilon )} bits.

Ainsi L ( X n , δ ) n H ( X ) + ϵ {\displaystyle {\frac {L(X^{n},\delta )}{n}}\leq H(X)+\epsilon } pour tout ϵ {\displaystyle \epsilon } et n {\displaystyle n} correspondant assez grand, donc lim n L ( X n , δ ) n H ( X ) {\displaystyle \lim _{n\rightarrow \infty }{\frac {L(X^{n},\delta )}{n}}\leq H(X)} .

Preuve inverse

Pour ϵ > 0 {\displaystyle \epsilon >0} , soit S A n {\displaystyle S\subseteq A^{n}} tel que | S | 2 n ( H ( X ) ϵ ) {\displaystyle |S|\leq 2^{n(H(X)-\epsilon )}} , posons S s {\displaystyle S_{s}} et S b {\displaystyle S_{b}} tels que S = S s S b {\displaystyle S=S_{s}\cup S_{b}} de cette façon :

S s = S { x n |   P ( X = x n ) 2 n ( H ( X ) ϵ / 2 ) } S b = S { x n |   P ( X = x n ) > 2 n ( H ( X ) ϵ / 2 ) } {\displaystyle {\begin{aligned}&S_{s}=S\cap \{x^{n}|\ \mathbb {P} (X=x^{n})\leq 2^{-n(H(X)-\epsilon /2)}\}\\&S_{b}=S\cap \{x^{n}|\ \mathbb {P} (X=x^{n})>2^{-n(H(X)-\epsilon /2)}\}\end{aligned}}}

Maintenant,

P ( X 1 . . . X n S ) = P ( X 1 . . . X n S s ) + P ( X 1 . . . X n S b ) | S | 2 n ( H ( X ) ϵ / 2 ) + P { P ( X n = X 1 . . . X n ) > 2 n ( H ( X ) ϵ / 2 ) } 2 n ϵ / 2 + P { i = 1 n h X ( X i ) < n ( H ( X ) ϵ / 2 ) } 2 n ϵ / 2 + P { 1 n i = 1 n h X ( X ) < ( H ( X ) ϵ / 2 ) } {\displaystyle {\begin{aligned}\mathbb {P} (X_{1}...X_{n}\in S)&=\mathbb {P} (X_{1}...X_{n}\in S_{s})+\mathbb {P} (X_{1}...X_{n}\in S_{b})\\&\leq |S|2^{-n(H(X)-\epsilon /2)}+\mathbb {P} \{\mathbb {P} (X^{n}=X_{1}...X_{n})>2^{-n(H(X)-\epsilon /2)}\}\\&\leq 2^{-n\epsilon /2}+\mathbb {P} \{\sum _{i=1}^{n}h_{X}(X_{i})<n(H(X)-\epsilon /2)\}\\&\leq 2^{-n\epsilon /2}+\mathbb {P} \{{\frac {1}{n}}\sum _{i=1}^{n}h_{X}(X)<(H(X)-\epsilon /2)\}\end{aligned}}}

Le premier terme tendant vers 0, et par la loi faible des grands nombres le second aussi, on a donc lim n P ( X 1 . . . X n S ) = 0 {\displaystyle \lim _{n\rightarrow \infty }\mathbb {P} (X_{1}...X_{n}\in S)=0} donc la probabilité de pouvoir encoder X n {\displaystyle X^{n}} avec n ( H ( X ) ϵ ) {\displaystyle n(H(X)-\epsilon )} caractères ou moins tend vers 0. Ainsi, à partir d'un n δ {\displaystyle n_{\delta }} assez grand, elle passera en dessous de δ {\displaystyle \delta } et donc pour tout n > n δ {\displaystyle n>n_{\delta }} on aura L ( X n , δ ) n H ( X ) ϵ {\displaystyle {\frac {L(X^{n},\delta )}{n}}\geq H(X)-\epsilon } .

Comme ceci est vrai pour tout ϵ {\displaystyle \epsilon } : lim n L ( X n , δ ) n H ( X ) {\displaystyle \lim _{n\rightarrow \infty }{\frac {L(X^{n},\delta )}{n}}\geq H(X)} , ce qui achève d'encadrer la limite souhaitée.

Preuve pour les codes par symboles

Soit X {\displaystyle X} une variable aléatoire et l {\displaystyle l} un code optimal pour X {\displaystyle X} (c'est-à-dire d'espérance de longueur minimale).

Pour tout i n {\displaystyle i\leq n} , avec l ( x i ) {\displaystyle l(x_{i})} la longueur du code de x i {\displaystyle x_{i}} , on définit q i = a l ( x i ) C {\displaystyle q_{i}={\frac {a^{-l(x_{i})}}{C}}} avec a {\displaystyle a} la taille de l'alphabet sur lequel X prend des valeurs et C {\displaystyle C} une constante de normalisation telle que q i = 1 {\displaystyle \sum q_{i}=1} . Alors tout d'abord

H ( X ) = i = 1 n p i log 2 p i i = 1 n p i log 2 q i {\displaystyle {\begin{aligned}H(X)&=-\sum _{i=1}^{n}p_{i}\log _{2}p_{i}\\&\leq -\sum _{i=1}^{n}p_{i}\log _{2}q_{i}\\\end{aligned}}}

d'après l'Inégalité de Gibbs.

H ( X ) i = 1 n p i log 2 a l ( x i ) + i = 1 n p i log 2 C = i = 1 n p i log 2 a l ( x i ) + log 2 C i = 1 n l ( x i ) p i log 2 a E [ l ( X ) ] log 2 a {\displaystyle {\begin{aligned}H(X)&\leq -\sum _{i=1}^{n}p_{i}\log _{2}a^{-l(x_{i})}+\sum _{i=1}^{n}p_{i}\log _{2}C\\&=-\sum _{i=1}^{n}p_{i}\log _{2}a^{-l(x_{i})}+\log _{2}C\\&\leq -\sum _{i=1}^{n}-l(x_{i})p_{i}\log _{2}a\\&\leq \mathbb {E} [l(X)]\log _{2}a\\\end{aligned}}}

d'après l'Inégalité de Kraft. On a donc bien la borne inférieure.

Comme C = a l ( x i ) 1 {\displaystyle C=\sum a^{-l(x_{i})}\leq 1} , on a log C 0. {\displaystyle \log {C}\leq 0.}

On peut tenter de fixer l ( x i ) = log a p i {\displaystyle l(x_{i})=\lceil -\log _{a}p_{i}\rceil } pour avoir log a p i l ( x i ) < log a p i + 1 {\displaystyle -\log _{a}p_{i}\leq l(x_{i})<-\log _{a}p_{i}+1} .

Ensuite, a l ( x i ) p i {\displaystyle a^{-l(x_{i})}\leq p_{i}} donc a l ( x i ) 1 {\displaystyle \sum a^{-l(x_{i})}\leq 1} et l'inégalité de Kraft nous donne l'existence d'un code préfixe pour X {\displaystyle X} avec ces longueurs de mots là.

Finalement,

E [ l ( X ) ] = p i l ( x i ) < p i ( log a ( p i ) + 1 ) = p i l o g 2 ( p i ) l o g 2 ( a ) + 1 = H ( X ) l o g 2 ( a ) + 1 {\displaystyle {\begin{aligned}E[l(X)]&=\sum p_{i}l(x_{i})\\&<\sum p_{i}(-\log _{a}(p_{i})+1)\\&=\sum -p_{i}{\frac {log_{2}(p_{i})}{log_{2}(a)}}+1\\&={\frac {H(X)}{log_{2}(a)}}+1\end{aligned}}}

Ce qui nous donne la borne supérieure et achève la preuve.

Voir aussi

Bibliographie

  • C.E. Shannon, "A Mathematical Theory of Communication", Bell System Technical Journal, vol. 27, pp. 379-423, July 1948.
  • O. Fawzi, Cours de théorie de l'information, ENS de Lyon, Automne 2018.
  • D. MacKay, Information Theory, Inference and Learning Algorithms, Cambridge University Press, 2005, (ISBN 0-521-64298-1).


  • icône décorative Portail de l’informatique
  • icône décorative Portail des télécommunications