Codificación One-Hot

La codificación one-hot es una forma escasa de representar datos en una cadena binaria en la que solo un bit puede ser 1, mientras que todos los demás son 0.

En informática y electrónica, existen bastantes formas de representar datos, a menudo llamadas esquemas de codificación. Cada uno tiene su propio propósito, ventajas y desventajas. En este breve artículo, analizaremos la codificación one-hot y veremos qué es, cómo se compara con otros esquemas similares y sus aplicaciones.

¿Qué es la codificación One-Hot?

La codificación one-hot es una forma dispersa de representar datos en una cadena binaria en la que solo un bit puede ser 1, mientras que todos los demás son 0. Esto contrasta con otros esquemas de codificación, como el código binario y gray, que permite que múltiples bits múltiples puedan ser 1 o 0, lo que permite una representación más densa de los datos.

Algunos ejemplos de una codificación one-hot podrían verse así:

1
2
3
4
000010
001000
100000
000100

Este concepto se puede entender mejor comparando la representación de los números 0-4 en binario, código gris y one-hot:

Decimal Binario Código Gray One-hot


0 000 000 0000000 1 001 001 0000001 2 010 011 0000010 3 011 010 0000100 4 100 110 0001000 5 101 111 0010000 6 110 101 0100000 7 111 100 1000000

Observe cómo se necesitan más dígitos que en las otras dos representaciones. Cada ubicación de dígito solo puede referirse a un solo número y no puede usarse para representar ningún otro número. Debido a esto, una codificación one-hot de n dígitos solo puede representar n valores. Mientras que la codificación binaria, por ejemplo, con n dígitos puede representar 2^n^ valores.

Aplicaciones de la codificación One-Hot

Entonces, si la codificación one-hot tiene un límite tan estricto en la cantidad de datos que se pueden transmitir en una cadena binaria, ¿qué usos prácticos tiene realmente? Bastantes importantes, en realidad. Wikipedia explica bien su importancia:

La codificación one-hot se usa a menudo para indicar el estado de una máquina de estado. Cuando se usa código binario o Gray, se necesita un decodificador para determinar el estado. Sin embargo, una máquina de estado caliente no necesita un decodificador ya que la máquina de estado está en el estado n si y solo si el bit n es alto.

Aprendizaje automático {#aprendizaje automático}

Redes neuronales y aprendizaje profundo se han convertido en la disciplina de mayor crecimiento en el campo de la informática. ciencia, y por una buena razón. Estos métodos de aprendizaje automático han brindado una solución a problemas históricamente difíciles, o incluso imposibles, en informática. Y, tal vez sorprendentemente, la codificación one-hot tiene una parte importante.

Las redes neuronales y, por lo tanto, el aprendizaje profundo, se inspiran en las redes neuronales que componen nuestro cerebro. Consisten en neuronas simples y conexiones entre las neuronas. La salida de cada neurona suele representar un número, que se utiliza en toda la red para el cálculo. Si bien este número teóricamente puede tener cualquier valor, generalmente se convierte en 1 o 0 para representar datos categóricos.

Por ejemplo, digamos que tenemos una red neuronal que puede decirnos si una imagen de entrada es de un gato o un perro. Dado que la red neuronal solo usa números, no puede generar las palabras "gato" o "perro". En su lugar, utiliza una codificación one-hot para representar su predicción:

{.img-responsive}

En este ejemplo, la salida de la neurona superior en la imagen de arriba podría representar la predicción de "gato" y la salida de la neurona inferior podría representar la predicción de "perro". Cualquier salida que sea un 1 indicaría la predicción.

Electrónica

En electrónica, muchas veces la codificación one-hot se usa para escenarios muy similares a los del aprendizaje automático. Una línea de salida analógica o digital puede representar un valor usando voltaje.

Por ejemplo, los circuitos de puertas lógicas se parecen mucho a las redes neuronales en el sentido de que están compuestos por una gran red de "nodos" interconectados, con entradas digitales que crean alguna salida digital correspondiente. Si bien la representación binaria es común en la electrónica, one-hot puede ser una mejor alternativa para representar un estado de salida sin necesidad de decodificación.

{.img-responsive}