Atenção (aprendizado de máquina) - Attention (machine learning)
No contexto das redes neurais , a atenção é uma técnica que imita a atenção cognitiva . O efeito aumenta as partes importantes dos dados de entrada e esmaece o resto - o pensamento é que a rede deve dedicar mais poder de computação a essa parte pequena, mas importante dos dados. Qual parte dos dados é mais importante do que outras depende do contexto e é aprendido por meio dos dados de treinamento por gradiente descendente .
A atenção é usada em uma ampla variedade de modelos de aprendizado de máquina, incluindo em processamento de linguagem natural e visão computacional .
As redes de transformadores fazem uso extensivo de mecanismos de atenção para atingir seu poder expressivo. Sistemas de visão por computador baseados em redes neurais convolucionais também podem se beneficiar de mecanismos de atenção. O modelo de percepção usa atenção assimétrica para aplicar transformadores diretamente à imagem, áudio, vídeo ou dados espaciais sem usar convoluções, a um custo computacional sendo subquadrático para a dimensão dos dados.
As duas técnicas de atenção mais comuns usadas são atenção de produto escalar , que usa o produto escalar entre vetores para determinar a atenção, e atenção de várias cabeças , que combina vários mecanismos de atenção diferentes para direcionar a atenção geral de uma rede ou sub-rede.
Um exemplo de tradução de idioma
Para construir uma máquina que traduza inglês para francês (veja o diagrama abaixo), começa-se com um codificador-decodificador e enxerta uma unidade de atenção nele. A unidade de atenção é uma rede neural totalmente conectada que alimenta uma combinação ponderada de saídas do codificador no decodificador.
|
Esta tabela mostra os cálculos em cada etapa de tempo. Para maior clareza, ele usa formas e valores numéricos específicos em vez de letras. As formas aninhadas representam a natureza resumida de h, onde cada h contém uma história das palavras que vieram antes dele. Aqui, as pontuações de atenção foram preparadas para obter os pesos de atenção desejados.
Passo | x | h, H = saída do codificador, esses são vetores 500x1 representados como formas |
y i-1 = entrada do decodificador para atenção | pontuação de alinhamento | w = atenção peso = softmax (pontuação) |
c = vetor de contexto = H * w | y = saída do decodificador |
1 | eu | = codificação vetorial para "I" | - | - | - | - | - |
2 | amar | = codificação vetorial para "Eu amo" | - | - | - | - | - |
3 | tu | = codificação vetorial para "eu te amo" | - | - | - | - | - |
4 | - | - | y 1 ainda não existe, então usamos isso em vez disso |
[.63 -3.2 -2.5 .5 .5 ...] | [.94 .02 .04 0 0 ...] | 0,94 * + 0,02 * + 0,04 * | je |
5 | - | - | y 1 | [-1,5 -3,9 .57 .5,5 ...] | [.11 .01 .88 0 0 ...] | 0,11 * + 0,01 * + 0,88 * | t ' |
6 | - | - | y 2 | [-2,8 .64 -3,2 .5 .5 ...] | [.03 .95 .02 0 0 ...] | 0,03 * + 0,95 * + 0,02 * | aime |
Visto como uma matriz, os pesos de atenção mostram como a rede ajusta seu foco de acordo com o contexto.
eu | amar | tu | |
je | , 94 | .02 | , 04 |
t ' | 11 | .01 | 0,88 |
aime | , 03 | 0,95 | .02 |
Essa visão dos pesos de atenção aborda o problema de " explicabilidade " pelo qual as redes neurais são criticadas. Redes que realizam tradução literal sem levar em conta a ordem das palavras teriam uma matriz diagonalmente dominante se fossem analisáveis nesses termos. A dominância fora da diagonal mostra que o mecanismo de atenção é mais matizado. Na primeira passagem pelo decodificador, 94% do peso da atenção está na primeira palavra em inglês "I", então a rede oferece a palavra "je". Na segunda passagem do decodificador, 88% do peso da atenção está na terceira palavra em inglês "você", portanto, ela oferece "t '". Na última passagem, 95% do peso da atenção está na segunda palavra em inglês "love", por isso oferece "aime".
Veja também
- Transformador (modelo de aprendizado de máquina) § Atenção ao produto escalonado
- Perceiver § Componentes para atenção do valor-chave da consulta (QKV)
Referências
links externos
- Alex Graves (4 de maio de 2020), Attention and Memory in Deep Learning (vídeo aula), DeepMind / UCL , via YouTube
- Rasa Algorithm Whiteboard - Atenção via YouTube