Горячий - Википедия - One-hot

ДвоичныйКод ГреяОдин горячий
00000000000001
00100100000010
01001100000100
01101000001000
10011000010000
10111100100000
11010101000000
11110010000000

В цифровые схемы и машинное обучение, а горячий это группа биты среди которых допустимыми комбинациями значений являются только те, у которых один старший (1) бит, а все остальные - младшие (0).[1] Подобная реализация, в которой все биты равны «1», кроме одного «0», иногда называется холодный.[2] В статистика, фиктивные переменные представляют собой аналогичную технику для представления категориальные данные.

Приложения

Быстрое кодирование часто используется для индикации состояния Государственный аппарат. Когда используешь двоичный или же Код Грея, а декодер нужен для определения состояния. Однако конечный автомат с одним горячим состоянием не требует декодера, поскольку конечный автомат находится в п-го состояния тогда и только тогда, когда п-й бит высокий.

А счетчик звонков с 15 последовательно упорядоченными состояниями - это пример конечного автомата. В «горячей» реализации будет 15 шлепки соединены последовательно с выходом Q каждого триггера, подключенным к входу D следующего, и входом D первого триггера, подключенным к выходу Q 15-го триггера. Первый триггер в цепочке представляет первое состояние, второй представляет второе состояние и так далее до 15-го триггера, который представляет последнее состояние. После сброса конечного автомата все триггеры сбрасываются в «0», кроме первого в цепочке, который установлен в «1». Следующий фронт тактовой частоты, приходящий на триггеры, продвигает один «горячий» бит ко второму триггеру. «Горячий» бит продвигается таким образом до 15-го состояния, после чего конечный автомат возвращается в первое состояние.

An адресный декодер преобразует двоичный код или код Грея в одноразовое представление. кодировщик приоритета преобразует быстрое представление в двоичный код или код Грея.

В обработка естественного языка, горячим вектором является 1 ×N матрица (вектор), используемая для отличия каждого слова в словаре от всех остальных слов в словаре. Вектор состоит из нулей во всех ячейках, за исключением единственной единицы в ячейке, используемой однозначно для идентификации слова. Одноразовое кодирование гарантирует, что машинное обучение не предполагает, что более высокие числа важнее. Например, значение «8» больше, чем значение «1», но это не делает «8» более важным, чем «1». То же самое и со словами: значение «Нью-Йорк» не важнее, чем «Йорк».

В машинном обучении горячая кодировка - часто используемый метод для работы с категориальными данными. Поскольку многие модели машинного обучения требуют, чтобы их входные переменные были числовыми, категориальные переменные необходимо преобразовывать в части предварительной обработки. [3]

Кодировка метки
Название едыКатегориальный #Калорий
яблоко195
Курица2231
Брокколи350
Одно горячее кодирование
яблокоКурицаБрокколиКалорий
10095
010231
00150

Категориальные данные могут быть номинальными или порядковыми. [4]. Порядковые данные имеют ранжированный порядок значений и поэтому могут быть преобразованы в числовые данные посредством порядкового кодирования. [5]. Примером порядковых данных могут быть рейтинги в тесте от A до F, которые могут быть ранжированы с использованием чисел от 6 до 1. Поскольку нет количественной взаимосвязи между отдельными значениями номинальных переменных, использование порядкового кодирования может потенциально создать вымышленный порядковые отношения в данных [6]. Поэтому к номинальным переменным часто применяется одноразовое кодирование, чтобы улучшить производительность алгоритма.

Для каждого уникального значения в исходном категориальном столбце в этом методе создается новый столбец. Затем эти фиктивные переменные заполняются нулями и единицами (1 означает ИСТИНА, 0 означает ЛОЖЬ). [7].

Поскольку этот процесс создает несколько новых переменных, он может создать большую проблему p (слишком много предикторов), если в исходном столбце много уникальных значений. Еще одним недостатком «горячего» кодирования является то, что оно вызывает мультиколлинеарность между отдельными переменными, что потенциально снижает точность модели. [8].

Кроме того, если категориальная переменная является выходной переменной, вы можете захотеть преобразовать значения обратно в категориальную форму, чтобы представить их в вашем приложении. [9].

На практике это преобразование часто выполняется непосредственно функцией, которая принимает категориальные данные в качестве входных и выводит соответствующие фиктивные переменные. Примером может служить функция dummyVars библиотеки Caret в R. [10].


Отличия от других методов кодирования

Преимущества

  • Определение состояния имеет низкую и постоянную стоимость доступа к одному резкий поворот
  • Изменение состояния требует постоянной стоимости доступа к двум триггерам.
  • Легко проектировать и модифицировать
  • Легко обнаружить незаконные состояния
  • Пользуется преимуществом FPGA обильные шлепанцы

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

Недостатки

  • Требуется больше шлепанцев, чем другие кодировки, что делает его непрактичным для PAL устройства
  • Многие состояния незаконны[12]

Смотрите также

Рекомендации

  1. ^ Харрис, Дэвид и Харрис, Сара (2012-08-07). Цифровой дизайн и компьютерная архитектура (2-е изд.). Сан-Франциско, Калифорния: Морган Кауфманн. п. 129. ISBN  978-0-12-394424-5.
  2. ^ «Извлечение событий на основе глубокого изучения арабских текстов об опасности пищевых продуктов». arXiv:2008.05014. Цитировать журнал требует | журнал = (помощь)
  3. ^ Браунли, Джейсон. (2017). «Почему One-Hot Encode Data в машинном обучении?». Машиностроительный монастырь. https://machinelearningmaster.com/why-one-hot-encode-data-in-machine-learning/
  4. ^ Стивенс, С. С. (1946). «К теории весов». Наука, Новая серия, 103.2684, стр. 677–680. http://www.jstor.org/stable/1671815.
  5. ^ Браунли, Джейсон. (2020). «Порядковые и горячие коды для категориальных данных». Машиностроительный монастырь. https://machinelearningmaster.com/one-hot-encoding-for-categorical-data//
  6. ^ Браунли, Джейсон. (2020). «Порядковые и горячие коды для категориальных данных». Машиностроительный монастырь. https://machinelearningmaster.com/one-hot-encoding-for-categorical-data//
  7. ^ Динеш, Ядав. (2019). «Категориальное кодирование с использованием Label-Encoding и One-Hot-Encoder». К науке о данных. https://towardsdatascience.com/categorical-encoding-using-label-encoding-and-one-hot-encoder-911ef77fb5bd
  8. ^ Андре, Е. (2020). «Прекратите быстрое кодирование категориальных переменных». К науке о данных. https://towardsdatascience.com/stop-one-hot-encoding-your-categorical-variables-bbb0fba89809
  9. ^ Браунли, Джейсон. (2017). «Почему One-Hot Encode Data в машинном обучении?». Машиностроительный монастырь. https://machinelearningmaster.com/why-one-hot-encode-data-in-machine-learning/
  10. ^ Кун, Макс. «DummyVars». RD-документация. https://www.rdocumentation.org/packages/caret/versions/6.0-86/topics/dummyVars
  11. ^ Xilinx.«Синтез HDL для руководства по проектированию ПЛИС».section 3.13: «Encoding State Machines» .Приложение A: «Ускорение макросов FPGA с помощью One-Hot Approach» .1995.
  12. ^ Коэн, Бен (2002). Реальный дизайн микросхемы и проверка с использованием Verilog и VHDL. Полуостров Палос-Вердес, Калифорния, США: VhdlCohen Publishing. п. 48. ISBN  0-9705394-2-8.