Что такое “энтропийное и увеличение информации”?

Ну, никто еще не упомянул Coldfusion, таким образом...

<cfinclude template="#ListLast(CGI.SCRIPT_NAME, "/\")#">

, Что oughta делают это.

330
задан rayryeng - Reinstate Monica 1 September 2016 в 06:17
поделиться

4 ответа

Я предполагаю, что энтропия упоминалась в контексте построения деревьев решений .

Для иллюстрации, представьте себе задачу изучения - разделить имена на мужские / женские группы. Дан список имен, каждое из которых помечено либо m , либо f , мы хотим изучить модель , которая соответствует данным и может использоваться для прогнозирования пол нового невидимого имени.

name       gender
-----------------        Now we want to predict 
Ashley        f              the gender of "Amro" (my name)
Brian         m
Caroline      f
David         m

Первым шагом является решение , какие характеристики данных имеют отношение к целевому классу, который мы хотим предсказать. Вот некоторые примеры функций: первая / последняя буква, длина, количество гласных, оканчивается ли она на гласную и т. Д. Итак, после извлечения функции наши данные выглядят так:

# name    ends-vowel  num-vowels   length   gender
# ------------------------------------------------
Ashley        1         3           6        f
Brian         0         2           5        m
Caroline      1         4           8        f
David         0         2           5        m

Цель состоит в том, чтобы построить дерево решений . Примером дерева будет:

length<7
|   num-vowels<3: male
|   num-vowels>=3
|   |   ends-vowel=1: female
|   |   ends-vowel=0: male
length>=7
|   length=5: male

в основном каждый узел представляет тест, выполняемый для одного атрибута, и мы идем влево или вправо в зависимости от результата теста. Мы продолжаем обход дерева, пока не дойдем до листового узла, который содержит прогноз класса ( m или f )

Итак, если мы запустим имя Amro вниз это дерево, мы начинаем с проверки « длина <7? » и получаем ответ да , поэтому мы спускаемся по этой ветви. После ветки следующий тест « является ли количество гласных <3? » снова оценивается как истинно . Это приводит к листовому узлу, помеченному m , и, таким образом, предсказание будет мужским (которым я оказался, поэтому дерево предсказало результат правильно ).

Дерево решений построено сверху вниз , но вопрос в том, как выбрать, какой атрибут разбивать на каждом узле? Ответ - найти функцию, которая наилучшим образом разделяет целевой класс на максимально чистые дочерние узлы (т.е. узлы, которые не содержат смесь мужских и женских узлов, скорее чистые узлы только с одним классом).

чистота называется информацией . Он представляет собой ожидаемое количество информации , которое потребуется для определения того, должен ли новый экземпляр (имя) быть классифицирован как мужской или женский, учитывая пример, который достиг узла. Мы рассчитываем это но вопрос в том, как выбрать, какой атрибут разбивать на каждом узле? Ответ - найти функцию, которая наилучшим образом разделяет целевой класс на максимально чистые дочерние узлы (т.е. узлы, которые не содержат смесь мужских и женских узлов, скорее чистые узлы только с одним классом).

чистота называется информацией . Он представляет собой ожидаемое количество информации , которое потребуется для определения того, должен ли новый экземпляр (имя) быть классифицирован как мужской или женский, учитывая пример, который достиг узла. Мы рассчитываем это но вопрос в том, как выбрать, какой атрибут разбивать на каждом узле? Ответ - найти функцию, которая наилучшим образом разделяет целевой класс на максимально чистые дочерние узлы (т.е. узлы, которые не содержат смесь мужских и женских узлов, скорее чистые узлы только с одним классом).

чистота называется информацией . Он представляет собой ожидаемое количество информации , которое потребуется для определения того, должен ли новый экземпляр (имя) быть классифицирован как мужской или женский, учитывая пример, который достиг узла. Мы рассчитываем это

Эта мера чистоты называется информацией . Он представляет собой ожидаемое количество информации , которое потребуется для определения того, должен ли новый экземпляр (имя) быть классифицирован как мужской или женский, учитывая пример, который достиг узла. Мы рассчитываем это

Эта мера чистоты называется информацией . Он представляет собой ожидаемое количество информации , которое потребуется для определения того, должен ли новый экземпляр (имя) быть классифицирован как мужской или женский, учитывая пример, который достиг узла. Мы рассчитываем это основывается на количестве мужских и женских классов в узле.

Энтропия , с другой стороны, является мерой примеси (наоборот). Он определен для двоичного класса со значениями a / b как:

Entropy = - p(a)*log(p(a)) - p(b)*log(p(b))

