BR112017016306B1 - Sistema de rede neural implementado por um ou mais computadores, método de processar dados utilizando o sistema de rede neural e um ou mais meios de armazenamento de computador não transitórios - Google Patents

Sistema de rede neural implementado por um ou mais computadores, método de processar dados utilizando o sistema de rede neural e um ou mais meios de armazenamento de computador não transitórios Download PDF

Info

Publication number
BR112017016306B1
BR112017016306B1 BR112017016306-3A BR112017016306A BR112017016306B1 BR 112017016306 B1 BR112017016306 B1 BR 112017016306B1 BR 112017016306 A BR112017016306 A BR 112017016306A BR 112017016306 B1 BR112017016306 B1 BR 112017016306B1
Authority
BR
Brazil
Prior art keywords
layer
neural network
batch
outputs
output
Prior art date
Application number
BR112017016306-3A
Other languages
English (en)
Other versions
BR112017016306A2 (pt
BR112017016306A8 (pt
Inventor
Sergey Ioffe
Corinna Cortes
Original Assignee
Google Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google Llc filed Critical Google Llc
Priority claimed from PCT/US2016/015476 external-priority patent/WO2016123409A1/en
Publication of BR112017016306A2 publication Critical patent/BR112017016306A2/pt
Publication of BR112017016306A8 publication Critical patent/BR112017016306A8/pt
Publication of BR112017016306B1 publication Critical patent/BR112017016306B1/pt

Links

Abstract

CAMADAS DE NORMALIZAÇÃO DE LOTE. Métodos, sistemas e aparelhos, incluindo programas de computador codificados em meio de armazenamento de computador, para processar entradas utilizando um sistema de rede neural que inclui uma camada de normalização de lote. Um dos métodos inclui receber uma primeira saída de camada respectiva para cada exemplo de treinamento no lote; calcular uma pluralidade de estatísticas de normalização para o lote a partir das primeiras saídas de camada; normalizar cada componente de cada primeira saída de camada utilizando as estatísticas de normalização para gerar uma saída de camada normalizada respectiva para cada exemplo de treinamento no lote; gerar uma saída de camada de normalização de lote respectiva para cada dos exemplos de treinamento a partir das saídas de camada normalizadas; e fornecer a saída de camada de normalização de lote como uma entrada para a segunda camada de rede neural.

Description

FUNDAMENTOS
[001] Este relatório descritivo refere-se ao processamento de entradas através das camadas de redes neurais para gerar saídas.
[002] As redes neurais são modelos de aprendizagem de máquina que empregam uma ou mais camadas de unidades não lineares para prever uma saída para uma entrada recebida. Algumas redes neurais incluem uma ou mais camadas ocultas além de uma camada de saída. A saída de cada camada oculta é utilizada como entrada para a próxima camada na rede, ou seja, a próxima camada oculta ou a camada de saída. Cada camada da rede gera uma saída a partir de uma entrada recebida de acordo com os valores atuais de um conjunto de parâmetros.
SUMÁRIO
[003] Em geral, um aspecto inovador do assunto descrito neste relatório descritivo pode ser incorporado em um sistema de rede neural implementado por um ou mais computadores que inclui uma camada de normalização de lote entre uma primeira camada de rede neural e uma segunda camada de rede neural, em que a primeira camada de rede neural gera primeiras saídas de camada tendo uma pluralidade de componentes, em que a camada de normalização de lote é configurada para, durante o treinamento do sistema de rede neural em um lote de exemplos de treinamento: receber uma primeira saída de camada respectiva para cada exemplo de treinamento no lote; calcular uma pluralidade de estatísticas de normalização para o lote a partir das primeiras saídas de camada; normalizar cada componente de cada primeira saída de camada utilizando as estatísticas de normalização para gerar uma saída de camada normalizada respectiva para cada exemplo de treinamento no lote; gerar uma saída de camada de normalização de lote respectiva para cada dos exemplos de treinamento a partir das saídas de camada normalizadas; e fornecer a saída de camada de normalização de lote como uma entrada para a segunda camada de rede neural.
[004] Para um sistema de um ou mais computadores ser configurado para executar operações ou ações específicas significa que o sistema instalou no mesmo software, firmware, hardware ou uma combinação deles que, em operação, fazem com que o sistema execute as operações ou ações. Para um ou mais programas de computador serem configurados para executar operações ou ações específicas significa que o um ou mais programas incluem instruções que, quando executadas por um aparelho de processamento de dados, fazem com que o aparelho execute as operações ou ações.
[005] Modalidades particulares do assunto descrito neste relatório descritivo podem ser implementadas de modo a realizar uma ou mais das seguintes vantagens. Um sistema de rede neural que inclui uma ou mais camadas de normalização de lote pode ser treinado mais rapidamente do que uma rede neural de outra forma idêntica que não inclui quaisquer camadas de normalização de lote. Por exemplo, por incluir uma ou mais camadas de normalização de lote no sistema de rede neural, os problemas causados pela distribuição de mudanças de entradas de uma camada determinada durante o treinamento podem ser mitigados. Isso pode permitir que taxas de aprendizado mais altas sejam efetivamente utilizadas durante o treinamento e pode reduzir o impacto de como os parâmetros são inicializados no processo de treinamento. Além disso, durante o treinamento, as camadas de normalização de lote podem atuar como um regularizador e podem reduzir a necessidade de outras técnicas de regularização, por exemplo, abandono, serem empregadas durante o treinamento. Uma vez treinado, o sistema de rede neural que inclui umas camadas de normalização pode gerar saídas de rede neural que são tão precisas, se não mais precisas, do que as saídas de rede neural geradas pelo sistema de rede neural de outra forma idêntico.
[006] Os detalhes de uma ou mais modalidades do assunto deste relatório descritivo são apresentados nos desenhos anexos e na descrição abaixo. Outras características, aspectos e vantagens do assunto se tornarão evidentes a partir da descrição, dos desenhos e das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[007] A Figura 1 mostra um exemplo de sistema de rede neural.
[008] A Figura 2 é um fluxograma de um processo de exemplo para processar uma entrada utilizando uma camada de normalização de lote durante o treinamento do sistema de rede neural.
[009] A Figura 3 é um fluxograma de um processo de exemplo para processar uma entrada utilizando uma normalização de lote depois que o sistema de rede neural foi treinado.
[010] Números de referência e designações semelhantes nos vários desenhos, indicam elementos semelhantes.
DESCRIÇÃO DETALHADA
[011] Este relatório descritivo descreve um sistema de rede neural implementado como programas de computador em um ou mais computadores em um ou mais locais que incluem uma camada de normalização de lote.
[012] A Figura 1 mostra um exemplo de sistema de rede neural 100. O sistema de rede neural 100 é um exemplo de um sistema implementado como programas de computador em um ou mais computadores em um ou mais locais, nos quais os sistemas, componentes e técnicas descritos abaixo podem ser implementados.
[013] O sistema de rede neural 100 inclui múltiplas camadas de rede neural dispostas em uma sequência a partir de uma camada mais baixa na sequência para uma camada mais alta na sequência. O sistema de rede neural gera saídas de rede neural a partir de entradas de rede neural por processar as entradas de rede neural através de cada uma das camadas na sequência.
[014] O sistema de rede neural 100 pode ser configurado para receber qualquer tipo de entrada de dados digitais e para gerar qualquer tipo de resultado de pontuação ou classificação com base na entrada.
[015] Por exemplo, se as entradas para o sistema de rede neural 100 são imagens ou recursos que foram extraídos de imagens, a saída gerada pelo sistema de rede neural 100 para uma determinada imagem pode ser pontuações para cada um de um conjunto de categorias de objetos, com cada pontuação representando uma probabilidade estimada que a imagem contenha uma imagem de um objeto pertencente à categoria.
[016] Como outro exemplo, se as entradas para o sistema de rede neural 100 são recursos da Internet (por exemplo, páginas da web), documentos ou partes de documentos ou características extraídas de recursos da Internet, documentos, ou partes de documentos, a saída gerada pelo sistema de rede neural 100 para um determinado recurso da Internet, documento ou porção de um documento pode ser uma pontuação para cada um de um conjunto de tópicos, com cada pontuação representando uma probabilidade estimada que o recurso da Internet, documento ou parte de documento seja sobre o tópico.
[017] Como outro exemplo, se as entradas para o sistema de rede neural 100 são características de um contexto de impressão para uma propaganda específica, a saída gerada pelo sistema de rede neural 100 pode ser uma pontuação que representa uma probabilidade estimada que a propaganda específica será clicada em.
[018] Como outro exemplo, se as entradas para o sistema de rede neural 100 são características de uma recomendação personalizada para um usuário, por exemplo, características que caracterizam o contexto para a recomendação, por exemplo, características que caracterizam as ações anteriores tomadas pelo usuário, a saída gerada pelo sistema de rede neural 100 pode ser uma pontuação para cada um de um conjunto de itens de conteúdo, com cada pontuação representando uma probabilidade estimada que o usuário responderá favoravelmente ao item de conteúdo sendo recomendado.
[019] Como outro exemplo, se a entrada para o sistema de rede neural 100 é texto em um idioma, a saída gerada pelo sistema de rede neural 100 pode ser uma pontuação para cada um de um conjunto de textos em outro idioma, com cada pontuação representando uma probabilidade estimada que o texto do outro idioma seja uma tradução adequada do texto de entrada para o outro idioma.
[020] Como outro exemplo, se a entrada para o sistema de rede neural 100 for um enunciado falado, uma sequência de enunciados falados, ou características derivadas de um dos dois, a saída gerada pelo sistema de rede neural 100 pode ser uma pontuação para cada um de um conjunto de partes de texto, cada pontuação representando uma probabilidade estimada que o texto é a transcrição correta para o enunciado ou sequência de enunciados.
[021] Como outro exemplo, o sistema de rede neural 100 pode ser parte de um sistema de preenchimento automático ou parte de um sistema de processamento de texto.
[022] Como outro exemplo, o sistema de rede neural 100 pode ser parte de um sistema de aprendizagem de reforço e pode gerar saídas utilizadas para selecionar ações a serem realizadas por um agente interagindo com um ambiente.
[023] Em particular, cada uma das camadas de rede neural é configurada para receber uma entrada e gerar uma saída a partir da entrada e as camadas de rede neural coletivamente processam entradas de rede neural recebidas pelo sistema de rede neural 100 para gerar uma saída de rede neural respectiva para cada entrada de rede neural recebida. Algumas ou todas as camadas de rede neural na sequência geram saídas a partir de entradas de acordo com os valores atuais de um conjunto de parâmetros para a camada de rede neural. Por exemplo, algumas camadas podem multiplicar a entrada recebida por uma matriz de valores de parâmetros atuais como parte da geração de uma saída a partir da entrada recebida.
[024] O sistema de rede neural 100 também inclui uma camada de normalização de lote 108 entre uma camada de rede neural A 104 e uma camada de rede neural B 112 na sequência de camadas de rede neural. A camada de normalização de lote 108 é configurada para executar um conjunto de operações em entradas recebidas a partir da camada de rede neural A 104 durante o treinamento do sistema de rede neural 100 e outro conjunto de operações em entradas recebidas a partir da camada de rede neural A 104 após o sistema de rede neural 100 ter sido treinado.
[025] Em particular, o sistema de rede neural 100 pode ser treinado em vários lotes de exemplos de treinamento, a fim de determinar valores treinados dos parâmetros das camadas de rede neural. Um lote de exemplos de treinamento é um conjunto de múltiplos exemplos de treinamento. Por exemplo, durante o treinamento, o sistema de rede neural 100 pode processar um lote de exemplos de treinamento 102 e gerar uma saída de rede neural respectiva para cada exemplo de treinamento no lote 102. As saídas de rede neural podem então ser utilizadas para ajustar os valores de parâmetro das camadas de rede neural na sequência, por exemplo, através de técnicas de treinamento de rede neural de retropropagação e descida de gradiente convencionais.
[026] Durante o treinamento do sistema de rede neural 100 em um determinado lote de exemplos de treinamento, a camada de normalização de lote 108 é configurada para receber saídas de camada A 106 geradas pela camada de rede neural A 104 para os exemplos de treinamento no lote, processar as saídas de camada A 106 para gerar uma saída de camada de normalização de lote respectiva 110 para cada exemplo de treinamento no lote e, em seguida, fornecer as saídas de camada de normalização de lote 110 como uma entrada para a camada de rede neural B 112. As saídas de camada A 106 incluem uma saída respectiva gerada pela camada de rede neural A 104 para cada exemplo de treinamento no lote. Da mesma forma, as saídas de camada de normalização de lote 110 incluem uma saída respectiva gerada pela camada de normalização de lote 108 para cada exemplo de treinamento no lote.
[027] Geralmente, a camada de normalização de lote 108 calcula um conjunto de estatísticas de normalização para o lote a partir das saídas de camada A 106, normaliza as saídas de camada A 106 para gerar uma saída normalizada respectiva para cada exemplo de treinamento no lote e, opcionalmente, transforma cada uma das saídas normalizadas antes de fornecer as saídas como entrada para a camada de rede neural B 112.
[028] As estatísticas de normalização calculadas pela camada de normalização de lote 108 e a maneira pela qual a camada de normalização de lote 108 normaliza as saídas de camada A 106 durante o treinamento dependem da natureza da camada de rede neural A 104 que gera as saídas de camada A 106.
[029] Em alguns casos, a camada de rede neural A 104 é uma camada que gera uma saída que inclui componentes múltiplos indexados por dimensão. Por exemplo, a camada de rede neural A 104 pode ser uma camada de rede neural totalmente conectada. Em alguns outros casos, no entanto, a camada de rede neural A 104 é uma camada convolucional ou outro tipo de camada de rede neural que gera uma saída que inclui múltiplos componentes cada é indexado por um índice de característica e um índice de localização espacial. A geração da saída de camada de normalização de lote durante o treinamento do sistema de rede neural 100 em cada um desses dois casos é descrita em maior detalhe abaixo com referência à Figura 2.
[030] Uma vez que o sistema de rede neural 100 tenha sido treinado, o sistema de rede neural 100 pode receber uma nova entrada de rede neural para processamento, e processar a entrada de rede neural através das camadas de rede neural para gerar uma nova saída de rede neural para a entrada de acordo com os valores treinados dos parâmetros dos componentes do sistema de rede neural 100. As operações realizadas pela camada de normalização de lote 108 durante o processamento da nova entrada de rede neural também dependem da natureza da camada de rede neural A 104. Processamento de uma nova entrada de rede neural A após a formação do sistema de rede neural 100 foi descrito em maior detalhe abaixo com referência à Figura 3.
[031] A camada de normalização de lote 108 pode ser incluída em vários locais na sequência de camadas de rede neural e, em algumas implementações, várias camadas de normalização de lote podem ser incluídas na sequência.
[032] No exemplo da Figura 1, em algumas implementações, a camada de rede neural A 104 gera saídas por modificar entradas para a camada de acordo com valores atuais de um conjunto de parâmetros para a primeira camada de rede neural, por exemplo, por multiplicar a entrada para a camada por uma matriz dos valores de parâmetro atuais. Nestas implementações, a camada de rede neural B 112 pode receber uma saída a partira da camada de normalização de lote 108 e gerar uma saída por aplicar uma operação não linear, isto é, uma função de ativação não linear, para a saída de camada de normalização de lote. Assim, nestas implementações, a camada de normalização de lote 108 é inserida dentro de uma camada de rede neural convencional, e as operações da camada de rede neural convencional são divididas entre a camada de rede neural A 104 e a camada de rede neural B 112.
[033] Em algumas outras implementações, a camada de rede neural A 104 gera as saídas por modificar entradas de camada de acordo com os valores atuais de um conjunto de parâmetros para gerar primeiras entradas de camada modificadas e, em seguida, aplicar uma operação não linear às primeiras entradas de camada modificadas antes de fornecer a saída para a camada de normalização de lote 108. Assim, nestas implementações, a camada de normalização de lote 108 é inserida após uma camada de rede neural convencional na sequência.
[034] A Figura 2 é um fluxograma de um processo de exemplo 200 para gerar uma saída de camada de normalização de lote durante o treinamento de uma rede neural em um lote de exemplos de treinamento. Por conveniência, o processo 200 será descrito como sendo executado por um sistema de um ou mais computadores localizados em um ou mais locais. Por exemplo, uma camada de normalização de lote incluída em um sistema de rede neural, por exemplo, a camada de normalização de lote 108 incluída no sistema de rede neural 100 da Figura 1, apropriadamente programada, pode executar o processo 200.
[035] A camada de normalização de lote recebe saídas de camada inferior para o lote de exemplos de treinamento (passo 202). As saídas de camada inferior incluem uma saída respectiva gerada para cada exemplo de treinamento no lote pela camada abaixo da camada de normalização de lote na sequência das camadas de rede neural.
[036] A camada de normalização de lote gera uma saída normalizada para cada exemplo de treinamento no lote (passo 204). Ou seja, a camada de normalização de lote gera uma saída normalizada respectiva a partir de cada saída de camada inferior recebida.
[037] Em alguns casos, a camada abaixo da camada de normalização de lote é uma camada que gera uma saída que inclui múltiplos componentes indexados por dimensão.
[038] Nesses casos, a camada de normalização de lote calcula, para cada dimensão, a média e o desvio padrão dos componentes das saídas de camada inferior que correspondem à dimensão. A camada de normalização de lote então normaliza cada componente de cada uma das saídas de nível inferior utilizando as médias e desvios padrão para gerar uma saída normalizada para cada dos exemplos de treinamento no lote. Em particular, para um determinado componente de uma determinada saída, a camada de normalização de lote normaliza o componente utilizando a média e o desvio padrão calculado para a dimensão correspondente ao componente. Por exemplo, em algumas modalidades, para um componente xk,i correspondendo à k-ésima dimensão da i-ésima saída de camada X inferior a partir de um lote β, a saída normalizada satisfaz: onde μB é a média dos componentes correspodendo para a k-ésima dimensão das saídas de camada inferior no lote β e OB é o desvio padrão dos componentes correspondentes à k- ésima dimensão das saídas de camada inferior no lote β. Em algumas modalidades, o desvio padrão é um desvio padrão numericamente estável que é igual a (OB2 + ε)1/2, onde ε é um valor constante e OB2 representa a variação dos componentes correspondentes à k-ésima dimensão das saídas de camada inferior no lote β.
[039] Em alguns outros casos, no entanto, a camada de rede neural abaixo da camada de normalização de lote é uma camada convolucional ou outro tipo de camada de rede neural que gera uma saída que inclui múltiplos componentes cada indexado por um índice de característica e um índice de localização espacial.
[040] Em alguns desses casos, a camada de normalização de lote calcula, para cada possível combinação de índice de característica e índice de localização espacial, a média e a variância dos componentes das saídas de camada inferior que possuem esse índice de característica e índice de localização espacial. A camada de normalização de lote calcula, para cada índice de característica, a média das médias para as combinações de índice de característica e índice de localização espacial que incluem o índice de característica. A camada de normalização de lote também calcula, para cada índice de característica, a média das variâncias para as combinações de índice de característica e índice de localização espacial que incluem o índice de característica. Assim, após o cálculo das médias, a camada de normalização de lote calculou uma estatística média para cada característica em todos os locais espaciais e uma estatística de variância para cada característica em todos os locais espaciais.
[041] A camada de normalização de lote então normaliza cada componente de cada uma das saídas de nível inferior utilizando as médias médias e as variâncias médias para gerar uma saída normalizada respectiva para cada dos exemplos de treinamento no lote. Em particular, para um determinado componente de uma determinada saída, a camada de normalização de lote normaliza o componente utilizando a média média e a variância média para o índice de característica correspondente ao componente, por exemplo, na mesma maneira como descrito acima quando a camada abaixo da camada de normalização de lote gera saídas indexadas por dimensão.
[042] Em outros desses casos, a camada de normalização de lote calcula, para cada índice de característica, a média e a variância dos componentes das saídas de camada inferior que correspondem ao índice de característica, ou seja, que possuem o índice de característica.
[043] A camada de normalização de lote então normaliza cada componente de cada uma das saídas de nível inferior utilizando as médias e as variâncias para os índices de característica para gerar uma saída normalizada para cada dos exemplos de treinamento no lote. Em particular, para um determinado componente de uma determinada saída, a camada de normalização de lote normaliza o componente utilizando a média e a variância para o índice de característica correspondente ao componente, por exemplo, na mesma maneira como descrito acima quando a camada abaixo da camada de normalização de lote gera saídas indexadas por dimensão.
[044] Opcionalmente, a camada de normalização de lote transforma cada componente de cada saída normalizada (passo 206).
[045] Nos casos em que a camada abaixo da camada de normalização de lote é uma camada que gera uma saída que inclui múltiplos componentes indexados por dimensão, a camada de normalização de lote transforma, para cada dimensão, o componente de cada saída normalizada na dimensão de acordo com os valores atuais de um conjunto de parâmetros para a dimensão. Ou seja, a camada de normalização de lote mantém um conjunto respectivo de parâmetros para cada dimensão e usa esses parâmetros para aplicar uma transformação aos componentes das saídas normalizadas na dimensão. Os valores dos conjuntos de parâmetros são ajustados como parte do treinamento do sistema de rede neural. Por exemplo, em algumas implementações, a saída normalizada transformada yk,i gerada a partir da saída normalizada satisfaz: onde Yk e Ak são os parâmetros para a k-ésima dimensão.
[046] Nos casos em que a camada abaixo da camada de normalização de lote é uma camada convolucional, a camada de normalização de lote transforma, para cada componente de cada uma das saídas normalizadas, o componente de acordo com os valores atuais de um conjunto de parâmetros para o índice de característica correspondente ao componente. Ou seja, a camada de normalização de lote mantém um conjunto respectivo de parâmetros para cada índice de característica e usa esses parâmetros para aplicar uma transformação aos componentes das saídas normalizadas que possuem o índice de característica, por exemplo, na mesma forma que descrito acima quando a camada abaixo da camada de normalização de lote gera saídas indexadas por dimensão. Os valores dos conjuntos de parâmetros são ajustados como parte do treinamento do sistema de rede neural.
[047] A camada de normalização de lote fornece as saídas normalizadas ou as saídas normalizadas transformadas como entrada para uma camada acima da camada de normalização de lote na sequência (passo 208).
[048] Depois que a rede neural gerou as saídas de rede neural para os exemplos de treinamento no lote, as estatísticas de normalização são retropropagadas como parte do ajuste dos valores dos parâmetros da rede neural, ou seja, como parte da realização da técnica de treinamento de retropropagação.
[049] A Figura 3 é um fluxograma de um processo de exemplo 300 para gerar uma saída de camada de normalização de lote para uma nova entrada de rede neural após o treinamento da rede neural. Por conveniência, o processo 300 será descrito como sendo executado por um sistema de um ou mais computadores localizados em um ou mais locais. Por exemplo, uma camada de normalização de lote incluída em um sistema de rede neural, por exemplo, a camada de normalização de lote 108 incluída no sistema de rede neural 100 da Figura 1, apropriadamente programada, pode executar o processo 300.
[050] A camada de normalização de lote recebe uma saída de camada inferior para a nova entrada de rede neural (passo 302). A saída de camada inferior é uma saída gerada para a nova entrada de rede neural pela camada abaixo da camada de normalização de lote na sequência das camadas de rede neural.
[051] A camada de normalização de lote gera uma saída normalizada para a nova entrada de rede neural (passo 304).
[052] Se as saídas geradas pela camada abaixo da camada de normalização de lote são indexadas por dimensão, a camada de normalização de lote normaliza cada componente da saída de camada inferior utilizando médias e desvios padrão pré- calculados para cada uma das dimensões para gerar uma saída normalizada. Em alguns casos, as médias e os desvios padrão para uma determinada dimensão são calculados a partir dos componentes na dimensão de todas as saídas geradas pela camada abaixo da camada de normalização de lote durante o treinamento do sistema de rede neural.
[053] Em alguns outros casos, no entanto, as médias e os desvios padrão para uma determinada dimensão são calculados a partir dos componentes na dimensão das saídas de camada inferior geradas pela camada abaixo da camada de normalização de lote após o treinamento, por exemplo, a partir das saídas de camada inferior geradas durante uma janela de tempo mais recente de duração especificada ou a partir de um número especificado de saídas de camada inferior mais recentemente geradas pela camada abaixo da camada de normalização de lote.
[054] Em particular, em alguns casos, a distribuição de entradas de rede e, consequentemente, a distribuição de saídas de camada inferior podem mudar entre os exemplos de treinamento usados durante o treinamento e as novas entradas de rede neural utilizadas após o treinamento do sistema de rede neural, por exemplo, se as novas entradas de redes neurais são diferentes tipos de entradas a partir dos exemplos de treinamento. Por exemplo, o sistema de rede neural pode ter sido treinado em imagens de usuário e agora pode ser usado para processar quadros de vídeo. As imagens de usuário e os quadros de vídeo provavelmente têm distribuições diferentes em termos das classes retratadas, propriedades de imagem, composição, e assim por diante. Portanto, normalizar as entradas de camada inferior utilizando estatísticas a partir do treinamento podem não capturar com precisão as estatísticas das saídas de camada inferior geradas para as novas entradas. Assim, nestes casos, a camada de normalização de lote pode usar estatísticas de normalização calculadas a partir de saídas de camada inferior geradas pela camada abaixo da camada de normalização de lote após o treinamento.
[055] Se as saídas geradas pela camada abaixo da camada de normalização de lote são indexadas pelo índice de característica e pelo índice de localização espacial, a camada de normalização de lote normaliza cada componente da saída de camada inferior utilizando médias médias e variâncias médias pré-calculadas para cada dos índices de característica, para gerar um resultado normalizado. Em alguns casos, como descrito acima, as médias médias e variâncias médias para um determinado índice de característica são calculadas a partir das saídas geradas pela camada abaixo da camada de normalização de lote para todos os exemplos de treinamento usados durante o treinamento. Em alguns outros casos, conforme descrito acima, as médias e os desvios padrão para um determinado índice de característica são calculados a partir das saídas de camada inferior geradas pela camada abaixo da camada de normalização de lote após o treinamento.
[056] Opcionalmente, a camada de normalização de lote transforma cada componente da saída normalizada (passo 306).
[057] Se as saídas geradas pela camada abaixo da camada de normalização de lote são indexadas por dimensão, a camada de normalização de lote transforma, para cada dimensão, o componente da saída normalizada na dimensão de acordo com valores treinados do conjunto de parâmetros para a dimensão. Se as saídas geradas pela camada abaixo da camada de normalização de lote são indexadas pelo índice de característica e pelo índice de localização espacial, a camada de normalização de lote transforma cada componente da saída normalizada de acordo com valores treinados do conjunto de parâmetros para o índice de característica correspondente ao componente. A camada de normalização de lote fornece a saída normalizada ou a saída normalizada transformada como entrada para a camada acima da camada de normalização de lote na sequência (passo 308).
[058] Modalidades do assunto e as operações funcionais descritas neste relatório descritivo podem ser implementadas em circuitos eletrônicos digitais, em software ou firmware de hardware tangivelmente incorporado, em hardware de computador, incluindo as estruturas descritas neste relatório descritivo e seus equivalentes estruturais, ou em combinações de um ou mais dos mesmos. As modalidades do assunto descrito neste relatório descritivo podem ser implementadas como um ou mais programas de computador, ou seja, um ou mais módulos de instruções de programa de computador codificadas em uma portadora de programa não transitória tangível para execução por, ou para controle da operação de, aparelho de processamento de dados. Alternativamente ou adicionalmente, as instruções de programa podem ser codificadas em um sinal propagado gerado artificialmente, por exemplo, um sinal elétrico, óptico ou eletromagnético gerado por máquina, que é gerado para codificar informações para transmissão para um aparelho receptor adequado para execução por um aparelho de processamento de dados. O meio de armazenamento de computador pode ser um dispositivo de armazenamento legível por máquina, um substrato de armazenamento legível por máquina, um dispositivo de memória de acesso aleatório ou serial, ou uma combinação de um ou mais dos mesmos.
[059] O termo "aparelho de processamento de dados" abrange todos os tipos de aparelhos, dispositivos e máquinas para processamento de dados, incluindo, por exemplo, um processador programável, um computador ou vários processadores ou computadores. O aparelho pode incluir circuito lógico de propósito especial, por exemplo, um FPGA (conjunto de portas de campo programável) ou um ASIC (circuito integrado de aplicação específica). O aparelho também pode incluir, além de hardware, código que cria um ambiente de execução para o programa de computador em questão, por exemplo, código que constitui o firmware de processador, uma pilha de protocolos, um sistema de gerenciamento de banco de dados, um sistema operacional, ou uma combinação de um ou mais dos mesmos.
[060] Um programa de computador (que também pode ser referido ou descrito como um programa, software, aplicação de software, um módulo, um módulo de software, um script ou código) pode ser escrito em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, ou linguagens declarativas ou processuais, e pode ser implantado de qualquer forma, incluindo como um programa autônomo ou como um módulo, componente, sub-rotina ou outra unidade adequada para uso em um ambiente computacional. Um programa de computador pode, mas não precisa, corresponder a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma parte de um arquivo que contém outros programas ou dados, por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação, em um único arquivo dedicado ao programa em questão, ou em vários arquivos coordenados, por exemplo, arquivos que armazenam um ou mais módulos, subprogramas, ou porções de código. Um programa de computador pode ser implantado para ser executado em um computador ou em vários computadores que estão localizados em um local ou distribuídos em vários locais e interligados por uma rede de comunicação.
[061] Os processos e fluxos lógicos descritos neste relatório descritivo podem ser realizados por um ou mais computadores programáveis executando um ou mais programas de computador para executar funções operando em dados de entrada e gerando saída. Os processos e os fluxos lógicos também podem ser realizados, e o aparelho também pode ser implementado como, circuito lógico de propósito especial, por exemplo, um FPGA (conjunto de portas de campo programável) ou um ASIC (circuito integrado de aplicação específica).
[062] Computadores adequados para a execução de um programa de computador incluem, a título de exemplo, podem ser baseados em microprocessadores de uso geral ou de propósito especial, ou em qualquer outro tipo de unidade de processamento central. Geralmente, uma unidade de processamento central receberá instruções e dados de uma memória somente de leitura ou de uma memória de acesso aleatório ou ambas. Os elementos essenciais de um computador são uma unidade de processamento central para realizar ou executar instruções e um ou mais dispositivos de memória para armazenar instruções e dados. Geralmente, um computador também incluirá, ou será operativamente acoplado para receber dados ou transferir dados para, ou ambos, um ou mais dispositivos de armazenamento em massa para armazenar dados, por exemplo, magnéticos, discos magnético-ópticos ou discos ópticos. No entanto, um computador não precisa ter esses dispositivos. Além disso, um computador pode ser incorporado em outro dispositivo, por exemplo, um telefone móvel, um assistente digital pessoal (PDA), um reprodutor de áudio ou de vídeo móvel, um console de jogos, um receptor do Sistema de Posicionamento Global (GPS), ou um dispositivo de armazenamento portátil, por exemplo, uma unidade flash de barramento serial universal (USB), para citar apenas alguns. Meios legíveis por computador adequados para o armazenamento de instruções de programa de computador e dados incluem todas as formas de memória, meios e dispositivos de memória não voláteis, incluindo a título de exemplo, dispositivos de memória de semicondutores, como, por exemplo, EPROM, EEPROM, e dispositivos de memória flash; discos magnéticos, por exemplo, discos rígidos internos e discos removíveis; discos magneto-ópticos; e discos de CD-ROM e DVD-ROM. O processador e a memória podem ser suplementados por, ou incorporados em, circuitos lógicos de propósito especial.
[063] Para fornecer interação com um usuário, modalidades do assunto descrito no presente relatório descritivo podem ser implementadas em um computador tendo um dispositivo de exibição, por exemplo, um monitor de CRT (tubo de raios catódicos) ou de LCD (tela de cristal líquido), para a exibição de informação para o usuário e um teclado e um dispositivo apontador, por exemplo, um mouse ou uma “trackball”, através da qual o usuário pode introduzir dados no computador. Outros tipos de dispositivos podem ser utilizados para fornecer para a interação com um usuário também; por exemplo, retorno fornecido ao usuário pode ser qualquer forma de retorno sensorial, por exemplo, um retorno visual, retorno auditivo, ou retorno tátil; e a entrada a partir do usuário pode ser recebida em qualquer forma, incluindo entrada acústica, de fala, ou tátil. Além disso, um computador pode interagir com um usuário através do envio de documentos para e recebimento de documentos a partir de um dispositivo que é usado pelo usuário; por exemplo, através do envio de páginas da web para um navegador de Internet no dispositivo cliente de um usuário em resposta a pedidos recebidos a partir do navegador de Internet.
[064] As modalidades do assunto descrito no presente relatório descritivo podem ser implementadas em um sistema de computador que inclui um componente de terminal posterior, por exemplo, como um servidor de dados, ou que inclui um componente de middleware, por exemplo, um servidor de aplicações, ou que inclui um componente de terminal frontal, por exemplo, um computador cliente tendo uma interface gráfica de usuário ou um navegador da Internet através do qual um usuário pode interagir com uma implementação do assunto descrito neste relatório descritivo, ou qualquer combinação de um ou mais tais componentes de terminal posterior, de middleware, ou de terminal frontal. Os componentes do sistema podem ser interligados por qualquer forma ou meio de comunicação de dados digitais, por exemplo, uma rede de comunicação. Exemplos de redes de comunicação incluem uma rede de área local ("LAN") e uma rede de área ampla ("WAN"), por exemplo, a Internet.
[065] O sistema de computação pode incluir clientes e servidores. Um cliente e servidor são geralmente remotos uns dos outros e normalmente interagem através de uma rede de comunicação. A relação entre cliente e servidor surge em virtude de programas de computador em execução nos respectivos computadores e tendo um relacionamento de cliente-servidor para cada outro.
[066] Embora este relatório descritivo contenha muitos detalhes específicos de aplicação, estes não devem ser interpretados como limitações sobre o âmbito de qualquer invenção ou do que pode ser reivindicado, mas sim como descrições de características que podem ser específicas para modalidades particulares das invenções particulares. Certas características que são descritas no presente relatório descritivo, no contexto de modalidades separadas, também podem ser implementadas em combinação em uma única modalidade. Inversamente, várias características que são descritas no contexto de uma única modalidade podem também ser implementadas em várias modalidades separadamente ou em qualquer subcombinação adequada. Além disso, embora as características possam ser descritas acima como atuando em certas combinações e ainda inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada podem em alguns casos ser excisadas a partir da combinação, e a combinação reivindicada pode ser dirigida para uma subcombinação ou variação de uma subcombinação.
[067] Do mesmo modo, enquanto operações são representadas nos desenhos em uma ordem particular, isso não deve ser entendido como requerendo que essas operações sejam realizadas na ordem particular mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam realizadas, para alcançar os resultados desejados. Em certas circunstâncias, processamento multitarefa e paralelo pode ser vantajoso. Além disso, a separação dos vários módulos de sistema e componentes nas modalidades descritas acima não deve ser entendida como requerendo tal separação em todas as modalidades, e deve ser entendido que os componentes e sistemas de programa descritos podem geralmente ser integrados juntos em um único produto de software ou embalados em vários produtos de software.
[068] Modalidades particulares do assunto foram descritas. Outras modalidades estão dentro do âmbito das seguintes reivindicações. Por exemplo, as ações recitadas nas reivindicações podem ser efetuadas em uma ordem diferente e ainda conseguir resultados desejáveis. Como um exemplo, os processos descritos nas figuras anexas não requerem necessariamente a ordem particular mostrada, ou a ordem sequencial, para obter resultados desejáveis. Em certas implementações, processamento multitarefa e paralelo pode ser vantajoso.

Claims (15)

1. Sistema de rede neural (100) implementado por um ou mais computadores, o sistema de rede neural caracterizado pelo fato de que compreende: uma camada de normalização de lote (108) entre uma primeira camada de rede neural (104) e uma segunda camada de rede neural (112), em que a primeira camada de rede neural gera primeiras saídas de camada tendo uma pluralidade de componentes, e em que a camada de normalização de lote é configurada para, durante o treinamento do sistema de rede neural em um lote de exemplos de treinamento: receber uma respectiva primeira saída de camada para cada exemplo de treinamento no lote; calcular uma pluralidade de estatísticas de normalização para o lote a partir das primeiras saídas de camada; normalizar cada componente de cada primeira saída de camada utilizando as estatísticas de normalização para gerar uma respectiva saída de camada normalizada para cada exemplo de treinamento no lote; gerar uma respectiva saída de camada de normalização de lote para cada um dos exemplos de treinamento a partir das saídas de camada normalizadas; e fornecer a saída de camada de normalização de lote como uma entrada para a segunda camada de rede neural; em que a pluralidade de componentes da primeira saída de camada são indexados por dimensão, e em que calcular uma pluralidade de estatísticas de normalização para as primeiras saídas de camada compreende: calcular, para cada uma das dimensões, uma média dos componentes das primeiras saídas de camada na dimensão; e calcular, para cada uma das dimensões, um desvio padrão dos componentes das primeiras saídas de camada na dimensão.
2. Sistema de rede neural, de acordo com a reivindicação 1, caracterizado pelo fato de que a normalização de cada componente de cada saída de camada compreende: normalizar o componente utilizando a média calculada e desvio padrão calculado para a dimensão correspondente ao componente.
3. Sistema de rede neural, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a camada de normalização de lote mantém um conjunto respectivo de parâmetros para cada dimensão, e em que a geração da respectiva saída de camada de normalização de lote para cada um dos exemplos de treinamento a partir das saídas de camada normalizadas compreende: transformar, para cada dimensão, o componente da saída de camada normalizada para o exemplo de treinamento na dimensão de acordo com os valores atuais de um conjunto de parâmetros para a dimensão.
4. Sistema de rede neural, de acordo com a reivindicação 3, caracterizado pelo fato de que a camada de normalização de lote é configurada para, depois do sistema de rede neuronal ser treinado para determinar valores treinados dos parâmetros para cada uma das dimensões: receber uma nova primeira saída de camada gerada pela primeira camada de rede neural para uma nova entrada de rede neural; normalizar cada componente da nova primeira saída de camada utilizando estatísticas de média e desvio padrão pré- calculadas para as dimensões para gerar uma nova saída de camada normalizada; gerar uma nova saída de camada de normalização de lote por transformação, para cada dimensão, do componente da nova saída de camada normalizada para o exemplo de treinamento na dimensão de acordo com os valores treinados do conjunto de parâmetros para a dimensão; e fornecer a saída de camada de normalização de lote como uma nova entrada de camada para a segunda camada de rede neural.
5. Sistema de rede neural, de acordo com a reivindicação 4, caracterizado pelo fato de que as estatísticas de média e desvio padrão pré-calculadas para as dimensões são calculadas a partir das primeiras saídas de camada geradas pela primeira camada de rede neural durante o treinamento do sistema de rede neural ou são calculadas a partir de novas primeiras saídas de camada geradas pela primeira camada de rede neural após a rede neuronal ter sido treinada.
6. Sistema de rede neural implementado por um ou mais computadores, o sistema de rede neural caracterizado pelo fato de que compreende: uma camada de normalização de lote entre uma primeira camada de rede neural e uma segunda camada de rede neural, em que a primeira camada de rede neural gera primeiras saídas de camada tendo uma pluralidade de componentes, e em que a camada de normalização de lote é configurada para, durante o treinamento do sistema de rede neural em um lote de exemplos de treinamento: receber uma respectiva primeira saída de camada para cada exemplo de treinamento no lote; calcular uma pluralidade de estatísticas de normalização para o lote a partir das primeiras saídas de camada; normalizar cada componente de cada primeira saída de camada utilizando as estatísticas de normalização para gerar uma respectiva saída de camada normalizada para cada exemplo de treinamento no lote; gerar uma respectiva saída de camada de normalização de lote para cada um dos exemplos de treinamento a partir das saídas de camada normalizadas; e fornecer a saída de camada de normalização de lote como uma entrada para a segunda camada de rede neural; em que a primeira camada de rede neural é uma camada convolucional, em que a pluralidade de componentes da primeira saída de camada são indexados pelo índice de característica e índice de localização espacial, e em que calcular uma pluralidade de estatísticas de normalização para as primeiras saídas de camada compreende, para cada um dos índices de característica: calcular uma média dos componentes das primeiras saídas de camada que correspondem ao índice de característica; e calcular uma variância dos componentes das primeiras saídas de camada que correspondem ao índice de característica.
7. Sistema de rede neural, de acordo com a reivindicação 6, caracterizado pelo fato de que a normalização de cada componente de cada saída de camada compreende: normalizar o componente a partir da média e da variância para o índice de característica correspondente ao componente.
8. Sistema de rede neural, de acordo com a reivindicação 6 ou 7, caracterizado pelo fato de que a geração da respectiva saída de camada de normalização de lote para cada um dos exemplos de treinamento a partir das saídas de camada normalizadas compreende: transformar cada componente da saída de camada normalizada de acordo com os valores atuais de um conjunto de parâmetros para o índice de característica correspondente ao componente.
9. Sistema de rede neural, de acordo com a reivindicação 8, caracterizado pelo fato de que a camada de normalização de lote é configurada para, depois da rede neuronal ter sido treinada para determinar os valores treinados dos parâmetros para cada uma das dimensões: receber uma nova primeira entrada de camada produzida a partir de uma nova entrada de rede neural; normalizar cada componente da nova primeira saída de camada utilizando estatísticas de média e desvio padrão pré- calculadas para os índices de característica para gerar uma nova saída de camada normalizada; gerar uma nova saída de camada de normalização de lote por transformar cada componente da saída de camada normalizada de acordo com os valores treinados do conjunto de parâmetros para o índice de característica correspondente ao componente; e fornecer a nova saída de camada de normalização de lote como uma nova entrada de camada para a segunda camada de rede neural.
10. Sistema de rede neural, de acordo com a reivindicação 6, caracterizado pelo fato de que a pluralidade de componentes da primeira saída de camada são indexados pelo índice de característica e índice de localização espacial, e em que calcular uma pluralidade de estatísticas de normalização para as primeiras saídas de camada compreende: calcular, para cada combinação de índice de característica e de índice de localização espacial, uma média dos componentes das primeiras saídas de camada tendo o índice de característica e índice de localização espacial; calcular, para cada índice de característica, uma média das médias para as combinações que incluem o índice de característica; calcular, para cada combinação de índice de característica e de índice de localização espacial, uma variância dos componentes das primeiras saídas de camada tendo o índice de característica e índice de localização espacial; e calcular, para cada índice de característica, uma média das variâncias para as combinações que incluem o índice de característica.
11. Sistema de rede neural, de acordo com a reivindicação 6, caracterizado pelo fato de que a normalização de cada componente de cada saída de camada compreende: normalizar o componente utilizando a média das médias e a média das variâncias para o índice de característica correspondente ao componente.
12. Sistema de rede neural, de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que a primeira camada de rede neural gera as primeiras saídas de camada por modificar primeiras entradas de camada de acordo com os valores atuais de um conjunto de parâmetros da primeira camada de rede neural, e em que a segunda camada de rede neural gera segundas saídas de camada por aplicar uma operação não linear para as saídas de camada de normalização de lote; ou em que a primeira camada de rede neural gera as primeiras saídas de camada por modificar primeiras entradas de camada de acordo com os valores atuais de um conjunto de parâmetros da primeira camada de rede neural para gerar primeiras entradas de camada modificadas, e, em seguida, aplica uma operação não linear para as primeiras entradas de camada modificadas.
13. Sistema de rede neural, de acordo com qualquer uma das reivindicações 1 a 12, caracterizado pelo fato de que, durante o treino da rede neural, o sistema da rede neural é configurado para retro-propagar as estatísticas de normalização como parte de ajustar os valores de parâmetro da rede neural.
14. Método de processar dados utilizando o sistema de rede neural conforme definido em qualquer uma das reivindicações 1 a 13, caracterizado pelo fato de que o método compreende executar operações com uma camada de normalização de lote entre uma primeira camada de rede neural e uma segunda camada de rede neural, em que a primeira camada de rede neural gera primeiras saídas de camada tendo uma pluralidade de componentes, o método compreendendo usar a camada de normalização de lote para, durante o treinamento do sistema de rede neural em um lote de exemplos de treinamento: receber uma respectiva primeira saída de camada para cada exemplo de treinamento no lote; calcular uma pluralidade de estatísticas de normalização para o lote a partir das primeiras saídas de camada; normalizar cada componente de cada primeira saída de camada utilizando as estatísticas de normalização para gerar uma respectiva saída de camada normalizada para cada exemplo de treinamento no lote; gerar uma respectiva saída de camada de normalização de lote para cada um dos exemplos de treinamento a partir das saídas de camada normalizadas; e fornecer a saída de camada de normalização de lote como uma entrada para a segunda camada de rede neural; em que a pluralidade de componentes da primeira saída de camada são indexados por i) dimensão ou ii) em que a primeira camada de rede neural é uma camada convolucional e em que a pluralidade de componentes da primeira saída de camada são indexados pelo índice de característica e índice de localização espacial, e em que calcular uma pluralidade de estatísticas de normalização para as primeiras saídas de camada compreende ainda para (i): calcular, para cada uma das dimensões, uma média dos componentes das primeiras saídas de camada na dimensão; e calcular, para cada uma das dimensões, um desvio padrão dos componentes das primeiras saídas de camada na dimensão; e para (ii): calcular, para cada um dos índices de característica, uma média dos componentes das primeiras saídas de camada que correspondem ao índice de característica; e calcular, para cada um dos índices de característica, uma variância dos componentes das primeiras saídas de camada que correspondem ao índice de característica.
15. Um ou mais meios de armazenamento de computador não transitórios codificados com instruções, caracterizados pelo fato de que as instruções, quando executadas por um ou mais computadores fazem o um ou mais computadores implementarem o método, conforme definido na reivindicação 14.
BR112017016306-3A 2015-01-28 2016-01-28 Sistema de rede neural implementado por um ou mais computadores, método de processar dados utilizando o sistema de rede neural e um ou mais meios de armazenamento de computador não transitórios BR112017016306B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562108984P 2015-01-28 2015-01-28
US62/108,984 2015-01-28
PCT/US2016/015476 WO2016123409A1 (en) 2015-01-28 2016-01-28 Batch normalization layers

Publications (3)

Publication Number Publication Date
BR112017016306A2 BR112017016306A2 (pt) 2018-07-10
BR112017016306A8 BR112017016306A8 (pt) 2018-08-14
BR112017016306B1 true BR112017016306B1 (pt) 2023-05-30

Family

ID=

Similar Documents

Publication Publication Date Title
AU2020250312B2 (en) Batch normalization layers
US10733390B2 (en) Processing text sequences using neural networks
US11443170B2 (en) Semi-supervised training of neural networks
US20210049298A1 (en) Privacy preserving machine learning model training
US9805028B1 (en) Translating terms using numeric representations
US20200160843A1 (en) Cross-modal sequence distillation
US11481609B2 (en) Computationally efficient expressive output layers for neural networks
BR112017016306B1 (pt) Sistema de rede neural implementado por um ou mais computadores, método de processar dados utilizando o sistema de rede neural e um ou mais meios de armazenamento de computador não transitórios
US20230401835A1 (en) Training a speaker neural network using one or more listener neural networks