Один-горячий
Десятичный | Двоичный | Унарный | Один-горячий |
---|---|---|---|
0 | 000 | 00000000 | 00000001 |
1 | 001 | 00000001 | 00000010 |
2 | 010 | 00000011 | 00000100 |
3 | 011 | 00000111 | 00001000 |
4 | 100 | 00001111 | 00010000 |
5 | 101 | 00011111 | 00100000 |
6 | 110 | 00111111 | 01000000 |
7 | 111 | 01111111 | 10000000 |
В цифровых схемах и машинном обучении one -hot — это группа битов , среди которых допустимыми комбинациями значений являются только те, у которых есть один старший (1) бит и все остальные младшие (0). [1] Подобная реализация, в которой все биты равны «1», кроме одного «0», иногда называется one-cold . [2] В статистике фиктивные переменные представляют собой аналогичный метод представления категориальных данных .
Приложения
[ редактировать ]Цифровая схема
[ редактировать ]Горячее кодирование часто используется для указания состояния конечного автомата . При использовании двоичного кода . декодер для определения состояния необходим Однако автомату с одним горячим состоянием не нужен декодер, поскольку конечный автомат находится в n -м состоянии тогда и только тогда, когда n -й бит имеет высокий уровень.
Кольцевой счетчик с 15 последовательно упорядоченными состояниями является примером конечного автомата. В «горячей» реализации будет 15 триггеров , соединенных последовательно, причем выход Q каждого триггера подключен к входу D следующего, а вход D первого триггера подключен к выходу Q 15-го триггера. . Первый триггер в цепочке представляет первое состояние, второй — второе состояние и так далее до 15-го триггера, который представляет последнее состояние. После сброса конечного автомата все триггеры сбрасываются в «0», кроме первого в цепочке, который установлен в «1». Следующий фронт тактовой частоты, достигающий триггеров, перемещает один «горячий» бит на второй триггер. Таким образом, «горячий» бит перемещается до 15-го состояния, после чего конечный автомат возвращается в первое состояние.
Декодер адреса преобразует двоичное представление в горячее. преобразует Приоритетный кодер горячее представление в двоичное.
Сравнение с другими методами кодирования
[ редактировать ]Преимущества
[ редактировать ]- Определение состояния с низкой и постоянной стоимостью доступа к одному триггеру
- Изменение состояния имеет постоянную стоимость доступа к двум триггерам.
- Легко проектировать и модифицировать
- Легко обнаружить незаконные состояния
- Использует преимущества FPGA. многочисленных триггеров
- Использование горячей реализации обычно позволяет конечному автомату работать с более высокой тактовой частотой, чем любое другое кодирование этого конечного автомата. [3]
Недостатки
[ редактировать ]- Требуется больше триггеров, чем для других кодировок, что делает его непрактичным для PAL . устройств
- Многие штаты являются незаконными [4]
Обработка естественного языка
[ редактировать ]В обработке естественного языка горячий вектор — это матрица (вектор) размером 1 × N , используемая для различения каждого слова в словаре от любого другого слова в словаре. [5] Вектор состоит из 0 во всех ячейках, за исключением одной 1 в ячейке, которая используется однозначно для идентификации слова. Горячее кодирование гарантирует, что машинное обучение не предполагает, что более высокие числа являются более важными. Например, значение «8» больше, чем значение «1», но это не делает «8» более важным, чем «1». То же самое справедливо и для слов: значение «смех» не более важно, чем «смех».
Машинное обучение и статистика
[ редактировать ]В машинном обучении горячее кодирование является часто используемым методом работы с категориальными данными. Поскольку во многих моделях машинного обучения входные переменные должны быть числовыми, категориальные переменные необходимо преобразовать на этапе предварительной обработки. [6]
Название еды | Категориальный номер | Калории |
---|---|---|
Яблоко | 1 | 95 |
Курица | 2 | 231 |
Брокколи | 3 | 50 |
Яблоко | Курица | Брокколи | Калории |
---|---|---|---|
1 | 0 | 0 | 95 |
0 | 1 | 0 | 231 |
0 | 0 | 1 | 50 |
Категориальные данные могут быть как номинальными , так и порядковыми . [7] Порядковые данные имеют ранжированный порядок значений и поэтому могут быть преобразованы в числовые данные посредством порядкового кодирования. [8] Примером порядковых данных могут быть оценки теста в диапазоне от A до F, которые можно ранжировать с помощью чисел от 6 до 1. Поскольку между отдельными значениями номинальных переменных нет количественной связи, использование порядкового кодирования потенциально может создать фиктивную картину. порядковые отношения в данных. [9] Поэтому к номинальным переменным часто применяется горячее кодирование, чтобы улучшить производительность алгоритма.
Для каждого уникального значения в исходном категориальном столбце в этом методе создается новый столбец. Эти фиктивные переменные затем заполняются нулями и единицами (1 означает ИСТИНА, 0 означает ЛОЖЬ). [ нужна ссылка ]
Поскольку этот процесс создает множество новых переменных, он склонен к созданию проблемы «большого p» (слишком много предикторов), если в исходном столбце много уникальных значений. Еще одним недостатком горячего кодирования является то, что оно вызывает мультиколлинеарность между отдельными переменными, что потенциально снижает точность модели. [ нужна ссылка ]
Кроме того, если категориальная переменная является выходной переменной, вам может потребоваться преобразовать значения обратно в категориальную форму, чтобы представить их в вашем приложении. [10]
На практике это преобразование часто выполняется непосредственно функцией, которая принимает категориальные данные в качестве входных данных и выводит соответствующие фиктивные переменные. Примером может служить функция dummyVars библиотеки Caret в R. [11]
См. также
[ редактировать ]- Код постоянного веса - метод кодирования данных при передаче данных, при котором устанавливается постоянное количество битов.
- Код «два из пяти» - код обнаружения ошибок для десятичных цифр, широко используемый в штрих-кодировании и одно время на телефонных станциях.
- Двоично-десятичное кодирование - Схема кодирования чисел
- Бинарный декодер – Комбинационная логическая схема
- Код Грея – упорядочение двоичных значений, используемое для позиционирования и исправления ошибок.
- Дельта Кронекера – Математическая функция двух переменных; выводит 1, если они равны, 0 в противном случае
- Вектор индикатора
- Последовательное десятичное представление — компьютерное числовое представление, в котором для каждой цифры зарезервировано десять бит.
- Вектор с одной записью - математическое понятие.
- Унарная система счисления – система счисления с основанием 1.
- Количественная оценка уникальности - логическое свойство быть единственным объектом, удовлетворяющим условию.
- Ворота XOR – Логические ворота
Ссылки
[ редактировать ]- ^ Харрис, Дэвид и Харрис, Сара (7 августа 2012 г.). Цифровой дизайн и компьютерная архитектура (2-е изд.). Сан-Франциско, Калифорния: Морган Кауфманн. п. 129. ИСБН 978-0-12-394424-5 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Харраг, Фузи; Гелиани, Сельмене (2020). «Извлечение событий на основе глубокого изучения арабских текстов о пищевых опасностях». arXiv : 2008.05014 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Ксилинкс. «Руководство по проектированию HDL-синтеза для FPGA» .раздел 3.13: «Кодирование конечных автоматов».Приложение A: «Ускорение макросов FPGA с помощью One-Hot Approach».1995.
- ^ Коэн, Бен (2002). Реальное проектирование и проверка микросхем с использованием Verilog и VHDL . Полуостров Палос-Вердес, Калифорния, США: VhdlCohen Publishing. п. 48. ИСБН 0-9705394-2-8 .
- ^ Арно, Эмильен; Эльбатта, Махмуд; Гиньон, Максим; Декен, Жиль (август 2021 г.). Прогнозирование медицинских специальностей на основе НЛП при поступлении в больницу с использованием записей сортировки . 2021 г. 9-я Международная конференция IEEE по информатике здравоохранения (ICHI). Виктория, Британская Колумбия . стр. 548–553. дои : 10.1109/ICHI52183.2021.00103 . Проверено 22 мая 2022 г.
- ^ Браунли, Джейсон. (2017). «Почему горячее кодирование данных в машинном обучении?». Мастерство машинного обучения. https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
- ^ Стивенс, СС (1946). «К теории шкал измерения». Science, New Series, 103.2684, стр. 677–680. http://www.jstor.org/stable/1671815 .
- ^ Браунли, Джейсон. (2020). «Порядковое и горячее кодирование категориальных данных». Мастерство машинного обучения. https://machinelearningmastery.com/one-hot-encoding-for-categorical-data//
- ^ Браунли, Джейсон. (2020). «Порядковое и горячее кодирование категориальных данных». Мастерство машинного обучения. https://machinelearningmastery.com/one-hot-encoding-for-categorical-data//
- ^ Браунли, Джейсон. (2017). «Почему горячее кодирование данных в машинном обучении?». Мастерство машинного обучения. https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
- ^ Кун, Макс. «пустышкаВарс». Документация. https://www.rdocumentation.org/packages/caret/versions/6.0-86/topics/dummyVars