Двоичный | Код Грея | Один горячий |
---|---|---|
000 | 000 | 00000001 |
001 | 001 | 00000010 |
010 | 011 | 00000100 |
011 | 010 | 00001000 |
100 | 110 | 00010000 |
101 | 111 | 00100000 |
110 | 101 | 01000000 |
111 | 100 | 10000000 |
В цифровых схемах и машинного обучения , А один горячий представляет собой группу битов , среди которых юридические комбинации значений являются только те , с одним высоким (1) бит и все остальные низкого уровня (0). [1] Подобная реализация, в которой все биты равны «1», за исключением одного «0», иногда называется однократной . [2] В статистике , фиктивные переменные представляют собой аналогичную технику для представления категориальных данных .
Приложения
Цифровая схема
Быстрое кодирование часто используется для индикации состояния конечного автомата . При использовании двоичной или коды Грея , A декодер необходим для определения состояния. Однако конечный автомат с одним горячим концом не нуждается в декодере, поскольку конечный автомат находится в n- м состоянии тогда и только тогда, когда n- й бит высокий.
Кольцевой счетчик с 15 последовательно упорядоченных состояний является примером конечного автомата. В реализации с одним горячим вариантом будет 15 триггеров, соединенных последовательно, причем выход Q каждого триггера соединен с входом D следующего, а вход D первого триггера соединен с выходом Q 15-го триггера. . Первый триггер в цепочке представляет первое состояние, второй представляет второе состояние и так далее до 15-го триггера, который представляет последнее состояние. После сброса конечного автомата все триггеры сбрасываются в «0», кроме первого в цепочке, который установлен в «1». Следующий фронт тактовой частоты, приходящий на триггеры, продвигает один «горячий» бит ко второму триггеру. «Горячий» бит продвигается таким образом до 15-го состояния, после чего конечный автомат возвращается в первое состояние.
Декодер адрес обращенных из двоичного кода или серого до одного горячего представления. A приоритетного кодер преобразует из одного горячего представления в двоичный или код Грея.
Сравнение с другими методами кодирования
Преимущества
- Для определения состояния требуется низкая и постоянная стоимость доступа к одному триггеру.
- Изменение состояния требует постоянной стоимости доступа к двум триггерам.
- Легко проектировать и модифицировать
- Легко обнаружить незаконные состояния
- Использует преимущества многочисленных триггеров FPGA
Использование однократной реализации обычно позволяет конечному автомату работать с более высокой тактовой частотой, чем любое другое кодирование этого конечного автомата. [3]
Недостатки
- Требует больше триггеров, чем другие кодировки, что делает его непрактичным для устройств PAL.
- Многие состояния являются незаконными [4]
Обработка естественного языка
При обработке естественного языка одним горячим вектором является матрица (вектор) размером 1 × N, используемая для различения каждого слова в словаре от любого другого слова в словаре. Вектор состоит из нулей во всех ячейках, за исключением единственной единицы в ячейке, используемой однозначно для идентификации слова. Одноразовое кодирование гарантирует, что машинное обучение не предполагает, что более высокие числа важнее. Например, значение «8» больше, чем значение «1», но это не делает «8» более важным, чем «1». То же самое и со словами: значение «смех» не важнее, чем «смех».
Машинное обучение и статистика
В машинном обучении часто используется метод быстрого кодирования для работы с категориальными данными. Поскольку многие модели машинного обучения требуют, чтобы их входные переменные были числовыми, категориальные переменные необходимо преобразовывать в части предварительной обработки. [5]
Название еды | Категориальный # | Калорий |
---|---|---|
яблоко | 1 | 95 |
Курица | 2 | 231 |
Брокколи | 3 | 50 |
яблоко | Курица | Брокколи | Калорий |
---|---|---|---|
1 | 0 | 0 | 95 |
0 | 1 | 0 | 231 |
0 | 0 | 1 | 50 |
Категориальные данные могут быть как номинальными, так и порядковыми. [6] Порядковые данные имеют ранжированный порядок значений и поэтому могут быть преобразованы в числовые данные посредством порядкового кодирования. [7] Примером порядковых данных могут быть рейтинги в тесте от A до F, которые могут быть ранжированы с использованием чисел от 6 до 1. Поскольку нет количественной связи между отдельными значениями номинальных переменных, использование порядкового кодирования потенциально может создать вымышленную порядковую связь в данных. [8] Поэтому горячее кодирование часто применяется к номинальным переменным, чтобы улучшить производительность алгоритма.
Для каждого уникального значения в исходном категориальном столбце в этом методе создается новый столбец. Затем эти фиктивные переменные заполняются нулями и единицами (1 означает ИСТИНА, 0 означает ЛОЖЬ). [9]
Поскольку этот процесс создает несколько новых переменных, он может создать большую проблему p (слишком много предикторов), если в исходном столбце много уникальных значений. Еще одним недостатком «горячего» кодирования является то, что оно вызывает мультиколлинеарность между отдельными переменными, что потенциально снижает точность модели. [10]
Кроме того, если категориальная переменная является выходной переменной, вы можете захотеть преобразовать значения обратно в категориальную форму, чтобы представить их в вашем приложении. [11]
На практике это преобразование часто выполняется непосредственно функцией, которая принимает на вход категориальные данные и выводит соответствующие фиктивные переменные. Примером может служить функция dummyVars библиотеки Caret в R. [12]
Смотрите также
Рекомендации
- ^ Харрис, Дэвид и Харрис, Сара (2012-08-07). Цифровой дизайн и компьютерная архитектура (2-е изд.). Сан-Франциско, Калифорния: Морган Кауфманн. п. 129. ISBN 978-0-12-394424-5.
- ^ «Извлечение событий на основе глубокого изучения арабских текстов об опасности пищевых продуктов». arXiv : 2008.05014 . Цитировать журнал требует
|journal=
( помощь ) - ^ Xilinx. «Синтез HDL для руководства по проектированию ПЛИС» . раздел 3.13: «Кодирование конечных автоматов». Приложение A: «Ускорение макросов FPGA с помощью One-Hot Approach». 1995 г.
- ^ Коэн, Бен (2002). Реальный дизайн микросхемы и проверка с использованием Verilog и VHDL . Полуостров Палос-Вердес, Калифорния, США: VhdlCohen Publishing. п. 48. ISBN 0-9705394-2-8.
- ^ Браунли, Джейсон. (2017). «Почему One-Hot Encode Data в машинном обучении?». Машиностроительный монастырь. https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
- Перейти ↑ Stevens, SS (1946). «К теории весов». Наука, Новая серия, 103.2684, стр. 677–680. http://www.jstor.org/stable/1671815 .
- ^ Браунли, Джейсон. (2020). «Порядковые и горячие коды для категориальных данных». Машиностроительный монастырь. https://machinelearningmaster.com/one-hot-encoding-for-categorical-data//
- ^ Браунли, Джейсон. (2020). «Порядковые и горячие коды для категориальных данных». Машиностроительный монастырь. https://machinelearningmaster.com/one-hot-encoding-for-categorical-data//
- ^ Динеш, Ядав. (2019). «Категориальное кодирование с использованием Label-Encoding и One-Hot-Encoder». К науке о данных. https://towardsdatascience.com/categorical-encoding-using-label-encoding-and-one-hot-encoder-911ef77fb5bd
- ^ Андре, Е. (2020). «Остановите одноразовое кодирование категориальных переменных». К науке о данных. https://towardsdatascience.com/stop-one-hot-encoding-your-categorical-variables-bbb0fba89809
- ^ Браунли, Джейсон. (2017). «Почему One-Hot Encode Data в машинном обучении?». Машиностроительный монастырь. https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
- ^ Кун, Макс. «DummyVars». RD-документация. https://www.rdocumentation.org/packages/caret/versions/6.0-86/topics/dummyVars