Saltar para o conteúdo

One-hot

Origem: Wikipédia, a enciclopédia livre.
DecimalBinárioUnárioOne-hot
00000000000000000001
10010000000100000010
20100000001100000100
30110000011100001000
41000000111100010000
51010001111100100000
61100011111101000000
71110111111110000000

Em circuitos digitais e aprendizado de máquina, um one-hot é um grupo de bits entre os quais as combinações legais de valores são apenas aquelas com um único bit alto (1) e todos os outros baixos (0).[1] Uma implementação semelhante na qual todos os bits são '1', exceto um '0', às vezes é chamada de one-cold.[2] Em estatística, as variáveis fictícias representam uma técnica semelhante para representar dados categóricos.

Aplicaçõeseditar código-fonte

Circuitos digitaiseditar código-fonte

A codificação one-hot é frequentemente usada para indicar o estado de uma máquina de estado. Quando se usa o sistema binário, é necessário um decodificador para determinar o estado. Uma máquina de estado one-hot, no entanto, não precisa de um decodificador, pois a máquina de estado está no enésimo estado se, e somente se, o enésimo bit estiver alto.

Um contador de anel com 15 estados ordenados sequencialmente é um exemplo de máquina de estado. Uma implementação "one-hot" teria 15 flip-flops encadeados em série com a saída Q de cada flip-flop conectada à entrada D do próximo e a entrada D do primeiro flip-flop conectada à saída Q do 15º flip-flop. O primeiro flip-flop da cadeia representa o primeiro estado, o segundo representa o segundo estado e assim por diante até o 15º flip-flop, que representa o último estado. Após a reinicialização da máquina de estado, todos os flip-flops são redefinidos para '0', exceto o primeiro da cadeia, que é definido como '1'. A próxima borda do relógio que chega aos flip-flops avança o bit "hot" para o segundo flip-flop. O bit "hot" avança dessa forma até o 15º estado, após o qual a máquina de estado retorna ao primeiro estado.

Um decodificador de endereços converte de representação binária para representação one-hot. Um codificador de prioridade converte a representação one-hot para binário.

Comparação com outros métodos de codificaçãoeditar código-fonte

Vantagenseditar código-fonte
  • Determinar o estado tem um custo baixo e constante de acesso a um flip-flop;
  • A alteração do estado tem o custo constante de acessar dois flip-flops;
  • Fácil de projetar e modificar;
  • Fácil de detectar estados ilegais;
  • Aproveita a abundância de flip-flops de um FPGA;
  • O uso de uma implementação one-hot normalmente permite que uma máquina de estado seja executada a uma taxa de clock mais rápida do que qualquer outra codificação dessa máquina de estado.[3]
Desvantagenseditar código-fonte
  • Requer mais flip-flops do que outras codificações, o que o torna impraticável para dispositivos PAL;
  • Muitos dos estados são ilegais.[4]

Processamento de linguagem naturaleditar código-fonte

No processamento de linguagem natural, um vetor one-hot é uma matriz 1 × N (vetor) usada para distinguir cada palavra em um vocabulário de todas as outras palavras do vocabulário.[5] O vetor consiste em 0s em todas as células, com exceção de um único 1 em uma célula usada exclusivamente para identificar a palavra. A codificação one-hot garante que o aprendizado de máquina não presuma que números mais altos são mais importantes. Por exemplo, o valor "8" é maior do que o valor "1", mas isso não torna "8" mais importante do que "1". O mesmo se aplica às palavras: o valor "risada" não é mais importante do que "riso".

Aprendizado de máquina e estatísticaeditar código-fonte

No aprendizado de máquina, a codificação one-hot é um método frequentemente usado para lidar com dados categóricos. Como muitos modelos de aprendizado de máquina precisam que suas variáveis de entrada sejam numéricas, as variáveis categóricas precisam ser transformadas na parte de pré-processamento.[6]

Codificação de rótulos
Nome do alimento# CategóricoCalorias
Maçã195
Frango2231
Brócolis350
Codificação One-Hot
MaçãFrangoBrócolisCalorias
10095
010231
00150

Os dados categóricos podem ser nominais ou ordinais.[7] Os dados ordinais têm uma ordem de classificação para seus valores e, portanto, são convertíveis em dados numéricos por meio da codificação ordinal.[8] Um exemplo de dados ordinais seriam as classificações em um teste que variam de A a F, que poderiam ser classificadas usando números de 6 a 1. Como não há relação quantitativa entre os valores individuais das variáveis nominais, o uso da codificação ordinal pode potencialmente criar uma relação ordinal fictícia nos dados.[8] Portanto, a codificação one-hot é frequentemente aplicada a variáveis nominais para melhorar o desempenho do algoritmo.

Para cada valor exclusivo na coluna categórica original, uma nova coluna é criada nesse método. Essas variáveis fictícias são então preenchidas com zeros e uns (1 significa VERDADEIRO, 0 significa FALSO).[9]

Como esse processo cria várias variáveis novas, ele é propenso a criar um problema de "big p" (muitos preditores) se houver muitos valores exclusivos na coluna original. Outra desvantagem da codificação one-hot é que ela causa multicolinearidade entre as variáveis individuais, o que pode reduzir a precisão do modelo.[10]

Além disso, se a variável categórica for uma variável de saída, talvez você queira converter os valores novamente em uma forma categórica para apresentá-los em seu aplicativo.[6]

No uso prático, essa transformação é geralmente realizada diretamente por uma função que recebe dados categóricos como entrada e gera as variáveis fictícias correspondentes. Um exemplo seria a função dummyVars da biblioteca Caret no R.[11]

Ver tambémeditar código-fonte

Referênciaseditar código-fonte

🔥 Top keywords: Wikipédia:Página principalEspecial:PesquisarSilvio LuizAntero GrecoWashington RodriguesChatGPTCleópatraMárcia (cantora brasileira)Paulo SoaresYasukeYouTubeNova CaledóniaCandombléCássio RamosEnchentes no Rio Grande do Sul em 2024Verinha DarcyRio Grande do SulPablo MarçalSony ChannelAMBEVCanal BrasilEduardo LeiteFicheiro:Logotipo da GloboNews.pngBrasilDanubio Fútbol ClubSalomãoEslováquiaBaby ReindeerJuraj Cintula16 de maioPaulo PimentaWhatsAppHigh Frequency Active Auroral Research ProgramRobert FicoCopa Libertadores da América de 2024Club BolívarAlma GêmeaCopa Libertadores da AméricaCristiano Ronaldo