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.

Codificador-decodificador com atenção.  Este diagrama usa valores específicos para aliviar uma sopa de letrinhas de notação já desordenada.  A parte esquerda (em preto) é o codificador-decodificador, a parte do meio (em laranja) é a unidade de atenção e a parte direita (em cinza e cores) são os dados computados.  As regiões cinzas na matriz H e no vetor w são valores zero.  Os subscritos são exemplos de tamanhos de vetor, exceto para i-1 que indica intervalo de tempo.
Codificador-decodificador com atenção. Este diagrama usa valores específicos para aliviar uma sopa de letrinhas de notação já desordenada. A parte esquerda (em preto) é o codificador-decodificador, a parte do meio (em laranja) é a unidade de atenção e a parte direita (em cinza e cores) são os dados computados. As regiões cinzas na matriz H e no vetor w são valores zero. Os subscritos são exemplos de tamanhos de vetor, exceto para i-1 que indica intervalo de tempo.
Lenda
rótulo Descrição
100 comprimento máximo da frase
300 tamanho de incorporação (dimensão da palavra)
500 comprimento do vetor escondido
10k tamanho do dicionário de 10.000 palavras
x , y 10k vetor de dicionário 1 quente . x → x implementado como uma tabela de pesquisa em vez de multiplicação vetorial.
x, y Vetor de incorporação de palavras 300-long. Os vetores são geralmente pré-calculados a partir de outros projetos, como GloVe ou Word2Vec .
h Vetor oculto do codificador de 500 extensões. Em cada momento, esse vetor resume todas as palavras anteriores. O h final pode ser visto como um vetor de "sentença" ou um vetor de pensamento, como Hinton o chama.
s Neurônio oculto do decodificador 500 de comprimento RNN Encoder.
E Codificador RNN de 500 neurônios . 300 + 300 entradas, 500 saídas.
D Decodificador de 2 camadas. 1 camada com 500 neurônios e a outra camada com 300 neurônios.
pontuação Pontuação de alinhamento de 100 longos
C Peso de atenção de vetor de 100 longos. Esses são pesos "suaves" que mudam durante o passe para frente, em contraste com os pesos neuronais "duros" que mudam durante a fase de aprendizagem.
UMA Módulo de atenção - uma rede totalmente conectada cuja saída é uma pontuação de 100.
H 500x100. 100 vetores ocultos h concatenados em uma matriz
c Vetor de contexto de 500 extensões = H * w. c é uma combinação linear de vetores h ponderados por w.

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 Icon-red-diamond.png = codificação vetorial para "I" - - - - -
2 amar Icon-green-square.png = codificação vetorial para "Eu amo" - - - - -
3 tu Icon-blue-circle.png = codificação vetorial para "eu te amo" - - - - -
4 - - y 1 ainda não existe, então usamos isso em vez disso
Icon-blue-circle.png
[.63 -3.2 -2.5 .5 .5 ...] [.94 .02 .04 0 0 ...] 0,94 * Icon-red-diamond.png+ 0,02 * Icon-green-square.png+ 0,04 *Icon-blue-circle.png je
5 - - y 1 [-1,5 -3,9 .57 .5,5 ...] [.11 .01 .88 0 0 ...] 0,11 * Icon-red-diamond.png+ 0,01 * Icon-green-square.png+ 0,88 *Icon-blue-circle.png t '
6 - - y 2 [-2,8 .64 -3,2 .5 .5 ...] [.03 .95 .02 0 0 ...] 0,03 * Icon-red-diamond.png+ 0,95 * Icon-green-square.png+ 0,02 *Icon-blue-circle.png 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

Referências

links externos