В цифровых схемах и машинном обучении, представление "один горячий" (one-hot) – это набор битов, для которого допустимы только комбинации, содержащие ровно один установленный бит (1) и все остальные – сброшенные (0). Аналогичная реализация, в которой все биты установлены в "1", за исключением одного сброшенного в "0", иногда называется "один холодный" (one-cold). В статистике, фиктивные переменные (dummy variables) представляют собой схожий метод представления категориальных данных.
In digital circuits and machine learning, a one hot is a group of bits among which the legal combinations of values are only those with a single high (1) bit and all the others low (0). A similar implementation in which all bits are '1' except one '0' is sometimes called one cold. In statistics, dummy variables represent a similar technique for representing categorical data.
Цифровая схема
Одноходовое кодирование часто используется для индикации состояния конечного автомата. При использовании двоичного кода для определения состояния требуется декодер. Однако, автомат с одноходовым кодированием не нуждается в декодере, поскольку автомат находится в n-м состоянии тогда и только тогда, когда n-й бит установлен в 1. Кольцевой сдвиговый регистр с 15 последовательно упорядоченными состояниями является примером конечного автомата. Реализация с одноходовым кодированием будет состоять из 15 триггеров, соединенных последовательно, при этом выход Q каждого триггера подключен к входу D следующего, а вход D первого триггера подключен к выходу Q 15-го триггера. Первый триггер в цепочке представляет первое состояние, второй – второе состояние и так далее до 15-го триггера, который представляет последнее состояние. При сбросе автомата все триггеры сбрасываются в '0', за исключением первого в цепочке, который устанавливается в '1'. Следующий фронт тактового импульса, поступающий на триггеры, сдвигает единственный установленный бит на второй триггер. Этот бит сдвигается таким образом до 15-го состояния, после чего автомат возвращается в первое состояние. Декодер адреса преобразует двоичный код в одноходовое представление. Кодировщик приоритета преобразует одноходовое представление в двоичный код.
One hot encoding is often used for indicating the state of a state machine. When using binary, a decoder is needed to determine the state. A one hot state machine, however, does not need a decoder as the state machine is in the nth state if, and only if, the nth bit is high. A ring counter with 15 sequentially ordered states is an example of a state machine. A 'one hot' implementation would have 15 flip flops chained in series with the Q output of each flip flop connected to the D input of the next and the D input of the first flip flop connected to the Q output of the 15th flip flop. The first flip flop in the chain represents the first state, the second represents the second state, and so on to the 15th flip flop, which represents the last state. Upon reset of the state machine all of the flip flops are reset to '0' except the first in the chain, which is set to '1'. The next clock edge arriving at the flip flops advances the one 'hot' bit to the second flip flop. The 'hot' bit advances in this way until the 15th state, after which the state machine returns to the first state. An address decoder converts from binary to one hot representation. A priority encoder converts from one hot representation to binary.
Обработка естественного языка
В обработке естественного языка, вектор «один-горячий» (one-hot vector) – это матрица (вектор) размером 1 × N, используемая для различения каждого слова в словаре от всех остальных слов в этом словаре. Вектор состоит из нулей во всех ячейках, за исключением единственной единицы в ячейке, которая уникально идентифицирует слово. «Один-горячее» кодирование гарантирует, что машинное обучение не будет считать, что более высокие числовые значения имеют больший вес. Например, значение «8» больше значения «1», но это не делает «8» более значимым, чем «1». То же самое верно и для слов: значение «смех» не более важно, чем значение «смеяться».
In natural language processing, a one hot vector is a 1 × N matrix (vector) used to distinguish each word in a vocabulary from every other word in the vocabulary. The vector consists of 0s in all cells with the exception of a single 1 in a cell used uniquely to identify the word. One hot encoding ensures that machine learning does not assume that higher numbers are more important. For example, the value '8' is bigger than the value '1', but that does not make '8' more important than '1'. The same is true for words: the value 'laughter' is not more important than 'laugh'.