Что такое определение энтропии в информатике?


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

каково правильное определение компьютерной науки "энтропия"?

16 59

16 ответов:

энтропия может означать разные вещи:

вычислений

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

теория информации

в теории информации энтропия-это мера связанной с этим неопределенности со случайной величиной. Термин сам в этом контексте обычно относится к энтропии Шеннона, которая количественно, в смысле ожидаемое значение, информация содержащаяся в сообщении, обычно в единицы измерения, такие как биты. Эквивалентно, Энтропия Шеннона является мерой средний информационное наполнение одно когда человек не знает значение случайной величины

энтропия в сжатии данных

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

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

мое любимое определение, с более практической направленностью, находится в Главе 1 отличной книги прагматичный программист: от подмастерья до мастера Эндрю Хант и Дэвид Томас:

Программное Обеспечение Энтропии

в то время как разработка программного обеспечения застрахован из почти всех физических законов, энтропия бьет нас сильно. Энтропия-это термин из физика, которая относится к количеству "беспорядок" в системе. К сожалению, закон гарантии термодинамики что энтропия во Вселенной стремится к максимуму. Когда беспорядок увеличение программного обеспечения, программистов назвать это "гниль программного обеспечения."

есть много факторов, которые могут способствовать загниванию программного обеспечения. Самый важным представляется психология или культура в работе над проект. Даже если вы являетесь командой один, психология проекта может быть очень деликатная вещь. Несмотря на лучшие планы и лучшие люди, проект может все еще испытываю разорение и распад в течение его жизни. Еще есть есть и другие проекты, которые, несмотря огромные трудности и постоянные неудачи, успешно борются с природой склонность к беспорядку и управлять им вышел довольно хорошо.

...

...

разбитое окно.

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

"теория разбитого окна" имеет вдохновил отделы полиции в Нью-Йорке Йорк и другие крупные города, чтобы взломать вниз по малой вещи для того, чтобы держитесь подальше от больших вещей. Это работает: держа поверх разбитого окна, граффити и другие мелкие нарушения снизился уровень тяжкой преступности.

Совет 4

Не живите с разбитыми окнами

Не оставляйте "разбитые окна" (плохо проекты, неправильные решения или плохие код) неотремонтированный. Исправить каждый из них, как только как выяснилось. Если есть недостаточно времени, чтобы исправить это должным образом, Тогда закрой его. Возможно, вы можете закомментируйте код-нарушитель, или отображение сообщения "не реализовано" , или заменить фиктивные данные вместо этого. Брать некоторые действия для предотвращения дальнейшего ущерба и чтобы показать, что ты на вершине ситуация.

Текст взят из: http://pragprog.com/the-pragmatic-programmer/extracts/software-entropy

Я всегда сталкивался с энтропией в смысле энтропии Шеннона.

от http://en.wikipedia.org/wiki/Information_entropy:

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

alt текст http://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JSpring-2008/9CD33A23-A58F-4CCD-8C34-DF5A83D56435/0/chp_telegraph_1.jpg

с университет Мексики

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

уравнение для энтропии в примере приложения для расчета вероятности:

Это сумма по всем значениям rv о вероятности этого значения раз этот журнал этой проблемы(т. е. p (x)logp (x)). Это уравнение может быть полученные из первых принципов свойства информации.

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

если ваш источник имеет два символа, скажем A и B, и они равновероятны, то каждый символ несет одинаковое количество информации (один бит). Источник с четырьмя одинаково вероятными символами передает два бита на каждый символ.

для более интересного примера, если ваш источник имеет три символа,A,B и C, где первые два в два раза более вероятны, чем третий, то третий более удивительно, но и менее вероятно. Для этого источника существует чистая энтропия 1,52, как вычислено ниже.

вы вычисляете энтропию как "средний сюрприз", где "сюрприз" для каждого символа-это его вероятность, умноженная на отрицательный двоичный лог вероятность:

                            binary
symbol  weight  probability   log    surprise
  A        2        0.4      -1.32    0.53
  B        2        0.4      -1.32    0.53
  C        1        0.2      -2.32    0.46
total      5        1.0               1.52

отрицательный двоичный журнал используется (конечно), потому что журналы значений между 0 и 1 (exclusive) отрицательны.

супер простое определение

слово энтропия может быть определено в одном предложении:

"количество информации, необходимой для описания системы."


Из этого также следует, что чем больше информации у вас есть больше способов, которыми вы можете организовать эту информацию. Если у вас есть 40 бит есть 2^40 различных способов их можно организовать. Если мы говорим о паролях здесь, то чем больше возможных расположений информации (бит), тем дольше она будет взламываться (с помощью грубой силы или словарных атак).

вот отличное альтернативное объяснение для энтропия в теории информации.

энтропия является мерой неопределенность, связанная с созданием предсказание.

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

допустим, у нас есть изогнутая монета, которая дает нам голову 99% времени и хвост 1% времени. Так как есть только один процент шансов получить хвост, мы были бы очень удивлены, если бы мы действительно получили хвост. С другой стороны, это не будет слишком удивительно, если у нас есть голова, как у нас уже есть 99-процентный шанс на получение головы.

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

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

теперь можно легко заключите значение энтропии по отношению к файлу как измерение того, насколько неупорядоченные байты находятся в файле. Существуют различные единицы, используемые для определения энтропии, такие как nat, shannon или hartley. Ну, наиболее распространенная единица используется Шеннон. Диапазон значений энтропии файла должен входить в соответствии с алгоритмом Шеннона от 0 до 8. Таким образом, когда значение энтропии равно нулю, можно сказать, что результат определен. Напротив, когда значение энтропии равно 8, результат может быть самым непредсказуемым. Этот формула, данная Шенноном для измерения случайности в исходе событий:

          Entropy = ∑ pi log(1/pi)

здесь Я - это событие с вероятностью Пи.

это уравнение всегда приводит к От 0 до 8.

для получения дополнительной информации перейдите по ссылке:https://www.talentcookie.com/2016/02/file-entropy-in-malware-analysis/

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

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

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

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

теперь есть также определение для программной инженерии энтропии. Это определение представляет устаревший код или код, который был написан многими разработчиками. Обычно используется в отношении того, когда близится время для рефакторинга вашего программного проекта. "Код для этого проекта имеет огромное количество энтропии, потому что многие из людей, которые его поддерживали, в настоящее время не участвуют в проекте".

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

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

это легко сделать большое дело из энтропии. На мой взгляд, это довольно простая и полезная концепция.

в основном он количественно определяет то, что в среднем вы узнаете из события, например, переворачивая монету, принимая инструкцию ветви или индексируя массив.

как операция сравнения в середине алгоритма поиска имеет определенную вероятность P взятия одной ветви и 1-P взятия другой.

предположим, что P равно 1/2, как и в a двоичный поиск. Тогда, если вы возьмете эту ветвь, вы знаете на 1 бит больше, чем раньше, потому что log(2/1), base 2, равен 1. С другой стороны, если вы возьмете другую ветку, вы также узнаете 1 бит.

1/2 умножает 1 бит, плюс 1/2 умножает 1 бит, бит 1/2 плюс 1/2 бит, или всего 1 бит энтропии. Это то, что вы можете ожидать, чтобы узнать в среднем из этого решения.

С другой стороны, предположим, что вы делаете линейный поиск в таблице 1024 записи.

на первом == тесте вероятность да равна 1/1024, поэтому энтропия да при этом решении равна

1/1024 times log(1024/1)

или 1/1024 * 10 = около 1/100 бит.

Так что если ответ да, вы узнаете 10 бит, но вероятность этого составляет около 1 в a тысяча.

С другой стороны, гораздо более вероятно. Это энтропия

1023/1024 * log(1024/1023)

или примерно 1 раз примерно ноль = ноль.

добавьте два вместе, и в среднем вы узнаете о 1/100 немного об этом решении.

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

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

как вычислить приблизительную энтропию битовой строки?

простыми словами, если вы знаете вероятности символов в языке, можно вычислить среднее информационное содержание символа в языке .

или

энтропия языка является мерой информационного содержания среднего символа в языке

рассмотрим честную монету;

есть два символа ,каждый с вероятностью 1/2 таким образом, энтропия вычисляется как

h =- (1/2 * log1/2 +1/2*log1 / 2)=1

Я слышал, что люди неправильно используют термодинамические определения энтропии w.r.t CS.

например, энтропия определенно увеличивается в этой системе.

когда они имеют в виду, что этот код становится все хуже и хуже!