Эта двоичная функция энтропии изображена на рисунке ниже (случайная величина может принимать одно из двух значений). Он достигает своего максимума, когда вероятность p = 1/2 , что означает, что p (X = a) = 0,5 или аналогично p (X = b) = 0,5 с вероятностью 50% / 50% быть либо a , либо b (неопределенность максимальна). Функция энтропии находится на нулевом минимуме, когда вероятность равна p = 1 или p = 0 с полной достоверностью ( p (X = a) = 1 или ] p (X = a) = 0 соответственно, последнее влечет p (X = b) = 1 ).

https://en.wikipedia.org/wiki/File:Binary_entropy_plot.svg

Конечно, определение энтропии может быть обобщено для дискретной случайной величины X с N исходами (а не только двумя):

entropy

( log в формуле обычно принимается как логарифм с основанием 2 )


Вернуться к нашей задаче имени классификации, давайте посмотрим на пример. Представьте себе, что в какой-то момент в процессе построения дерева мы рассматривали следующее разбиение:

     ends-vowel
      [9m,5f]          <--- the [..,..] notation represents the class
    /          \            distribution of instances that reached a node
   =1          =0
 -------     -------
 [3m,4f]     [6m,1f]

Как видите, до разделения у нас было 9 мужчин и 5 женщин, то есть P (m) = 9/14 и P (f) = 5/14 . Согласно определению энтропии:

Entropy_before = - (5/14)*log2(5/14) - (9/14)*log2(9/14) = 0.9403

Затем мы сравниваем ее с энтропией, вычисленной после рассмотрения разделения, глядя на две дочерние ветви. В левой ветви end-vowel = 1 мы имеем:

Entropy_left = - (3/7)*log2(3/7) - (4/7)*log2(4/7) = 0.9852

и в правой ветви end-vowel = 0 , мы имеем:

Entropy_right = - (6/7)*log2(6/7) - (1/7)*log2(1/7) = 0.5917

Объединяем левую / правая энтропия, используя количество экземпляров вниз по каждой ветви как весовой коэффициент (7 экземпляров пошли влево, а 7 экземпляров пошли вправо), и получить окончательную энтропию после разделения:

Entropy_after = 7/14*Entropy_left + 7/14*Entropy_right = 0.7885

Теперь, сравнивая энтропию до и после разделения мы получаем меру прироста информации , или сколько информации мы получили, выполняя разбиение с использованием этой конкретной функции:

Information_Gain = Entropy_before - Entropy_after = 0.1518

Вы можете интерпретировать приведенный выше расчет следующим образом: выполняя разделить с помощью функции конечных гласных , мы смогли уменьшить неопределенность в результате предсказания поддерева на небольшую величину 0,1518 (измеряется в битах как единиц информации ).

В каждом узле дерева , этот расчет выполняется для каждого признака, и признак с наибольшим информационным выигрышем выбирается для разделения жадным способом (таким образом, отдавая предпочтение признакам, которые производят чистые ] расщепляется с низкой неопределенностью / энтропией). Этот процесс применяется рекурсивно от корневого узла вниз и останавливается, когда листовой узел содержит экземпляры, имеющие один и тот же класс (нет необходимости разделять его дальше).

Обратите внимание, что я пропустил некоторые детали которые выходят за рамки этого сообщения, в том числе как обрабатывать числовые функции , пропущенные значения ,

1039
ответ дан 23 November 2019 в 00:46
поделиться

Я не могу дать вам графику, но, возможно, я могу дать четкое объяснение.

Предположим, у нас есть информационный канал, например, индикатор, который мигает один раз в день красным или зеленым светом. Сколько информации он передает? Первое предположение может быть один бит в день. Но что, если мы добавим синий цвет, чтобы у отправителя было три варианта? Мы хотели бы иметь меру информации, которая может обрабатывать вещи, отличные от степени двойки, но при этом быть аддитивной (способ, которым умножение количества возможных сообщений на два добавляет один бит). Мы могли бы сделать это, взяв журнал 2 (количество возможных сообщений), но оказывается, что есть более общий способ.

