stringtranslate.com

Один-горячий

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

Приложения

Цифровая схема

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

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

Декодер адреса преобразует из двоичного в унитарный код. Приоритетный кодер преобразует из унитарного кодирования в двоичный код.

Сравнение с другими методами кодирования

Преимущества
Недостатки

Обработка естественного языка

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

Машинное обучение и статистика

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

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

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

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

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

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

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

Ссылки

  1. ^ Харрис, Дэвид и Харрис, Сара (2012-08-07). Цифровое проектирование и архитектура компьютеров (2-е изд.). Сан-Франциско, Калифорния: Morgan Kaufmann. стр. 129. ISBN 978-0-12-394424-5.{{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  2. ^ Харраг, Фузи; Гуэлиани, Селмене (2020). «Извлечение событий на основе глубокого обучения в арабских текстах о пищевых опасностях». arXiv : 2008.05014 . {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  3. ^ Xilinx. "HDL Synthesis for FPGAs Design Guide". Раздел 3.13: "Encoding State Machines". Приложение A: "Accelerate FPGA Macros with One-Hot Approach". 1995.
  4. ^ Коэн, Бен (2002). Проектирование и проверка реальных чипов с использованием Verilog и VHDL . Полуостров Палос Вердес, Калифорния, США: VhdlCohen Publishing. стр. 48. ISBN 0-9705394-2-8.
  5. ^ Арно, Эмильен; Эльбатта, Махмуд; Жиньон, Максим; Декен, Жиль (август 2021 г.). Прогнозирование медицинских специальностей на основе НЛП при поступлении в больницу с использованием записей о сортировке. 9-я международная конференция IEEE по информатике в здравоохранении (ICHI) 2021 г. Виктория, Британская Колумбия . С. 548–553. doi :10.1109/ICHI52183.2021.00103 . Получено 22 мая 2022 г.
  6. ^ Браунли, Джейсон. (2017). «Почему данные One-Hot Encode в машинном обучении?». Machinelearningmastery. https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
  7. ^ Стивенс, СС (1946). «О теории шкал измерения». Science, New Series, 103.2684, стр. 677–680. http://www.jstor.org/stable/1671815.
  8. ^ Браунли, Джейсон. (2020). «Порядковые и однозначные кодировки для категориальных данных». Machinelearningmastery. https://machinelearningmastery.com/one-hot-encoding-for-categorical-data//
  9. ^ Браунли, Джейсон. (2020). «Порядковые и однозначные кодировки для категориальных данных». Machinelearningmastery. https://machinelearningmastery.com/one-hot-encoding-for-categorical-data//
  10. ^ Браунли, Джейсон. (2017). «Почему данные One-Hot Encode в машинном обучении?». Machinelearningmastery. https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
  11. ^ Кун, Макс. «dummyVars». RDocumentation. https://www.rdocumentation.org/packages/caret/versions/6.0-86/topics/dummyVars