Объясните понятия энтропии Шеннона и взаимной информации, приведите пример их применения в сжатии и в отборе признаков; вычислите энтропию распределения с вероятностями {0.5, 0.3, 0.2} в битах и интерпретируйте результат
Shannon-энтропия — мера неопределённости распределения случайной величины X. Формально: H(X)=−∑xp(x)log2p(x),
H(X)=-\sum_x p(x)\log_2 p(x), H(X)=−x∑p(x)log2p(x),
где логарифм по базе 2 даёт единицы в битах. Интерпретация: среднее количество “бит сюрприза” при наблюдении значения X или нижняя граница для ожидаемой длины безпотерьного кода (теорема кодирования Шеннона). Взаимная информация — мера зависимости между двумя случайными величинами X и Y; показывает, насколько знание Y уменьшает неопределённость X: I(X;Y)=∑x,yp(x,y)log2p(x,y)p(x)p(y).
I(X;Y)=\sum_{x,y} p(x,y)\log_2\frac{p(x,y)}{p(x)p(y)}. I(X;Y)=x,y∑p(x,y)log2p(x)p(y)p(x,y).
Эквивалентные выражения: I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X),
I(X;Y)=H(X)-H(X\mid Y)=H(Y)-H(Y\mid X), I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X),
интерпретация: количество бит неопределённости X, устранённое знанием Y. Применения: - Сжатие: энтропия даёт нижнюю границу средней длины кода. Практические алгоритмы (Huffman, арифметическое кодирование) приближают среднюю длину к H(X)H(X)H(X). Теорема: при блочном кодировании можно приблизить среднюю длину к H(X)H(X)H(X) сколь угодно близко. - Отбор признаков: взаимная информация I(признак;метка)I(\text{признак};\text{метка})I(признак;метка) используется для оценки информативности признака относительно целевой переменной — признаки с большим III обычно полезнее; популярные методы: отбор по взаимной информации, mRMR (максимизировать релевантность, минимизировать избыточность). Вычисление энтропии для распределения {0.5,0.3,0.2}\{0.5,0.3,0.2\}{0.5,0.3,0.2} (в битах): H=−(0.5log20.5+0.3log20.3+0.2log20.2)=0.5+0.3⋅1.7369656+0.2⋅2.3219281≈1.485 бит.
H=-\bigl(0.5\log_2 0.5+0.3\log_2 0.3+0.2\log_2 0.2\bigr) =0.5+0.3\cdot1.7369656+0.2\cdot2.3219281\approx1.485\ \text{бит}. H=−(0.5log20.5+0.3log20.3+0.2log20.2)=0.5+0.3⋅1.7369656+0.2⋅2.3219281≈1.485бит.
Интерпретация результата: в среднем для кодирования одного значения этого распределения без потерь требуется примерно 1.485\,1.4851.485 бита информации. Это минимально достижимая средняя длина кода при оптимальном (приближающем) сжатии; максимум для трёх равновероятных исходов был бы log23≈1.585\log_2 3\approx1.585log23≈1.585 бит, значит распределение немного менее неопределённо, чем равномерное.
H(X)=−∑xp(x)log2p(x), H(X)=-\sum_x p(x)\log_2 p(x),
H(X)=−x∑ p(x)log2 p(x), где логарифм по базе 2 даёт единицы в битах. Интерпретация: среднее количество “бит сюрприза” при наблюдении значения X или нижняя граница для ожидаемой длины безпотерьного кода (теорема кодирования Шеннона).
Взаимная информация — мера зависимости между двумя случайными величинами X и Y; показывает, насколько знание Y уменьшает неопределённость X:
I(X;Y)=∑x,yp(x,y)log2p(x,y)p(x)p(y). I(X;Y)=\sum_{x,y} p(x,y)\log_2\frac{p(x,y)}{p(x)p(y)}.
I(X;Y)=x,y∑ p(x,y)log2 p(x)p(y)p(x,y) . Эквивалентные выражения:
I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X), I(X;Y)=H(X)-H(X\mid Y)=H(Y)-H(Y\mid X),
I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X), интерпретация: количество бит неопределённости X, устранённое знанием Y.
Применения:
- Сжатие: энтропия даёт нижнюю границу средней длины кода. Практические алгоритмы (Huffman, арифметическое кодирование) приближают среднюю длину к H(X)H(X)H(X). Теорема: при блочном кодировании можно приблизить среднюю длину к H(X)H(X)H(X) сколь угодно близко.
- Отбор признаков: взаимная информация I(признак;метка)I(\text{признак};\text{метка})I(признак;метка) используется для оценки информативности признака относительно целевой переменной — признаки с большим III обычно полезнее; популярные методы: отбор по взаимной информации, mRMR (максимизировать релевантность, минимизировать избыточность).
Вычисление энтропии для распределения {0.5,0.3,0.2}\{0.5,0.3,0.2\}{0.5,0.3,0.2} (в битах):
H=−(0.5log20.5+0.3log20.3+0.2log20.2)=0.5+0.3⋅1.7369656+0.2⋅2.3219281≈1.485 бит. H=-\bigl(0.5\log_2 0.5+0.3\log_2 0.3+0.2\log_2 0.2\bigr)
=0.5+0.3\cdot1.7369656+0.2\cdot2.3219281\approx1.485\ \text{бит}.
H=−(0.5log2 0.5+0.3log2 0.3+0.2log2 0.2)=0.5+0.3⋅1.7369656+0.2⋅2.3219281≈1.485 бит. Интерпретация результата: в среднем для кодирования одного значения этого распределения без потерь требуется примерно 1.485\,1.4851.485 бита информации. Это минимально достижимая средняя длина кода при оптимальном (приближающем) сжатии; максимум для трёх равновероятных исходов был бы log23≈1.585\log_2 3\approx1.585log2 3≈1.585 бит, значит распределение немного менее неопределённо, чем равномерное.