Предположим, мы вернулись к красному / зеленому цвету, но красная лампочка сгорела погаснет (это общеизвестно), поэтому лампа всегда должна мигать зеленым. Канал теперь бесполезен, мы знаем, какой будет следующая вспышка , поэтому вспышки не передают ни информации, ни новостей. Сейчас мы ремонтируем лампочку, но вводим правило, что красная лампочка не должна мигать два раза подряд. Когда лампа мигает красным, мы знаем, какая будет следующая вспышка. Если вы попытаетесь отправить поток битов по этому каналу, вы обнаружите, что должны кодировать его с большим количеством вспышек, чем у вас есть бит (фактически на 50% больше). А если вы хотите описать последовательность вспышек, вы можете сделать это с меньшим количеством бит. То же самое применимо, если каждая вспышка является независимой (контекстно-свободной), но зеленые вспышки встречаются чаще, чем красные: чем больше искажена вероятность, тем меньше битов вам нужно для описания последовательности и тем меньше информации она содержит, вплоть до предела полностью зеленого цвета и перегоревшей лампочки.

Оказывается, есть способ измерить количество информации в сигнале на основе вероятностей различных символов. Если вероятность получения символа x i равна p i , тогда учитывайте величину

-log pi

. Чем меньше p i , тем больше это значение. Если x i становится вдвое менее вероятным, это значение увеличивается на фиксированную величину (log (2)). Это должно напоминать вам о добавлении одного бита к сообщению.

Если мы не знаем, каким будет символ (но знаем вероятности), то мы можем вычислить среднее значение этого значения, сколько мы получим, суммируя различные возможности:

I = -Σ pi log(pi)

Это информационное содержание в одной вспышке.

Red bulb burnt out: pred = 0, pgreen=1, I = -(0 + 0)  = 0
Red and green equiprobable: pred = 1/2, pgreen = 1/2, I = -(2 * 1/2 * log(1/2)) = log(2)
Three colors, equiprobable: pi=1/3, I = -(3 * 1/3 * log(1/3)) = log(3)
Green and red, green twice as likely: pred=1/3, pgreen=2/3, I = -(1/3 log(1/3) + 2/3 log(2/3)) = log(3) - 2/3 log(2)

Это информационное содержание или энтропия сообщения. Максимально, когда разные символы равновероятны. Если вы физик, вы используете натуральный журнал, если вы компьютерный ученый, вы используете журнал 2 и получаете биты.

21
ответ дан 23 November 2019 в 00:46
поделиться

Когда я реализовывал алгоритм для вычисления энтропии изображения, я нашел эти ссылки, см. здесь и здесь .

Это псевдокод Я использовал, вам нужно адаптировать его для работы с текстом, а не изображениями, но принципы должны быть такими же.

//Loop over image array elements and count occurrences of each possible
//pixel to pixel difference value. Store these values in prob_array
for j = 0, ysize-1 do $
    for i = 0, xsize-2 do begin
       diff = array(i+1,j) - array(i,j)
       if diff lt (array_size+1)/2 and diff gt -(array_size+1)/2 then begin
            prob_array(diff+(array_size-1)/2) = prob_array(diff+(array_size-1)/2) + 1
       endif
     endfor

//Convert values in prob_array to probabilities and compute entropy
n = total(prob_array)

entrop = 0
for i = 0, array_size-1 do begin
    prob_array(i) = prob_array(i)/n

    //Base 2 log of x is Ln(x)/Ln(2). Take Ln of array element
    //here and divide final sum by Ln(2)
    if prob_array(i) ne 0 then begin
        entrop = entrop - prob_array(i)*alog(prob_array(i))
    endif
endfor

entrop = entrop/alog(2)

Я получил этот код откуда-то, но не могу найти ссылку.

4
ответ дан 23 November 2019 в 00:46
поделиться

Я действительно рекомендую вам прочитать о теории информации, байесовских методах и MaxEnt. Начнем с этой книги Дэвида Маккея (в свободном доступе в Интернете):

http://www.inference.phy.cam.ac.uk/mackay/itila/

Эти методы вывода на самом деле гораздо более общие. чем просто интеллектуальный анализ текста, и я не могу придумать, как можно было бы научиться применять это к НЛП без изучения некоторых общих основ, содержащихся в этой книге или других вводных книгах по машинному обучению и байесовским методам MaxEnt.

Связь между теория энтропии и вероятности обработки и хранения информации действительно очень глубокая. Чтобы почувствовать это, вот. Теорема Шеннона, которая гласит, что максимальный объем информации, который вы можете передать без ошибок через зашумленный канал связи, равен энтропии шумового процесса. Также есть теорема, которая связывает степень сжатия фрагмента данных, чтобы он занимал минимально возможную память на вашем компьютере, с энтропией процесса, который сгенерировал данные.

Я не думаю, что вам действительно нужно идти учиться обо всех теоремах теории коммуникации, но невозможно изучить это, не изучив основы того, что такое энтропия, как она рассчитывается, какова ее связь с информацией и выводами и т. д.

9
ответ дан 23 November 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: