Conceitos E: Aprendizado Profundo
Witold Pedrycz
Editores Shyi-Ming Chen
aprendizado profundo:
conceitos e
Arquiteturas
Machine Translated by Google
Volume 866
Editor da série
123
Machine Translated by Google
Editores
Witold Pedrycz Shyi Ming Chen
Departamento de Engenharia Departamento de Ciência da
Elétrica e de Computação Computação e Engenharia da Informação
Universidade de Alberta Universidade Nacional de Ciência e
Edmonton, AB, Canadá Tecnologia de Taiwan
Taipei, Taiwan
Esta impressão da Springer é publicada pela empresa registrada Springer Nature Switzerland AG
O endereço da empresa registrada é: Gewerbestrasse 11, 6330 Cham, Suíça
Machine Translated by Google
prefácio
v
Machine Translated by Google
contente
viii
Machine Translated by Google
viii contente
contente ix
x contente
contente XI
xiii contente
Progresso na Modelagem de Linguagem Estatística Baseada em Rede Neural .... 321 Anup Shrikant
Kunte e Vahida Z. Attar 1 Introdução ....................... ..... ......................... 322 2 Modelagem de
Linguagem Estatística ........................ ..... ... 323 2.1 Modelo de linguagem N-Gram ..............................
324 .... ..... .............. 325 3 Extensões para o Modelo de Linguagem N-Gram 4 Modelagem de
Linguagem Baseada em Rede Neural ...............
(NNLM)......328
328
4.14.2
Modelo
Modelos
de Linguagem
de Linguagem
de Rede
de Rede
Neural
Neural
Modelos de Linguagem de Memória de Longo Curto Prazo Recorrente
(LSTMLM) (RNNLM)....
...... 331 4.4 RNN 330 4.3
Bidirecional .............................. 332 5 Marcos na Pesquisa NNLM .............................. 334 6 Métricas
de Avaliação .......... . ......................... 336 6.1 PPL de última geração .............. . ................... 337
7 Conclusão ................... . ......... 338 Referências .............................. . ........... ...... 338
Resumo O aprendizado profundo é uma das técnicas de aprendizado de máquina mais utilizadas e
que alcançou enorme sucesso em aplicações como detecção de anomalias, detecção de imagens,
reconhecimento de padrões e processamento de linguagem natural. As arquiteturas de aprendizado
profundo revolucionaram o cenário analítico de big data em meio à implantação em larga escala de
redes sensoriais e protocolos de comunicação aprimorados. Neste capítulo, discutiremos várias
arquiteturas de aprendizado profundo e explicaremos seus conceitos matemáticos subjacentes. Uma
visão geral atualizada aqui apresentada diz respeito a três categorias principais de redes neurais, a
saber, Redes Neurais Convolucionais, Redes Não Supervisionadas Pré-treinadas e Redes Neurais
Recorrentes/Recursivas. As aplicações de cada uma dessas arquiteturas em áreas selecionadas,
como reconhecimento de padrões e detecção de imagens, também são discutidas.
S. Lu
e-mail: slu1@[Link]
K. Kamaraj
e-mail: kkamaraj@[Link]
A. Slowikowski
e-mail: aslowikowski@[Link]
HC Venkatesh e-
mail: hchincholivenkatesh@[Link]
M.-P. Hosseini
AI Research, San Jose, CA, EUA
1. Fundo
O aprendizado de máquina é um ramo da inteligência artificial (IA) que envolve algoritmos que permitem
que sistemas de computador infiram padrões de dados. O aprendizado de máquina tem um amplo escopo
de aplicações, incluindo bioinformática, detecção de fraudes, análise de mercado financeiro, reconhecimento
de imagem e processamento de linguagem natural (NLP).
As técnicas tradicionais de aprendizado de máquina estatística são limitadas em sua capacidade de
processar dados naturais em forma bruta porque os padrões e as inferências que devem ser feitas entre
eles são complicados. Eles exigem muito trabalho dos humanos para extrair recursos adequados para
melhorar seu desempenho. O aprendizado de representação é então desenvolvido como um conjunto de
métodos que permite que uma máquina descubra automaticamente as representações (recursos)
necessárias para detecção ou classificação de dados.
O aprendizado profundo é uma classe de métodos de aprendizado de máquina de representação com
vários níveis de representação. Ele é composto por vários módulos simples, mas não lineares, que
transformam a representação dos níveis anteriores (começando com a entrada bruta) em uma representação
em um nível mais alto e um pouco mais abstrato. Com a composição de transformações suficientes,
características e inferências muito complexas podem ser aprendidas. Em geral, todos os métodos de
aprendizado profundo podem ser classificados em uma das três categorias diferentes, que são Redes
Neurais Convolucionais (CNNs), Redes Não Supervisionadas Pré-treinadas (PUNs) e Redes Neurais
Recorrentes/Recursivas (RNNs). Vamos discuti-los em detalhes nas seções a seguir, mas primeiro,
discutiremos como treinar um modelo de aprendizado profundo.
2 Procedimento de Treinamento
Tanto no aprendizado profundo quanto no aprendizado de máquina, os modelos preditivos usam vários
algoritmos subjacentes para inferir relações matemáticas dos dados de treinamento. Existem basicamente
três tipos de métodos de aprendizado, a saber: aprendizado supervisionado, aprendizado não supervisionado
e aprendizado semi-supervisionado. Na seção abaixo, discutiremos cada método em mais detalhes.
No aprendizado não supervisionado, o modelo é alimentado com dados de treinamento não classificados (ou seja, apenas
entradas). Em seguida, o modelo categoriza os pontos de dados de teste em diferentes classes, encontrando
semelhanças entre eles. Por exemplo, vamos supor que temos um animal
cenário de classificação em que o conjunto de dados contém imagens não classificadas de uma variedade
dos animais. O modelo classificará o conjunto de dados e extrairá diferentes recursos
das imagens para auxiliar na classificação. Alguns dos recursos extraídos
poderia incluir a cor do animal e o tamanho do animal para citar alguns. Usando
essas características, os dados podem ser agrupados em diferentes clusters. Por exemplo, imagens
contendo um cachorro cairá idealmente no mesmo cluster com base na aparência do
recursos extraídos; a mesma ideia se aplica aos outros animais encontrados no conjunto de dados.
Fig. 1 Uma representação condensada de Redes Neurais Convolucionais (CNN). É um tipo de rede neural
artificial feed forward baseada em arranjos neuronais 3D, conectividade local entre neurônios de camadas
adjacentes e vetores de peso compartilhados.
Nesta seção abaixo, discutiremos várias arquiteturas de aprendizado profundo e explicaremos seus
algoritmos subjacentes. Uma visão geral atualizada será apresentada para cada uma das três
principais categorias de redes neurais, a saber, Redes Neurais Convolucionais, Redes Não
Supervisionadas Pré-treinadas e Redes Neurais Recorrentes/Recursivas.
As CNNs são inspiradas em processos biológicos e são projetadas para imitar a conectividade neural
encontrada no córtex visual do cérebro. Eles exigem consideravelmente menos pré-processamento
de dados em comparação com algoritmos tradicionais de classificação de imagens que exigem filtros
de pré-processamento projetados à mão [6]. As CNNs têm uma grande variedade de aplicações em
reconhecimento de imagem e vídeo, sistemas de recomendação, classificação de imagens, análise
de imagens médicas e processamento de linguagem natural (NLP).
As CNNs diferem das redes neurais convencionais, pois realizam convolução em vez da multiplicação
de matriz padrão em pelo menos uma de suas camadas (Fig. 1). Eles são famosos por dois atributos
distintos: interações esparsas e compartilhamento de parâmetros. Interações esparsas ou
conectividade são alcançadas tornando o kernel do modelo menor que o tamanho da entrada. Por
exemplo, em um aplicativo de classificação de imagem, pode haver milhões de pixels representando
uma imagem de alta resolução. Nesse caso, o kernel será configurado de forma a capturar apenas
características importantes, como contraste e bordas, que são mais indicativas dos objetos na
imagem. Com menos pixels da imagem em consideração, há uma redução nos parâmetros para
Machine Translated by Google
Diferentes pesos são aplicados a diferentes camadas até que a rede seja capaz de filtrar os
dados e obter um resultado. Isso funciona tendo o pool de camada convolucional principal
Machine Translated by Google
e construção de mapas de recursos baseados em diferentes filtros, ou kernels. Cada uma dessas
camadas está totalmente conectada e, finalmente, obtém uma saída. As CNNs são usadas
principalmente para classificação visual, mas podem ter muitas aplicações úteis na detecção de
texto e linguagem, rastreamento de objetos, reconhecimento de ações e outras classificações. A
equação 1 abaixo ilustra a propagação direta implementada em uma CNN, onde ÿ é o filtro nxn
e ÿ é a matriz de peso de não linearidade, Eq. 2 representa o componente gradiente para cada
peso, e a Eq. 3 representa os pesos da camada convolucional [6].
nÿ1 nÿ1
xl =ÿ a=0 b=0 ÿab ilÿ1 (i+a)(j+b) (1)
ij
ÿE ÿE ÿyl ÿE
= eu j
=
ÿxlij ÿil eu j
ÿxlij ÿil eu j
ÿ ÿxl ij(ÿ(xl i j)) (dois)
ÿ1
nÿ1 nÿ1 ÿE b=0
J= a=0 ÿxl (iÿa)(jÿb) (4)
LeNet [19] é a primeira aplicação bem sucedida de redes convolucionais e foi desenvolvida
por Yann LeCun na década de 1990. Das CNNs, a mais conhecida é a arquitetura LeNet que
era usada para ler CEPs, dígitos, etc. O último trabalho é chamado LeNet-5 que é uma CNN de
5 camadas que atinge 99,2% de precisão no reconhecimento de caracteres isolados [20].
Quando os dados são inseridos em uma rede neural, eles inicialmente avançam pela rede
através de uma série de camadas no que é conhecido como propagação direta. A rede pode
ter vários números de camadas dentro da rede que representam a profundidade da rede e
também inclui um vetor de entrada, x. Cada camada, l, também tem uma largura que
representa o número de nós. Dentro de cada camada, aplicamos a matriz de pesos à função
de ativação; os dados de entrada, a, são multiplicados por um peso, w, e um desvio, b, é
adicionado ao resultado. Na Eq. 5, j é o nó de saída e representa o j -ésimo nó da lª camada,
e k representa o k- ésimo nó da camada anterior, l ÿ 1, que serve como nó de entrada [1]. O
valor wl jk , então, é a relação de peso que existe entre Quando
os dois nós de ambas
a matriz as camadas.
de pesos e o viés são
configurados pela primeira vez, eles são inicializados aleatoriamente por meio de um processo
conhecido como inicialização de parâmetros, sendo a0 a camada que contém o vetor de
dados de entrada (Fig. 3).
A entrada ponderada para o jth node na lth layer, zl function,j , é então alimentado em uma ativação
f.
alj (6)
= f (zlj )
X(1)
ativação
Função
Calcular Perda
X(2)
uma função de ativação atua como uma camada de rede neural executando operações em
os dados de entrada originais e alimentando-os para a próxima camada de rede neural
(função de ativação). Os valores produzidos pela função de ativação dependem do
tipo de função de ativação que é usada. Nem sempre há uma escolha clara ou melhor
decidir qual função de ativação usar ao projetar a rede; Este processo
requer alguma tentativa e erro para determinar qual função de ativação produzirá
os melhores resultados. Algumas das funções de ativação mais comuns estão listadas
abaixo de.
A função sigmóide, que também é conhecida como função logística, mapeia para reais
números com valores que variam entre 0 e 1.
1
f (x) = ÿ(x) = 1 + (7)
eÿx
A tangente hiperbólica, tanh, função de ativação mapeia para números reais com
valores que variam entre -1 e 1.
(ex ÿ eÿx )
f (x) = tanh(x) = (ex (8)
+ eÿx )
A função de ativação da unidade linear retificada (ReLU) mapeia para números reais com
valores que variam de 0 a ÿ.
f (x) = {0 f xf
ououxxÿ0
<0 (9)
A função de ativação do Softmax mapeia para números reais com valores que variam de
0 a 1.
exi
fi(x ) = j
(10)
ex- j
j=1
Machine Translated by Google
n
1
C=
dois
for i := 1 ÿ#RowunitinLayerl do
for j := 1 ÿ#ColumnunitinLayerl do = ÿ(xl
Encontre as ativações de camada por, yl + blj)
eu j eu j
fim
fim
Mantenha a saída final
como yl Calcular erro na camada
de saída. begin for l :=#HiddenLayer
s ÿ 1 do
ÿE = ÿE ÿyl eu j = ÿE ÿ
Encontre a derivação parcial do erro por (ÿ(xl i j))
ÿyl eu j ÿxl ij ÿyl eu j ÿxl ij
ÿxl ij Encontre o erro na camada anterior.
fim
N-n N-n ÿxl N-n N-n
Calcule o gradiente do erro por ÿÿab = ÿE ij ÿxl = ÿE
ilÿ1
ÿÿab ij ÿxl (i+a)(j+b)
i=0 i=0 i=0 i=0 ij
FIM
onde n é o número de pontos de dados. O erro quadrático médio pode ser entendido como a
média do quadrado da diferença entre a saída desejada ou esperada e a saída real que foi
obtida pela rede [17].
A fim de otimizar a função de custo minimizando a perda, o algoritmo de otimização de
gradiente descendente é usado e os erros são retropropagados pela cadeia em direção à
frente da rede. A descida do gradiente ajusta cada peso tomando o negativo
Machine Translated by Google
da taxa de aprendizagem multiplicada pela derivada parcial da função de custo em relação aos
pesos [1].
ÿCw = ÿÿ ÿw (13)
3.2.1 Autoencoders
Autoencoders usam aprendizado não supervisionado para aprender uma representação para
redução de dimensionalidade onde a entrada é a mesma que a saída (Fig. 4). As três partes de
um autoencoder incluem a entrada, a saída e a camada oculta. Os dados são compactados
Machine Translated by Google
Fig. 4 Uma representação de um autoencoder. Ele usa aprendizado não supervisionado para aprender uma representação para
redução de dimensionalidade onde a entrada é a mesma que a saída
em uma representação menor na camada oculta e descompactada para formar uma saída
semelhante à entrada. Isso acontece através de duas etapas principais de codificação e decodificação
do algoritmo do autoencoder [15]. Por exemplo, o seguinte é usado para representar a função de
mapeamento entre a camada de entrada e a camada oculta [24]:
Generative Adversarial Networks (GAN) foi introduzido pela primeira vez por Ian Goodfellow e
outros da Universidade de Montreal em 2014. GANs são capazes de imitar qualquer distribuição
de dados em qualquer domínio: imagens, música, fala e prosa. As GANs são um exemplo de
rede que usa aprendizado não supervisionado para treinar dois modelos em paralelo. Um
aspecto fundamental dos GANs (e modelos generativos em geral) é como eles usam uma
contagem de parâmetros significativamente menor do que o normal em relação à quantidade
de dados em que a rede é treinada. A rede é forçada a representar de forma eficiente os dados
de treinamento, tornando-a mais eficaz na geração de dados semelhantes aos dados de treinamento.
Uma rede GAN é composta por um discriminador, D, e um gerador, G, que operam em
paralelo. O objetivo do gerador é ser capaz de criar uma saída falsa que se assemelhe a uma
saída real, com o gerador treinando através de suas interações com o discriminador e não a
partir de qualquer conteúdo real [2]. O objetivo do gerador é produzir uma saída tão próxima
do real que confunda o discriminador ao conseguir diferenciar os dados falsos dos dados reais.
Há três etapas em GANs. Primeiro, o gerador recebe números aleatórios e retorna uma
imagem. Essa imagem gerada é alimentada no discriminador juntamente com um fluxo de
imagens tiradas do conjunto de dados real. Em segundo lugar, o discriminador recebe imagens
reais e falsas e retorna probabilidades; uma saída próxima de 0 sendo os dados do gerador é
falsa e uma saída próxima de 1 sendo os dados reais.
Terceiro, a rede discriminadora fornece feedback ao gerador para treiná-lo e melhorar sua
saída. A GAN tem potencial para ser utilizada em muitas aplicações e tem sido utilizada na
melhoria da resolução de imagens [22]. Outra aplicação útil usando GAN tem sido a capacidade
de criar fotos com base em uma descrição detalhada da legenda, como uma legenda
informando “um caminhão amarelo com portas brancas” usada para gerar uma imagem
correspondente [27] (Fig. 5).
Fig. 5 Uma representação de uma Rede Adversarial Generativa (GAN). Ele contém uma rede geradora e
uma rede discriminadora cujo gerador cria um conjunto de dados a partir de ruído aleatório para alimentar o
discriminador para poder diferenciar o conjunto de dados gerado de um conjunto de dados real
Machine Translated by Google
Depois de discutir as diferentes redes de aprendizado de máquina e como elas operam, examinamos
como essas diferentes redes foram usadas juntas. As redes neurais podem ser unidas em diferentes
combinações em série umas com as outras. Para isso, é estabelecido um link entre cada rede. Isso é
chamado de Deep Belief Network (DBN). Ele é estruturado conectando várias redes neurais não
supervisionadas menores e forma uma extensa conexão em camadas. Para entender melhor o conceito,
precisamos nos aprofundar nos componentes de um DBN: Rede de Crenças e a Máquina de Boltzmann
Restrita.
Uma Rede de Crenças consiste em camadas de unidades binárias geradas aleatoriamente, onde cada
uma das camadas conectadas recebeu uma função de peso. A faixa dessas unidades binárias é de “0”
a “1”, e a probabilidade de atingir o valor “1” depende das entradas de fator de polarização e peso das
outras unidades conectadas. Devido ao aprendizado camada por camada, podemos determinar como
uma variável presente em uma camada pode interagir com essas variáveis em outro nível. Após o
processo de aprendizado, os valores das variáveis podem ser efetivamente inferidos por uma abordagem
bottom-up começando com um vetor de dados na camada inferior e adicionando a função de peso
generativo na direção oposta.
Uma Máquina de Boltzmann Restrita (RBM) é uma Rede Neural Recorrente (RNN) estocástica que
consiste em unidades binárias geradas aleatoriamente, com arestas não direcionadas entre as unidades.
Como a principal limitação do RBM é a escalabilidade, observa-se que eles têm conexões restritas entre
cada uma das unidades ocultas.
Essa classe de estruturas de aprendizado profundo tem a capacidade de enviar dados ao longo de etapas de tempo.
Apresentamos 4 estruturas nesta aula: 1. Rede Neural Recorrente, 2. Rede Neural Recursiva, 3.
Memória Longa e Curta (LSTM), 4. Atenção.
A Rede Neural Recorrente (RNN) é uma classe de aprendizado profundo baseada nos trabalhos de
David Rumelhart em 1986. As RNNs são reconhecidas por sua capacidade de processar e obter insights
de dados sequenciais. Portanto, análise de vídeo, legendagem de imagens, processamento de
linguagem natural (NLP) e análise de música dependem dos recursos das redes neurais recorrentes.
Ao contrário das redes neurais padrão que assumem independência entre os pontos de dados, as RNNs
capturam ativamente as dependências sequenciais e de tempo entre os dados.
Nova informação
f(x)
predição
Fig. 6 Uma representação condensada da Rede Neural Recorrente (RNN). É uma rede neural que se repete ao
longo do tempo, o que permite que as informações persistam por loops. O f(x) representa alguma função de
esmagamento
em uma sequência e, portanto, não pode fazer inferências sobre sequências de comprimento variável.
O impacto dessa limitação pode ser totalmente observado no processamento de linguagem natural.
Por exemplo, as frases para decodificar são “Kobe Bryant é um jogador de basquete incrível” e “Um
jogador de basquete incrível é Kobe Bryant”. Um modelo ideal deve ser capaz de reconhecer que
'Kobe Bryant' é o jogador de basquete discutido em ambas as frases, independentemente da posição
das palavras. Uma rede multicamada tradicional nesse cenário falharia porque criaria uma interpretação
da linguagem em relação aos pesos únicos definidos para cada posição (palavra) na frase. As RNNs,
no entanto, seriam mais adequadas para a tarefa, pois compartilham pesos ao longo das etapas de
tempo (ou seja, as palavras em nossa frase) - permitindo uma compreensão mais precisa da frase [3]
(Fig. 6).
Fig. 7 Um gráfico computacional desdobrado para RNN. Cada nó está associado a uma instância de tempo
s(t) indica o estado do sistema que é dependente de um passo de tempo anterior indicado por
t ÿ 1. Esta equação pode então ser reescrita como
(t)
h(t) = f (htÿ1), x ;) (17)
(t)
onde h(t) é agora usado para representar o estado e x denota entrada de uma instância de
tempo particular. O significado de h(t) é que é uma representação dos aspectos relevantes para
a tarefa da sequência passada de entradas até t [3] (Fig. 7).
Versões anteriores das arquiteturas RNN mostraram grande promessa e versatilidade, mas
foram associadas a certas falhas notáveis. As estruturas RNN, em teoria, são capazes de
lembrar informações por longos períodos de tempo, porém, na prática, nem sempre é assim.
As redes RNN tradicionais, também conhecidas como RNNs Vanilla, são especialmente
propensas a um gradiente de fuga e um gradiente de explosão — ambos fenômenos resultantes
de erros de propagação acumulados ao longo de muitas etapas de tempo. A RNN funciona
bem na referência de bits de informação se o intervalo entre as referências permanecer
pequeno. Onde o RNN começa a sofrer é quando a lacuna entre os dados referenciados se
torna grande e o RNN nem sempre é capaz de fazer links entre esses dados. Long Short-Term
Memory (LSTM) e Truncated Backpropagation Through Time (TBPTT) são variantes da
arquitetura RNN tradicional propostas para corrigir esses problemas. A arquitetura LSTM utiliza
arestas recorrentes com pesos unitários fixos para neutralizar o gradiente de fuga.
A arquitetura TBPTT define um corte para o número de etapas através das quais o erro pode
ser propagado para corrigir o gradiente explosivo (Fig. 8).
Algumas outras arquiteturas RNN incluem redes neurais recorrentes bidirecionais
(BRNN) e Redes Neurais Recorrentes Codificador-Decodificador (EDRNN). BRNNS se desviam
das estruturas causais convencionais utilizadas pela maioria dos outros frameworks RNN. Eles
fazem inferências do ponto de dados atual em uma sequência relativa aos pontos de dados
passados e futuros. Isso é particularmente útil para decodificar o significado de frases em que
cada palavra da frase é avaliada no contexto de todos os valores da frase. Além disso, muitas
dependências sutis podem ser extrapoladas considerando os vizinhos linguísticos esquerdo e
direito de uma palavra. Também é importante notar que muitas palavras e frases usadas em
frases podem ter significados diferentes.
Machine Translated by Google
Redes neurais recursivas, que não devem ser confundidas com RNNs, são um conjunto de
modelos adaptativos que são usados para processar dados de comprimento variável. Eles são
especialmente proficientes no processamento de entradas de estrutura de dados. Redes recursivas alimentam o
estado da rede de volta para si mesmo, no que pode ser visto como um loop. eles são
principalmente adequado para a desconstrução de imagens e frases. A arquitetura de redes neurais
recursivas permite que os usuários não apenas identifiquem os constituintes dos dados de entrada
mas também para determinar quantitativamente as relações entre eles [3]. esse tipo
Machine Translated by Google
3.3.3 LSTM
LSTM é a arquitetura RNN mais comum que lembra valores em intervalos arbitrários. Foi introduzido
pela primeira vez em 1997 por Hochreiter e Schmidhuber e funciona bem em fazer previsões com base
em dados de séries temporais, evitando o problema de dependência de longo prazo que as RNNs
tradicionais, ou vanilla, eram atormentadas. O LSTM também é adequado para tarefas de classificação
e processamento e pode ser encontrado nos aplicativos Google Translate, Apple Siri e Amazon Alexa.
OU
Eu(1)
v
Eu (2)
OU C v
QUALQUER
OU
Eu (3)
v C
eu
Eu(4)
OU C
Fig. 11 Cadeia RNN para estrutura de árvore binária permite que a rede neural recursiva extrapole a partir de sequências de
comprimento variável de imagens e palavras
hs
atenção
Local
camada
pesos
no
Contexto
Vetor
ct ht' yt
pt
alinhado
posição
ht
3.3.4 Atenção
esquema de ção chamado autoatenção ou intra-atenção, no qual são extrapoladas inúmeras relações
entre diferentes posições de uma sequência de dados [30]. Assim, ao encontrar mais padrões a partir
dos dados de entrada, o mecanismo de atenção do Transformer permite a criação de modelos mais
robustos.
4. Conclusões
Fig. 13 O AtomNet é treinado para reconhecer grupos sulfonil – uma estrutura frequentemente encontrada em antibióticos [31]
referências
1. Boden, M.: Um guia para redes neurais recorrentes e retropropagação. O Projeto Dalas
(2002)
2. Creswell A, White T, Dumoulin V, Arulkumaran K, Sengupta B, Bharath AA: Redes contraditórias generativas: uma visão
geral. Processo de Sinal IEEE. Mag. 35(1), 53–65 (2018)
3. I. Goodfellow, Y. Bengio, A. Courville: Deep Learning. Imprensa do MIT. [Link] [Link] (2016)
4. He K, Zhang X, Ren S, Sun J: Aprendizagem residual profunda para reconhecimento de imagem. In: Proceedings of the
IEEE Conference on Computer Vision and Pattern Recognition, pp. 770–778 (2016)
5. Hochreiter S, Schmidhuber J: Longa memória de curto prazo. Computação Neural. 9(8), 1735-1780
(1997)
6. Hosseini, M., Pompili, D., Elisevich, K., Soltanian-Zadeh, H.: Aprendizado profundo otimizado para big data de EEG e
previsão de convulsões BCI via internet das coisas. IEEE Trans. Big Data 3(4), 392–404 (2017)
7. Hosseini, M.-P.: Desenvolvimento de uma plataforma baseada em nuvem como serviço para melhorar a saúde pública de
pacientes epilépticos em locais urbanos. Reimagining Health in Cities: New Directions in Urban Health Research, Drexel
University School of Public Health, Filadélfia, EUA (2015)
8. Hosseini, M.-P.: Propondo um novo sistema inteligente artificial para detecção automática de crises epilépticas. J. Neurol.
Distúrbios 3(4) (2015)
9. Hosseini, M.-P.: Uma interface de computador cerebral baseada em nuvem para analisar big data médico para detecção
de crises epilépticas. In: 3º Simpósio Anual da New Jersey Big Data Alliance (NJBDA) (2016)
10. Hosseini, MP: Interface cérebro-computador para análise de big data epiléptico. Ph.D. Tese, Rutgers University-School of
Graduate Studies (2018)
Machine Translated by Google
11. Hosseini M-P, Hajisami A, Pompili D: Detecção de crises epilépticas em tempo real a partir de sinais de EEG
através de aprendizagem aleatória de conjuntos de subespaços. In: 2016 IEEE International Conference
on Autonomic Computing (ICAC), p. 209-218. IEEE (2016)
12. Hosseini MP, Lau A, Lu S, Phoa A: Aprendizagem profunda em imagens médicas, uma revisão. IEEE Rev.
Biomed. Inglês (2019)
13. Hosseini M-P, Pompili D, Elisevich K, Soltanian-Zadeh H: Aprendizado de conjunto aleatório
para classificação do EEG. Artif. Intel. Med. 84, 146–158 (2018)
14. Hosseini MP, Soltanian-Zadeh H, Akhlaghpoor S: Método de três cortes para identificação de DPOC. Lei
Médica Iraniana 771–778 (2013)
15. Hosseini M-P, Soltanian-Zadeh H, Elisevich K, Pompili D: Aprendizado profundo baseado em nuvem de
grandes dados de EEG para previsão de crises epilépticas. In: 2016 IEEE Global Conference on Signal
and Information Processing (GlobalSIP), p. 1151-1155. IEEE (2016)
16. Hosseini M-P, Tran TX, Pompili D, Elisevich K, Soltanian-Zadeh H: Aprendizado profundo com computação
de borda para localização de epileptogenecidade usando rs-fMRI multimodal e EEG big data. In: 2017 IEEE
International Conference on Autonomic Computing (ICAC), p. 83-92.
IEEE (2017)
17. Karnin, ED: Um procedimento simples para podar redes neurais treinadas para retropropagação. IEEE
Trans. Rede Neural. 1(2), 239-242 (1990)
18. Krizhevsky, A., Sutskever, I., Hinton, GE: Classificação Imagenet com redes neurais convolucionais
profundas. In: Avanços em Sistemas de Processamento de Informação Neural, p. 1097–1105 (2012)
19. Le Cun Y, Jackel LD, Boser B, Denker JS, Graf HP, Guyon I, Henderson D, Howard RE, Hubbard W:
Reconhecimento de dígitos manuscritos: aplicações de chips de rede neural e aprendizado automático.
IEEE Comum. Mag. 27(11), 41–46 (1989)
20. LeCun, Y., Bottou, L., Bengio, Y., Haffner, P.: Aprendizagem baseada em gradiente aplicada ao documento
reconhecimento. proc. IEEE 86(11), 2278–2324 (1998)
21. LeCun Y, Bengio Y, Hinton G: Aprendizado profundo. Natureza 521 (7553), 436 (2015)
22. Ledig C, Theis L, Huszár F, Caballero J, Cunningham A, Acosta A, Aitken A, Tejani A, Totz J, Wang Z., et
al. . In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 4681–4690
(2017)
23. Liang, N.-Y., Huang, G.-B., Saratchandran, P., Sundararajan, N.: Um algoritmo de aprendizado sequencial
on-line rápido e preciso para redes feedforward. IEEE Trans. Rede Neural. 17(6), 1411–1423 (2006)
24. Liao D, Lu H: Classifique o autismo e o controle com base no aprendizado profundo e na estrutura da
comunidade em fMRI em estado de repouso. In: 2018 Décima Conferência Internacional sobre Inteligência
Computacional Avançada (ICACI), pp. 289-294. IEEE (2018)
25. Patterson, J., Gibson, A.: Deep Learning: A Abordagem do Praticante. O'Reilly Media, Inc.
(2017)
26. Puskorius G, Feldkamp L. Retropropagação truncada ao longo do tempo e treinamento de filtro kalman para
neurocontrole. In: Proceedings of 1994 IEEE International Conference on Neural Networks (ICNN'94), vol.
4, pág. 2488-2493. IEEE (1994)
27. Reed S, Akata Z, Yan X, Logeswaran L, Schiele B, Lee H: Generative adversarial text to image síntese
(2016). arXiv pré -impressão arXiv:1605.05396 28. Sutskever I, Vinyals O, Le QV: Sequência para
sequenciar o aprendizado com redes neurais. In: Avanços em Sistemas de Processamento de Informação
Neural, p. 3104–3112 (2014)
29. C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Angelov, D. Erhan, V. Vanhoucke, A. Rabinovich: Indo
mais fundo com convoluções. In: Visão Computacional e Reconhecimento de Padrões (CVPR) (2015)
30. Vaswani A, Shazeer N, Parmar N, Uszkoreit J, Jones L, Gomez AN, Kaiser ÿ, Polo sukhin I: Atenção é tudo
que você precisa. In: Avanços em Sistemas de Processamento de Informação Neural, p. 5998–6008 (2017)
31. Wallach, I., Dzamba, M., Heifets, A.: AtomNet: uma rede neural convolucional profunda para previsão de
bioatividade na descoberta de drogas baseada em estrutura (2015). arXiv pré -impressão arXiv:1510.02855
Machine Translated by Google
Resumo Redes neurais profundas são mal compreendidas matematicamente, entretanto tem
havido muitos trabalhos recentes focados em analisar e entender seu sucesso em uma variedade
de tarefas de reconhecimento de padrões. Descrevemos algumas das técnicas matemáticas
utilizadas para caracterização de redes neurais em termos de complexidade de classificação ou
tarefa de regressão atribuída, ou com base em funções aprendidas, e tentamos relacioná-las
com escolhas de arquitetura para redes neurais. Explicamos alguns dos quantificadores
mensuráveis que podem ser usados para definir a expressividade da rede neural, incluindo o
uso de complexidade e curvatura homológica. Também descrevemos as redes neurais do ponto
de vista das transformações de espalhamento e compartilhamos algumas das justificativas
matemáticas e intuitivas para elas. Finalmente compartilhamos uma técnica para visualizar e
analisar redes neurais baseada no conceito de curvatura de Riemann.
1. Visão Geral
Redes neurais profundas (DNNs), incluindo CNNs, RNNs, GANS e outras variantes são os
algoritmos de aprendizado de máquina de melhor desempenho para uma ampla gama de tarefas
variadas de reconhecimento de padrões, incluindo classificação, detecção de objetos,
segmentação semântica, reconhecimento de fala etc. 23, 36, 39, 41]. A compreensão matemática
de redes neurais de mais de uma camada oculta ainda é bastante limitada, devido à inadequação
dos modelos matemáticos em modelar efetivamente as estruturas hierárquicas complexas e não
lineares. Isso diminui a capacidade dos engenheiros de melhorar e personalizar
B. Lall
e-mail: brejesh@[Link]
26 P. Kaul e B. Lall
Embora os detalhes da arquitetura e dos componentes da rede neural sejam descritos em outro
lugar e não sejam o foco deste capítulo, fornecemos uma breve visão geral dos componentes para
poder definir a terminologia e a representação matemática dos blocos de construção básicos.
Redes neurais são estruturas computacionais com parâmetros apreensíveis que podem ser
caracterizadas como tendo múltiplas camadas computacionais com camadas conectadas entre si
por meio de grafos direcionados. Redes neurais profundas, usadas para
Machine Translated by Google
Redes neurais Ignate com mais de uma camada oculta, não são bem compreendidas matematicamente.
As Redes Neurais recebem um vetor ou tensor como entrada, que é então alimentado sequencialmente
através de uma série de camadas de processamento. As camadas são de vários tipos, dependendo do
tipo de rede e da aplicação. As camadas incluem camadas totalmente conectadas, camadas de convolução,
camadas de agrupamento, ativações não lineares, camadas de normalização, camadas de perda, etc. Os
perceptrons multicamadas (MLPs) consistem apenas em camadas totalmente conectadas intercaladas
com ativações não lineares. As Redes Neurais Convolucionais (CNNs) possuem camadas convolucionais
em vez de camadas totalmente conectadas na fase inicial da rede. Redes neurais recorrentes (RNNs) são
distinguidas de outras classes pela presença de componentes com memória, por exemplo, memória de
longo prazo (LSTMs) e unidades recorrentes fechadas (GRU) [10, 19]. Essas redes podem ser usadas
para classificação/regressão de dados orientados a séries temporais. As redes neurais modernas,
especialmente as CNNs, podem ser muito profundas com centenas de camadas.
Os perceptrons multicamadas (MLP) são a forma mais simples de redes neurais que consistem em
camadas totalmente conectadas acopladas com não-linearidades (como mostrado na Fig. 1). As camadas
totalmente conectadas podem ser modeladas como matriz para multiplicação vetorial. As não linearidades
são tipicamente operações não lineares de elemento a elemento.
As CNNs consistem em grafos acíclicos direcionados (DAG) com nós realizando uma das operações
descritas acima, por exemplo, convolução, agrupamento etc. As interconexões podem ser paralelas, seriais
ou hierárquicas (rede dentro de redes).Na sua forma mais simples, as CNNs possuem um conjunto de
camadas convolucionais alternadas com unidades lineares retificadas (ReLU) [15] camadas em série (ver
Fig. 2). As CNNs são diferenciadas das MLPs pelo compartilhamento de pesos entre as dimensões
espaciais. O propósito do compartilhamento de peso nas dimensões espaciais é fornecer invariância
espacial, que é uma característica desejada quando a entrada são imagens. Portanto, as redes neurais
convolucionais são ideais para redes de classificação e detecção de objetos que trabalham em conjuntos
de dados de imagem ou vídeo, o que requer a propriedade de invariância espacial. A dimensão espacial é
reduzida pela introdução de camadas de agrupamento, o que reduzirá o tamanho das dimensões espaciais.
O pooling também ajuda na introdução de invariância translacional e rotacional (ou covariância) na rede.
Os estágios finais em redes convolucionais também podem incluir uma ou mais camadas totalmente
conectadas que são equivalentes a camadas convolucionais com filtro de tamanho espacial 1 × 1 e entrada
de tamanho espacial 1 × 1.
RNNs são uma família de redes neurais que são usadas para processar sequências. Analogamente
às CNNs que compartilham o peso nas dimensões espaciais das imagens, as RNNs compartilham os
pesos nas dimensões temporais em sequências. O bloco de construção básico consiste em unidades
recorrentes, que possuem conexões de realimentação da saída para a entrada e mantêm o estado
(memória). Existem muitos tipos de unidades recorrentes, mas as mais comuns são unidades fechadas
como memória de longo prazo (LSTM como mostrado na Fig. 3 e RNN usando LSTM é mostrado na Fig.
4) e unidades recorrentes fechadas (GRU). Além disso, multiplicadores totalmente conectados e não-
linearidades, a capacidade de aprender, esquecer e emitir seletivamente o estado interno com base nos
coeficientes aprendidos é uma característica dessas unidades fechadas, o que lhes fornece a capacidade
de manter uma memória por períodos de tempo suficientemente longos como necessário. . Os coeficientes
das portas são aprendidos nos processos de treinamento.
Machine Translated by Google
28 P. Kaul e B. Lall
Podemos modelar camadas totalmente conectadas como matriz de coeficientes para multiplicação
de vetores de entrada seguida de não linearidade pontual. Para CNNs, utilizando a expansão de
entrada do tipo im2col [30] pode ser usada para converter o mapa de características de entrada de
qualquer camada convolucional para uma matriz 2D. Portanto, podemos representar a convolução
como um produto entre uma matriz e um vetor. Seja a matriz do filtro representada como F, e ÿ seja
o operador de expansão (im2col), a saída da camada convolucional pode ser representada da
seguinte forma:
vec(y) = vec(xl+1 ) = vec(ÿ(xl )F). (1)
Para uma sucessão de camadas com convoluções alternadas e operador pontual ÿ dado por max(x,
0), podemos representar as redes como
1
vec(y) = vec(...vec(ÿ(vec(ÿ(x) )F1))F2)...FJ ). (dois)
Para gráficos acíclicos direcionados (DAG) mais complexos, a mesma expressão pode ser
estendida. As redes neurais são treinadas minimizando uma função de risco estrutural que inclui um
termo usado para medir o erro entre a previsão do
Machine Translated by Google
30 P. Kaul e B. Lall
rede neural representada por y(i) e a verdade fundamental (yˆ)(i) . Geralmente, a função de
risco estrutural de um modelo consiste em um termo de risco empírico e um termo de
regularização, que pode ser representado como
(3)
ÿÿ = arg minÿ L(ÿ) + ÿ ÿ(ÿ)
n
1 (Ei)
L y(i) , yˆ + ÿ · ÿ(ÿ) (4)
= argminÿ n
i=1
L= .
dois
máximo suave
fc
incorporação
X0 x1 x2 x3
A topologia é um ramo da matemática que trata da caracterização de formas, espaços e conjuntos por sua
conectividade. Na topologia, expressamos a relação entre dois espaços através de mapas contínuos entre
eles.
Definição 3.1 Seja M um conjunto e P(M) o conjunto de todos os subconjuntos de M (ou seja, conjunto de
potências de M).
Um conjunto O ÿ P(M) é chamado de topologia, se todas as seguintes propriedades forem satisfeitas:
Definição 3.2 Uma função f : X ÿ Y entre dois espaços topológicos (X, TX ) e (Y, TY ) é chamada de
homeomorfismo se todas as seguintes propriedades forem satisfeitas:
Uma vizinhança de um ponto x em M é um conjunto N(x) contendo um conjunto aberto que contém o
ponto x. Uma família de vizinhanças de x implica um conjunto de pontos que estão “próximos de x”. Um
espaço topológico é chamado de Hausdorff (separado) se para quaisquer dois pontos distintos sempre
existirem vizinhanças disjuntas.
Definição 3.3 Um espaço topológico de Hausdorff paracompacto (M, O) é chamado de variedade topológica
d-dimensional se ÿp ÿ M : ÿU ÿ O : p ÿ U, ÿ homeomorfismo x : U ÿ x(U) ÿ Rd satisfazendo a seguinte: (i) x é
invertível: xÿ1 : x(U) ÿ U, (ii) x é contínuo wrt (M, O) e (Rd , Ostd ), (iii) xÿ1 é contínuo.
Uma variedade topológica d-dimensional é localmente homeomorfa ao espaço euclidiano d-dimensional (Rn)
em cada ponto. Assim, em cada ponto da variedade existe um mapeamento que mapeia um conjunto aberto
na variedade para uma parte do espaço euclidiano.
Esse mapeamento é chamado de gráfico. O conjunto desses gráficos sobrepostos que cobrem toda a
variedade é chamado de atlas. Dois gráficos sobrepostos são mostrados na Fig. 5.
Machine Translated by Google
32 P. Kaul e B. Lall
Definição 3.4 Uma curva em uma variedade M é um mapa suave (isto é, Cÿ) de algum intervalo
aberto (ÿ , ) de uma linha real em M.
Duas curvas ÿ1(0) e ÿ2(0) são tangentes em um ponto p em M se ÿ1(0) = ÿ2(0) = p e em
algum sistema de coordenadas local elas são tangentes no sentido usual de curvas em R .
Uma função com as três propriedades definidas na Definição 3.2 é chamada de bi-contínua.
Se existe uma função bi-contínua, dizemos que X e Y são homeomorfos. Para espaços
topológicos, os homeomorfismos formam uma relação de equivalência. As classes de
equivalência resultantes são chamadas de classes de homeomorfismo. No caso de variedades
suaves, a equivalência topológica (homeomorfismo) que mantém a suavidade é chamada de
difeomorfismo.
A Topologia Algébrica atribui objetos algébricos como grupos, cadeias e objetos semelhantes
a espaços topológicos. Dois espaços podem ser considerados topologicamente equivalentes
se os objetos algébricos aos quais são atribuídos são isomórficos. No contexto de caracterização
de redes neurais, a caracterização pode ser feita pela conectividade topológica do conjunto de
dados. Em seguida, a expressividade de uma determinada rede neural é avaliada como sua
capacidade de produzir regiões de decisão com a mesma conectividade. Este aspecto é
explicado com mais detalhes na Seção 4.
Machine Translated by Google
Uma variedade Riemanniana é qualquer variedade suave sobre a qual um tensor simétrico de
0
Formato (
dois
) é definido. Tal tensor g é chamado de métrica. Se a métrica não for positiva
definida, então tal geometria é chamada pseudo-Riemanniana. Em cada local da
variedade, tal métrica fornece um mapeamento entre espaços vetoriais e seus duais
(uma forma). Um campo vetorial é uma função com valor vetorial que atribui um vetor a qualquer
ponto em um manifold. Para qualquer campo vetorial A(x) em um ponto x, existe um mapeamento dado
pela métrica para o campo vetorial dual:
O campo vetorial duplo A˜ pode ser pensado como agindo em B que é equivalente a um
produto escalar padrão. Ei,
3. 4 P. Kaul e B. Lall
ÿÿ
= ÿ,ÿ . (8)
ÿÿ
ÿÿ ÿÿ ÿÿ ÿÿ
(ÿÿ˜ ) = ( , , , ...). (9)
ÿÿ1 ÿÿ2 ÿÿ3 ÿÿ4
Cada um dos componentes do gradiente do espaço vetorial dual pode ser dado por uma matriz
transformação ÿÿ como mostrado abaixo:
ÿ
ÿA _ ÿ
= (Aÿeÿ) (12)
ÿzÿ ÿzÿ
ÿAÿ _ ÿeÿ
= eÿ + Aÿ , (13)
ÿzÿ ÿzÿ
ção está completa, mas por uma questão de simplicidade, definimos adicionalmente Christoffel
µ
símbolos ÿ como
ÿÿ
segue:
ÿeÿ ÿ
=ÿ (14)
ÿÿeÿ .
ÿzÿ
ÿ = Aÿ = Aÿ
(ÿA ) ÿ ;ÿ ,ÿ
+ Aÿÿ ÿ ÿÿ. (quinze)
ÿ
ÿÿÿ _ = 1/2 ÿ gÿÿ(gÿÿ,ÿ + gÿÿ,ÿ ÿ gÿÿ,ÿ). (16)
d dxÿ ÿ
ÿxÿ dxÿ
+ ÿÿÿ = 0. (17)
dÿ dÿ dÿ dÿ
Por definição, a curvatura Riemanniana pode ser pensada como o desvio em um vetor
quando tentamos transportá-lo em paralelo ao longo de um loop fechado no espaço de coordenadas dado.
Tal laço é mostrado na Fig. 7. Os lados do laço consistem em linhas x = a, x =
a + ÿa, y = b e y = b + ÿb.
À medida que o vetor unitário passa pelo laço composto pelos pontos P, Q, R, S e
chega de volta ao ponto original P, encontramos o desvio deste vetor no final
comparado com a posição inicial. Este desvio é dado por:
ÿ ÿ ÿ ÿ ÿ ÿ
ÿV = ÿaÿb[ÿ ÿ ÿ + ÿ ÿ2ÿ ÿ ÿ ÿ1,2 ÿ2,1 ÿ1 (18)
ÿÿ2 ]Vÿ. ÿ1ÿ
Rÿ = ÿ ÿ ÿÿ + ÿ ÿÿÿ ÿÿ,ÿ
ÿ
ÿÿ,ÿ
ÿ ÿ
ÿÿ ÿ ÿ
(19)
ÿÿÿ ÿÿ ÿÿÿ ÿÿ .
Machine Translated by Google
36 P. Kaul e B. Lall
= (vinte)
Rÿÿÿÿ 1 gÿÿ(gÿÿ,ÿÿ ÿ gÿÿ,ÿÿ + gÿÿ,ÿÿ + gÿÿ,ÿÿ). dois
Para calcular o tensor de Ricci, podemos contrair a curvatura de Riemann no primeiro e terceiro
índices para dar.
6 C
kGauss = lim (1 ÿ ). (23)
ÿ0 dois
2ÿ
Os gráficos podem capturar dados espaciais e topológicos [7]. Exemplos incluem computação gráfica,
redes de sensores sem fio, imagens, análise de rede de citações, visão computacional (correspondência
de objetos 3D), gráficos podem ser usados para representar variedades.
Não abordamos a caracterização de redes neurais por meio de gráficos nas seções posteriores,
mas dar uma visão geral das técnicas de processamento de sinal para realizar o aprendizado profundo de
gráficos nesta seção
Suponha que G = (V, E, W) é um grafo, onde V representa os vértices, E as arestas
e W os pesos atribuídos às arestas. Também assumimos grafos não direcionados. Então
suponha
Machine Translated by Google
38 P. Kaul e B. Lall
t = D ÿ N. (25)
Aqui D é uma matriz de graus diagonal, que representa o número de arestas conectadas em
cada vértice, e N é a matriz de pesos que representa a força de cada aresta. Para um gráfico
em anel, isso consistiria em
20.000
ÿ 02000 ÿ
ÿ
D= ÿ ÿ 00200 ÿ ÿ ÿ
00020 ÿ
ÿ 00002 ÿ
uma vez que cada vértice está conectado a dois outros vértices, e
01000
ÿ 10100 ÿ
ÿ
N= ÿ ÿ 01010 ÿ ÿ ÿ
00101 ÿ
ÿ 00010 ÿ
N-1
g(i) = gˆ(ÿl)u(i) ele
. (27)
l=0
O problema com a transformada de Fourier do gráfico definida acima é que muitos operadores no
processamento de sinal tradicional não estão diretamente disponíveis. Alguns exemplos incluem:
Fig. 9 Gráfico de Petersen com valor de sinal positivo aleatório mostrado como a altura da barra no topo
cada vértice
– A modulação, por exemplo , e2ÿiÿ0t f (t) também está bem definida. No entanto, o espectro próprio não é
contínuo.
– Downsampling implica reduzir as amostras, mas o que cada outro vértice
significar no contexto do gráfico.
Isso não pode ser generalizado diretamente devido ao termo h(t ÿ ÿ ), que envolve uma tradução.
No entanto, podemos definir
N-1
(g ÿ h)(i) = gˆ(ÿl)hˆ(ÿl)u(i) l . (31)
0
40 P. Kaul e B. Lall
domínio do vértice, mas pode ser feito no domínio espectral. Soluções semelhantes podem ser
feitas para modulação, dilatação, engrossamento e downsampling. Finalmente, as CNNs podem ser
treinadas utilizando as definições de operador acima e utilizando convoluções no domínio da frequência.
Seja fN : RN ÿ R representar uma rede neural feed-forward de classificador binário com N entradas
e saída única. Então a complexidade de fN pode ser pensada como a complexidade topológica do
conjunto SN = x ÿ Rn| fN (x) ÿ 0. Essencialmente, este conjunto representa todas as entradas para
as quais a rede neural feed-forward dá uma classe positiva.
Para qualquer subconjunto S ÿ Rn, existem n números Betti denotados por bi(S), 0 ÿ i ÿ n ÿ 1. O
primeiro número Betti pode ser pensado como o número de componentes conectados no conjunto,
enquanto o i-ésimo O número de Betti é o número de buracos de dimensão (i + 1) em S. Por
exemplo, tanto a Esfera (Sÿ) quanto o Toro (Sÿ ) têm o primeiro número de Betti b0 = 1, pois ambos
têm um único componente conectado. O segundo número de Betti para a esfera b1(Sÿ) é 1, mas
para o toro b1(Sÿ ) é 2. Para a esfera existe um único furo bidimensional, pois apenas um único
círculo (deformável) pode ser desenhado em sua superfície . No entanto, para o toro, existem dois
orifícios bidimensionais, sendo o primeiro o círculo que pode ser desenhado sobre o orifício central
do toro e o segundo sendo aquele que pode ser desenhado através do tubo cilíndrico que forma o
toro (ver Fig. 10). Estes dois orifícios não são mutuamente deformáveis um ao outro.
Tabela 1 Limites superior e inferior do crescimento de B(SN ), para redes com h neurônios ocultos, n
entradas e as camadas ocultas . Arquitetura com muitas camadas será chamada de profunda, arquiteturas com
uma camada oculta será chamada de superficial. Tabela retirada de [5]
entradas Camadas ocultas Função de ativação Vinculado
Limites superiores
n 1 limite O(hn)
n 1 Arctan OU((n + h)n+2)
1
n 1 Polinômio, grau r 2
(2 + r)(1 + r)n+1
1 1 Arctan horas
Limites inferiores
hÿ1 n
n 1 Qualquer sigmóide n
n Muitos Qualquer sigmóide
2lÿ1
Limites superior e inferior para a soma dos números de Betti para um feed-forward neural
rede em função do número de camadas l, número de neurônios ocultos n e
número de entradas n, é derivado em [5]. A tabela com vários números de camadas e
funções de ativação é dada na Tabela 1.
A existência do limite inferior L implica que existe pelo menos uma rede N que
pertence à classe e para a qual B(SN ) < L vale, enquanto a existência de um
limite superior implica que U vale para todas as redes da classe, ou seja, B(SN ) > U para todas
redes.
Duas proposições importantes que são sugeridas a partir das tabelas.
Proposição 4.1 Para redes neurais feed-forward com uma única camada oculta, o
soma dos números Betti cresce na taxa polinomial no máximo com o número de números ocultos
unidades h, ie B(SN ) ÿ O(hn).
Proposição 4.2 Caso haja mais de uma unidade oculta, B(SN ) cresce exponencialmente com
o número de unidades ocultas, ou seja, B(SN ) ÿ ÿ(2h).
42 P. Kaul e B. Lall
Fig. 11 As saídas de rótulo positivo de redes neurais de camada oculta única, h12 e h26, de 2 entradas com 12
e 26 unidades ocultas, respectivamente, após treinamento nos conjuntos de dados D1 e D2 com exemplos
positivos em vermelho. As regiões destacadas da saída constituem a região de decisão positiva [17]
Definição 4.1 Dado um espaço topológico U, com números de Betti ÿn definidos como os buracos
de dimensão n, definimos a homologia como a sequência H(U) = Hn(U) com cada Hn(U) = Zÿn
sendo o n- ésimo grupo homológico. O primeiro número Betti ÿ0 corresponde ao número de
componentes conectados no espaço topológico.
Do nosso primeiro exemplo definido acima, H(D1) = {Z1, 0, 0, 0, ...} já que D1 tem 2 com
componentes conectados e sem furos de qualquer dimensão. Para o segundo exemplo, defina
H(D2) = {Z4,Z2, 0, 0, 0, ...}, pois possui 4 componentes conectados e dois furos
de dimensão 2.
Para calcular a homologia de qualquer conjunto, temos que assumir que os pontos são amostrados
de um objeto geométrico real. Como em pequenas escalas, cada ponto de dados é isolado,
Machine Translated by Google
a homologia de qualquer conjunto discreto de pontos é trivialmente H(D) = (Z)M , 0, 0, 0... Para
resolver este problema Zomordian e Carlsson desenvolveram homologia persistente [45]
baseada na homologia de filtrações de um espaço. Especificamente, a filtragem de um espaço
X o equipa com a seqüência de subespaços X0 ÿ X1 ÿ X2... ÿ X. Uma filtragem simples envolve
o crescimento de bolas de tamanho centrado em cada ponto e deixando X como a filtragem
resultante. À medida que cresce, os vários pontos se fundem e formam objetos geométricos
conectados, levando a mudanças na homologia. Também haveria novos orifícios de várias
dimensões que são formados. Além da formação, buracos e objetos conectados podem
desaparecer ou se fundir com o crescimento.
Essa mudança nos números de Betti de X com o
crescimento é resumida no diagrama de código de barras de persistência mostrado na Fig. 12.
Na figura, o ponto final esquerdo de uma barra é o ponto em que a homologia detecta um
componente específico e a extremidade direita é onde o componente se torna indistinguível .
Suponha que D seja algum conjunto de dados extraído de uma distribuição conjunta F, no
espaço topológico X × {0, 1} e X+ denotam a distribuição de rótulos positivos e Xÿ a distribuição de rótulos negati
Então Hs( f ) denota a homologia da região de decisão positiva f (x) > 0. Finalmente seja F = f :
X ÿ 0, 1 uma família de classificadores binários em X.
Teorema 4.3 Generalização Homológica. Se X = Xÿ1 ÿ X+1 e para todo f ÿ F com Hs( f ) =
H(X+), então para todo f ÿ F existe A ÿ X+ então f classifica erroneamente todo x ÿ A.
Os autores em [17] treinam redes totalmente conectadas com funções de ativação ReLU com
pesos de cada arquitetura inicializados para amostras de distribuição normal
N(0, ÿ01 )
Machine Translated by Google
44 P. Kaul e B. Lall
Fig. 13 Tabela de probabilidades estimadas de diferentes arquiteturas neurais para expressar certas
características homólogas dos dados após o treinamento. Acima: as probabilidades de homologias expressas com
ÿ0 em função de camadas e neurônios. Abaixo: As probabilidades de expressar ÿ1 ÿ {1, 2} como um
função de camadas e neurônios [17]
ÿp( f )
E p ( f, D) = min , 1 . (32)
H
ÿp(D)
ele
Também para selecionar uma arquitetura (l, h0) fase h limitante inferior, e restringindo
a análise para redes de camada única uma estimativa de limite inferior é obtida dada por
ele
Uma série de artigos de Stephane Mallat [2, 28, 29] e equipe utilizaram
teoria e transformações de espalhamento para analisar redes de aprendizado profundo, assumindo alguns
simplificações. A aprendizagem supervisionada pode ser definida como um método para estimar a
função de mapeamento entre dados de entrada e rótulos gerados, utilizando dados de treinamento
que é fornecido. Sejam q amostras de dados de treinamento, a função estimada seja ˜f (x) e a função
real seja f (x), e ÿ seja um subconjunto de Rd que é o padrão ,
Espaço euclidiano d -dimensional. Então:
Para problemas de regressão, f (x) está em R e para classificação f (x) é índice de classe
dentre todos os índices de classe possíveis. Este problema fica mal definido se não fizermos
suposições adicionais sobre f . O número de pontos N( ) que precisamos observar para garantir
ÿd . de maldição de dimensionalidade
que | f (x) ÿ f (x )| ÿ is ÿ Esta é, uma instância
implicando que o número de amostras necessárias cresce exponencialmente com a dimensão
de dados D. No entanto, se houver propriedades de regularidade conhecidas em f , ainda poderemos
estimar f (x) sem número exponencial de amostras. Assumindo que
f é Lipschitz. Ou seja, a taxa de variação da saída com a entrada é limitada, é a mais simples
suposição de regularidade. Exigimos formalmente:
Podemos possivelmente encontrar um operador contrativo ÿ, tal que ÿ(x) reduza a variabilidade
de x . No entanto, o operador ÿ deve ser restringido de tal forma que x pertencentes a diferentes
classes ainda sejam separados após a contração, ou seja, ÿ(x) = ÿ(x ) se f (x) = f (x ).
Se a função é constante em certas direções, então podemos realizar a redução da dimensionalidade
projetando para um subespaço dimensional inferior. Caso contrário, precisamos
para linearizar x através de transformações não lineares ÿ(x) de modo que o f (x) permaneça
constante em certas direções. A redução da dimensionalidade para o subespaço inferior pode
então ser realizado. Efetivamente, precisamos encontrar ÿ(x) tal que ˆf (x) seja o mais próximo
estimativa de f (x) possível.
46 P. Kaul e B. Lall
Para classificação, isso implica que mantemos a distância mínima entre as diferentes
classes.
O impacto das simetrias pode ser de duas formas distintas, mas relacionadas:
Para satisfazer o acima, precisamos de operadores invertíveis g tais que deixem o valor de
f inalterado ie f (gx) = f (x) para todo x ÿ ÿ. Notamos que a composição de duas simetrias
globais g1 e g2 é também uma simetria global g1.g2. Como uma identidade e um elemento
inverso estão sempre presentes, e o fechamento de grupo se mantém, essas simetrias formam
um grupo. Tais variedades diferenciáveis com uma estrutura de grupo são chamadas de grupos
de Lie [14]. Dizemos que G é um grupo de simetrias locais de f se:
(i) Traduções {ÿv,; v ÿ R2}, com ÿv(x)(u) = x(u ÿ v). (ii) Dilatações
{ÿs;s ÿ R+}, com ÿs(x)(u) = sÿ1x(sÿ1u). (iii) Rotações {ÿÿ; ÿ ÿ [0, 2ÿ]},
com ÿÿ(x)(u) = x(Rÿu). (iv) Simetria Espelhada: {e, M}, com M x(u1,
u2 ) = x(ÿu1, u2 ).
Todas as transformações acima podem ser combinadas no grupo afim Aff (R2) com 6 graus
de liberdade na representação.
Machine Translated by Google
As simetrias globais são difíceis de encontrar, então primeiro usamos simetrias locais. Estes
podem ser modelados como um grupo de traduções e difeomorfismos que deformam os sinais
localmente. Em aplicações de reconhecimento de imagem e fala, não existem grupos de simetria
de alta dimensão, no entanto, a estabilidade às deformações locais é esperada (ver Fig. 14). deixar
Então
xÿ = ÿÿ (x), xÿ (u) = x(u ÿ ÿ (u)). (43)
onde ÿÿ é uma mudança de variáveis. O termo xÿ está deformando as localizações dos pixels,
em vez dos próprios pixels.
O grupo de Lie mais simples de transformações é o grupo de tradução G = Rn. A ação de g ÿ
G = Rn sobre x ÿ ÿ é gx = x(u ÿ g). Como as traduções são definidas por um número limitado de
parâmetros (apenas dois nas imagens, deslocamentos nas dimensões xey), essas simetrias não
são muito poderosas. Também as simetrias de difeomorfismo são específicas da aplicação e do
conjunto de dados, por exemplo, no caso de dígitos MNIST, algumas transformações deixam o
dígito inalterado enquanto outras o alterariam [25]. Para linearizar a simetria local usamos a
transformação ÿ(x) que lineariza a ação de g ÿ G localmente. Por definição, ÿ é contínua de
Lipschitz se
48 P. Kaul e B. Lall
Usamos uma cascata de filtros em diferentes escalas para calcular a forma trans de espalhamento
com wavelets. Em cada escala usamos filtros wj,k que calculam as wavelets
ÿj,k = wj,k ÿ ÿjÿ1. Além disso, em cada estágio, realizamos a média em uma escala aumentada por
utilizando o filtro wj,0 para calcular ÿj = wj,0 ÿ ÿjÿ1. Coeficientes wavelet x j(u, k) =
x ÿ ÿj,k (u) oscilam na escala 2j , e a média de xj com ÿj produziria um sinal zero. Portanto, não
linearidades são necessárias para remover oscilações. Módulo(ÿ(ÿ) = |ÿ|)
é uma tal não-linearidade que calcula o envelope positivo. Também podemos usar
o ReLU dado por max(m,0), que também é um operador de contração semelhante ao modus. Qualquer
operador não linear para o qual |ÿ(ÿ) ÿ ÿ(ÿ )|ÿ|ÿ ÿ ÿ | pode ser considerado
contrativo. Média (ÿ(x ÿ ÿj,k (u)) com ÿJ coeficientes positivos de saída que são
localmente invariante em escala 2J . Exemplos de invariantes locais multiescala são mel-espectro em
fala e SIFT em imagens. Eles têm perda de informações devido à média e, portanto,
são calculados em pequenas escalas (por exemplo, 162 pixels para SIFT). Por isso não capturam
estrutura de grande escala e também falham em capturar interações de escala. transformação de espalhamento
usando operadores de módulo wavelet é mostrado na Fig. 16.
Machine Translated by Google
As redes neurais profundas são compostas por uma cascata de filtros lineares (convolução ou
totalmente conectadas) camadas intercaladas com não linearidades pontuais ÿ. Pela simplicidade,
uma arquitetura onde o filtro convolucional não adiciona nos canais de entrada é
usado.
Suponha que x j(u, k j) seja calculado pela convolução de canal único x jÿ1(u, k jÿ1)
ao longo de u, onde j é o índice da camada. Então
Para m = 1, os coeficientes xJ (u, kJ ) = ÿ(x ÿ ÿj1,k1 ) ÿ ÿJ (u) são os coeficientes wavelet. Para m =
2, ÿ(ÿ(x ÿ ÿj1,k1 ) ÿ ÿj2,k2 ) ÿ ÿJ (u) são invariantes complementares
medindo interações de x na escala 2j1 dentro de uma distância 2j2 e ao longo da orientação
e bandas de frequência definidas por k1 e k2. Veja a Fig. 17. Note-se que em caso de
imagens e fala a maior parte da energia está contida nos dois primeiros estágios, ou seja, m ÿ 2.
Se x é estacionário que ÿ(...ÿ((x ÿ ÿj1,k1 ) ÿ ÿj2,k2 ...) permanece estacionário porque
convoluções e operadores pontuais preservam a estacionariedade. Para um retificador ou módulo
ÿ(ÿ) = ÿ para ÿ ÿ 0. Assim, o ÿ na saída do filtro de média pode ser removido. Para uma banda-
Machine Translated by Google
Fig. 16 A transformada de espalhamento inclui operadores wavelet seguidos por operadores de módulo em
cascata formando uma estrutura em árvore. Em cada estágio, os coeficientes também são calculados através do
operador passa-baixa ÿ [2]
passe o filtro a não linearidade remove a fase ou sinal, que tem forte efeito de contração.
Podemos remover ÿ de todos os filtros passa-baixa, então a cascata de convoluções J
se reduz a m (número de filtros passa-faixa).
Machine Translated by Google
Fig. 18 Espalhamento inverso comparado ao processo Gaussiano. Primeira linha: texturas originais. Segunda linha:
processo gaussiano com covariância idêntica à primeira linha. Terceira linha: espalhamento inverso realizado com as
duas primeiras ordens de coeficientes de espalhamento [29]
Transformações de espalhamento não são inversíveis. No entanto, para um dado ÿJ (x) podemos
tentar encontrar x˜ tal que ||ÿJ (x) ÿ ÿJ (x˜)|| < Isso
ÿJ . pode ser conseguido inicializando x˜0 com ruído
branco gaussiano e usando gradiente descendente enquanto tenta reduzir ||ÿJ (x) ÿ ÿJ (x˜n)||. Na Fig.
18, a primeira linha é a textura original. A segunda linha mostra um processo gaussiano com a mesma
covariância que a textura original na primeira linha. A terceira linha mostra o espalhamento inverso
como descrito acima usando coeficientes de espalhamento com ordem m <= 2, 2J = N e K = 8. Como
pode ser visto na Fig. 18, os coeficientes de espalhamento são capazes de reproduzir muito mais
semelhança na textura do que Processo gaussiano com dois primeiros momentos idênticos à figura
original.
O método descrito em [34] analisa redes neurais profundas usando uma combinação de curvatura
Riemanniana e teoria de campo médio. Para simplificar a análise, eles assumem que as redes neurais
têm pesos aleatórios. A intuição que conduz aqui é que DNNs podem representar funções aleatórias
genéricas. A DNN também pode separar manifolds curvos na entrada em manifolds planos na saída.
Finalmente redes neurais mais profundas
Machine Translated by Google
52 P. Kaul e B. Lall
com o mesmo número de neurônios pode fazer esse desembaraçamento de forma mais eficaz do que
redes rasas.
Considere uma DNN com D camadas de pesos w1...wD e D + 1 camadas de vetores
x 0, ...x eDwlcom
ÿ RNl×Nlÿ1 w e polarizações
Nl neurônios na camada l,blxl ÿ RN . A saída do filtro
ele
, com não linearidade ÿ na camada l, para uma entrada x 0 são dados é dado por:
Aqui hl é a saída do filtro na camada l, e ÿ é uma não linearidade pontual que atua
em hl para gerar xl . Os pesos e vieses são inicializados com aleatório gaussiano
variáveis distribuídas da seguinte forma:
– wl ÿ N(0, ÿ2 ÿ/Nlÿ1).
eu j
– b ÿ N(0, ÿ2 b
).
À medida que uma variedade simples se propaga através da rede neural, a modificação em
sua geometria deve ser medida. O comprimento quadrado normalizado na entrada de
camada l é definida como
nl
1
ql = ( eu)
dois
(49)
nl
lÿ1
Através do teorema do limite central, esta quantidade irá convergir para zero médio gaussiano
variável aleatória para Nl grande . Como esta distribuição é processada através das camadas e
mapa iterativo de ql baseado no índice de camada l pode ser obtido na Eq. 49
Onde
dz
Dz = eÿz2/2 (51)
ÿ2ÿ
q1 = ÿ2wq0 + ÿ2 _ b (52)
1
q0 = x 0 x 0 . (53)
N0
A função V (na Eq. 50) é a variância iterativa, que prevê a mudança de comprimento como
entrada passa pela rede. É uma função côncava cuja interação com
linha unitária determina seus pontos fixos qÿ(ÿÿ, ÿb). Como pode ser visto na Fig. 19
Machine Translated by Google
Fig. 19 Variação de ql quadrado para rede com não linearidade tanh e 1000 unidades ocultas. a E o mapa de
comprimento foi mostrado para diferentes ÿw em ÿb. As linhas sólidas representam previsões teóricas enquanto
os resultados da simulação são mostrados com pontos. Os pontos fixos qÿ do mapa são mostrados como
estrelas. b O mapa de comprimento muda através das camadas e converge dentro de algumas camadas para
qÿ em todos os casos (linhas=teoria; pontos=simulação). c O ponto fixo é mostrado em função de ÿw e ÿb. d
Número de camadas em que o desvio fracionário do ponto fixo é menor que um. Os pares (ÿb; ÿw) em (a, b)
são marcados com círculos de cores combinadas em (c, d) [34]
1 nl
= hl i(x 0,a)hl i(x 0,b) a, b ÿ 1, 2. (54)
qlab N
i=1
Os termos q1 e ql
onze 22 é o comprimento que pode ser inferido diretamente da Eq. 50. Para o
termos não diagonais, um mapa de correlação C pode ser inferido para ql 12:
ql12 = C(clÿ1
12 , qlÿ1
11 , qlÿ1
22 |ÿÿ, ÿb)
= ÿ2 Dz1Dz2ÿ(u1)ÿ(u2) + ÿ2 b,
ÿ
Onde
clÿ1
12 z1 + 1 ÿ (clÿ1 )2z2 (56)
u2 = qlÿ1 22 12 ,
Machine Translated by Google
54 P. Kaul e B. Lall
1
cl 12 = (58)
C(clÿ112 , qÿ, qÿ|ÿÿ, ÿb). qÿ
O C-map sempre tem um ponto fixo cÿ = 1. A estabilidade do ponto fixo depende da inclinação do
mapa em 1, que é
ÿcl
12 dois
.
= ÿclÿ1 |c=1 = ÿ2 ÿ1ÿ Dz[ÿ ( qÿz)]
12
Então, três regiões são possíveis com base no valor de ÿ1 (veja a Fig. 20):
– para ÿÿ pequeno, cÿ = 1 é o único ponto fixo e é estável quando ÿ1 < 1 e quaisquer dois pontos
convergem à medida que se propagam pela rede. – à medida que ÿÿ aumenta, ÿ1 cruza 1 e um
novo cÿ é criado, diferente de 1. – para ÿÿ maiores os pesos fortes superam os vieses tornando a
entrada descorrelatada e ortogonal, levando a um ponto fixo estável em cÿ = 0.
Portanto , ÿ1(ÿw, ÿb) = 1 produz um limite de transição de fase no plano (ÿw, ÿb) separando-o
em fase caótica e fase ordenada com base na separação/convergência.
Notamos que log ÿ1 é o expoente de Lyapunov na teoria de sistemas dinâmicos.
Machine Translated by Google
Propagação através de Deep Net. Agora podemos tentar rastrear o comprimento de uma variedade à
medida que ela se propaga através de uma rede neural profunda. Na primeira camada
0
hl (0) = hl (x (ÿ)), (59)
onde x 0(ÿ) é uma variedade 1-D com ÿ sendo coordenadas intrínsecas do scaler. Podemos
escolher um círculo definido como:
A curvatura está relacionada com a aceleração que é definida como a taxa de variação da velocidade.
1
k(ÿ) = , (63)
R(ÿ)
LE = gE (ÿ)dÿ. (65)
Onde
gE (ÿ) = v(ÿ).v(ÿ). (66)
56 P. Kaul e B. Lall
dois
LG = gG(ÿ)dÿ. (68)
gE,l = ÿ1gE,lÿ1 ,
ÿ2 1
2 = 3 + ÿ1 dois
(kl ) ÿ1 (klÿ1 ) ,
gE,l = qÿ,
dois
(k1 ) = 1/ qÿ,
dois dois
Fig. 21 Um círculo múltiplo unidimensional está sendo inserido em três redes neurais diferentes com
diferentes ÿw e ÿb fixo = 0,3. um PCA é usado para projetar as saídas da camada oculta em simulações
para um subespaço tridimensional para plotagem. Apenas as camadas 5, 10 e 15 são mostradas. O
gráfico inserido mostra a energia relativa dos primeiros cinco componentes principais. Para ÿw = 4, os
valores singulares de energia máxima são distribuídos mais uniformemente e o círculo fica mais
emaranhado a cada camada sucessiva. b A variação na autocorrelação, cl 12( ÿ) = dÿql (ÿ; ÿ + ÿ)/ qÿ, é
mostrada em várias camadas. c A previsão teórica para a autocorrelação juntamente com a média e o
desvio padrão da autocorrelação medida é mostrada. De [34]
redes neurais baseadas em contexto geométrico diferencial, tenta superar essas deficiências. Ele
começa com as seguintes ideias e suposições.
58 P. Kaul e B. Lall
6. Como as transformadas são curvas sobre a base, podemos usar as ferramentas da Teoria
Geral da Relatividade que usa extensivamente a matemática da curvatura Riemanniana.
Tentamos realizar uma medição direta da curvatura Riemanniana para uma variedade de
transformações, que podem ter uma ou mais dimensões. As transformações selecionadas
dependem do tipo de dados e, para imagens, podemos usar transformações como translação ou
rotação ou uma combinação dessas. À medida que movemos o conjunto de validação de entrada
sobre a variedade de transformações, precisamos medir o gradiente de saída usando equações
de diferença. Os passos para essas medições são mostrados na Fig. 22. Os vários passos no
são descritos anteriormente na Seção 3.2.
onde as duas equações geram as duas coordenadas retangulares para todos os valores do
ângulo ÿ entre 0 a 2ÿ, enquanto t é uma constante. A variável di é o ângulo inicial da espiral que
é selecionado para ser 0 para a primeira espiral e ou ÿ para a segunda espiral.
No conjunto de treinamento, também adicionamos ruído gaussiano iid às coordenadas geradas
na forma de n(ÿ).
Para gerar o conjunto de dados para a rede neural, precisamos criar um conjunto de vetores
a partir das coordenadas geradas acima. Para isso usamos dois vetores aleatórios gaussianos
com variância unitária, u0 e u1, cada um de comprimento 1000, que multiplicamos pelas
coordenadas geradas anteriormente para criar o conjunto de dados de entrada para a rede neural.
Para criar o conjunto de treinamento, geramos ÿ aleatório para cada amostra de treinamento
a ser gerada e calculamos v usando este ÿ conforme mostrado na equação (71) acima. Este v é
o vetor de treinamento de entrada para treinar a rede neural. Uma instância particular do conjunto
de treinamento é representada na Fig. 23, onde os pontos vermelhos correspondem à primeira
classe e os pontos azuis à segunda classe. Para o conjunto de dados de validação (que será
usado para medir a curvatura), não geramos x e y através das equações espirais, mas
Machine Translated by Google
Treinamento
Treine a rede com SGD em conjunto de dados padrão
Avaliação
Crie um conjunto de dados de teste com transformações específicas e avalie
a rede treinada sobre ela, salvando os valores softmax z[i, j]
em vez disso, gere um gird inteiro de possíveis xi e yi . Usamos então a Eq. 71 para gerar
os vetores de validação.
Depois que os conjuntos de dados são criados e a rede treinada, testamos a rede em relação ao
validação definida e armazenar os valores softmax de saída. Esta saída softmax é usada para encontrar
vários gradientes e métricas de curvatura, conforme mostrado na Fig. 22. Em primeiro lugar, notamos que o
duas classes estão na variedade unidimensional (de parâmetro ÿ), mas não são linearmente
separável. A partir das regiões do classificador plotado como mostrado na Fig. 24, pode-se inferir
que a rede discrimina corretamente entre as duas classes. A única exceção
está no centro, onde temos alguma sobreposição. Traçamos os valores do scaler Ricci para o
todo o conjunto de validação como mostrado na Fig. 25. Notamos que as redes aprendem muito grandes
valores de curvatura para as regiões limítrofes que separam as duas classes. Nós inferimos que
Machine Translated by Google
60 P. Kaul e B. Lall
Fig. 23 Conjunto de treinamento com vermelho para classe 0 e azul para classe 1
a rede neural está aumentando a distância entre as classes nas regiões limítrofes para poder
discriminar entre as classes.
Podemos usar a observação acima para notar que quaisquer regiões limítrofes com
pequena curvatura podem ser áreas possíveis onde pequenas deformações/transformações
nos dados de entrada podem levar a erros de classificação. Outra observação interessante é
que as redes neurais aprendem a classificar de certas maneiras previsíveis mesmo nas
regiões onde não fornecemos nenhum dado de treinamento.
referências
62 P. Kaul e B. Lall
10. Cho K, Van Merriënboer B, Gulcehre C, Bahdanau D, Bougares F, Schwenk H, Bengio Y: Aprendendo
representações de frases usando RNN codificador-decodificador para tradução automática estatística (2014).
arXiv pré -impressão arXiv:1406.1078
11. Choquet-Bruhat, Cécile, Y., DeWitt-Morette, C., Dillard-Bleick, M.: Análise, Variedades e Física. Gulf
Professional Publishing (1982)
12. Cover, TM, Thomas, JA: Elements of Information Theory. Willie (2012)
13. Friedman, J., Hastie, T. e Tibshirani, R.: The Elements of Statistical Learning, vol. 1. Springer
Série em Estatística. Springer, Nova York (2001)
14. Gilmore, R.: Grupos de Mentiras, Álgebras de Mentiras e Algumas de Suas Aplicações. Courier Corp.
(2012)
15. Glorot, X., Bordes, A., Bengio, Y.: Redes neurais retificadoras esparsas profundas. In: Proceedings of the XIV
International Conference on Artificial Intelligence and Statistics, pp. 315–323 (2011)
16. Goodfellow, I., Bengio, Y. e Courville, A.: Deep Learning. Imprensa do MIT (2016)
17. Guss, WH, Salakhutdinov, R.: Sobre a caracterização da capacidade de redes neurais usando alge
topologia cerebral (2018). arXiv pré -impressão arXiv:1802.04443
18. He K, Zhang X, Ren S, Sun J: Aprendizagem residual profunda para reconhecimento de imagem. In
Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 770–778 (2016)
19. Hochreiter S, Schmidhuber J: Longa memória de curto prazo. Computação Neural. 9(8), 1735-1780
(1997)
20. Kaul, P., Lall, B.: Curvatura Riemanniana de redes neurais profundas. IEEE Trans. Rede Neural.
Aprender. Sistema (2019). [Link] 21.
Kearns, MJ, Vazirani, UV, Vazirani, U.: Uma Introdução à Teoria da Aprendizagem Computacional.
Imprensa do MIT (1994)
22. Krizhevsky, A., Sutskever, I., Hinton, GE: Classificação Imagenet com redes neurais convolucionais profundas.
In: Avanços em Sistemas de Processamento de Informação Neural, p. 1097–1105 (2012)
23. LeCun Y, Bengio Y, Hinton G: Aprendizado profundo. Natureza 521 (7553), 436-444 (2015)
24. LeCun, Y., Bottou, L., Bengio, Y., Haffner, P.: Aprendizagem baseada em gradiente aplicada ao documento
reconhecimento. proc. IEEE 86(11), 2278–2324 (1998)
25. LeCun, Y., Cortes, C.: banco de dados de dígitos manuscritos MNIST (2010)
26. Lee, JM: Manifolds Riemannianos: Uma Introdução à Curvatura, vol. 176. Springer, Nova York
(1997)
27. Lee, JM: Introduction to Smooth Manifolds, Vol. 218. Springer, Nova York (2013)
28. Mallat, S.: Espalhamento invariante de grupo. Comum. Puro Aplic. Matemática. 65(10), 1331–1398 (2012)
29. Mallat, S.: Entendendo redes convolucionais profundas. Fil. Trans. R. Soc. A 374 (2065),
20150203 (2016)
30. Matemática. im2col. [Link] Acessado em 10 de fevereiro
2019
31. Monti F, Boscaini D, Masci J, Rodola E, Svoboda J, Bronstein MM: Aprendizado profundo geométrico em
gráficos e variedades usando CNNs de modelo de mistura. In: Anais da CVPR, vol. 1 p. 3 (2017)
37. Saxe, AM, McClelland, JL, Ganguli, S.: Soluções exatas para a dinâmica não linear de aprendizagem em
redes neurais lineares profundas (2013). arXiv pré -impressão arXiv:1312.6120
Machine Translated by Google
38. Schutz, B.: Um Primeiro Curso em Relatividade Geral. Imprensa da Universidade de Cambridge (2009)
39. Sermanet, P., LeCun, Y.: Reconhecimento de sinais de trânsito com redes convolucionais multi-escala. In: Redes
Neurais (IJCNN), p. 2809-2813. IEEE (2011)
40. DI Shuman, SK Narang, P. Frossard, A. Ortega, P. Vandergheynst: O campo emergente de processamento de
sinais em gráficos: estendendo a análise de dados de alta dimensão para redes e outros domínios irregulares.
Processo de Sinal IEEE. Mag. 30(3), 83–98 (2013)
41. C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Angelov, D. Erhan, V. Vanhoucke, A. Rabinovich: Indo mais
fundo com convoluções. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,
pp. 1–9 (2015)
42. Topaz, C., Ziegelmeier, L., Halverson, T.: Análise de dados topológicos de modelos de agregação biológica. PlOS
um. 10. [Link] 43. Vapnik, VN, Chervonenkis, AY: Sobre a convergência
uniforme de frequências relativas de eventos para suas probabilidades. In: Medidas de Complexidade, pp. 11-30.
Springer, Cham (2015)
44. Wiatowski, T., Bölcskei, H.: Uma teoria matemática de redes neurais convolucionais profundas para extração de
recursos (2015). arXiv pré -impressão arXiv:1512.06293 45. Zomorodian A, Carlsson G: Computação de
homologia persistente. Discreto. Computar. Geom. 33(2),
249–274 (2005)
Machine Translated by Google
Y. Kochura
e-mail: [Link]@[Link]
E-mail
de V. Taran: vladtkv@[Link]
N. Gordienko
e-mail: [Link]@[Link]
A. Rokovyi
e-mail: [Link]@[Link]
O. Alienina
e-mail: [Link]@[Link]
S. Stirenko
e-mail: [Link]@[Link]
66 Y. Gordienko et ai.
executando treinamentos e tempos de inferência sobre os novos TPAs específicos sem informações detalhadas
sobre seus internos mesmo. As dependências de dimensionamento e os poderes de dimensionamento são
diferente para DNNs algoritmicamente diferentes (VGG16, ResNet50, CapsNet) e para
hardwares de computação arquiteturalmente diferentes (GPU e TPU). Esses resultados dão
a estimativa precisa do maior desempenho (taxa de transferência) dos TPAs como o Google
TPUv2 em comparação com GPU para o grande número de cálculos em condições de cálculos de baixo overhead
e alta utilização de unidades TPU por meio do
imagem grande e tamanhos de lote. Em geral, o uso de TPAs como o Google TPUv2 é
quantitativamente provou ser uma ferramenta promissora para aumentar o desempenho da inferência
e até mesmo estágios de treinamento, especialmente em vista da disponibilidade de
TPAs como TCU em Tesla V100 e Titan V fornecidos pela NVIDIA e outros.
1. Introdução
importante para as novas arquiteturas de computação nos sistemas baseados em nuvem ML/
DL (como Clarifai, Google Cloud Vision, Rekognition, Polly e Lex Amazon, Microsoft Azure
Cognitive Services, IBM Watson, etc.) que se tornam extremamente populares na comunidade
científica e aplicações comerciais. O principal problema das soluções baseadas em nuvem em
comparação com as soluções localizadas é a estimativa adequada dos tempos de treinamento
e inferência que são essenciais para aplicações comerciais.
Neste trabalho, discutimos brevemente alguns TPA especializados, enfatizamos suas
implementações baseadas em nuvem e demonstramos os resultados do estudo de desempenho
para algumas DNNs populares nessa infraestrutura e propomos o método de dimensionamento
para estimar o uso eficiente dessas DNNs nessa infraestrutura.
O principal objetivo deste artigo é investigar o dimensionamento do desempenho de
treinamento e inferência para as GPUs e TPUs disponíveis com um aumento do tamanho do
lote e do tamanho da imagem que permite fazer previsões de tempos de execução e estimar os
overheads ocultos em soluções proprietárias de TPA mesmo.
O restante deste capítulo é organizado da seguinte forma. Na Seção 2 damos um breve
resumo do estado da arte em processamento tensorial e TPAs usados. A seção 3 contém a
descrição da parte experimental relacionada ao hardware selecionado, conjunto de dados,
modelos e métricas utilizadas. A Seção 4 relata os resultados experimentais obtidos, a Seção 5
é dedicada à discussão desses resultados e a Seção 6 resume as lições aprendidas.
Em contraste com as tarefas tradicionais de HPC, as tarefas atuais de ML/DL são resolvidas
principalmente por meio de sistemas acelerados específicos, como GPU e FPGA, apesar de
seu uso para HPC antes. A essência dessas arquiteturas especializadas está em suas
habilidades intrínsecas de usar o alto paralelismo de dados de forma eficiente. Portanto, seu
uso se torna de fato padrão em aplicações ML/DL hoje em dia. Apesar do progresso óbvio,
mesmo os nós de máquina única acelerados por placas de GPU não podem satisfazer as
crescentes demandas de computação de problemas de ML/DL. Como resposta a esses novos
requisitos de maior poder de computação, surgem as seguintes tendências principais:
arquiteturas multi-nó (em sistemas de cluster e nuvem), TPAs especializados e suas
combinações [12].
A demanda adicional pelas novas arquiteturas de computação especializada está relacionada
ao uso de aplicativos ML/DL em vários dispositivos móveis, desde tipos de consumidores (como
smartphones, tablets, eletrônicos vestíveis, etc.) condução, etc). Essa demanda está intimamente
relacionada com os requisitos rigorosos para o menor uso de memória, o número de operações
de computação e o desperdício de energia relacionado [13–15]. Para resolver essas dificuldades,
TPAs especializados como TC [10] e TPU [11] aparecem e são amplamente utilizados agora
em implementações de consumo e industriais.
Machine Translated by Google
68 Y. Gordienko et ai.
As tendências recentes na aceleração de DNNs para dispositivos móveis com TPA podem ser
classificadas em algumas categorias: implementação otimizada, quantização e simplificação
estruturada que convertem uma DNN em uma compacta [16, 17]. Por exemplo,
simplificação estruturada envolve várias abordagens como fatoração tensorial [17],
conexão esparsa [18] e poda de canal [19].
As extensas revisões sobre o processamento eficiente de DNNs geralmente estão relacionadas a
várias perspectivas gerais, modelos, algoritmos de otimização e conjuntos de dados. Outros
considere técnicas de computação para componentes DNN em relação ao paralelismo inerente do
hardware de destino usando algumas técnicas para reduzir a memória geral
usado no hardware de destino [19].
Nesse contexto, a visão estratégica de paralelismo aplicada para DNNs é de grande
importância para avaliação, implementação e extensão de algoritmos e sistemas destinados a suportar
ambientes distribuídos. Recentemente, algumas comparações
foram discutidas medidas sobre as abordagens. Sua simultaneidade e o par-alelismo médio usando o
modelo de trabalho-profundidade foram analisados [12].
Tensor Cores (TCs) são aceleradores matemáticos de matriz de hardware propostos na arquitetura
Volta pela NVIDIA. Os Tensor Cores fornecem uma matriz de processamento de matriz 4 × 4 × 4 que
executa a operação D = A*B + C, onde A, B, C e D são matrizes 4 × 4.
TCs em combinação com a biblioteca TensorRT da NVIDIA nos permitem realizar várias
transformando e otimizando operações para gráfico DNN para melhorar o desempenho. Por
Por exemplo, eles incluem a eliminação de camadas com saída não utilizada para evitar
computação, fusão de algumas camadas separadas (convolução, polarização e ativação) em
uma única camada, fusão de camada horizontal, combinando as camadas funcionalmente semelhantes
(com o mesmo tensor de origem e as mesmas operações com parâmetros semelhantes), etc.
O TC e o TensorRT permitem o uso de otimizações de bits baixos. Por exemplo, a aritmética de
meia precisão (também chamada de FP16) reduz o consumo de memória de DNNs e
sobrecargas de leitura e gravação em comparação com a aritmética FP32 ou FP64. Ele permite a
implantação de DNNs maiores e faz isso mais rápido que a aritmética FP32 ou FP64. Está explicado
pelas operações matriciais mais eficientes em TCs, onde a operação D = A*B + C
podem ser implementados pelas entradas A e B que são matrizes FP16, enquanto as matrizes de
acumulação C e D podem ser matrizes FP16 ou FP32. Além disso, TensorRT
usa automaticamente TCs para inferência com aritmética FP16. Como resultado, o TensorRT +
TCs na placa GPU V100 da arquitetura Volta (com aritmética FP16) podem
acelerar o tempo de inferência. Por exemplo, inferência para o modelo ResNet-50 DNN na GPU
V100 + TensorRT + TCs (FP16) é ~4 × mais rápido que a inferência com precisão simples
(FP32) e ~8 × mais rápido que a inferência com precisão dupla (FP64) no mesmo
cartão sem TensorRT + TCs [20].
Mas deve-se notar que esses resultados foram relatados para o lote bastante diferente
tamanhos: 2 para V100 (FP32) e 16 para V100 + TensorRT + TCs (FP16), enquanto nosso
Machine Translated by Google
Apesar do altíssimo interesse de diversos fabricantes pelos novos TPAs direcionados para
aceleração de DNNs, são em sua maioria soluções proprietárias sem detalhes sobre sua
implementação, com documentação escassa e interfaces de programação de aplicativos
disponíveis. No entanto, eles se tornam partes integrantes de dispositivos de computação como
coprocessadores aceleradores de DNN, sistemas em chips ou ASICs para aplicações
específicas (como visão computacional ou DSP) e as revisões detalhadas com benchmarks
podem ser encontradas em outros lugares [24-28].
Machine Translated by Google
70 Y. Gordienko et ai.
Uma das maneiras de obter o mais alto desempenho na computação de GPU é ocultar a longa latência e
outras sobrecargas computacionais por paralelismo de alto nível de dados para obter uma alta taxa de
transferência, por exemplo, pelos altos valores de tamanho de lote [29, 30].
Normalmente, a amostragem em lote é implementada embaralhando todo o conjunto de dados, e uma
passagem inteira pelo conjunto de dados é chamada de época. Na medida em que um procedimento de
treinamento completo geralmente consiste em dezenas a centenas de tais épocas, a amostragem em lote
com o maior lote possível pode fornecer paralelização e taxa de transferência significativas [31, 32].
Visando a maior precisão, o tamanho ideal do lote representa uma compensação entre o tamanho
mínimo do lote 1 (uma amostra em cada iteração) para o gradiente descendente tradicional, que
comprovadamente converge, e o lote máximo (todo o conjunto de dados em cada iteração), quando a
convergência nem sempre é comprovada sua existência [33].
No entanto, o tamanho ótimo do lote é um problema de otimização complexo, na medida em que é
limitado por requisitos de precisão e eficiência. Mas é empiricamente conhecido que o tamanho do lote não
deve ser muito pequeno, nem muito grande para fornecer convergência e generalização [31, 34-36].
A maioria das operações no aprendizado pode ser modelada como operações em tensores (tipicamente
tensores como um modelo de programação paralela). Tais operações são altamente paralelas aos dados e
apenas os somatórios introduzem dependências. É por isso que a análise quantitativa de TPAs em
condições reais de trabalho pode trazer à tona os detalhes das próprias DNNs e TPAs.
Seguindo o paradigma comumente aceito, uma DNN pode ser representada por um grafcíclico
direcionado (DAG) onde os vértices são os cálculos e as arestas são os fluxos de dados. O paralelismo
computacional em tal grafo pode ser caracterizado por dois parâmetros principais: o volume de trabalho W,
que corresponde ao número total de vértices, e a profundidade D, que é o número de vértices em qualquer
caminho mais longo no DAG. Normalmente esses parâmetros podem caracterizar a complexidade
computacional em um sistema paralelo e obter alguma estimativa prévia para o tempo de execução.
Por exemplo, o tempo de execução em um único processador é ~W, em um número infinito de processos é
~D, e o paralelismo médio ~W/ D [12].
Além dos testes em GPU [37–42], recentemente foi realizada uma análise completa do desempenho
do Google TPU com algumas tentativas de estimar a influência dos hiperparâmetros no desempenho do
TPU também [11, 43]. Além disso, este trabalho visa dar resposta a algumas questões, nomeadamente,
quando pode ser mais eficiente utilizar GPU ou TPU durante as fases de treino e inferência para conjuntos
de dados de vários tamanhos e tamanhos de lote. Na próxima seção é dada uma breve descrição dos
conjuntos de dados usados, rede, equipamentos e métodos de medição.
Isso é especialmente importante tendo em vista o grande interesse para a influência dos hiperparâmetros
de redes neurais profundas (DNN) em seu tempo de execução e desempenho de treinamento [37, 38],
especialmente no que diz respeito ao tamanho do lote, taxa de aprendizado, funções de ativação, etc. . .
[39-42].
No entanto, esses benchmarks não levam em conta a complexidade computacional dos modelos e não
estimam treinamento e inferência em relação aos diferentes
Machine Translated by Google
Abaixo as DNNs que são usadas para aprendizado supervisionado serão consideradas, ou seja,
para otimizar uma DNN em um conjunto de amostras rotuladas (dados de trem) de tal forma
que para a amostra dada (dados de teste) a DNN retornaria um rótulo com alguma probabilidade .
Supõe-se que os dados de trem e de teste são partes diferentes do mesmo conjunto de dados.
Neste trabalho, consideramos um dos tipos de problemas de aprendizado supervisionado, a
tarefa de classificação, onde o objetivo é identificar a qual classe uma amostra provavelmente
pertence, por exemplo, as tarefas de visão computacional. Entre várias DNNs, selecionamos
vários representantes bem conhecidos de redes neurais convolucionais (CNNs) com estruturas
ligeiramente diferentes. Nas CNNs os neurônios são agrupados em camadas de vários tipos
que são descritos abaixo. Na visão computacional, as imagens são usadas como entrada e
representadas como um tensor de 4 dimensões N × C × H × W, onde N é o tamanho do lote (o
número de imagens no lote), H—é a altura da imagem (imagem tamanho), W—é a largura da
imagem (tamanho da imagem), C é o número de cores (canais de cores).
Nas DNNs (na verdade, CNNs) consideradas aqui, o número de recursos característicos
(canais), bem como a largura e a altura de uma imagem, diferem de camada para camada
devido à aplicação de vários operadores a seguir (descritos abaixo) [44, Four . Cinco].
Em uma camada convolucional, uma imagem em forma de tensor 3D x (ou seja, uma fatia
do tensor de lote 4D que representa o lote, ou seja, o conjunto de imagens) é convoluída pelos
operadores de convolução (kernels) Cout de sizeCin × Kh× Kw, onde Cin é a entrada da
camada, Cout é a saída da camada, Kh—é a altura e Kw é a largura do kernel de convolução.
Em termos de complexidade computacional, o trabalho (o número de operações matemáticas)
realizado nesta camada é igual a:
72 Y. Gordienko et ai.
características que correspondem a regiões maiores nos dados originais. Do ponto de vista
algorítmico este operador aumenta o trabalho local em cada camada de convolução por
operações Wpool , mas diminui o trabalho global diminuindo Hi e Wi também em cada camada
de convolução, geralmente por lei exponencial. Ele realiza alguma operação em sub-regiões
contíguas de dimensões reduzidas, como cálculo de valor máximo ou médio com a seguinte
complexidade computacional:
Deve-se notar que vários operadores adicionais, como passada, estofamento e dilatação
podem ser aplicados, o que pode modificar Hi e Wi e influenciar levemente o trabalho, mas
essas peculiaridades estão fora desta consideração.
A camada totalmente conectada é implementada como uma multiplicação matriz-matriz e
adição com a seguinte complexidade de computação:
do ponto de vista prático é especialmente importante usar o paralelismo de dados intrínseco em TPAs
aumentando o tamanho do lote e prevendo o impacto do tamanho do lote no tempo de treinamento e
inferência. O fato é que a maioria dos operadores de camada em DNNs são independentes em
relação ao número de amostras (por exemplo, imagens para CNNs) no lote e a forma de paralelização
direta é particionar o trabalho das amostras do lote entre vários recursos computacionais (por exemplo,
exemplo, núcleos e dispositivos de GPU ou núcleos de TPU, chips, pods, dispositivos e hosts).
Várias tentativas foram feitas para verificar a confiabilidade e viabilidade da intuição geral de que
um tamanho de lote maior levará a um melhor desempenho sem perder precisão considerável [31,
35, 36, 53, 54].
Neste trabalho os resultados da estimativa do tempo de treinamento e inferência para várias DNNs
são propostos com base em uma abordagem de escalonamento que permite usar o método de
escalonamento não apenas para previsão de tempo de execução para vários tamanhos de lotes e
objetos, mas também para análise dos overheads ocultos para algumas novas arquiteturas de
computação, especialmente baseadas em soluções proprietárias com uma noção limitada sobre sua
organização interna no exemplo do Google Cloud TPU.
Conjuntos de dados: O banco de dados MNIST (banco de dados do Instituto Nacional de Padrões e
Tecnologia Modificado) é um grande banco de dados de dígitos manuscritos (28 × 28 imagens) que
se torna uma referência padrão para sistemas de aprendizado, classificação e visão computacional
[55]. Ele foi derivado de um conjunto de dados maior conhecido como NIST Special Database 19 que
contém dígitos, letras maiúsculas e minúsculas manuscritas. Os subconjuntos desses conjuntos de
dados foram usados com o tamanho de lote máximo possível (para o melhor tempo de execução) a
partir de 8 imagens e até 60.000 imagens.
Equipamento: GPU e TPU. Os recursos de computação GPU e TPU foram usados para investigar a
influência da quantização suportada por hardware no desempenho das DNNs. O NVIDIA Tesla K80
foi usado como placas de GPU durante esses experimentos como recursos de nuvem do Google
Collaborative ([Link] O Google TPUv2 é organizado em módulos de 4
chips com desempenho de 180 TFLOPS, e 64 desses módulos são montados em 256 cápsulas de
chip com 11,5 PFLOPS de desempenho geral. O TPU 2.0 possui um conjunto de instruções otimizado
para executar o Tensorflow e capaz de treinar e executar DNNs. Uma versão de nuvem TPUv2 foi
usada como um hardware de TPU durante esses experimentos, onde 8 núcleos de TPU também
estavam disponíveis como recursos de nuvem do Google Collaborative.
Redes Neurais Profundas: As seguintes DNNs foram utilizadas para esta etapa da pesquisa: VGG16
[56], ResNet50 [46], CapsNet (mostrado na Fig. 1) [57]. A ideia por trás deles era usar os DNNs
conhecidos, mas usá-los para o conjunto de dados MNIST padrão de tamanho e complexidade
moderados para obter resultados por um período razoável.
Machine Translated by Google
74 Y. Gordienko et ai.
seu vínculo. Esse método de roteamento por acordo é superior ao mecanismo atual, como max-
pooling, porque as rotas de pool máximo são baseadas no recurso mais forte detectado na camada
inferior.
Métricas. Os valores de precisão e perda são calculados para as fases de treinamento, validação e
inferência, em seguida, as curvas de características operacionais do receptor (ROC) são construídas
e a área sob a curva (AUC) é calculada por classe como suas idades médias micro e macro. Para
enfatizar a contribuição da fase de inicialização para GPU e TPU, os seguintes tempos de execução
(para GPU e TPU) por imagem foram calculados para cada execução:
Os valores de aceleração foram calculados como tempos de execução de GPU divididos por tempos de execução de TPU.
Durante todas as tentativas foram realizadas as seguintes ações. Os valores de precisão e perda
foram calculados para as fases de treinamento, validação e inferência (Fig. 2), então as curvas de
características operacionais do receptor (ROC) foram construídas e a área sob a curva (AUC) foi
calculada por classe como suas médias micro e macro (Fig. 3) . Abaixo alguns exemplos dos
históricos de treinamento e validação são mostrados para GPU K-80 para o conjunto de dados
MNIST (Fig. 2) e os gráficos semelhantes foram obtidos para TPUv2 MNIST (são principalmente os
mesmos e não mostrados aqui devido à ausência de diferença ).
As curvas ROC e os valores AUC (Fig. 3) demonstram a excelente precisão de previsão para 10
épocas mesmo, que foram usadas para comparação com os experimentos semelhantes em TPUv2.
Fig. 2 Precisão (esquerda) e perda (direita) durante o treinamento e validação na GPU K80 para VGG16 (para toda a parte de
treinamento do conjunto de dados MNIST 60.000 imagens)
Machine Translated by Google
76 Y. Gordienko et ai.
Fig. 3 Curvas ROC e valores AUC para 10 classes no Google Cloud TPUv2 para ResNet50 (para a parte de teste do
conjunto de dados MNIST — 10.000 imagens)
Fig. 4 Tempos de treinamento (esquerda) e teste (inferência) (direita) versus tamanho do lote na GPU K80 (para toda a
parte de treinamento das imagens do conjunto de dados MNIST 60.000)
Fig. 5 Tempos de treinamento (esquerda) e teste (inferência) (direita) versus tamanho do lote no Google TPUv2 (para toda
a parte de treinamento do conjunto de dados MNIST 60.000 imagens)
Machine Translated by Google
Por exemplo, o número de parâmetros treináveis cresce por diferentes leis para VGG16: w ÿ s1/2
para um modelo com camadas de agrupamento e w ÿ s2 para um modelo sem camadas de
agrupamento (Fig. 6a). O número teórico correspondente de operações de ponto flutuante segue a
mesma dependência: N ÿ s1/2 para VGG16 com camadas de agrupamento e N ÿ s2 para VGG16 sem
camadas de agrupamento (Fig. 6b).
Quanto ao ResNet50 o número de parâmetros não foi alterado na implementação utilizada e o
número correspondente de operações de ponto flutuante foi constante (Fig. 7a). Em contraste no
CapsNet o número de parâmetros treináveis cresce como w ÿ s2 com o crescimento similar do número
correspondente de operações de ponto flutuante (que
Fig. 6 A dependência do número de parâmetros e operações de ponto flutuante na rede neural profunda
VGG16 em função do tamanho quadrado da imagem (comprimento)
Machine Translated by Google
78 Y. Gordienko et ai.
é semelhante ao modelo VGG16 sem camadas de agrupamento quando a maior parte dos cálculos é
realizada em camadas convolucionais) (Fig. 7b).
Na medida em que o treinamento e o teste reais incluem várias operações de suporte (como
processamento de dados, formatação e assim por diante), as despesas gerais de cálculo relacionadas aparecem.
Essas sobrecargas podem alterar crucialmente as estimativas dos tempos de parede com base no
número de operações de ponto flutuante, porque às vezes estão relacionadas à organização da
manipulação de dados, que pode ser diferente em vários hardwares, como GPU e TPU. Além disso, eles
podem ser obscurecidos pelos usuários, especialmente em implementações de nuvem (como no TPUv2
fornecido no Google Cloud).
Mas uma comparação das previsões teóricas com os tempos de parede reais como funções do
tamanho dos dados de entrada e do tamanho do lote pode fornecer estimativas reais e fornecer algumas
informações sobre os princípios de funcionamento de alguns hardwares. É por isso que a pesquisa
adicional foi relacionada à execução de vários testes de treinamento e teste no conjunto de dados MNIST
para DNNs já mencionados, como VGG16, ResNet50 e CapsNet em arquiteturas de GPU e TPU. O
objetivo principal foi fazer uma análise comparativa de GPU e TPU com base na dependência do tempo
e aceleração versus diferentes tamanhos de dados de entrada e tamanhos de lote. Para isso, foi utilizada
a análise de escala que está descrita na próxima seção.
Para demonstrar a principal diferença entre essas arquiteturas de computação (TPU e GPU), a
complexidade real de computação para várias DNNs algorítmicas diferentes foi estimada pela análise de
escala. A técnica de escalonamento é amplamente utilizada em vários campos da ciência [59, 60],
incluindo finanças [61], ciência da computação e redes [62], biologia [63], física [64], ciência dos materiais
[65], geologia [66 ], processos de agregação [67, 68], etc.
Tabela 1 As potências nas leis de escala para os números de parâmetros treináveis (ÿ) e os valores teóricos
números de operações de ponto flutuante (ÿ) para vários modelos DNN
Modelo ÿ (parâmetros) ÿ (FLOPs)
VGG16 0,50±0,05 0,50±0,05
que é típico para funções homogêneas. Por essas mudanças de vários parâmetros
para diferentes sistemas (por exemplo, diferentes arquiteturas de hardware desconhecidas) um
pode encontrar os argumentos para os quais essa função pode ser dimensionada com insights sobre o
razões para esta escala.
Retornando à seção anterior os números de parâmetros treináveis para todos
redes demonstram as seguintes leis de escala semelhantes:
4 Resultados
4.1 Vgg16
Para caracterizar o tempo de execução, será utilizada a seguinte notação (para VGG16
aqui e todos os outros DNNs abaixo):
80 Y. Gordienko et ai.
onde
tregime—o tempo de execução da parede em um dos dois regimes: regime de treinamento
(regime = treinar) e teste ou inferência (regime = inf );
Dd—os testes em execução, onde D é um dos dois dispositivos: GPU K-80 (D = G) e
TPUv2 (D = T), e d é o número de iteração em execução: 1 para 1ª, 2 para 2ª, 3 para d > 2; s—o
tamanho da imagem (o comprimento lateral das imagens quadradas H = W do conjunto de dados
MNIST
dimensionado de 28 × 28 a 96 × 96 pixels);
b—o tamanho do mini-lote (lote) de 8 ao número máximo possível de imagens em um lote.
Por exemplo, tinf = finf(s, b, T1) significa o tempo de inferência como uma imagem de função
size se tamanho do lote b para a 1ª iteração no dispositivo TPUv2.
As imagens superiores (Fig. 8a, b) representam a primeira e a segunda iterações para GPU
K80 (G1 e G2) e TPU (T1 e T2) onde foram observadas sobrecargas significativas, e as imagens
inferiores (Fig. 8c, d) representam as terceira iteração com despesas gerais muito menores.
Treinamento testando
(a) ttrain(s, Dd) para Dd ÿ [G1, G2, T1, T2] (b) tinf(s, Dd) para Dd ÿ [G1, G2, T1, T2]
(c) ttrain(s, Dd) para Dd ÿ [G3, T3] (d) tinf(s, Dd) para Dd ÿ [G3, T3]
Fig. 8 Tempo (por imagem) versus tamanho da imagem para regimes de treinamento (esquerda) e teste
(inferência) (direita) para VGG16. Cada curva corresponde ao tamanho do lote e iteração indicados na legenda
Machine Translated by Google
• TPU causa sobrecargas muito maiores (Fig. 8a, b) para os regimes de treinamento e teste (inferência)
para as iterações 1ª (T1) e 2ª (T2) em comparação com as iterações 1ª (G1) e 2ª (G2)
correspondentes na GPU. Essa diferença é especialmente alta para o tempo de latência na 1ª
iteração.
• TPU demonstra os overheads muito maiores para a 1ª iteração e 2ª iterações em comparação com
as iterações posteriores (Fig. 8c, d) (que têm os mesmos tempos de execução nos limites do desvio
padrão), mas a GPU demonstra os overheads muito maiores apenas para a 1ª iteração.
• A TPU causa grandes sobrecargas para os regimes de treinamento e teste (inferência) na 1ª (T1) e
2ª (T2) iterações em comparação com a 3ª (T3) iteração e em comparação com todas as iterações
na GPU. • Para as iterações posteriores à 2ª (Fig. 8c, d), a TPU demonstra tempos de execução
muito menores em comparação com a GPU. • Todas as curvas tempo versus tamanho da imagem para
cada regime tregime = fregime(s, b,it) são visualmente semelhantes e por isso a hipótese de que
são funções homogêneas é proposta e será verificada na próxima seção abaixo.
SC fregime(si, b,it) =
regime(si, b) = fregime smin, b,it bÿ f sÿ
vocês
regime(o(si), o(b),it) i
SC
= = sÿ
SC Ei Regime Fsc (si, b),
sÿ minbÿ f regime o smin , o(b),it f
SC
regime(o(si), o(b),it)
onde Fsc regime(si, b) = sÿÿ (9)
SC
regime min f o smin , o(b),it
Assumindo a baixa correlação entre sÿ e regime Fsc(si, b), ou seja, se o regime Fsc(si, b) = 0, após
Ei
covariância entre eles Cov sÿ eu , a média de cada regime de curva (si, b) sobre b pode-se
SC
obter:
vocês
sc
t = sÿ
regime(si, b) b Ei Regime Fsc(si, b) =
=sÿ
Ei Regime Fsc(si, b) b + Cov sÿ Ei
,
Regime Fsc(si, b) ÿ sÿ Ei
Ei,
= const. b (10)
onde Ci = regime Fsc(si, b)
Machine Translated by Google
82 Y. Gordienko et ai.
Treinamento testando
(e) F sb (
SC
), vs. b SC
F inf
sbi( vs. b
) , (f)
Comboio Ei
Fig. 9 Tempo por imagem para regimes de treinamento (esquerda) e teste (direita) para a 1ª e 2ª iterações
com grandes despesas gerais, ou seja, para Dd ÿ [G1, G2, T1, T2] para VGG16
Então a potência ÿ pode ser determinada após a plotagem log-log dos valores médios
SC
regime(si, b) b em função de si para cada curva das Figs. 9a, b e 10a, b e
vocês
Treinamento testando
(c) sb ( , )
SC
Comboio
vs. Sim (d) sbSC
inf (
, ) vs. Sim
Ei
b Ei
b
SC
SC
(e) F sb ( ) ,
Comboio Ei
vs. b
(f) Finfsbi
( ), vs. b
Fig. 10 Tempo por imagem para regimes de treinamento (esquerda) e teste (direita) para 3ª iteração (sem
despesas gerais) para VGG16
SC
log t ÿlog(Ci)
regime(si, b) b
ÿ= (onze)
log(sim)
Os resultados de tal ajuste são mostrados para o regime de treinamento nas Figs. 9c e 10c, e
para o regime de teste nas Figs. 9d e 10d. Se as suposições acima forem verdadeiras,
SC
então todos os pontos t como uma função ofsi no gráfico log-log deve se alinhar ao longo do
regime(si, b) b
Machine Translated by Google
84 Y. Gordienko et ai.
linha direta (Figs. 9c, d e 10c, d). Além disso, se as premissas acima forem
true, então todos os pontos para as funções Fsc regime(si, b) que são realmente versões reescalonadas
de você
SC
regime(si, b) pela divisão de si na potência ÿ determinada pelo ajuste deve entrar em colapso
para cada regime (Figs. 9e, f e 10e, f).
vocês
SC
regime(si, b)
Regime Fsc(si, b) = (12)
sÿ
Ei
Finalmente, ambas as condições são verdadeiras, ou seja, os pontos são alinhados ao longo de retas
linha (Figs. 9c, d e 10c, d) e as curvas de regime colapsam (Figs. 9e, f e 10e, f), que
confirmam as suposições anteriores e apoiam a ideia sobre a dependência de escala:
tregime(s) ÿ sÿr
s ÿGd,r bÿGd, rf SC
o smin , o(b),it
tGd,r(se, b) = Ei D'us, r =
ssc
r
(si, b) = tT
d,r(si, b) s ÿTd ,r bÿT d,r f SC
Ei T d,r(o(se), o(b),it)
Onde
(quinze)
ÿSd,r = ÿGd,r ÿ ÿT d,r
Fsc Gd,r(se, b)
. (16)
Ssc Sd,r(se, b) =
fscT d,r(se, b)
Tabela 2 O tamanho da imagem potencializa ÿDd,r nas leis de escala para o tempo de execução do VGG16
testando ÿ0,05 ± 0,02 0,02 ± 0,01 ÿ0,87 ± 0,02 ÿ1,00 ± 0,10 ÿ1,19 ± 0,1 ÿ1,11 ± 0,09
Treinamento ÿ0,03 ± 0,02 ÿ0,64 ± 0,02 ÿ0,62 ± 0,03 ÿ0,14 ± 0,12 ÿ1,14 ± 0,05 ÿ1,14 ± 0,05
Machine Translated by Google
speedup e ÿpr Sd,r—previsto a partir das leis de escala no tempo de execução para VGG16
ÿpr F
ÿ ajustado a partir de gráficos de aceleração
Sd,r =ÿGd,r ÿ ÿT d,r previsto a partir do tempo Sd,r
escalar
S1 S2 S3 S1 S2 S3
testando ÿ0,95 ± 0,10 ÿ1,21 ± 0,09 ÿ0,24 ± 0,09 ÿ0,91 ± 0,11 ÿ1,15 ± 0,08 ÿ0,40 ± 0,07
Treinamento ÿ0,11 ± 0,12 ÿ0,50 ± 0,05 ÿ0,52 ± 0,05 ÿ0,29 ± 0,13 ÿ0,70 ± 0,13 ÿ0,78 ± 0,08
Os valores da potência ÿSd,r para VGG16 podem ser obtidos por análises de escala para
tempo e speedup e comparados na Tabela 3.
As potências de tamanho de lote (ÿ) nas leis de escala para o speedup podem ser calculadas diretamente
de suas parcelas (Figs. 11a e 12a, b), exceto para o regime de teste com sobrecarga
(Fig. 12b) (Tabelas 4).
4.2 ResNet50
As imagens superiores (Fig. 13a, b) representam a primeira e a segunda iteração para GPU-K80
(G1 e G2) e TPU (T1 e T2) onde foram observadas sobrecargas significativas,
e as imagens inferiores (Fig. 13c, d) representam a terceira iteração com muito menor
despesas gerais (Fig. 14).
Os valores da potência ÿ para ResNet50 estão resumidos na Tabela 5.
Assim como no caso da rede VGG16, os poderes do tamanho do lote (ÿ) no dimensionamento
leis para a aceleração podem ser calculadas diretamente de seus gráficos (não mostrado aqui para
brevidade), exceto para o regime de testes com overheads (Tabelas 6 e 7).
4.3 CapsNet
Novamente, as imagens superiores (Fig. 16a, b) representam a primeira e a segunda iterações para GPU
K80 (G1 e G2) e TPU (T1 e T2) onde foram observadas sobrecargas significativas,
e as imagens inferiores (Fig. 16c, d) representam a terceira iteração com muito menor
despesas gerais (Fig. 17).
Os valores da potência ÿ para CapsNet estão resumidos na Tabela 8.
Novamente, as potências de tamanho de lote (ÿ) nas leis de escala para o aumento de velocidade podem ser calculadas
diretamente de suas parcelas (não mostradas aqui para brevidade), exceto para o regime de teste
com despesas gerais (Tabelas 9 e 10).
Machine Translated by Google
86 Y. Gordienko et ai.
Treinamento testando
SC
(e) S sb vs.
( )b,
Comboio Ei
(F) Sinf
sb( vs. b
SC
Ei
),
Fig. 11 Aceleração para regimes de treinamento (esquerda) e teste (direita) para a 1ª e 2ª iterações com
grandes despesas gerais, ou seja, para Dd ÿ [G1, G2, T1, T2] para VGG16
Machine Translated by Google
Treinamento testando
(c) s sb ( ) ,
SC
Comboio
vs. Sim (d)
SC
sb( ) ,
s inf vs. Sim
Ei
b Ei
b
SC
(e)
SC
s sb ( ) , vs. b
Comboio Ei
(F) s inf
sb( Ei ), vs. b
Fig. 12 Aceleração para regimes de treinamento (esquerda) e teste (direita) para 3ª iteração (sem sobrecargas)
para VGG16
88 Y. Gordienko et ai.
Tabela 5 O tamanho da imagem potencializa ÿDd,r nas leis de escala para o tempo de execução do ResNet50
testando ÿ0,33 ± 0,04 ÿ0,36 ± 0,07 ÿ0,59 ± 0,07 ÿ0,47 ± 0,11 ÿ1,08 ± 0,05 ÿ1,19 ± 0,05
Treinamento ÿ0,04 ± 0,30 ÿ0,24 ± 0,01 ÿ0,25 ± 0,02 0,03 ± 0,02 ÿ0,94 ± 0,05 ÿ0,97 ± 0,04
speedup e ÿpr Sd,r—previsto a partir das leis de escala no tempo de execução para ResNet50
ÿpr F
ÿ
= ÿGd,r ÿ ÿT d,r previsto a partir do tempo Sd,r ajustado a partir de gráficos de aceleração
Escala Sd,r
S1 S2 S3 S1 S2 S3
testando ÿ0,14 ± 0,11 ÿ0,72 ± 0,07 ÿ0,6 ± 0,07 ÿ0,38 ± 0,50 ÿ1,31 ± 0,75 ÿ0,76 ± 0,11
Treinamento 0,07 ± 0,30 ÿ0,7 ± 0,05 ÿ0,72 ± 0,04 0,21 ± 0,08 ÿ0,85 ± 0,04 ÿ0,91 ± 0,04
(uma)
Treinamento
(b) testando
(c) (d)
Fig. 13 Tempo (por imagem) versus tamanho da imagem para regimes de treinamento (esquerda) e teste (inferência) (direita)
para ResNet50. Cada curva corresponde ao tamanho do lote e iteração indicados na legenda
Machine Translated by Google
Treinamento testando
(c) t sb( ) ,
SC
Comboio Ei
b
vs. Sim (d)
SC
inf ( ) t sb
Ei
, b
vs. Sim
SC
SC
(e) F sb ( ) ,
Comboio Ei
vs. b
(f) Finfsbi
( ), vs. b
Fig. 14 Tempo por imagem para regimes de treinamento (esquerda) e teste (direita) para 3ª iteração (sem
despesas gerais) para ResNet50
Machine Translated by Google
90 Y. Gordienko et ai.
Treinamento testando
(c) s sb ( ) ,
SC
Comboio
vs. Sim (d)
SC
s inf
sb( ) vs. Sim
Ei
b eu ,
b
SC
(e)
SC
s sb ( ) ,
Comboio Ei
vs. b (F) s inf
sb( Ei ), vs. b
Fig. 15 Aceleração para regimes de treinamento (esquerda) e teste (direita) para 3ª iteração (sem sobrecargas)
para ResNet50
(uma)
Treinamento
(b) testando
(c) (d)
Fig. 16 Tempo (por imagem) versus tamanho da imagem para regimes de treinamento (esquerda) e teste (inferência) (direita)
para CapsNet. Cada curva corresponde ao tamanho do lote e iteração indicados na legenda
5 discussões
Os valores significativos de speedup para uso de TPU em comparação com GPU foram obtidos
para modelos bastante algoritmicamente diferentes para as iterações posteriores (> 2ª) quando o
as despesas gerais iniciais não têm impacto:
• VGG16 - até 10 × para regime de treinamento (Fig. 12a) e até 10 × para teste
regime (Fig. 12b),
• ResNet50 - até 6 × para regime de treinamento (Fig. 15a) e até 30 × para teste
regime (Fig. 15b),
• CapsNet - até 2 × para regime de treinamento (Fig. 18a) e até 4 × para regime de teste
(Fig. 18b).
Esses valores foram alcançados mesmo para uso em escala extremamente baixa do Google TPUv2
unidades (8 núcleos apenas) em comparação com a unidade GPU bastante poderosa (NVIDIA Tesla
K80). Mas a diferença crucial entre as arquiteturas GPU e TPU é o radicalmente
diferentes valores de tempo de latência para preparação de dados específicos e compilação de software
(muito maior para TPU) antes da 1ª e 2ª iterações. Essa diferença a favor
de GPU e é por isso que nenhuma aceleração > 1 foi observada para todos os modelos no 1º e
2ª iterações (Fig. 11).
Machine Translated by Google
92 Y. Gordienko et ai.
Treinamento testando
(c) sb ( ) ,
SC
Comboio
vs. Sim (d) sb
SC
inf (
, ) vs. Sim
Ei
b Ei
b
SC
SC
F sb ( ) , vs. b vs. b
(e) Comboio Ei
(f) Finfsbi
( ),
Fig. 17 Tempo por imagem para regimes de treinamento (esquerda) e teste (direita) para 3ª iteração (sem
despesas gerais) para CapsNet
Tabela 8 O tamanho da imagem potencializa ÿDd,r nas leis de escala para o tempo de execução do CapsNet
testando ÿ2,21 ± 0,07 ÿ2,78 ± 0,10 ÿ2,78 ± 0,10 ÿ2,30 ± 0,21 ÿ2,92 ± 0,06 ÿ2,92 ± 0,07
Treinamento ÿ2,08 ± 0,03 ÿ2,74 ± 0,06 ÿ2,74 ± 0,07 ÿ1,78 ± 0,14 ÿ2,95 ± 0,17 ÿ2,96 ± 0,17
Machine Translated by Google
speedup e ÿpr Sd,r—previsto a partir das leis de escala no tempo de execução para CapsNet
ÿpr ÿ
F
= ÿGd,r ÿ ÿT d,r previsto a partir do tempo Sd,r ajustado a partir de gráficos de aceleração
Escala Sd,r
S1 S2 S3 S1 S2 S3
testando ÿ0,09 ± 0,21 ÿ0,14 ± 0,10 ÿ0,14 ± 0,10 ÿ0,56 ± 0,13 ÿ0,42 ± 0,80 ÿ0,42 ± 0,08
Treinamento 0,3 ± 0,14 ÿ0,21 ± 0,17 ÿ0,22 ± 0,17 ÿ0,36 ± 0,15 ÿ0,42 ± 0,10 ÿ0,44 ± 0,10
• VGG16—para todos os tamanhos de lote e imagem, exceto para o menor tamanho de imagem e
tamanho do lote <10 no regime de treinamento (Fig. 12a),
• ResNet50—para todos os tamanhos de lote e imagem em regime de teste e para os vários
tamanho do lote no regime de treinamento, por exemplo, para b > 102 para o menor tamanho de imagem
(Fig. 15a),
• CapsNet — para todos os tamanhos de lote e imagem, exceto para o menor tamanho de imagem (s =
24) em regime de treinamento (Fig. 18a).
Esses resultados demonstram que o uso de TPAs como Google TPUv2 é mais eficaz
(mais rápido) do que GPU para o grande número de cálculos sob condições de baixa
Cálculos de despesas gerais e alta utilização de unidades TPU. Além disso, esses resultados
foram obtidos para várias DNNs algorítmicas diferentes sem prejuízo da
precisão e perda que foram iguais para GPU e TPU até o 3º significativo
dígito para o conjunto de dados MNIST, e confirmar os resultados semelhantes obtidos anteriormente [21]. Mas
é de salientar que estes resultados foram obtidos sem prejuízo da precisão
e perda para o conjunto de dados MNIST relativamente simples e baixo número de classes (=10).
As investigações atuais do impacto do lote, imagem e tamanho da rede ainda estão sob
trabalhar agora e seus resultados serão publicados em outro lugar [69].
Os resultados mais importantes e intrigantes são os comportamentos invariantes de escala de
dependências de tempo e aceleração que nos permitem usar esse método de dimensionamento para prever
os tempos de execução nas novas arquiteturas específicas sem informações detalhadas
sobre seus internos mesmo. As dependências de dimensionamento e os poderes de dimensionamento são diferentes
para DNNs algoritmicamente diferentes (VGG16, ResNet50, CapsNet) e para hardware de computação
arquiteturalmente diferente (GPU e TPU).
Machine Translated by Google
94 Y. Gordienko et ai.
Treinamento testando
(c) s sb ( ) ,
SC
Comboio
vs. Sim (d)
SC
s inf
sb( ) vs. Sim
Ei
b eu ,
b
SC
(e)
SC
s sb ( ) , vs. b (F) s inf
sb( Ei ), vs. b
Comboio Ei
Fig. 18 Aceleração para regimes de treinamento (esquerda) e teste (direita) para 3ª iteração (sem sobrecargas)
para CapsNet
6. conclusões
Neste trabalho é feita uma breve revisão para algumas arquiteturas especializadas de
processamento de tensores (TPA) atualmente disponíveis direcionadas ao processamento de
redes neurais. A complexidade de computação dos componentes algorítmicos diferentes de
algumas redes neurais profundas (DNNs) foi considerada em relação ao seu uso posterior em tais TPAs.
Para demonstrar a diferença crucial entre as arquiteturas de computação TPU e GPU, a
complexidade real de computação de várias DNNs algorítmicas diferentes foi estimada pela
análise de escala proposta de dependências de tempo e aceleração de treinamento e tempos de
inferência como funções de lotes e tamanhos de imagem.
O destaque principal foi feito nas DNNs amplamente usadas e algorítmicas diferentes, como
VGG16, ResNet50 e CapsNet, na implementação baseada em nuvem do TPA (atualmente
Google Cloud TPUv2). Os resultados do estudo de desempenho foram demonstrados pelo
método de dimensionamento proposto para estimativa do uso eficiente dessas DNNs nesta
infraestrutura.
Os resultados mais importantes e intrigantes são os comportamentos invariantes de escala de
dependências de tempo e aceleração que nos permitem usar o método de escala para prever os
tempos de treinamento de corrida e inferência nos novos TPAs específicos sem informações
detalhadas sobre seus internos mesmo. As dependências de dimensionamento e os poderes de
dimensionamento são diferentes para DNNs algoritmicamente diferentes (VGG16, ResNet50,
CapsNet) e para hardware de computação arquiteturalmente diferente (GPU e TPU).
Esses resultados fornecem a estimativa precisa do maior desempenho (taxa de transferência)
de TPAs como Google TPUv2 em comparação com GPU para o grande número de cálculos em
condições de cálculos de baixo overhead e alta utilização de unidades de TPU por meio da
imagem grande e lote tamanhos.
Machine Translated by Google
96 Y. Gordienko et ai.
Em geral, o uso de TPAs como o Google TPUv2 é quantitativamente comprovado como uma
ferramenta muito promissora para aumentar o desempenho das etapas de inferência e
treinamento mesmo, principalmente na visão de disponibilidade de TPAs específicos semelhantes
como TCU no Tesla V100 e Titan V fornecido pela NVIDIA e outros.
referências
1. LeCun, Y., Bengio, Y., Hinton, G.: Aprendizagem profunda. Natureza 521 (7553), 436-444 (2015)
2. Schmidhuber, J.: Aprendizado profundo em redes neurais: Uma visão geral. Rede Neural. 61, 85-117
(2015)
3. Wang, H., Raj, B.: Sobre a origem do aprendizado profundo. arXiv pré -impressão arXiv:1702.07800 (2017)
4. Bengio, Y.: Aprendizagem profunda das representações: olhando para o futuro. In: International Conference on
Statistical Language and Speech Processing, pp. 1-37. Springer, Berlim, Heidelberg (2013)
5. Lacey, G., Taylor, GW, Areibi, S.: Deep Learning em FPGAs: Passado, Presente e Futuro. arXiv
pré -impressão arXiv:1602.04283 (2016)
6. Nurvitadhi, E. et al.: As FPGAs podem superar as GPUs na aceleração de redes neurais profundas de próxima
geração? In: Proceedings ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (FPGA
'17), pp. 5–14 (2017)
7. Chen T, Du Z, Sun N, Wang J, Wu C, Chen Y, Temam O: DianNao: um acelerador de alto rendimento de
pequena pegada para aprendizado de máquina onipresente. In: Proceedings 19th International Conference on
ASPLOS, pp. 269–284 (2014)
8. Akopyan, F. et al.: TrueNorth: projeto e fluxo de ferramentas de um chip neurossináptico programável de 1
milhão de neurônios de 65 mW. IEEE Trans. Computar. Projeto Auxiliado Integr. Circuitos Sist. 34, 10 (2015),
1537-1557 (2015)
9. Ienne, P.: Arquiteturas para Neurocomputadores: Revisão e Avaliação de Desempenho. Relatório técnico.
EPFL, Lausanne, Suíça (1993)
10. Em: NVIDIA Corporation. Programando Tensor Cores em CUDA 9, acessado em 2019. https://
[Link]/programming-tensor-cores-cuda-9
11. Jouppi, NP, et al.: Análise de desempenho no datacenter de uma unidade de processamento tensorial. Int. Sym.
Computar. Arquiteto. 45(2), 1–12 (2017)
12. Ben-Nun, T., Hoefler, T.: Desmistificando o aprendizado profundo paralelo e distribuído: uma análise aprofundada
da concorrência. In: Repositório de Pesquisa em Computação (CoRR) (2018)
13. Howard AG, Zhu M, Chen B, Kalenichenko D, Wang W, Weyand T, Andreetto M, Adam H: MobileNets: redes
neurais convolucionais eficientes para aplicações de visão móvel. arXiv:1704.04861 (2017)
14. Real E, Aggarwal A, Huang Y, Le QV: Evolução regularizada para busca de arquitetura de classificadores de
imagens. arXiv:1802.01548 (2018)
15. Sze V, Chen YH, Yang TJ, Emer JS: Processamento eficiente de redes neurais profundas: um tutorial e
pesquisa. proc. IEEE 105(12), 2295–2329 (2017)
16. Han, S., Mao, H. e Dally, WJ: Compressão profunda: compressão de redes neurais profundas com poda,
quantização treinada e codificação huffman. arXiv pré -impressão arXiv:1510.00149 (2015)
17. Han S, Pool J, Tran J, Dally W: Aprendendo pesos e conexões para uma rede neural eficiente. In: Avanços em
Sistemas de Processamento de Informação Neural, p. 1135–1143 (2015)
18. Mallya, A., Lazebnik, S. Packnet: Adicionando várias tarefas a uma única rede por poda iterativa. In: Proceedings
of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 7765–7773 (2018)
19. Wang, E., et al.: Aproximação de rede neural profunda para hardware personalizado: Onde estivemos, para
onde vamos. arXiv pré -impressão arXiv:1901.06955 (2019)
20. Kama S, Bernauer J, Sharma S: Integração TensorRT acelera a inferência do TensorFlow, acessado em 2019.
[Link]
Machine Translated by Google
21. Kochura, Y., Gordienko, Y., Taran, V., Gordienko, N., Rokovyi, A., Alienin, O., Stirenko, S.: Influência do tamanho
do lote no desempenho de unidades de processamento gráfico e tensor durante o treinamento e fases de
inferência. In: Hu, Z. et ai. (Eds.) Anais ICCSEEA 2019, AISC 938, p. 1–11 (2019)
[Link] Corporation. Plataforma de inferência NVIDIA AI, acessada em 2019. [Link] com/content/dam/
en-zz/Solutions/Data-Center/tesla-product-literature/t4-inference-print [Link] 23.
Blog, R, Haußmann, E.: Comparing TPUv2 do Google contra V100 da Nvidia no ResNet 50, acessado em 2019.
[Link]
24. Qi, C.: Resumo da palestra convidada: desafios e soluções para incorporar a visão AI. Em: 2018 1º Workshop sobre
Aprendizado de Máquina com Eficiência Energética e Computação Cognitiva para Aplicativos Embarcados (EMC2),
p. 2. IEEE (2018)
25. Tsimpourlas, F., Papadopoulos, L., Bartsokas, A., Soudris, D.: Uma estrutura de exploração de espaço de design
para redes neurais convolucionais implementadas em dispositivos de borda. IEEE Trans. Com colocar. Ajudado
Des. Integrar Circuitos Sist. 37(11), 2212–2221 (2018)
26. Erofei, AA, Dru¸ta, CF, Cÿaleanu, CD: Soluções embarcadas para implementação de redes neurais profundas. In:
2018 IEEE 12th International Symposium on Applied Computational Intelligence and Informatics (SACI)
000425-000430. IEEE (2018)
27. Seppälä, S.: Desempenho da classificação de imagem de rede neural em CPU e GPU móvel, acessado em 2019.
[Link] Sipi_2018.pdf
28. Ignatov A, Timofte R, Chou W, Wang K, Wu M, Hartley T, Van Gool L: Ai benchmark: Running deep neural networks
em smartphones Android. In: Conferência Europeia sobre Visão Computacional, p. 288-314. Springer, Cham (2018)
29. Zhu H, Zheng B, Schroeder B, Pekhimenko G, Phanishayee A: DNN-Train: Benchmarking and Analyzing DNN
Training, acessado em 2019. [Link] .pdf
30. Jäger, S., Zorn, HP, Igel, S., Zirpins, C.: Treinamento paralelo de Deep NN: comparação de conceitos e frameworks
atuais. In: Proceedings of the Second Workshop on Distributed Infrastructures for Deep Learning, pp. 15-20. MCA
(2018)
31. Goyal P, Dollar P, Girshick RB, Noordhuis P, Wesolowski L, Kyrola A, Tulloch A, Jia Y, He K: Preciso, Grande
Minilote SGD: Treinamento ImageNet em 1 hora. arXiv:1706. 02677 (2017)
32. You Y, Zhang Z, Hsieh C, Demmel J: Treinamento ImageNet de 100 épocas com AlexNet em 24
Minutos. arXiv:1709.05011 (2017)
33. Le QV, Ngiam J, Coates A, Lahiri A, Prochnow B, Ng AY: Sobre métodos de otimização para aprendizado profundo.
In Proceedings 28th International Conference on Machine Learning, pp. 265–272 (2011)
34. Krizhevsky, A.: Um truque estranho para paralelizar redes neurais convolucionais. pré-impressão arXiv
arXiv:1404.5997 (2014)
35. Smith SL, Kindermans P, Le QV: Não diminua a taxa de aprendizado, aumente o tamanho do lote. arXiv:1711.00489
(2017)
36. You, Y., Gitman, I., Ginsburg, B.: Treinamento de grandes lotes de redes convolucionais. arXiv:1708.
03888 (2017)
37. Masters, D., Luschi, C.: Revisitando o treinamento em pequenos lotes para redes neurais profundas. arXiv pré
-impressão arXiv:1804.07612 (2018)
38. Devarakonda A, Naumov M, Garland M: AdaBatch: tamanhos de lote adaptáveis para treinamento de redes neurais
profundas. arXiv pré -impressão arXiv:1712.02029 (2017)
39. Smith, LN: Uma abordagem disciplinada para hiperparâmetros de rede neural: Parte 1 - taxa de aprendizado,
tamanho do lote, momento e queda de peso. arXiv pré -impressão arXiv:1803.09820 (2018)
40. Kochura, Y., Stirenko, S., Alienin, O., Novotarskiy, M., Gordienko, Y., Análise de desempenho de estruturas de
aprendizado de máquina de código aberto para vários parâmetros nos modos single-thread e multi-thread. In:
Avanços em Sistemas Inteligentes e Computação II. CSIT 2017.
Avanços em Sistemas Inteligentes e Computação, 689, p. 243-256. Springer, Cham (2017)
Machine Translated by Google
98 Y. Gordienko et ai.
41. Kochura, Y., Stirenko, S., Gordienko, Y.: Análise comparativa de desempenho de arquiteturas de redes neurais na
plataforma H2O para várias funções de ativação. In: 2017 IEEE International Young Scientists Forum on Applied
Physics and Engineering, p. 70–73 (2017)
42. Kochura, Y., Stirenko, S., Alienin, O., Novotarskiy, M., Gordienko, Y.: Análise comparativa de frameworks de código
aberto para aprendizado de máquina com caso de uso em modos single-thread e multi-thread. In: 12th IEEE
International Scientific and Technical Conference on Computer Sciences and Information Technologies (CSIT), 1,
pp. 373–376 (2017)
43. Jouppi, N., Young, C., Patil, N., Patterson, D.: Motivação e avaliação do primeiro tensor
unidade de processamento. IEEE Micro 38(3), 10–19 (2018)
44. Dumoulin, V., Vision, F.: Um guia para aritmética de convolução para aprendizado profundo. arXiv:1603.07285
(2016)
45. Ioffe, S., Szegedy, C.: Normalização em lote: acelerando o treinamento de rede profunda reduzindo o deslocamento
covariável interno. In: Anais da 32ª Conferência Internacional sobre Aprendizado de Máquina, p. 448–456 (2015)
46. He K, Zhang X, Ren S, Sun J: Aprendizado residual profundo para reconhecimento de imagem. In: IEEE Conference
on Computer Vision and Pattern Recognition, pp. 770–778 (2016)
47. Huang G, Liu Z, van der Maaten L, Weinberger KQ: Redes convolucionais densamente conectadas. In: Proceedings
IEEE Conference on Computer Vision and Pattern Recognition (2017)
48. Oyama, Y., et al.: Previsão de estatísticas de parâmetros SGD assíncronos para um sistema de aprendizado
profundo distribuído em larga escala em supercomputadores GPU. In: IEEE International Conference on Big Data
(Big Data), p. 66–75 (2016)
49. Viebke, A., Memeti, S., Pllana, S., Abraham, A.: CHAOS: um esquema de paralelização para treinamento de redes
neurais convolucionais no Intel Xeon Phi. J. Supercomputador. (2017)
50. Yan, F., Ruwase, O., He, Y., Chilimbi, T.: Modelagem de desempenho e otimização de escalabilidade de sistemas
distribuídos de aprendizado profundo. In: Proceedings 21st ACM International Conference on Knowledge
Discovery and Data Mining, p. 1355–1364 (2015)
51. Qi H, Sparks ER, Talwalkar A: Paleo: um modelo de desempenho para redes neurais profundas. In: Proceedings
International Conference on Learning Representations (2017)
52. Demmel J, Dinh G: Redes neurais convolucionais ótimas de comunicação. arXiv:1802.06905
(2018)
53. Seide F, Fu H, Droppo J, Li G, Yu D: Sobre a paralelização da descida do gradiente estocástico para DNNs de fala.
In: IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 235–239 (2014)
54. Awan AA, Bedorf J, Chu CH, Subramoni H, Panda DK: Treinamento DNN Scalable Distribuído usando TensorFlow
e CUDA-Aware MPI: Caracterização, Projetos e Avaliação de Desempenho. arXiv pré -impressão arXiv:1810.11112
(2018)
55. LeCun, Y., Cortes, C., Burges, CJ : banco de dados de dígitos manuscritos MNIST, acessado em 2019. http://
[Link]/exdb/mnist 56. Simonyan, K., Zisserman, A.: Very redes convolucionais profundas para coleta de
imagens em larga escala. In: Representações de Aprendizagem de Conferências Internacionais (2015)
57. Sabour, S., Frostt, N., Hinton, GE: roteamento dinâmico entre cápsulas. In: Avanços em Neural
Sistemas de Processamento de Informação, p. 3856–3866 (2017)
58. Abadi, M., et al.: Tensorflow: um sistema para aprendizado de máquina em larga escala. In: 12º Simpósio USENIX
sobre Projeto e Implementação de Sistemas Operacionais, p. 265–283 (2016)
59. Sornette, D.: Fenômenos Críticos em Ciências Naturais: Caos, Fractais, Auto-organização e
Desordem: Conceitos e Ferramentas. Springer Science & Business Media (2006)
60. Badii, R., Politi, A.: Complexidade: Estruturas Hierárquicas e Escala em Física, Vol. 6. Cam
ponte University Press (1999)
61. Mantegna, RN, Stanley, HE: Econofísica: dimensionamento e seu colapso nas finanças. J. Stat.
Físico 89(1–2), 469–479 (1997)
62. Barabási, AL, Albert, R.: Emergência de dimensionamento em redes aleatórias. Ciência 286 (5439),
509–512 (1999)
Machine Translated by Google
63. GB West, JH Brown, BJ Enquist: A origem das leis de escala universal na biologia. Biologia de Escala,
87-112 (2000)
64. Cardy, J.: Escala e Renormalização em Física Estatística, Vol. 5. Universidade de Cambridge
Imprensa (1996)
65. Gordienko, YG: Simulação de dinâmica molecular da evolução da subestrutura de defeitos e mecanismos
de deformação plástica em nanocristais de alumínio. Metalofiz. Noveishie Tekhnol. 33(9), 1217–1247
(2011)
66. Torabi, A., Berg, SS: Escala de atributos de falha: uma revisão. Mar. Pet. Geol. 28(8), 1444-1460
(2011)
67. Gordienko, YG: Mudança de escala e aparência de distribuição de tamanho sem escala na agregação.
cinética por regras aditivas. Física A 412, 1-18 (2014)
68. Gordienko, YG: Modelo generalizado de crescimento agregado impulsionado pela migração –
distribuições assintóticas, leis de potência e aparente fractalidade. Int. J. Mod. Phys. B 26(01), 1250010 (2012)
69. Yu J, Tian S: Uma revisão da compressão de rede com base na poda profunda da rede. In: 3ª Conferência
Internacional de Engenharia Mecatrônica e Tecnologia da Informação (ICMEIT 2019). Atlantis Press
(2019)
70. Cheng J, Wang PS, Li G, Hu QH, Lu HQ: Avanços recentes na computação eficiente de redes neurais
convolucionais profundas. Frente. Tecnol. Elétron. Eng. 19(1), 64–77 (2018)
71. Zhu, M., Gupta, S.: Podar ou não podar: explorando a eficácia da poda para modelo
compressão. arXiv pré -impressão arXiv:1710.01878 (2017)
72. Gordienko Yu., Kochura Yu., Taran V., Gordienko N., Bugaiov A., Stirenko S.: Poda de canal iterativa
adaptativa para acelerar redes neurais profundas. XI Conferência Científica e Prática Internacional
sobre Eletrônica e Tecnologias da Informação, Lviv, Ucrânia, 16 a 18 de setembro de 2019 (aceito)
73. Li Y, Liu Z, Xu K, Yu H, Ren F: Uma arquitetura de acelerador FPGA com desempenho superior a GPU
para redes neurais convolucionais binárias. ACM J. Emerg. Tecnol. Computar. Sistema 14(2), 1–16
(2018)
Machine Translated by Google
VZ Attar
e-mail: [Link]@[Link]
1. Introdução
Avaliação de
codificador automático
Arquiteturas
formulários fatores
Aplicações de autoencoders em Fatores que afetam o desempenho
visão computacional, inteligência artificial, dos autoencoders, como treinamento,
processamento de linguagem natural, função objetivo, função de ativação,
sistemas baseados em física, análise de big data tamanho da camada e profundidade da rede
O conteúdo deste capítulo está estruturado da seguinte forma. A Seção 2 fornece uma visão geral
de arquitetura geral e taxonomia proposta dos autoencoders. variantes de
autoencoders foram discutidos na Seção 3. A Seção 4 trata de fatores como
procedimentos de treinamento, estratégias de regularização que afetam a funcionalidade de modelos
baseados em autoen coder. As características dos autoencoders juntamente com sua adequação
para a aplicação ou tarefa foram resumidas na Seção 5. A conclusão é mencionada
na Seção 6.
Autoencoders são arquiteturas de rede neural autossupervisionadas que são usadas para
realizar compactação de dados em que as funções de compactação e descompactação são
(i) com perdas (ii) específicos dos dados e (iii) aprendidos com os próprios dados. Para construir um
autoencoder, três coisas, a saber, uma função de codificação, uma função de decodificação e
uma função de distância são considerados. A função de distância é usada para calcular a
perda de informação entre a representação comprimida e a entrada original. a
codificador e decodificador são escolhidos para serem funções paramétricas (expressas via neural
redes) e ser diferenciável por função de distância. Isso permite a otimização
Machine Translated by Google
Codificador Decodificador
x h r
Fig. 2 Arquitetura geral de um autoencoder
L = |x ÿ g( f (x))| (1)
onde x é a entrada tal que x ÿ Rd e x geralmente é calculada a média sobre algum conjunto de
treinamento de entrada. A perda L penaliza a função g( f (x)) por ser diferente de x. Essa perda L
pode ser definida como regularização L2 de sua diferença. Mantendo o tamanho da representação
latente pequeno e escolhendo a capacidade adequada das funções de codificação e decodificação,
qualquer arquitetura de autoencoder pode ser bem treinada. A Figura 3 mostra a taxonomia de
autoencoders com base em vários fatores a serem considerados para projetar os autoencoders. Os
detalhes dos componentes descritos na Fig. 3 foram fornecidos nas seções subsequentes deste
capítulo.
3 Variantes de Autoencoders
tem várias camadas ocultas. Com base na dimensionalidade do vetor espacial latente
(representação) h, os autoencoders podem ser classificados como autoencoders subcompletos
e supercompletos. É mais importante e útil treinar o autoencoder para executar a tarefa de
copiar uma entrada para a saída restringindo a representação latente. Um autoencoder cuja
dimensão do vetor espacial latente h é menor que a dimensão da entrada é chamado de
subcompleto. Com o autoencoder incompleto, um modelo é forçado a aprender os recursos
mais essenciais dos dados de treinamento. Se as funções de codificação e decodificação
receberem muita capacidade, o autoencoder executará a tarefa de copiar a entrada para a
saída sem aprender os recursos essenciais da distribuição de dados. Esse problema surge
quando as dimensões de representação latente são iguais às dimensões de entrada e, no caso
de autoencoders supercompletos, as dimensões de representação latente são maiores que as
dimensões de entrada. Os autoencoders podem ser implementados como unidades totalmente
conectadas, baseadas em convolução ou baseadas em recorrentes. As variantes de
autoencoders foram discutidas seguindo as categorias como EAs específicos de aplicação, EAs
regularizados, EAs robustos tolerantes a ruído e EAs generativos. Muitas variantes de autoencoders
Machine Translated by Google
foram apresentados até a data em cada uma das categorias mencionadas. Neste capítulo,
autoencoders amplamente utilizados foram discutidos.
Esta é a forma mais simples de autoencoder com 3 camadas de rede neural viz. entrada
camada para codificação, camada oculta representando a representação compactada e
camada de saída para decodificação. A Figura 4 mostra a arquitetura do autoencoder vanilla.
Normalmente, uma única camada não é suficiente para aprender o discriminativo e representativo
recursos dos dados de entrada. Portanto, os pesquisadores empregam codificadores profundos (multicamadas ou
deep) para melhor aprendizado de representação e redução de dimensionalidade. Hinton et ai.
[11] primeiro propôs o autoencoder profundo para redução de dimensionalidade.
Deep autoencoder [11] constitui duas redes de crenças profundas simétricas para codificação e decodificação,
cada uma com 4-5 camadas rasas. Máquina Boltzmann restrita
(RBM) atua como o bloco básico da rede de crenças profundas. O autoencoder profundo funciona
em 3 fases como pré-treino, desenrolamento e ajuste fino.
Inicialmente, uma pilha de RBMs com uma camada para detecção de recursos é usada para pré-treinamento
de tal forma que as ativações de recursos geradas pelo primeiro RBM são usadas como
entrada para o próximo RBM. Esses RBMs são desenrolados após o pré-treinamento para obter uma profunda
autoencoder que pode ser ajustado usando back-propagation. A Figura 5 mostra o
projeto de autoencoder profundo que é obtido desenrolando a pilha de RBMs.
Codificador Decodificador
reconstruído
Original
Entrada Entrada
Camada oculta
"gargalo"
Entrada reconstruída
T
W1
2000
T
W2
1000 Decodificador
T
W3500 _
T
W4
dormente
30
representação
W4
500
W3
1000 Codificador
W2
2000
W1
Entrada Original
Autoencoder divergente [12] é bom para resolver as tarefas de classificação N-way. Ele
transforma a entrada em espaço representacional distribuído. O desvio entre a entrada
reconstruída e a original é usado para classificação.
Entrada reconstruída
Convolução 28×28×1
Convolução 28×28×16
28×28×8 Upsample
14×14×8 Upsample
Convolução 7×7×8
7 × 7 × 8 Upsample
dormente
4×4×8 MaxPool
representação
Convolução 7×7×8
7×7×8MaxPool
Convolução 14×14×8
Codificador
14×14×16 MaxPool
Convolução 28×28×16
28×28×1 entrada
Entrada Original
a convolução transposta nas imagens resulta na geração de artefatos quadriculados nas imagens reconstruídas [13].
Para extrair com precisão as informações de uma rede, muitos problemas no domínio da visão computacional,
análise de redes sociais e processamento de linguagem natural são representados usando o gráfico ou a estrutura
da rede. Autoencoder convolucional de subgrafo baseado em profundidade (DS-CAE) [14] modela informações de
conteúdo de nós e estrutura de rede para aprendizado de representação de rede. Ele mapeia gráficos para espaços
não lineares de alta dimensão, preservando as informações locais e globais no espaço original. Ele usa filtros de
convolução para extrair os recursos locais por convolução sobre o conjunto completo de subgrafos de um vértice.
EA baseado em RNN
Problemas de predição de sequência são difíceis de lidar, pois o comprimento das sequências de entrada varia em
problemas de predição de sequência e a maioria das redes neurais requer entrada de comprimento fixo para
processamento. Outro desafio é que a ordenação temporal das observações torna a extração de recursos uma tarefa
difícil, pois fornecer uma entrada para modelos de redes neurais supervisionadas precisa de conhecimento de
domínio. Muitos aplicativos baseados em modelagem preditiva precisam de previsão como saída, que por si só é
uma sequência. Portanto, redes neurais recorrentes (RNNs), como Long Short-Term Memory (LSTM), são projetadas
para suportar dados de sequência como entrada. O modelo RNN Encoder-Decoder proposto em [15] é bom para
lidar com o problema de predição de sequência como a tradução automática estatística. O codificador e o
decodificador neste modelo são construídos usando redes neurais recorrentes.
No AE baseado em RNN, a sequência de entrada de comprimento variável é mapeada para vetor de comprimento
fixo usando o codificador. Esse vetor de comprimento fixo é mapeado de volta para a sequência de saída de
comprimento variável usando o decodificador. Tanto o codificador quanto o decodificador foram treinados em
conjunto para maximizar a probabilidade da sequência de saída dada uma sequência de entrada.
Autoencoder LSTM
Srivastava et ai. [16] descreveram o autoencoder LSTM como uma extensão do AE baseado em RNN para aprender
a representação de dados sequenciais de séries temporais, áudio, texto e vídeos. Neste modelo, o codificador e o
decodificador são construídos usando LSTM. O codificador LSTM aceita uma sequência de vetores na forma de
imagens ou recursos. O decodificador LSTM recria a sequência alvo dos vetores de entrada na ordem inversa.
Conforme alegado pelos autores, recriar a sequência de entrada na ordem inversa torna o processo de otimização
mais tratável. Decoder é projetado usando 2 maneiras viz. condicional e incondicional.
Um decodificador condicional recebe o quadro de saída previamente construído como entrada, enquanto o
decodificador incondicional não recebe o quadro de saída criado anteriormente.
O autoencoder composto LSTM [16] executa tanto as tarefas de reconstrução da sequência de quadros de vídeo
quanto a previsão do próximo quadro de vídeo. Neste, o codificador LSTM representa tal estado com base no qual
os próximos quadros podem ser previstos e os quadros de entrada podem ser reconstruídos.
Machine Translated by Google
Autoencoders regularizados usam uma função de perda para que o modelo suporte as seguintes
propriedades como capacidade de reconstruir a entrada aprendendo a distribuição de dados,
representação esparsa e robustez para lidar com dados ruidosos [17]. Embora o modelo possa
servir como um autoencoder não linear e supercompleto, ele ainda pode aprender os recursos
salientes da distribuição dos dados de entrada.
Autoencoders esparsos são usados para extrair os recursos esparsos dos dados de entrada.
As duas maneiras de impor a restrição de esparsidade na representação podem ser dadas como
segue. (i) aplicar penalidade nos vieses das unidades ocultas [18, 19] (ii) penalizar a saída de
ativação do espaço latente (unidade oculta) [20]. Em autoencoders esparsos [18, 21] unidades
ocultas são mais do que unidades de entrada, embora apenas um pequeno número de unidades
ocultas possa estar ativo em algum momento. Autoencoders esparsos impõem penalidade de
esparsidade (h) na camada oculta, além do erro de reconstrução para impedir que a camada de
saída copie os dados de entrada. Portanto, a função de perda pode ser dada como mostrado na
Eq. (2) onde (h) é a penalidade de esparsidade.
Autoencoder empilhado
Uma rede neural com várias camadas de autoencoder esparso é conhecida como autoencoder
empilhado. Adicionar mais camadas ocultas a um autoencoder causa redução de dados de alta
dimensão. Isso permite que uma representação compactada exiba as características salientes dos
dados, de modo que cada camada i tenha uma representação mais compacta do que a camada no
nível i ÿ 1. No autoencoder empilhado, cada camada sucessiva no modelo é otimamente ponderada
e não linear.
região saturada com gradiente zero. Autoencoders esparsos e saturados regularizam seus estados
latentes para evitar que o autoencoder aprenda a reconstrução dos dados de entrada e, assim, se
concentra em melhorar o poder expressivo dos autoencoders para representar o coletor de dados.
HSAE [25] engloba três termos viz. erro de reconstrução, restrição de esparsidade e regularização
hessiana. O erro de reconstrução calcula a perda entre a amostra de entrada e a amostra reconstruída.
A restrição de esparsidade permite aprender a representação oculta dos dados e torna o modelo robusto
ao ruído. A regularização hessiana preserva a estrutura local e controla os codificadores aprendidos
linearmente variáveis ao longo da variedade de distribuição de dados. Este autoencoder pode ser
melhorado para suportar dados multimídia em grande escala paralelizando o algoritmo do autoencoder.
Rifai et ai. [26] apresentaram um modelo de autoencoder contrativo com o objetivo de aprender a
representação robusta de dados. O regularizador explícito é adicionado na função objetivo do autoencoder
contrativo para tornar o modelo robusto a pequenas variações nos dados de entrada.
A equação (3) [17] mostrando a função de perda do autoencoder contrativo é dada como
dois
ÿf(x)
L = |x ÿ g( f (x))| + (h) = |x ÿ g( f (x))| + ÿ (3)
ÿx
F
onde o termo de penalidade (h) para a camada oculta é calculado com a entrada x que é conhecida
como norma de Frobenius da matriz Jacobiana. A soma do quadrado de todos os elementos é dada pela
matriz Jacobiana. Autoencoders de contração são melhores do que autoencoders de redução de ruído
para aprendizado de recursos. O mapeamento gerado pelo termo de penalidade resulta em forte
contração de dados e, portanto, é denominado como autoencoder contrativo.
Rifai et ai. [27] estendeu a abordagem do autoencoder contrativo para melhorar a robustez de dados
corrompidos e estabilizar a representação aprendida em torno dos pontos de treinamento para
aprendizado múltiplo. Eles executaram explicitamente a regularização da representação do estado
latente usando derivada de primeira ordem (norma Jacobiana) e derivada de segunda ordem (norma
Hessiana) para melhorar o aprendizado de recursos e otimizar o erro de classificação.
Alan et ai. [28] mencionaram que ambos os autoencoders denoising e contrativo têm critérios de
treinamento semelhantes, ou seja, o autoencoder denoising com pequeno ruído de corrupção pode ser
considerado uma variante do autoencoder contrativo onde a contração é aplicada em toda a função de
reconstrução em vez de apenas no codificador. Ambos os autoencoders suportam aprendizado não
supervisionado e de transferência [29].
Sempre que penalidades de contração ou penalidades esparsas são usadas como estratégias de regularização
explícitas durante o treinamento em um grande número de unidades ocultas, os vieses ocultos atingem grandes
Machine Translated by Google
preconceitos negativos. A razão por trás disso é que as camadas ocultas servem ao propósito de
representar os dados de entrada e manter a representação esparsa. Portanto, para evitar os efeitos
prejudiciais de vieses negativos de grande valor, Konda et al. [30] apresentam o autoencoder de zero-
bias que atua como um regularizador implícito e permite treinar o modelo sem regularização explícita,
simplesmente minimizando a reconstrução
erro.
autoencoder k-esparso
O autoencoder k-sparse apresentado em [31] é um autoencoder com ativação linear no qual apenas
os k neurônios mais altos da camada oculta são usados para reconstruir a entrada. Este autoencoder
aproxima o algoritmo de codificação esparsa que usa “limitação iterativa com método de inversão” na
fase de recuperação esparsa. Ele impõe a dispersão em diferentes canais, conhecido como dispersão
populacional. A dispersão populacional é aplicada exatamente nas unidades ocultas e esse autoencoder
não precisa de nenhuma não linearidade e regularização.
Autoencoder suave
AE kernelizado profundo
A variante de AE empilhado, ou seja, Deep Kernelized AE [35] aproveita a matriz de kernel definida
pelo usuário e aprende a preservar semelhanças não lineares no espaço de entrada. Por este
autoencoder, o usuário pode controlar explicitamente a noção de similaridade nos dados de entrada
codificando-os em uma matriz de kernel semidefinida positiva. Este autoencoder é útil para tarefas de
classificação e visualização de dados de alta dimensão.
Uma versão regularizada de grafos do autoencoder foi proposta em [36]. A primeira variante deste AE
funciona de maneira não supervisionada para remoção de ruído de imagem. Outra variante, a saber, o
autoencoder de grafos regularizados de representação de baixa classificação incorpora termos de
agrupamento de subespaço em sua formulação para realizar a tarefa de agrupamento. a
Machine Translated by Google
terceira variante de EA estruturado em gráfico incorpora consistência de rótulo para resolver problemas
de classificação de rótulo único e multirrótulo em configurações supervisionadas.
Sankaran et ai. [37] propôs uma abordagem de aprendizagem de representação baseada em autoencoder
esparso de grupo. Ele funciona no modo de aprendizado supervisionado e usa as normas 1 e 2 utilizando
os rótulos de classe para aprender os recursos supervisionados para a tarefa específica. a
função de otimização neste AE funciona na abordagem de minimização de majorização. Item
executa a classificação usando a versão econômica da máquina de vetor de suporte com
rede de funções de base radial.
Denoising autoencoder
Codificador Decodificador
~
x x h r
Fig. 7 Arquitetura do autoencoder de denoising [38]
Machine Translated by Google
de representação oculta entre o espaço de entrada e a rede neural do mapa auto-organizado. Este AE é útil no
reconhecimento óptico de imagens e texto.
O empilhamento de DAEs para criar uma rede profunda funciona de maneira semelhante ao empilhamento de
RBMs em redes de crenças profundas [11]. No SDAE, a corrupção de entrada é aplicada a cada camada
individual para remoção de ruído inicial e treinamento para aprender os recursos mais importantes dos dados.
Após o aprendizado da função de codificação latente fÿ , ela é aplicada
Para
na entrada
treinar as
não
próximas
corrompida
camadas
em diante.
no
modelo, a entrada não corrompida das camadas anteriores é usada como entrada limpa para a próxima camada.
Em DAEs, os dados de entrada precisam ser corrompidos muitas vezes durante a fase de treinamento e isso
causa aumento no tamanho dos dados de treinamento e incorre em mais recursos computacionais. Esse
problema fica ainda pior quando a dimensionalidade dos dados de entrada é muito alta. Autoencoders
marginalizados de denoising [41] abordam esse problema marginalizando aproximadamente o processo de
corrupção de dados durante o treinamento. Ele aceita as várias cópias corrompidas dos dados de entrada em
cada iteração de treinamento e supera o DAE com poucas épocas de treinamento. Em vez de usar o processo
de corrupção de dados explícito, os mDAEs implicitamente marginalizam o erro de reconstrução sobre a
possível corrupção de dados de distribuição corrupta, como Gaussian aditivo e Mask-out/drop-out imparcial.
Autoencoder hierárquico
No DAE empilhado, apenas a camada final é responsável pela reconstrução da amostra de entrada e as
camadas intermediárias não contribuem diretamente para a reconstrução.
O autoencoder hierárquico [42] é projetado de tal forma que as camadas intermediárias fornecem
informações complementares e a saída de cada camada é fundida para obter a amostra reconstruída final. Este
autoencoder é baseado no autoencoder assimétrico no qual um autoencoder empilhado possui apenas um
decoder. A natureza superficial do decodificador alivia a necessidade de treinar várias camadas e, portanto, as
camadas podem contribuir diretamente para a reconstrução da entrada.
Neste autoencoder, o vetor gargalo (vetor latente) é substituído por dois vetores, a saber, vetor de média e
vetor de desvio padrão. Autoencoders variacionais [43] são baseados em inferência Bayesiana em que a
representação comprimida segue a distribuição de probabilidade. Ao contrário dos autoencoders vanilla que
aprendem a função de codificação arbitrária para obter as características salientes, os autoencoders variacionais
aprendem os parâmetros de distribuição de probabilidade que modelam os dados de treinamento de entrada;
portanto, os VAEs são de natureza complexa. A rede do codificador é forçada a gerar os vetores latentes
Machine Translated by Google
seguindo a distribuição gaussiana unitária. Essa restrição diferencia o VAE do autoencoder padrão.
enquanto a perda de divergência de Kullback–Leibler (KL) mede a proximidade de variáveis latentes com
distribuição Gaussiana unitária. Autoencoders variacionais típicos são baseados em uma forte suposição de
que a distribuição posterior é fatorial cujos parâmetros podem ser aproximados usando regressão não linear
com base em amostras observadas.
O autoencoder ponderado por importância [44] é um modelo generativo e uma variante do autoencoder
variacional. Ele tem uma arquitetura semelhante à do VAE, com a exceção de que utiliza um limite inferior de
probabilidade de log estritamente mais estreito obtido da ponderação de importância e aprende a representação
latente dos dados melhor do que o VAE.
Autoencoder adversário [45] usa rede generativa para realizar inferência de variação para vetores latentes
contínuos e discretos em autoencoders probabilísticos. A Figura 9 mostra o autoencoder adversário que
constitui um autoencoder padrão e uma rede para treinamento de adversários. O padrão AE reconstrói uma
A desvantagem dos autoencoders variacionais é que eles geram imagens borradas quando imagens
naturais são usadas como dados de treinamento de entrada. A qualidade visual das imagens é
bastante impressionante quando são usadas redes adversárias generativas. Mas as redes
adversárias generativas sofrem com o problema de “colapso de modo” quando um modelo treinado
não consegue aprender a variabilidade na distribuição real de dados. Os autoencoders Wasserstein
foram projetados para combinar as melhores propriedades de VAEs e GANs de maneira unificada.
WAE [47] é usado para projetar os modelos generativos com base na perspectiva de transporte
ideal. Ele penaliza a distância Wasserstein entre a distribuição do modelo e a distribuição alvo.
Neste, a distribuição de treinamento codificado é combinada com a distribuição anterior. Assim
como o autoencoder variacional, a função objetivo do WAE constitui um custo de reconstrução e um
regularizador penalizando a discrepância entre distribuição prévia e distribuição de pontos
codificados.
Machine Translated by Google
Adversarially Regularized Autoencoder [48] é baseado no WAE [47] e é uma versão estendida do Adversarial
Autoencoder [45] para suportar sequências discretas, como imagens discretizadas ou sequências de texto.
Este modelo permite manipular as variáveis no espaço latente para incorporar a mudança no espaço de
saída. Ele também lida com dados sequenciais, incorporando a distribuição anterior aprendida e fixa.
Dynecoder
Dynecoder apresentado por Yan et al. [49] representa a informação espaço-temporal de um vídeo. Constitui
três camadas. A primeira camada realiza o mapeamento da entrada xt para o estado latente ht . O próximo
estado oculto h˜t+1 é previsto pela segunda camada usando A camada final executa o mapeamento do estado
Inicialmente, cada camada
ocultoéprevisto
treinadah˜t+1
separadamente
estado atualna
ht fase
. para
degerar
pré-treinamento.
o quadro de Quando
entrada aproximado
o pré-treinamento
x˜t+1.
termina, é feito um ajuste fino da rede de ponta a ponta.
Fatores como procedimento de treinamento, regularização, funções de ativação, etc. desempenham um papel
crucial na implementação bem-sucedida de qualquer modelo baseado em autoencoder.
4.1 Treinamento
Todos os procedimentos de treinamento do autoencoder devem manter um equilíbrio entre os dois requisitos
a seguir.
Machine Translated by Google
1. Aprender uma representação latente da amostra de entrada de forma que a entrada possa ser
reconstruída via decodificador por meio de aproximação: Espera-se que o autoencoder reconstrua
a entrada seguindo a distribuição geradora de dados.
2. Cumprimento da restrição de esparsidade ou penalidade de regularização: A restrição de esparsidade
permite limitar a capacidade do autoencoder. A penalidade de regularização é necessária para
absorver propriedades matemáticas especiais nas codificações aprendidas.
Satisfazer os dois requisitos acima juntos é importante, pois eles impõem a representação oculta
para capturar os recursos salientes dos dados com base em sua distribuição.
O Autoencoder deve aprender as variações nos dados para que os dados de entrada possam ser
reconstruídos.
Autoencoders podem ser considerados como um caso especial de redes neurais feedforward e,
portanto, podem ser treinados com as mesmas técnicas das redes feedforward, como gradiente
descendente de minilote. SGD [53], e suas variantes Adam [54], AdaGrad [55] e RMSProp são alguns
algoritmos utilizados para otimização de pesos e bias em autoencoders durante o treinamento. Outros
algoritmos incluem L-BFGS e gradiente conjugado [56].
Todos esses algoritmos são baseados na técnica de gradiente descendente. O algoritmo de descida
de gradiente encontra os parâmetros de uma função f na direção do declive mais acentuado e minimiza
uma função de custo. O algoritmo de retropropagação [57] é usado para calcular os gradientes da
função de perda da última camada para uma primeira camada em uma rede neural para ajustar os
pesos.
Autoencoders podem ser treinados usando o algoritmo de treinamento de recirculação [58] que
compara as ativações da rede nos dados de treinamento e as ativações nos dados reconstruídos.
Modelos generativos implementados por meio de arquiteturas profundas geralmente seguem uma
estratégia gananciosa de pré-treinamento em camadas. Outra maneira de treinar o modelo profundo é
treinar uma pilha de autoencoders rasos. Com o crescente volume de dados não rotulados em larga
escala e a necessidade de investigar diferentes tipos de regularizadores, Zhou et al. [59] propuseram
um método de aprendizado não supervisionado para treinar conjuntamente todas as camadas do
autoencoder profundo. Neste, o objetivo único para treinar o autoencoder profundo abrange o objetivo
de reconstrução global com restrições locais em camadas ocultas para permitir o treinamento conjunto.
A regularização ajuda a generalizar bem o modelo em novos dados desconhecidos. Pode ser
realizado via dados, arquitetura de rede, otimização, função de erro e termo de regularização [61]. A
eficácia dos modelos generativos pode ser melhorada pela regularização discriminativa. Neste,
algoritmos de aprendizado supervisionado aumentam os modelos generativos para discriminar quais
características dos dados valem a pena serem representadas [62]. Para entender quão bem os
autoencoders representam os dados, a função de energia [63] ou a pontuação não normalizada [64]
podem ser usadas que relacionam EA ao modelo probabilístico, como RBM. Para evitar o overfitting
dos autoencoders, o termo de regularização é adicionado à função objetivo causando o decaimento do
peso [65].
O decaimento de peso melhora a generalização ao escolher o menor vetor para superar os
componentes irrelevantes do vetor de peso. Outras formas de realizar a regularização são as restrições
de contração e esparsidade. Codificações geradas por codificadores autoen básicos não possuem
propriedades especiais. Para absorver propriedades matemáticas nessas codificações, alguns métodos
de regularização adicionam função de penalidade à função objetivo. Autoencoder esparso, autoencoder
denoising e autoencoder contrativo são alguns exemplos populares de autoencoders regularizados. Os
termos de penalidade em autoencoders regularizados podem ser a norma de Frobenius da Jacobiana
(derivada de primeira ordem) ou a norma Hessiana (derivada de ordem superior).
Embora os autoencoders possam ser treinados com uma única camada de codificação e uma única
camada de decodificação, é importante treinar o autoencoder usando camadas profundas para um
melhor aprendizado de representação. Como mencionado anteriormente, tanto o codificador quanto
o decodificador no codificador autoen podem ser considerados como uma rede neural feedforward
(FNN); A camada oculta em FNN pode aproximar qualquer função com precisão arbitrária, uma vez
que a camada oculta possui nós suficientes. Isso prova que o autoencoder com uma única camada
oculta pode representar a função de identidade após a distribuição. Mas, como o mapeamento da
entrada para o estado latente (código oculto) é superficial, restrições arbitrárias não podem ser
impostas para fazer com que o código oculto siga uma representação esparsa. Um autoencoder
profundo com pelo menos uma camada oculta (com nós ocultos suficientes) é capaz de aproximar
quaisquer dados de entrada mapeando-os para o código. A profundidade da arquitetura profunda
reduz o custo computacional da representação de função/dados e reduz exponencialmente a
quantidade de dados de treinamento de entrada para aprender as funções. Autoencoders profundos
são melhores na compressão de dados do que suas contrapartes rasas ou lineares [11].
5 Aplicações de Autoencoders
Autoencoders são úteis em muitas tarefas, como classificação, previsão, aprendizado de recursos,
redução de dimensionalidade, detecção de anomalias, visualização, hashing semântico, recuperação
de informações e outros traços específicos de domínio. Alguns codificadores autoen são projetados
considerando o problema a ser resolvido.
Machine Translated by Google
Codificador automático profundo [11, 70] Realiza pré-treinamento via Classificação, regressão,
pilha de RBMs, desenrolando a compressão, hashing semântico,
estrutura, criando um autoencoder detecção de anomalia geoquímica
profundo que pode ser
ajustado usando
retropropagação
Autoencoders convolucionais [69, Preserva a localidade espacial Reconstrução de partes faltantes
71-73] compartilhando pesos em cada em uma imagem, colorização de
camada de convolução imagens, geração de imagens de
super resolução, detecção de
anomalias, sistema de posicionamento
interno
(contínuo)
Machine Translated by Google
Tabela 1 (continuação)
Autoencoder de saturação [24] Bom para extração de recursos, restringe a Classificação, denoising
capacidade de reconstruir as
entradas que não estão próximas ao
coletor de dados
Codificador automático de polarização zero [30] Atua como regularizador implícito Aprendizado de recursos a partir
para aprender os recursos de de dados de alta dimensão, como
dimensão muito alta intrinsecamente vídeo e imagens
corrupção
(contínuo)
Machine Translated by Google
Tabela 1 (continuação)
Autoencoder variacional [43, 75, 76] Gera novos dados Modelagem generativa, imputação de
aumentando os dados de amostra e dados ausentes, análise de sentimento
funciona como um típico modelo dimensional
generativo de adversários
Autoencoder adversário [45] Usa o método de treinamento adversário para Redução de dimensionalidade,
inferência de variação classificação, agrupamento não
supervisionado, desembaraçar o
estilo e o conteúdo das imagens
Autoencoders Wasserstein [47] Minimiza o custo de transporte ideal modelagem generativa
em modelos generativos
invariância e equivariância
Autoencoder para palavras [79] Realiza codificação de palavras Indexação, classificação e categorização
das palavras
(contínuo)
Machine Translated by Google
Tabela 1 (continuação)
Codificador automático binário [80] Representa a camada de código oculta Hash semântico para imagens
por vetor binário, realiza a reconstrução,
segue o método de coordenadas
auxiliares
Generative Recursive AE [82] Aprende cena hierárquica Gerando diversas cenas internas 3D em
estruturas agrupando objetos de cena grande escala
durante a codificação e geração de
cena durante a decodificação
Média Específica da Classe Usa informações de classe de Classificação da idade adulta a partir de
Autoencoder [87] dados de amostra durante o imagens faciais
treinamento para aprender a
similaridade intraclasse e executa a
extração de recursos
(contínuo)
Machine Translated by Google
Tabela 1 (continuação)
AE contrativo empilhado [91] Aprende subespaço não linear de imagens 2D e reconstrução facial 3D
3D, lida com mudanças de iluminação
e formas de superfície complexas em
imagens
termos
ou não supervisionado
(contínuo)
Machine Translated by Google
Tabela 1 (continuação)
AE acoplado ao modelo [99] Combina a rede de estado de eco Visualização de dados de séries
com o autoencoder temporais, sequências de valor
real e sequências binárias
6. Conclusão
apêndice
SA codificador automático
CT Tomografia Computadorizada
DASOM Mapa auto-organizado do autoencoder de remoção de ruído
(contínuo)
Machine Translated by Google
Tabela 2 (continuação)
Significado da abreviatura
referências
1. Bengio, Y., Courville, A., Vincent, P.: Aprendizagem de representação: uma revisão e novas perspectivas.
IEEE Trans. Padrão Anal. Mach. Intel. 35, 1798–1828 (2013)
2. Sutskever, I., Vinyals, O., Le, QV: Sequência para sequenciar aprendizagem com redes neurais. Dentro:
Avanços em Sistemas de Processamento de Informação Neural, p. 3104–3112 (2014)
3. Pathak, AR, Pandey, M., Rautaray, S.: Estrutura adaptativa para modelagem de tópicos dinâmicos e temporais
baseados em aprendizado profundo a partir de big data. Pat. recente Eng. 13, 1 (2019). [Link]
2174/1872212113666190329234812
4. Pathak, AR, Pandey, M., Rautaray, S.: Modelo adaptativo para modelagem de tópicos dinâmicos e temporais de big
data usando arquitetura de aprendizado profundo. Int. J. Intel. Sistema Aplicativo. 11(6), 13–27 (MECS-Press)
5. Pathak AR, Pandey M, Rautaray S, Pawar K: Avaliação da detecção de objetos usando redes neurais convolucionais
profundas. In: Bhalla, S., Bhateja, V., Chandavale, AA, Hiwale, AS, Satapathy, SC (eds.) Computação Inteligente e
Informação e Comunicação, pp. 457-466. Springer Singapura (2018)
6. Pathak AR, Pandey M, Rautaray S: Abordagens de aprendizado profundo para detectar objetos a partir de imagens:
uma revisão. In: Pattnaik, PK, Rautaray, SS, Das, H., Nayak, J. (eds.) Progress in Computing, Analytics and
Networking, pp. 491-499. Springer Singapura (2018)
7. Pathak AR, Pandey M, Rautaray S: Aplicação de aprendizado profundo para detecção de objetos.
Prossiga Computação. Sci. 132, 1706–1717 (2018)
8. Pawar, K., Attar, V.: Abordagens de aprendizagem profunda para detecção de atividade anômala baseada em vídeo.
World Wide Web 22, 571–601 (2019)
9. Pawar, K., Attar, V.: Abordagem de Deep Learning para detecção de atividades anormais de
vídeos de vigilância. Em: CCIS. Springer (2019, na imprensa)
10. Khare K, Darekar O, Gupta P, Attar VZ: Previsão de preços de ações de curto prazo usando aprendizado profundo.
In: 2ª Conferência Internacional IEEE sobre Tendências Recentes em Eletrônica, Tecnologia da Informação e
Comunicação (RTEICT), pp. 482–486 (2017)
11. Hinton, GE, Salakhutdinov, RR: Reduzindo a dimensionalidade dos dados com redes neurais.
Ciência 313, 504-507 (2006)
12. Kurtz, KJ: O modelo divergente de autoencoder (DIVA) de aprendizagem de categorias. Psic. Touro.
Rev. 14, 560–576 (2007)
13. Odena, A., Dumoulin, V., Olah, C.: Artefatos de deconvolução e tabuleiro de damas. Destilar (2016). [Link]
10.23915/distill.00003 14. Zhang, Z., et al: Auto-codificador convolucional de subgrafo baseado em profundidade
para representação de rede
Aprendendo. Reconhecimento de padrões. (2019)
15. Cho, K., et al.: Aprendendo representações de frases usando RNN codificador-decodificador para tradução automática
estatística (2014). [Link] 16. Srivastava, N., Mansimov, E., Salakhudinov, R.: Aprendizagem
não supervisionada de representações de vídeo usando LSTMs. In: Conferência Internacional sobre Aprendizado de
Máquina, p. 843–852 (2015)
Machine Translated by Google
17. Goodfellow, I., Bengio, Y., Courville, A.: Deep Learning. Imprensa do MIT (2016)
18. Poultney, C., Chopra, S., Cun, YL, et al.: Aprendizagem eficiente de representações esparsas com um modelo baseado em
energia. In: Avanços em Sistemas de Processamento de Informação Neural, p. 1137–1144 (2007)
19. Lee H, Ekanadham C, Ng AY: Modelo de rede de crença profunda esparsa para área visual V2. In: Avanços em Sistemas
de Processamento de Informação Neural, p. 873–880 (2008)
20. Zou, WY, Ng, AY, Yu, K.: Aprendizagem não supervisionada de invariância visual com coerência temporal. In: Workshop
NIPS 2011 sobre Aprendizado Profundo e Aprendizado de Recursos Não Supervisionado, vol. 3 (2011)
21. Jiang X, Zhang Y, Zhang W, Xiao X: Um novo codificador automático esparso para aprendizado profundo não supervisionado.
Em 2013 Sexta Conferência Internacional sobre Inteligência Computacional Avançada (ICACI), pp. 256–261 (2013)
22. Le, QV, et al.: Construindo recursos de alto nível usando aprendizado não supervisionado em larga escala (2011).
[Link]
23. Chen, J., et al.: Autoencoders regularizados de covariância cruzada para recurso esparso não redundante
representação. Neurocomputação 316, 49-58 (2018)
24. Goroshin, R., LeCun, Y.: Saturating auto-encoders (2013). [Link] 25. Liu W, Ma T, Tao D, You
JHSAE: Auto-codificadores esparsos regularizados de Hesse. Neu
rocomputing 187, 59-65 (2016)
26. Rifai, S., Vincent, P., Muller, X., Glorot, X., Bengio, Y.: Auto-encoders contrativos: invariância explícita durante a extração de
características. In: Proceedings of the 28th International Conference on International Conference on Machine Learning,
pp. 833-840 (2011)
27. Rifai, S., et al.: Auto-encoder contrativo de ordem superior. In: Joint European Conference on Machine Learning and
Knowledge Discovery in Databases, pp. 645–660 (2011)
28. Alain, G., Bengio, Y.: O que os codificadores automáticos regularizados aprendem com a distribuição geradora de dados.
butão. J. Mach. Aprender. Res. 15, 3563–3593 (2014)
29. Mesnil, G., et al.: Desafio de aprendizado não supervisionado e de transferência: uma abordagem de aprendizado profundo.
In: Proceedings of the 2011 International Conference on Unsupervisioned and Transfer Learning Workshop, vol. 27, pág.
97–111 (2011)
30. Konda, K., Memisevic, R., Krueger, D.: Autoencoders de polarização zero e os benefícios da co-adaptação
características (2014). [Link]
31. Makhzani A, Frey B: Autoencoders K-sparse (2013). [Link] 32. Makhzani A, Frey BJ:
Autoencoders do tipo vencedor leva tudo. In: Avanços em Sistemas de Processamento de Informação Neural, p. 2791–2799
(2015)
33. Ng, A.: Autoencoder esparso. CS294A Lecture Notes, vol. 72, pág. 1–19 (2011)
34. Liang K, Chang H, Cui Z, Shan S, Chen X: Aprendizagem de representação com autoencoder suave. In: Conferência
Asiática de Visão Computacional, p. 72–86 (2014)
35. Kampffmeyer M, Løkse S, Bianchi FM, Jenssen R, Livi L: The deep kernelized autoen
codificador. Aplicativo. Computação Suave. 71, 816-825 (2018)
36. Majumdar, A.: Autoencoder estruturado em gráfico. Rede Neural. 106, 271-280 (2018)
37. Sankaran A, Vatsa M, Singh R, Majumdar A: Autoencoder esparso de grupo. ImageVis.
Computar. 60, 64-74 (2017)
38. Vincent P, Larochelle H, Bengio Y, Manzagol P-A: Extraindo e compondo recursos robustos com autoencoders de remoção
de ruído. In: Proceedings of the 25th International Conference on Machine Learning, pp. 1096–1103 (2008)
39. Vincent P, Larochelle H, Lajoie I, Bengio Y, Manzagol P-A: Codificadores automáticos de remoção de ruído empilhados:
aprendendo representações úteis em uma rede profunda com um critério de remoção de ruído local. J.
Mach. Aprender. Res. 11, 3371–3408 (2010)
40. Ferles C, Papanikolaou Y, Naidoo KJ: Denoising autoencoder mapa auto-organizado
(DASOM). Rede Neural. 105, 112–131 (2018)
41. Chen M, Weinberger K, Sha F, Bengio Y: Autoencoders de denoising marginalizados para representações não lineares. In:
Conferência Internacional sobre Aprendizado de Máquina, p. 1476–1484 (2014)
Machine Translated by Google
42. Maheshwari, S., Majumdar, A.: Autoencoder hierárquico para filtragem colaborativa. In: Conferência Conjunta
Internacional de 2018 sobre Redes Neurais (IJCNN), p. 1–7 (2018)
43. Kingma, DP, Welling, M.: Auto-codificação de bayes variacionais (2013). [Link]
6114
44. Burda, Y., Grosse, R., Salakhutdinov, R.: Autoencoders ponderados por importância (2015). [Link]
1509.00519 45. Makhzani A, Shlens J, Jaitly N, Goodfellow I, Frey B: Adversarial autoencoders (2015).
[Link]
46. Wang X, Peng D, Hu P, Sang Y: Autoencoder correlacionado adversário para não supervisionado
aprendizagem de representação multi-vista. Conhecimento Sistema baseado. (2019)
47. Tolstikhin, I., Bousquet, O., Gelly, S., Schoelkopf, B.: Autoencoders Wasserstein (2017).
[Link]
48. Kim Y, Zhang K, Rush AM, LeCun Y, et al: Adversarially regularized autoencoders (2017). [Link]
1706.04223 49. Yan X, Chang H, Shan S, Chen X: Modelagem de dinâmica de vídeo com dynencoder profundo.
Dentro:
Conferência Europeia sobre Visão Computacional, p. 215–230 (2014)
50. Zhao J, Mathieu M, Goroshin R, Lecun Y: Auto-encoders empilhados o que onde (2015).
[Link]
51. LeCun, Y., Bottou, L., Bengio, Y., Haffner, P., et al.: Aprendizagem baseada em gradiente aplicada ao
reconhecimento de documentos. proc. IEEE 86, 2278-2324 (1998)
52. Zeiler MD, Krishnan D, Taylor GW, Fergus R: Redes deconvolucionais. In: Conferência sobre Visão Computacional
e Reconhecimento de Padrões, pp. 2528-2535. IEEE (2010)
53. Robbins, H., Monro, S.: Um método de aproximação estocástica. Ana Matemática. Stat., 400-407
(1951)
54. Kingma, DP, Ba, J.: Adam: um método para otimização estocástica (2014). [Link]
1412.6980
55. Duchi, J., Hazan, E., Singer, Y.: Métodos de subgradiente adaptativo para aprendizagem online e stochas
otimização de carrapatos. J. Mach. Aprender. Res. 12, 2121–2159 (2011)
56. Le, QV, et al.: Sobre métodos de otimização para aprendizado profundo. In: Proceedings of the 28th International
Conference on International Conference on Machine Learning, pp. 265–272 (2011)
57. Rumelhart, DE, Hinton, GE, Williams, RJ, et al.: Representações de aprendizagem por erros de retropropagação.
Cognição Modelo. 5, 1 (1988)
58. Hinton GE, McClelland JL: Aprendendo representações por recirculação. Em: Informações Neurais
Sistemas de Processamento de Informação, pp. 358–366 (1988)
59. Zhou Y, Arpit D, Nwogu I, Govindaraju V: O treinamento conjunto é melhor para auto-codificadores profundos?
(2014). [Link] 60. Qi Y, Wang Y, Zheng X, Wu Z: Aprendizado robusto de recursos por
autoencoder empilhado com critério de correntropia máxima. In: 2014 IEEE International Conference on Acoustics,
Speech and Signal Processing (ICASSP), pp. 6716–6720 (2014)
61. Kukaÿcka, J., Golkov, V., Cremers, D.: Regularização para aprendizado profundo: uma taxonomia (2017).
[Link]
62. Lamb, A., Dumoulin, V., Courville, A.: Regularização discriminativa para modelos generativos (2016). http://
[Link]/abs/1602.03220 63. Kamyshanska, H., Memisevic, R.: A energia potencial de um autoencoder. IEEE
Trans. Padrão Anal. Mach. Intel. 37, 1261-1273 (2015)
64. Kamyshanska, H., Memisevic, R.: Sobre a pontuação do autoencoder. In: Conferência Internacional sobre
Aprendizado de Máquina, p. 720–728 (2013)
65. Krogh A, Hertz JA: Um simples decaimento de peso pode melhorar a generalização. In: Avanços em
Sistemas de Processamento de Informação Neural, p. 950-957 (1992)
66. Fan, YJ: Saliência do nó do Autoencoder: selecionando representações latentes relevantes. Escolha de padrão
nit. 88, 643-653 (2019)
67. LeCun YA, Bottou L, Orr GB, Müller K-R: Backprop eficiente. In: Redes Neurais: Truques do Comércio, pp 9–48.
Springers (2012)
Machine Translated by Google
79. Liou C-Y, Cheng W-C, Liou J-W, Liou D-R: Autoencoder para palavras. Neurocomputação 139, 84-96 (2014)
80. Carreira-Perpinan, MA, Raziperchikolaei, R.: Hashing com autoencoders binários. In: The IEEE Conference on Computer
Vision and Pattern Recognition (CVPR) (2015)
81. Pan, S., et al.: Autoencoder de gráfico adversariamente regularizado para incorporação de gráfico (2018).
[Link]
82. Li, M., et al.: GRAINS: autoencoders recursivos generativos para cenas INdoor. ACM Trans.
Gráfico. 38, 12:1–12:16 (2019)
83. Alaverdyan, Z., Chai, J., Lartizien, C.: Aprendizado de recursos não supervisionado para detecção de valores discrepantes
com autoencoders convolucionais empilhados, redes siamesas e autoencoders wasserstein: aplicação à detecção de
epilepsia. In: Deep Learning em Análise de Imagens Médicas e Aprendizagem Multimodal para Apoio à Decisão Clínica,
pp. 210-217. Springers (2018)
84. Hou, L., et al.: Autoencoder esparso para detecção e representação de núcleo não supervisionado em
imagens de histopatologia. Reconhecimento de padrões. 86, 188–200 (2019)
85. Ullah, A., Muhammad, K., Haq, IU, Baik, SW: Reconhecimento de ação usando codificador automático profundo otimizado e
CNN para fluxos de dados de vigilância de ambientes não estacionários. Futuro.
gerar Computar. Sistema (2019)
86. Zhao C, Zhang L: Autoencoders empilhados espectrais-espaciais baseados em decomposição de matrizes esparsas e de
baixo nível para detecção de anomalias hiperespectrais. Infravermelho Phys. Technol. 92, 166-176 (2018)
87. Singh M, Nagpal S, Vatsa M, Singh R: Você é elegível? Previsão da idade adulta a partir de imagens de rosto por meio do
autoencoder médio específico da classe. Reconhecimento de padrões. Lett. 119, 121-130 (2019)
88. Tasnim, S., Rahman, A., Oo, AMT, Haque, ME: Autoencoder para previsão de energia eólica.
Vento Renováveis. Água Dom. 4, 6 (2017)
89. Lv, S.-X., Peng, L., Wang, L.: Autoencoder empilhado com regressão de eco-estado para previsão de demanda de turismo
usando dados de consulta de pesquisa. Aplicativo. Computação Suave. 73, 119-133 (2018)
90. Xie R, Wen J, Quitadamo A, Cheng J, Shi X: Um modelo de auto-codificador profundo para gene
expressãopredição. BMC Genom. 18.845 (2017)
91. Zhang J, Li K, Liang Y, Li N: Aprendendo rostos 3D a partir de imagens 2D por meio de contração empilhada
codificador automático. Neurocomputação 257, 67-78 (2017)
Machine Translated by Google
92. Gareis IE, Vignolo LD, Spies RD, Rufiner HL: Coherent averaging estimation autoen coders aplicados ao
processamento de potenciais evocados. Neurocomputação 240, 47-58 (2017)
93. Mehta J, Majumdar A: RODEO: robusto autoencoder DE-aliasing para reconstrução de imagens médicas em tempo
real. Reconhecimento de padrões. 63, 499-510 (2017)
94. Liu, Y., Feng, X., Zhou, Z.: Classificação de vídeo multimodal com codificadores autoen contrativos empilhados.
Próximo Processo. 120, 761-766 (2016)
95. Zhang, Z., et al.: Recurso de gargalo baseado em rede neural profunda e dereverberação baseada em autoencoder
de denoising para identificação de alto-falante distante. EURASIP J. Processo de música de fala de áudio. 2015,
12 (2015)
96. Makkie M, Huang H, Zhao Y, Vasilakos AV, Liu T: Autoencoder convolucional profundo distribuído rápido e escalável
para análise de big data de fMRI. Neurocomputação 325, 20-30 (2019)
97. Guo, Q., et al.: Aprendendo recursos uniformes robustos para dados sociais de mídia cruzada usando
codificadores automáticos. Conhecimento Sistema baseado. 102, 64-75 (2016)
98. Su, J., et al.: Um autocodificador generativo neural para incorporações de palavras bilíngues. Inf. Sci. (Nova Iorque)
424, 287-300 (2018)
99. Gianniotis N, Kügler SD, Tino P, Polsterer KL: Autoencoder acoplado ao modelo para visualização de séries
temporais. Neurocomputação 192, 139-146 (2016)
100. Hwang U, Park J, Jang H, Yoon S, Cho NI: PuVAE: um autoencoder variacional para purificar
exemplos adversários (2019). [Link]
Machine Translated by Google
O Encoder-Decoder Framework
e suas aplicações
1. Introdução
A. Asadi
e-mail: [Link]@[Link]
geração de legendas de vídeo, resposta a perguntas textuais e visuais e conversão de áudio para texto.
A parte do codificador neste modelo é uma estrutura neural que mapeia entradas brutas para um
espaço de recursos e passa o vetor de recursos extraído para o decodificador. O decodificador é outra
estrutura neural que processa o vetor de recursos extraído para tomar decisões ou gerar saídas
apropriadas para o problema.
Uma grande variedade de codificadores é proposta para codificar diferentes tipos de entradas.
Com redes neurais volucionais (CNNs) são normalmente usadas na codificação de entradas de
imagem e vídeo. Redes neurais recorrentes (RNNs) são amplamente utilizadas como codificadores
onde a entrada é uma sequência de dados estruturados ou sentenças. Além disso, estruturas mais
complexas de diferentes redes neurais têm sido usadas para modelar complexidades nas entradas.
Estruturas hierárquicas CNN-RNN são exemplos de combinações neurais que são amplamente
utilizadas para representar dependências temporais em vídeos que são usados na geração de
descrição de vídeo.
Outro problema potencial com essa abordagem codificador-decodificador de linha de base é que o
codificador precisa compactar todas as informações necessárias da entrada em um tensor de tamanho
fixo. Isso pode tornar difícil para a rede neural modelar dependências temporais tanto na entrada
quanto na saída. O mecanismo de atenção é introduzido para superar o problema da extração de
características de comprimento fixo como uma extensão do modelo codificador-decodificador. A
característica distintiva desta abordagem do codificador-decodificador de linha de base é que ele não
tenta codificar uma entrada inteira em um único tensor de tamanho fixo. Em vez disso, ele codifica a
entrada em uma sequência de vetores de anotação e seleciona uma combinação desses vetores de
forma adaptativa, enquanto decodifica e gera a saída em cada etapa.
Algumas das tarefas em que o modelo codificador-decodificador é usado para resolver o problema
são as seguintes.
A “tradução automática” (MT) é a tarefa de gerar uma frase em um idioma de destino que tenha o
mesmo significado que a frase dada de um idioma de origem.
Existem duas abordagens diferentes na tradução automática.
A primeira abordagem, chamada de “tradução automática estatística” (SMT), é caracterizada pelo
uso de técnicas de aprendizado de máquina estatística para traduzir automaticamente a frase do
idioma de origem para o idioma de destino. Em menos de duas décadas, a SMT passou a dominar a
pesquisa acadêmica de tradução automática [1].
A segunda abordagem é chamada de “Tradução de Máquina Neural” (NMT). Nesta categoria, o
framework codificador-decodificador foi proposto pela primeira vez por Cho et al. [2] em 2014. No
modelo proposto por Cho et al. [2] uma rede neural é usada para extrair características da sentença
de entrada e outra rede neural é usada para gerar uma sentença palavra por palavra do idioma de
destino usando o vetor de características extraído.
Machine Translated by Google
Nas estruturas neurais usadas na NMT, uma rede neural é treinada para mapear a sequência de
entrada (a sentença de entrada como uma sequência de palavras) para a sequência de saída. Este tipo
de aprendizagem é conhecido como “Aprendizagem de Sequência a Sequência”.
Avaliações nos primeiros modelos de NMT mostraram que, embora as traduções geradas estejam
corretas, o modelo enfrenta problemas extremos ao traduzir frases longas [3]. O problema de modelagem
de “dependências de longo prazo” é um dos desafios mais importantes nos modelos de codificador-
decodificador. Vamos detalhar isso e dar uma olhada nas soluções propostas, mais adiante neste
capítulo.
Legendagem de imagem e legendagem de vídeo são os problemas de associar uma descrição textual
a uma determinada imagem ou vídeo que descreve holisticamente os objetos e eventos apresentados
na entrada. Uma grande variedade de abordagens tem sido proposta para resolver esses problemas,
incluindo modelos gráficos probabilísticos (PGMs) e modelos baseados em codificadores-decodificadores
neurais.
Modelos baseados em codificador-decodificador para legendagem de imagens usam uma CNN
como codificador para extrair um vetor de características da imagem de entrada e passá-lo para um
RNN como o decodificador para gerar a legenda. A arquitetura do modelo nesta tarefa é a mesma da
tradução automática, exceto que o codificador usa uma CNN para codificar a imagem em vez de uma
RNN.
Na legendagem de vídeo, também chamada de “geração de descrição de vídeo”, um modelo
semelhante baseado na arquitetura codificador-decodificador é empregado para gerar uma legenda
para o vídeo de entrada. Nos modelos de legendagem de vídeo, o codificador normalmente consiste
em CNNs ou combinação de CNNs e RNNs para codificar o vídeo de entrada e o decodificador é o
mesmo que o decodificador na tradução automática e legendagem de imagens.
As respostas de perguntas textuais e visuais são os problemas de gerar uma resposta para uma
determinada pergunta sobre um artigo e sobre uma imagem de entrada, respectivamente. Os modelos
propostos para resolver esses problemas devem gerar uma resposta curta ou longa, dado um artigo ou
uma imagem, e uma pergunta sobre ele como entrada. A arquitetura do modelo básico é então
semelhante à da tradução automática, exceto que o codificador é necessário para extrair um vetor de
recursos para um par de entradas. O decodificador é o mesmo que o decodificador em tradução
automática e legendagem de imagem/vídeo porque deve gerar uma frase descrevendo o significado do
vetor de recursos gerado pelo codificador.
Machine Translated by Google
Os modelos propostos para resumir um texto devem gerar um resumo textual para o texto de entrada.
A única restrição na saída é que ela deve descrever o mesmo significado que o texto de entrada e
seu comprimento deve ser menor que o da entrada.
A arquitetura base desses modelos é a mesma da arquitetura proposta na tradução automática,
exceto que a saída gerada aqui é do mesmo idioma da entrada.
Pode-se ver facilmente que a arquitetura de linha de base proposta na tradução automática
também é utilizada em outras tarefas com pequenas alterações. Além disso, os decodificadores dos
modelos em diferentes tarefas são semelhantes, pois a maioria deles é usada para gerar uma frase
palavra por palavra para descrever o significado da entrada representada pelo vetor de características.
Por outro lado, uma grande variedade de codificadores é usada para extrair vetores de características
apropriados dependendo dos tipos de entrada em diferentes tarefas.
A próxima seção deste capítulo discute o modelo codificador-decodificador de linha de base.
O primeiro modelo baseado em codificador-decodificador proposto em tradução automática é
apresentado na Seção 3. A Seção 4, discute os diferentes tipos de codificadores e suas aplicações
em detalhes e faz uma perspectiva geral das estruturas dos codificadores em diferentes problemas.
A Seção 5 fornece um estudo abrangente das estruturas do decodificador, técnicas de fabricação de
decodificadores mais profundos, juntamente com suas aplicações na geração de legendas de
imagem/vídeo. A Seção 6 apresenta o mecanismo de atenção e seu uso na tradução automática,
seguido de um estudo empírico do mecanismo de atenção em outros problemas.
Nesta seção, apresentamos o modelo codificador-decodificador muito básico. Para dar uma ideia
clara da ideia, é apresentada a estrutura básica para resolver a tarefa de tradução automática na
qual o modelo é projetado para traduzir uma frase de um idioma de origem para um de destino.
2.1 Histórico
Fase de codificação: Uma determinada entrada é primeiramente projetada em outro espaço por
uma função de projeção, chamada “encoder”, a fim de fornecer uma “boa representação” da entrada.
O codificador também pode ser visto como um extrator de recursos da entrada e o processo de
projeção pode ser expresso por um processo de extração de recursos.
Fase de decodificação: Após a fase de codificação, um “vetor latente” é gerado para a entrada
dada que representa bem o seu significado. Na segunda fase, outra função de projeção, chamada
“decodificador”, é necessária para mapear o vetor latente para o espaço de saída.
A Figura 1 demonstra o esquema básico da estrutura codificador-decodificador. Seja X = {X0,
X1,..., Xn} as entradas e Y = {Y0, Y1,..., Ym} as saídas do problema. O decodificador extrai um
vetor de características da entrada e o passa para o decodificador. O decodificador então gera a
saída com base nos recursos extraídos pelo codificador.
2.3 Formulação
Tanto a entrada quanto a saída dos modelos de tradução automática são frases que podem ser
formuladas como uma sequência de palavras. Seja X = {X0, X1,..., XLi} denotar a sentença de
entrada, onde xi é a iésima palavra nela, supondo que a sentença de entrada tenha Li
Machine Translated by Google
palavras. Da mesma forma, a sentença de saída pode ser formulada como Y = {y0, y1,..., yLo} em
que yi é a i- ésima palavra na sentença de saída supondo que ela tenha Lo palavras.
Além disso, todos os Xis e yi s são vetores one-hot criados a partir de um dicionário de todas as
palavras nos conjuntos de dados de entrada e saída.
Um vetor one-hot é um vetor cujos componentes são todos zero, exceto por um deles.
Para criar um vetor one-hot para cada palavra, primeiro é criado um dicionário1 de todas as
palavras possíveis nos conjuntos de dados disponíveis. Assumindo N palavras no dicionário, um
vetor zero dimensional N para cada palavra é criado e o componente com o mesmo índice que a
palavra no dicionário é definido como 1. A Figura 2 demonstra o vetor one-hot para cada palavra
em um dicionário de amostra . Supondo que o dicionário D tenha 5 palavras “I”, “cat”, “dog”, “have”,
“a” sequencialmente com os índices 0–4, o vetor one-hot para cada palavra é exibido na figura.
Um RNN é usado para extrair um vetor de recursos da sentença de entrada do idioma de origem.
Todas as palavras na sentença de entrada são convertidas em vetores one-hot e passadas para o
RNN na ordem de sua presença na sentença. O RNN então atualiza seu estado oculto e vetores
de saída de acordo com cada palavra. A iteração é interrompida quando o token End of Sentence
(EOS) é passado para o RNN. O token EOS é um token adicionado manualmente ao final das
frases de entrada para especificar o ponto final da frase. O estado oculto do RNN após o token
EOS é então usado como o vetor de recursos da sentença de entrada. Os vetores one-hot das
palavras na frase de entrada são criados usando o dicionário de palavras do idioma de origem.
Outra RNN é usada para gerar as palavras da sentença de saída em uma ordem apropriada. O
decodificador RNN é projetado para prever uma distribuição de probabilidade sobre todas as palavras
possíveis no dicionário das palavras do idioma de origem em cada etapa. Em seguida, uma palavra é
selecionada em relação à distribuição de probabilidade produzida como a próxima palavra na frase. A
iteração é interrompida quando o token EOS é gerado pelo decodificador ou um número predefinido
de palavras é gerado.
A estrutura do modelo proposto por Cho et al. [2] é mostrado na Fig. 3. O vetor de contexto
extraído pelo codificador é denotado por C, que é o estado oculto do codificador RNN na última etapa.
Um RNN é usado como codificador no modelo proposto por Cho et al. [2] Deixe ele denotar o estado
oculto do codificador RNN. Este vetor de estado é atualizado a cada passo de tempo t de acordo com
a Eq. (1) em que ht é o estado oculto do codificador
e ativação não
no passo
linear de
quetempo
pode t,ser
fencoder
tão simples
é umaquanto
funçãouma
de
função sigmóide logística elementar e tão complexa quanto uma Long Short-Term Memory (LSTM) ,
e Xt é o vetor one-hot da t- ésima palavra na sentença de entrada.
Fig. 3 Uma ilustração do primeiro modelo baseado em codificador-decodificador proposto para tradução automática
Machine Translated by Google
Supondo que a sentença de entrada tenha palavras Li, o codificador RNN deve iterar em
cada palavra e atualizar seu vetor de estado oculto em cada etapa. O estado oculto do RNN
após a palavra Lith é então passado para o decodificador como o vetor de contexto C. Assim,
o vetor de contexto extraído pelo codificador pode ser calculado como na Eq. (dois).
C = hLi (dois)
e
O decodificador deve gerar a frase de saída palavra por palavra de forma que o significado
da frase seja o mesmo que o significado da frase de entrada representada pelo vetor de
contexto C. De outro ponto de vista, o decodificador pode ser visto como um RNN que
maximiza a probabilidade da sentença traduzida no conjunto de dados para a sentença de
entrada e seu vetor de contexto gerado conforme expresso em (3), em que ÿ é o conjunto de
todos os pesos treináveis e os parâmetros do modelo.
Isto
Prÿ {Y |C} = ÿ t=0Pr{yt|ytÿ1, ytÿ2,..., y0,C} (4)
De acordo com a Eq. (4) o procedimento de treinamento dos modelos baseados em codificador-
decodificador pode ser dividido em dois sub-procedimentos. Primeiro, o codificador é treinado para
extrair o vetor de características apropriado da entrada. Então, o decodificador é treinado para gerar
a saída apropriada dado o vetor de características extraído pelo codificador treinado.
No entanto, usando a Eq. (4) permite que o codificador e as partes do decodificador sejam treinados de
forma independente, eles podem ser treinados conjuntamente e de maneira ponta a ponta [2, 4, 5].
Outra consequência do uso da Eq. (4) é que o decodificador deve gerar uma distribuição de
probabilidade sobre cada palavra em cada etapa t dadas suas palavras previamente geradas e o
vetor de contexto extraído pelo codificador. A distribuição de probabilidade pode ser formulada pelo
RNN de acordo com as Eqs. (5) e (6). Seja ht o estado oculto do decodificador no passo de tempo t.d
Seja Ot a saída do decodificador no passo de tempo t (um vetor dimensional Lo ) que é gerado por
uma função não linear g aplicada no estado oculto do decodificador e no vetor de contexto C. O
estado oculto do decodificador também é gerado pela função não linear fdecoder aplicada em a
palavra gerada anteriormente, o estado oculto do decodificador no passo de tempo anterior e o vetor
de contexto de acordo com (7). Com a aplicação de um Softmax na saída, é gerado um vetor de
mesmo tamanho cuja soma de componentes é igual a um e pode ser tratada como a distribuição de
probabilidade desejada.
Ot = g ht d , ytÿ1,C (5)
htd = fdecodificador
htÿ1 d , ytÿ1,C (7)
A cada passo de tempo, a distribuição de probabilidade Pr yt |ytÿ1, ytÿ2,..., y0,C é gerada pelo
decodificador de acordo com a Eq. (6) e a próxima palavra é selecionada em relação a essa
distribuição de probabilidade sobre as palavras no dicionário do idioma de destino.
Os dois componentes do modelo proposto podem ser treinados em conjunto para minimizar a
verossimilhança condicional negativa expressa em (8) em que N é o número de amostras no conjunto
de dados, Yn e Xn são o enésimo par de saída e entrada no conjunto de dados, ÿ é o conjunto de
todos os parâmetros treináveis e Loss é a função de perda a ser minimizada.
Perda = - 1ÿN _
n=0 log Prÿ (Yn|Xn) (8)
N
A arquitetura do codificador-decodificador de linha de base proposta por Cho et al. [2] em tradução
automática atraiu a atenção de muitos pesquisadores em diferentes áreas. Como explicado
anteriormente, quase todas as variantes da arquitetura de linha de base em diferentes tarefas compartilham uma
Machine Translated by Google
decodificador semelhante, mas a estrutura do codificador varia de acordo com o tipo de entrada.
Nesta seção, apresentaremos as estruturas importantes de codificadores para codificar diferentes
tipos de entrada.
O codificador mais simples para problemas com sentenças como entradas é um RNN. O primeiro
codificador proposto na tradução automática é um LSTM que pega todas as palavras da sentença
de entrada, as processa e retorna o vetor de estado oculto como o vetor de contexto.
Juntamente com as RNNs, as CNNs são empregadas para extrair características das sentenças
de origem na fase de codificação. Como exemplo, Gehring et al. propôs um codificador convolucional
para tradução automática a fim de criar melhores vetores de contexto levando em consideração
palavras próximas usando uma CNN [6]. Neste codificador, uma CNN com um tamanho de kernel
de k = 3 é usada para extrair uma combinação do significado de cada três palavras próximas na
sentença para gerar o vetor de contexto.
Além disso, diferentes células RNN são usadas como blocos do codificador para entradas de
sentenças. Os LSTMs [7] são amplamente utilizados devido à sua capacidade de lidar com
dependências de longo prazo e lembrar o histórico distante na sequência de entrada [5, 8-10]. O
GRU [2] também é utilizado em diferentes modelos propostos devido ao seu bom desempenho e
ao fato de poder ser assumido como uma versão leve do LSTM [2, 11–13].
Os modelos propostos por Cho et al. [2] (RNNenc), Cho et al. [3] (grConv), Sutskever et al. [5]
(Moisés), Bahdanau et al. [8] (RNNsearch) são avaliados em uma tarefa de tradução de inglês para
francês e os resultados são relatados na Tabela 1. A pontuação BLEU [14] é usada para avaliar os
modelos de tradução automática.
O modelo RNNenc (proposto por Cho et al. [2]) usa a estrutura RNN proposta para codificar a
sentença de entrada enquanto o modelo grConv (proposto por Cho et al. [3]) emprega uma rede
convolucional recorrente fechada como o codificador e o Moses O modelo (proposto por Krishevski
[15]) usa células LSTM como codificador. Ambos os dois primeiros modelos usam unidades
recorrentes fechadas como decodificador, enquanto o terceiro usa as células LSTM como
decodificador.
De acordo com os resultados relatados, o modelo Moses supera os anteriores devido ao uso
de células LSTM que podem lidar com o problema de extração de dependências de longo prazo.
Além disso, os resultados relatados por Cho et al. [2] mostrar que
o desempenho do modelo diminui muito com o aumento do comprimento das sentenças. Assim, o
principal problema com os codificadores e os decodificadores nas tarefas de tradução automática
é extrair dependências de longo prazo. O modelo RNNsearch (proposto por Bahdanau et al. [8])
propôs uma nova técnica para lidar com dependências de longo prazo chamada “mecanismo de
atenção” que será introduzida posteriormente neste artigo.
Também discutiremos o desafio das “dependências de longo prazo” mais adiante na Seção 4.1.
C = CNN(X) (9)
Uma grande variedade de CNNs é empregada como codificadora nos modelos propostos para
legendagem de imagens. Uma vez que as versões pré-treinadas de VGGNet [16] e AlexNet [15] no
conjunto de dados ImageNet [17] extraem boas características de imagens para diferentes tarefas
e estão disponíveis online, elas têm sido usadas como codificadores em diferentes modelos de
legendagem de imagens propostos [18–20 ]. Além disso, ResNet [21] tem sido amplamente
utilizado devido ao seu bom desempenho como encoder em tais modelos [22–24]. O Google NIC
Inception v3 [25] também foi usado em modelos propostos devido à sua melhor precisão de
classificação de imagem em comparação com o ResNet [26–29]. Yao et ai. [30] integrou LSTMs
baseados em atributos (LSTM-A) com as CNNs e os treinou de uma maneira ponta a ponta para
impulsionar o codificador.
A Figura 5 ilustra o uso de CNNs como codificador em modelos baseados no framework
codificador decodificador para legendagem de imagens proposto por Vinyals et al. [28] Arquiteturas
semelhantes são usadas para gerar legendas em outros estudos. Como é mostrado na figura, a
parte codificadora do modelo consiste em uma CNN extraindo um vetor de características da
imagem de entrada. O vetor de recursos extraído é então passado para o decodificador para gerar
a legenda apropriada. O decodificador consiste em um RNN que gera a probabilidade da próxima
palavra de acordo com (4) em cada etapa.
Machine Translated by Google
Fig. 5 Arquitetura de modelo baseada em framework codificador-decodificador para geração de legendas de imagens
Os modelos propostos por Karpathy et al. [18] (DeepAlign), Chen et al. [19] (SCA CNN), Vinyals et al.
[28] (NIC), Liu et al. [29] (PG), e Asadi et al. [31] (VDD) são
avaliados em um conjunto de dados de legendagem de imagens popular proposto por Lin et al. [32] chamado
MSCOCO. Os modelos propostos são avaliados usando as pontuações BLEU, METEOR
pontuação [33], pontuação CIDEr [34] e pontuação ROUGEL [35] e os resultados são relatados
na Tabela 2. Todos esses modelos usaram CNNs como codificador.
Fig. 6 Uma ilustração do primeiro modelo baseado em codificador-decodificador para legendagem de vídeo
3.3.1 3D-CNNs
Extrair boas características do vídeo de entrada é uma tarefa desafiadora que pode afetar muito o
desempenho do modelo proposto. O vetor de contexto extraído do vídeo de entrada deve expressar
bem os movimentos detalhados no vídeo. A fim de criar
Machine Translated by Google
um codificador capaz de extrair características de movimento fino do vídeo, Yao et al. [38]
propuseram um 3D-CNN como codificador. A estrutura deste 3D-CNN é ilustrada na Fig. 7.
Fig. 8 Uma ilustração da estrutura do codificador que usa uma combinação de CNNs 2D e 3D
da CNN
Machine Translated by Google
Outra abordagem para legendagem de vídeo inclui os métodos focados em “Dense Video
Captioning”. Apesar dos modelos que geram uma única frase como descrição do vídeo de entrada,
os modelos de legendagem de vídeo densos primeiro detectam e localizam os eventos existentes
no vídeo de entrada e depois geram uma frase de descrição para cada um dos eventos detectados.
Os codificadores para legendas de vídeo densas devem primeiro detectar todos os eventos
existentes no vídeo de entrada. Então, para cada um dos eventos, um quadruplo < tstart,
tend ,score, h > deve ser extraído. tstart e tend são os números de quadro inicial e final do evento
especificado. score é a pontuação de confiança do codificador para cada um dos eventos. Se a
pontuação de um evento for maior que um limite, ele é relatado como um evento e seu quádruplo
é passado ao decodificador para geração de sentença; caso contrário, é ignorado. Finalmente, h
é o vetor de características extraído do intervalo de quadros entre tstart e tend que é usado pelo
decodificador como vetor de contexto do evento para gerar uma sentença para o evento [40].
A tarefa de legendagem de vídeo densa foi proposta por Krishna et al. [41] pela primeira vez
em 2017. O codificador proposto por Krishna et al. [41] para legendagem de vídeo denso é capaz
de identificar eventos do vídeo de entrada dentro de uma única passagem enquanto o decodificador
proposto gera simultaneamente legendas para cada evento detectado e passado pelo codificador.
A Figura 9 ilustra a estrutura do codificador proposta por Krishna et al. [41] para legendas de
vídeo densas. O codificador proposto é capaz de extrair todos os eventos no vídeo de entrada
usando um módulo de proposta de ação profunda (DAP) proposto por [42]. Para fazer isso, um 3D-
CNN é aplicado aos quadros de vídeo de entrada para extrair os recursos de vídeo. Esses
recursos de vídeo são passados para o módulo DAP. Este módulo consiste em diferentes LSTMs
que são aplicados à sequência de recursos de vídeo em diferentes resoluções e são treinados
para detectar pontos de início e término de eventos. A pontuação de confiança de cada evento é
também calculado pelo DAP. As propostas de eventos propostas são então classificadas em relação
aos seus pontos finais e passadas sequencialmente para o decodificador. O vetor de características
de cada evento também é o estado oculto do RNN correspondente no DAP. O decodificador então
gera uma sentença para cada evento usando seu vetor de características como saída do codificador.
Li et ai. [40] propuseram uma nova abordagem baseada em codificador-decodificador de ponta a
ponta para legendagem de vídeo densa que unificou a localização temporal de propostas de eventos
e geração de sentenças. A Figura 10 ilustra a estrutura do modelo proposto [40]. Aqui, em vez de
usar um módulo DAP extra, uma estrutura convolucional de 12 camadas é projetada para extrair
recursos para propostas de ação sobre a saída do 3D-CNN. As primeiras 3 camadas da estrutura
convolucional (camada 500D e camadas de base na Fig. 10) são projetadas para introduzir não
linearidades e diminuir a dimensão de entrada. As próximas 9 camadas, que são chamadas de
“camadas âncora”, extraem recursos de diferentes resoluções para serem usados na previsão de
eventos. A “Camada de Previsão” consiste em três camadas paralelas totalmente conectadas para
primeiro regredir as coordenadas temporais (tstart e tend) de cada evento, depois calcular a
descritividade do evento (pontuação) e, finalmente, classificar o evento versus o plano de fundo. A
camada de previsão é aplicada à saída de todas as camadas âncoras para permitir que o modelo
detecte eventos de diferentes resoluções. As propostas extraídas são então passadas para o módulo
de classificação de propostas, que classifica as propostas de eventos em relação ao horário de
término. Por fim, os eventos são passados ao decodificador para geração de sentenças
sequencialmente.
Uma grande variedade de modelos é proposta para lidar com as dificuldades da fase de
codificação em legendagem de vídeo densa. Shen et ai. [43] propuseram uma nova CNN chamada
“Lexical FCN”, que é treinada de maneira fracamente supervisionada para detectar eventos com base
nas legendas no conjunto de dados. Duan et ai. também propôs uma nova abordagem para
legendagem de vídeo densa com base na suposição semelhante “cada legenda descreve um
segmento temporal, e cada segmento temporal tem uma legenda” [44]. Xu et ai. propuseram um
modelo baseado em codificador-decodificador de ponta a ponta para legendagem de vídeo densa
que detecta e descreve eventos no vídeo de entrada em conjunto e é aplicável à legendagem de
vídeo densa em fluxos de vídeo. Zhu et ai. também propôs uma abordagem de ponta a ponta com
uma rede de mascaramento para localizar e descrever eventos em conjunto [45]. Wang et ai. propôs
uma nova arquitetura para levar em consideração os quadros passados e futuros ao localizar os
eventos no vídeo de entrada usando [46] modelos bidirecionais.
Os modelos propostos por Venugopalan et al. [4] (LSTM-YT), Venugopalan et al.
[47] (S2VT), Yao et al. [38] (3D-CNN), e Pan et al. [39] (LSTM-E) para legendagem de vídeo são
avaliados no conjunto de dados Youtube2Text proposto por Chen et al. [48], cujos resultados são
relatados na Tabela 3.
Os modelos LSTM-YT e S2VT usam codificadores semelhantes. Em ambos os modelos, uma
CNN é usada para extrair um vetor de características de cada quadro no vídeo. Os vetores de
recursos extraídos são então passados para uma camada de pool de médias para gerar um vetor de
recursos unificado para representar o vídeo de entrada. No modelo 3D-CNN, um 3D-CNN é usado
junto com um 2D-CNN para extrair e representar informações sobre os movimentos no vídeo de
entrada. O vetor de recursos extraído neste modelo contém informações espaço-temporais extraídas
do vídeo. O modelo LSTM-E utilizou células LSTM como codificador. Como resultado, o vetor de
recursos extraído representa a informação temporal do vídeo de entrada.
Machine Translated by Google
S2VT – – – – 29,8 –
Nos modelos baseados em codificador-decodificador, os decodificadores geram uma saída sequencial para
a entrada dada. A saída gerada pode estar na forma de um texto descritivo
(a saída desejada em tradução automática, legendagem de imagem/vídeo, texto/visual
resposta a perguntas e conversão de fala para texto) ou um sinal de fala (o
saída no desafio de conversão de texto em fala). A saída é uma sequência numérica que
é passado para a última camada para gerar uma saída apropriada para o dado
entrada. Portanto, as principais estruturas dos decodificadores são semelhantes em diferentes tarefas.
Esta seção apresenta diferentes técnicas propostas para fazer melhores decodificadores com
legendas melhor geradas.
Um dos problemas básicos com RNNs é o problema das “dependências de longo prazo”.
De fato, quando o comprimento da entrada ou o comprimento da saída desejada é muito grande, o
gradientes nessas redes devem se propagar por muitos estágios. Quando o gradiente
é propagado por um grande número de estágios, ele tende a desaparecer ou explodir.
Além disso, os gradientes em cada etapa de retropropagação são multiplicados por pequenas
coeficientes ou pequenas taxas de aprendizagem. Assim, o gradiente nos estágios iniciais será
próximo de zero e pode não fazer nenhuma mudança significativa nos pesos do estágio inicial
camadas [49].
Nesta seção, discutiremos as abordagens propostas para lidar com o problema de longo prazo.
desafio de dependência nos decodificadores.