Введение

Битовое векторное представление, в котором одновременно может быть установлен только один бит.

Десятичное Двоичное Униарное Одно горячее
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", за исключением одного сброшенного в "0", иногда называется "один холодный" (one-cold). В статистике, фиктивные переменные (dummy variables) представляют собой схожий метод представления категориальных данных.

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

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

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

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