Каково определение энтропии в информатике?
недавно я начал курс по сжатию данных в моем университете. Однако я нахожу использование термина "энтропия" применительно к информатике довольно двусмысленным. Насколько я могу судить, это примерно переводится как "случайность" системы или структуры.
каково правильное определение компьютерной науки "энтропия"?
16 ответов
энтропия может означать разные вещи:
в вычислениях энтропия случайность, собранная операционной система или приложение для использования в криптография или другие виды использования требуются случайные данные. Эта случайность часто собирают из оборудования источники, либо ранее существовавшие, такие как как движения мыши или специально при условии случайности генераторы.
в теории информации энтропия-это мера связанной с этим неопределенности со случайной величиной. Термин сам в этом контексте обычно относится к энтропии Шеннона, которая количественная оценка в смысле ожидаемое значение, информация содержащаяся в сообщении, обычно в такие единицы, как биты. Эквивалентно, Энтропия Шеннона является мерой средний информационное наполнение одно когда человек не знает значение случайной величины
энтропия при сжатии данных
энтропия при сжатии данных может обозначать случайность данных, которые вы вводите в алгоритм сжатия. Чем больше энтропия, тем меньше степень сжатия. Это означает, что чем более случайным является текст, тем меньше вы можете сжать его.
энтропия Шеннона представляет собой абсолютный предел на максимальную сжатие без потерь любого коммуникации: обрабатывать сообщения кодируется как последовательность независимых и одинаково распределенных случайных переменные, исходное кодирование Шеннона теорема показывает, что, в пределе, средняя длина самого короткого возможное представление для кодирования сообщения в данном алфавите-это их энтропия, деленная на логарифм количество символов в цели алфавит.
мое любимое определение, с более практической направленностью, находится в Главе 1 отличной книги прагматичный программист: от подмастерья до мастера Эндрю Хант и Дэвид Томас:
Энтропия Программного Обеспечения
пока разработка программного обеспечения иммунна из почти всех физических законов энтропия сильно бьет. Энтропия-это термин из физика, которая относится к количеству "беспорядок" в системе. К сожалению, закон термодинамической гарантии что энтропия во Вселенной стремится к максимуму. Когда беспорядок увеличение программного обеспечения, программистов назовите это "программной гнилью"."
есть много факторов, которые могут способствуют программной гнили. Самый важным представляется психология или культура в работе над проект. Даже если вы команда один, психология проекта может быть очень деликатная вещь. Несмотря на лучшие планы и лучшие люди, проект может все еще испытывайте разорение и распад при жизни. Еще есть есть другие проекты, которые, несмотря на огромные трудности и постоянные неудачи, успешно бороться с природой склонность к беспорядку вышел довольно хорошо.
...
...
разбитое окно.
одно разбитое окно, оставленное непарным для любой существенный отрезок времени, прививает жителям дом чувство оставление-a ощущение, что власть имущие не заботьтесь о здании. Так еще окно разбивается. Люди начинают замусоривание. Появляется граффити. Серьезный начинаются структурные повреждения. В относительно короткий промежуток времени, здание повреждается за пределами желание владельца исправить это, и ощущение заброшенности становится реальностью.
"теория разбитого окна" имеет inspired police departments in New Йорк и другие крупные города, чтобы взломать на малых вещи для того, чтобы хранить крупные вещи. Это работает: держа поверх разбитого окна, граффити и другие мелкие нарушения снизил уровень тяжких преступлений.
Совет 4
Не живите с разбитыми окнами
Не оставляйте "разбитые окна" (плохо проекты, неправильные решения или плохие кодекса) без ремонта. Исправить каждый как только как выяснилось. Если есть недостаточно времени, чтобы исправить это должным образом, Тогда закрой его. Возможно, ты сможешь. прокомментируйте код нарушения, или отобразить сообщение" не реализовано", или замените фиктивные данные. Брать некоторые действия по предотвращению дальнейшего ущерба и показать, что ты на вершине ситуация.
Текст взят из: http://pragprog.com/the-pragmatic-programmer/extracts/software-entropy
Я всегда сталкивался с энтропией в смысле энтропии Шеннона.
от http://en.wikipedia.org/wiki/Information_entropy:
в теории информации энтропия-это мера неопределенности, связанной со случайной величиной. Сам термин в этом контексте обычно относится к энтропии Шеннона, которая количественно, в смысле ожидаемого значения, информация, содержащаяся в сообщении, обычно в единицах, таких как биты. Эквивалентно, Энтропия Шеннона-это мера среднего информационного содержания, которого не хватает, когда не знаешь значения случайной величины.
теоретико-информационное понятие Энтропия-это обобщение физические представления. Есть много способов для описания энтропии. Это мера случайности случайного переменная. Это также мера количество информации a random переменный или стохастический процесс содержит. Это также нижняя граница объем сообщения может быть сжатый. И, наконец, это среднее количество вопросов Да / нет что нужно спросить о случайном сущность для определения ее значения.
уравнение энтропии в примере приложения для расчета вероятности:
Это сумма по всем значениям 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 (эксклюзив) отрицательны.
супер простое определение
слово энтропия может быть определено в одном предложении:
"количество информации, необходимой для описания системы."
Из этого также следует, что чем больше информации у вас есть больше способов организовать эту информацию. Если у вас есть 40 бит, есть 2^40 различных способов, которыми они могут быть организованы. Если мы говорим о паролях здесь, то чем больше возможных расположений информации (бит), тем дольше это займет взлом (с грубой силой или словарными атаками).
вот отличное альтернативное объяснение для энтропия в теории информации.
энтропия является мерой неопределенность, связанная с созданием предсказание.
мы также можем описать энтропию как how удивлен мы были бы, если бы мы получили результат после того, как мы сделали наш первоначальный прогноз.
допустим, у нас есть согнутая монета, которая дает нам голову 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/
энтропия относится к степени, в которой программное обеспечение иногда изменяется на основе требований клиентов, поэтому затраты на его изменение в соответствии с требованиями клиентов становятся максимальными.
энтропия похожа на хэш-код для исследователей вирусов. Меньше энтропии вы получите, это будет означать, что это, вероятно, зашифрованный или сжатый код, который потенциально может быть вирусом.
стандартный двоичный файл будет иметь более высокую энтропию, чем сжатый или зашифрованный.
энтропия имеет много значений, как правило, в информатике. Это зависит от контекста. В security entropy означает, сколько случайности вы размещаете, например, когда вы создаете закрытый ключ, многие приложения просят вас перемещать мышь для создания энтропии. Это генерирует энтропию, беря" человеческий " элемент случайности и добавляя его к процессу хэширования генерации ключа.
теперь есть также определение для разработки программного обеспечения энтропии. Это определение представляет устаревший код или код, который был написан многими разработчиками. Обычно используется в отношении того, когда близится время рефакторинга вашего программного проекта. "Код для этого проекта имеет огромное количество энтропии, потому что многие люди, которые поддерживали его, в настоящее время не участвуют в проекте".
вот третий пример использования, который я тоже вспомнил. В теме имитационного отжига (что касается информатики) энтропия описывается как распад произошел во время оценки алгоритма.
Я думаю, чтобы ответить на ваш вопрос, хотя нет конкретного определения слова "энтропия", за исключением тех, которые вы можете найти в словаре. То, как информатика склонна применять этот термин, зависит от контекста используемого термина и того, к чему он применяется.
это легко сделать большое дело из энтропии. На мой взгляд, это довольно простая и полезная концепция.
в основном он количественно определяет, что в среднем вы узнаете из события, например, подбрасывая монету, принимая инструкцию ветви или индексируя массив.
как операция сравнения в середине алгоритма поиска имеет определенную вероятность P принятия одной ветви и 1-P принятия другой.
предположим, что P равно 1/2, как и в a двоичный поиск. Тогда, если вы возьмете эту ветку, вы знаете на 1 бит больше, чем раньше, потому что log(2/1), база 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 в тысяча.
С другой стороны, гораздо более вероятно. Это энтропия
1023/1024 * log(1024/1023)
или примерно 1 раз примерно ноль = ноль.
добавьте два вместе, и в среднем вы узнаете о 1/100 немного об этом решении.
вот почему линейный поиск медленный. Энтропия (сколько вы можете ожидать, чтобы узнать) в каждом решении слишком мала, так как вам придется выучить 10 бит, чтобы найти запись в таблице.
энтропия в информатике обычно относится к тому, насколько случайна строка битов. Следующий вопрос заключается в том, чтобы сделать это точным:
простыми словами, если вы знаете вероятности символов в langauge, можно вычислить среднее информационное содержание символа в языке .
или
энтропия языка является мерой информационного содержания среднего символа в языке
рассмотрим честную монету;
есть два символа ,каждый с вероятностью 1/2 таким образом, энтропия вычисляется как
h = - (1/2 * log1/2 +1/2*log1 / 2)=1
Я слышал, что люди злоупотребляют термодинамическими определениями энтропии w.r.t CS.
например. Энтропия в этой системе определенно возрастает.
когда они имеют в виду, что этот код становится все хуже и хуже!