ES2714152T3 - Capas de normalización por lotes - Google Patents

Capas de normalización por lotes Download PDF

Info

Publication number
ES2714152T3
ES2714152T3 ES16704121T ES16704121T ES2714152T3 ES 2714152 T3 ES2714152 T3 ES 2714152T3 ES 16704121 T ES16704121 T ES 16704121T ES 16704121 T ES16704121 T ES 16704121T ES 2714152 T3 ES2714152 T3 ES 2714152T3
Authority
ES
Spain
Prior art keywords
layer
neural network
output
outputs
batch
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES16704121T
Other languages
English (en)
Inventor
Sergey Ioffe
Corinna Cortes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
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
Application granted granted Critical
Publication of ES2714152T3 publication Critical patent/ES2714152T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Sistema de red neuronal (100) implementado por uno o más ordenadores, comprendiendo el sistema de red neuronal: una capa de normalización por lotes (108) entre una primera capa de red neuronal (104) y una segunda capa de red neuronal (112), donde la primera capa de red neuronal genera primeras salidas de capa presentando una pluralidad de componentes, y donde la capa de normalización por lotes está configurada para, durante el entrenamiento del sistema de red neuronal con un lote de ejemplos de entrenamiento: recibir una primera salida de capa respectiva para cada ejemplo de entrenamiento del lote; calcular una pluralidad de estadísticas de normalización para el lote a partir de las primeras salidas de capa; normalizar cada componente de cada primera salida de capa utilizando las estadísticas de normalización para generar una respectiva salida de capa normalizada para cada ejemplo de entrenamiento del lote; generar una respectiva salida de la capa de normalización por lotes para cada uno de los ejemplos de entrenamiento a partir de las salidas de capas normalizadas; y proporcionar la salida de la capa de normalización por lotes como entrada a la segunda capa de red neuronal; donde la pluralidad de componentes de primera salida de capa se indexan por dimensión, y donde calcular una pluralidad de estadísticas de normalización para las primeras salidas de capas comprende: calcular, para cada una de las dimensiones, una media de los componentes de la primera salida de capa en la dimensión; y calcular, para cada una de las dimensiones, una desviación estándar de los componentes de las primeras salidas de capa en la dimensión.

Description

DESCRIPCION
Capas de normalizacion por lotes
ANTECEDENTES
[0001] Esta memoria se refiere al procesamiento de entradas a traves de las capas de redes neuronales para generar salidas.
[0002] Las redes neuronales son modelos de aprendizaje automatico que emplean una o mas capas de unidades no lineares para predecir una salida para una entrada recibida. Algunas redes neuronales incluyen una o mas capas ocultas ademas de una capa de salida. La salida de cada capa oculta se utiliza como entrada para la siguiente capa de la red, es decir, la siguiente capa oculta o la capa de salida. Cada capa de la red genera una salida a partir de una entrada recibida de conformidad con los valores actuales de un respectivo conjunto de parametros. En Gulcehre at al: "Knowledge Matters: Importance of Prior Information for Optimization", 13 julio 2013, http://arxiv.org/pdf/1301.4083v6.pdfse describio el uso de la normalizacion en la capa de salida de una red neuronal para fomentar activaciones dispersas.
SUMARIO
[0003] En general, un aspecto innovador del objeto descrito en la presente memoria puede estar incorporado en un sistema de red neuronal implementado por uno o mas ordenadores que incluye una capa de normalizacion por lotes entre una primera capa de red neuronal y una segunda capa de red neuronal, en el que la primera capa de red neuronal genera primeras salidas de capa presentando una pluralidad de componentes, donde la capa de normalizacion por lotes esta configurada para, durante el entrenamiento del sistema de red neuronal con un lote de ejemplos de entrenamiento: recibir una respectiva primera salida de capa para cada ejemplo de entrenamiento del lote; calcular una pluralidad de estadfsticas de normalizacion para el lote a partir de las primeras salidas de capa; normalizar cada componente de cada primera salida de capa utilizando las estadfsticas de normalizacion para generar una respectiva salida de capa normalizada para cada ejemplo de entrenamiento del lote; generar una respectiva salida de la capa de normalizacion por lotes para cada uno de los ejemplos de entrenamiento a partir de las salidas de capa normalizadas; y proporcionar la salida de la capa de normalizacion por lotes como una entrada a la segunda capa de red neuronal.
[0004] Para un sistema de uno o mas ordenadores, estar configurado para realizar operaciones o acciones concretas significa que el sistema ha instalado en el software, firmware, hardware, o una combinacion de estos que en funcionamiento hacen que el sistema lleve a cabo las operaciones o acciones. Para uno o mas programas informaticos, estar configurado para realizar operaciones o acciones concretas significa que el uno o mas programas incluyen instrucciones que, cuando son ejecutadas por un aparato de procesamiento de datos, hacen que el aparato realice las operaciones o acciones.
[0005] Los modos de realizacion concretos del objeto descrito en la presente memoria pueden implementarse a fin de alcanzar una o mas de las siguientes ventajas. Un sistema de red neuronal que incluye una o mas capas de normalizacion por lotes puede entrenarse mas rapidamente que una red neuronal por lo demas identica que no incluya ninguna capa de normalizacion por lotes. Por ejemplo, al incluir una o mas capas de normalizacion por lotes en el sistema de red neuronal, pueden mitigarse los problemas causados por la distribucion de salidas de una capa concreta que cambian durante el entrenamiento. Esto puede permitir que se utilicen de manera efectiva ritmos de aprendizaje mas altos durante el entrenamiento y pueden reducir el impacto de como se inicializan los parametros en el proceso de entrenamiento. De forma adicional, durante el entrenamiento, las capas de normalizacion por lotes pueden actuar como un regularizador y pueden reducir la necesidad de que otras tecnicas de regularizacion, como el dropout, se empleen durante el entrenamiento. Una vez entrenado, el sistema de red neuronal que incluye una capa de normalizacion puede generar salidas de red neuronal que son tan precisas, si no mas, que las salidas de red neuronal generadas por el sistema de red neuronal por lo demas identico.
[0006] Los detalles de uno o mas modos de realizacion del objeto de esta memoria se exponen en los dibujos adjuntos y en la siguiente descripcion. Otras caractensticas, aspectos, y ventajas del objeto de la invencion resultaran evidentes a partir de la descripcion, los dibujos y las reivindicaciones. La invencion esta definida por las reivindicaciones adjuntas. Los modos de realizacion que no estan dentro del alcance de las reivindicaciones no describen parte de la presente invencion.
BREVE DESCRIPCION DE LOS DIBUJOS
[0007]
La FIG. 1 muestra un sistema de red neuronal de ejemplo.
La FIG. 2 es un diagrama de flujo de un proceso de ejemplo para procesar una entrada utilizando una capa de normalizacion por lotes durante el entrenamiento del sistema de red neuronal.
La FIG. 3 es un diagrama de flujo de un proceso de ejemplo para procesar una entrada utilizando una normalizacion por lotes despues de que el sistema de red neuronal se haya entrenado.
[0008] Numeros de referencia y denominaciones similares en los diferentes dibujos indican elementos similares.
DESCRIPCION DETALLADA
[0009] Esta memoria describe un sistema de red neuronal implementado como programas informaticos en uno o mas ordenadores en una o mas ubicaciones que incluye una capa de normalizacion por lotes.
[0010] La FIG. 1 muestra un sistema de red neuronal 100 de ejemplo. El sistema de red neuronal 100 es un ejemplo de un sistema implementado como programas informaticos en uno o mas ordenadores en una o mas ubicaciones, en el que pueden implementarse los sistemas, componentes, y tecnicas descritas a continuacion.
[0011] El sistema de red neuronal 100 incluye multiples capas de red neuronal que se disponen en una secuencia desde la capa mas baja en la secuencia hasta la capa mas alta en la secuencia. El sistema de red neuronal genera salidas de red neuronal a partir de entradas de red neuronal al procesar las entradas de red neuronal a traves de cada una de las capas de la secuencia.
[0012] El sistema de red neuronal 100 puede estar configurado para recibir cualquier tipo de entrada de datos digitales y para generar cualquier tipo de salida de clasificacion o puntuacion basandose en la entrada.
[0013] Por ejemplo, si las entradas al sistema de red neuronal 100 son imagenes o caractensticas que se han extrafdo de imagenes, la salida generada por el sistema de red neuronal 100 para una imagen concreta puede ser puntuaciones para cada uno de un conjunto de categonas de objeto, con cada puntuacion representando una probabilidad estimada de que la imagen contenga una imagen de un objeto que pertenezca a la categona.
[0014] Como otro ejemplo, si las entradas al sistema de red neuronal 100 son recursos de Internet (por ejemplo, paginas web), documentos o partes de documentos o caractensticas extrafdas de recursos de Internet, documentos o partes de documentos, la salida generada por el sistema de red neuronal 100 para un recurso de Internet, documento, o parte de un documento determinado puede ser una puntuacion para cada uno de un conjunto de materias, con cada puntuacion representando una probabilidad estimada de que el recurso de Internet, documento o parte de un documento sea sobre ese materia.
[0015] Como otro ejemplo, si las entradas al sistema de red neuronal 100 son caractensticas de un contexto de impresiones para un anuncio en concreto, la salida generada por el sistema de red neuronal 100 puede ser una puntuacion que represente una probabilidad estimada de que se haga clic en el anuncio en concreto.
[0016] Como otro ejemplo, si las entradas al sistema de red neuronal 100 son caractensticas de una recomendacion personalizada para un usuario, por ejemplo, caractensticas que determinan el contexto para la recomendacion, por ejemplo, caractensticas que determinan acciones previas realizadas por el usuario, la salida generada por el sistema de red neuronal 100 puede ser una puntuacion para cada uno de un conjunto de artfculos de contenido, con cada puntuacion representando una probabilidad estimada de que el usuario responda favorablemente a que se le recomiende el artfculo de contenido.
[0017] Como otro ejemplo, si la entrada del sistema de red neuronal 100 es texto en un idioma, la salida generada por el sistema de red neuronal 100 puede ser una puntuacion para cada una de un conjunto de piezas de texto en otro idioma, con cada puntuacion representando una probabilidad estimada de que la pieza de texto en el otro idioma sea una traduccion adecuada del texto de entrada al otro idioma.
[0018] Como otro ejemplo, si la entrada al sistema de red neuronal 100 es un enunciado oral, una secuencia de enunciados orales, o caractensticas derivadas de uno de los dos, la salida generada por el sistema de red neuronal 100 puede ser una puntuacion para cada una de un conjunto de piezas de texto, representando cada puntuacion una probabilidad estimada de que la pieza de texto sea la transcripcion correcta del enunciado o conjunto de enunciados.
[0019] Como otro ejemplo, el sistema de red neuronal 100 puede formar parte de un sistema de autocompletado o de un sistema de procesamiento de textos.
[0020] Como otro ejemplo, el sistema de red neuronal 100 puede formar parte de un sistema de aprendizaje de refuerzo y puede generar salidas utilizadas para seleccionar acciones que seran realizadas por un agente que interactue con un entorno.
[0021] En particular, cada una de las capas de la red neuronal esta configurada para recibir una entrada y generar una salida a partir de la entrada, y las capas de red neuronal procesan de manera colectiva las entradas de red neuronal recibidas por el sistema de red neuronal 100 para generar una respectiva salida de red neuronal para cada una de las entradas de la red neuronal recibidas. Algunas o todas las capas de red neuronal de la secuencia generan salidas a partir de entradas de conformidad con valores actuales de un conjunto de parametros para la capa de red neuronal. Por ejemplo, algunas capas pueden multiplicar la entrada recibida por una matriz de valores de parametros actuales como parte de la generacion de una salida a partir de la entrada recibida.
[0022] El sistema de red neuronal 100 tambien incluye una capa de normalizacion por lotes 108 entre una capa de red neuronal A 104 y una capa de red neuronal B 112 en la secuencia de capas de red neuronal. La capa de normalizacion por lotes 108 esta configurada para realizar un conjunto de operaciones en entradas recibidas de la capa de red neuronal A 104 durante el entrenamiento del sistema de red neuronal 100 y otro conjunto de operaciones en entradas recibidas de la capa de red neuronal A 104 despues de que el sistema de red neuronal 100 se haya entrenado.
[0023] En concreto, el sistema de red neuronal 100 puede entrenarse con multiples lotes de ejemplos de entrenamiento a fin de determinar los valores entrenados de los parametros de las capas de red neuronal. Un lote de ejemplos de entrenamiento es un conjunto de multiples ejemplos de entrenamiento. Por ejemplo, durante el entrenamiento, el sistema de red neuronal 100 puede procesar un lote de ejemplos de entrenamiento 102 y generar una respectiva salida de red neuronal para cada ejemplo de entrenamiento del lote 102. Luego, las salidas de red neuronal pueden utilizarse para ajustar los valores de los parametros de las capas de red neuronal de la secuencia, por ejemplo, mediante tecnicas convencionales de entrenamiento de red neuronal por retropropagacion y por descenso de gradiente.
[0024] Durante el entrenamiento del sistema de red neuronal 100 con un lote determinado de ejemplos de entrenamiento, la capa de normalizacion por lotes 108 se configura para recibir las salidas de la capa A 106 generadas por la capa de red neuronal A 104 para los ejemplos de entrenamiento del lote, procesar las salidas de la capa A 106 para generar una respectiva salida de la capa de normalizacion por lotes 110 para cada ejemplo de entrenamiento del lote, y luego proporcionar las salidas de la capa de normalizacion por lotes 110 como una entrada a la capa de red neuronal B 112. Las salidas de la capa A 106 incluyen una salida respectiva generada por la capa de red neuronal A 104 para cada ejemplo de entrenamiento del lote. De manera similar, las salidas de la capa de normalizacion por lotes 110 incluyen una salida respectiva generada por la capa de normalizacion por lotes 108 para cada ejemplo de entrenamiento del lote.
[0025] En general, la capa de normalizacion por lotes 108 calcula un conjunto de estadfsticas de normalizacion para el lote a partir de las salidas de la capa A 106, normaliza las salidas de la capa A 106 para generar una respectiva salida normalizada para cada ejemplo de entrenamiento del lote, y, de manera opcional, transforma cada una de las salidas normalizadas antes de proporcionar las salidas como entradas a la capa de red neuronal B 112.
[0026] Las estadfsticas de normalizacion calculadas por la capa de normalizacion por lotes 108 y la manera en la que la capa de normalizacion por lotes 108 normaliza las salidas de la capa A 106 durante el entrenamiento depende de la naturaleza de la capa de normalizacion por lotes A 104 que genera las salidas de la capa A 106.
[0027] En algunos casos, la capa de red neuronal A 104 es una capa que genera una salida que incluye multiples componentes indexados por dimension. Por ejemplo, la capa de red neuronal A 104 puede ser una capa de red neuronal completamente conectada. No obstante, en algunos otros casos, la capa de red neuronal A 104 es una capa convolucional u otro tipo de capa de red neuronal que genera una salida que incluye multiples componentes que estan cada uno indexados por un mdice de caractenstica y por un mdice de ubicacion espacial. La generacion de la salida de la capa de normalizacion por lotes durante el entrenamiento del sistema de red neuronal 100 en cada uno de estos dos casos se describe con mas detalle a continuacion haciendo referencia a la FIG. 2.
[0028] Una vez que se haya entrenado el sistema de red neuronal 100, el sistema de red neuronal 100 puede recibir una nueva entrada de red neuronal para su procesamiento y procesar la entrada de red neuronal a traves de las capas de red neuronal para generar una nueva salida de red neuronal para la entrada de conformidad con los valores entrenados de los parametros de los componentes del sistema de red neuronal 100. Las operaciones llevadas a cabo por la capa de normalizacion por lotes 108 durante el procesamiento de la nueva entrada de red neuronal tambien depende de la naturaleza de la capa de red neuronal A 104. El procesamiento de una nueva entrada de red neuronal despues de que el sistema de red neuronal 100 haya sido entrenado se describira con mas detalle a continuacion haciendo referencia a la FIG. 3.
[0029] La capa de normalizacion por lotes 108 puede estar incluida en varias ubicaciones en la secuencia de capas de red neuronal y, en algunas implementaciones, pueden incluirse multiples capas de normalizacion por lotes en la secuencia.
[0030] En el ejemplo de la FIG. 1, en algunas implementaciones, la capa de red neuronal A 104 genera salidas al modificar entradas a la capa de conformidad con valores actuales de un conjunto de parametros para la primera capa de red neuronal, por ejemplo, multiplicando la entrada a la capa por una matriz de los valores de los parametros actuales. En estas implementaciones, la capa de red neuronal B 112 puede recibir una salida de la capa de normalizacion por lotes 108 y generar una salida al aplicar una operacion no linear, es decir, una funcion de activacion no linear, a la salida de la capa de normalizacion por lotes. Por lo tanto, en estas implementaciones, la capa de normalizacion por lotes 108 se inserta dentro de una capa de red neuronal convencional, y las operaciones de la capa de red neuronal convencional se dividen entre la capa de red neuronal A 104 y la capa de red neuronal B 112.
[0031] En algunas otras implementaciones, la capa de red neuronal A 104 genera las salidas al modificar entradas de capas conforme a valores actuales de un conjunto de parametros para generar unas primeras entradas de capa modificadas y luego aplicar una operacion no linear a las primeras entradas de capa modificadas antes de proporcionar la salida a la capa de normalizacion por lotes 108. Por consiguiente, en estas implementaciones, la capa de normalizacion por lotes 108 se inserta tras una capa de red neuronal convencional en la secuencia.
[0032] La FIG. 2 es un diagrama de flujo de un proceso de ejemplo 200 para generar una salida de la capa de normalizacion por lotes durante el entrenamiento de una red neuronal con un lote de ejemplos de entrenamiento. Por conveniencia, el proceso 200 se describira como que se lleva a cabo por un sistema de uno o mas ordenadores situados en una o mas ubicaciones. Por ejemplo, una capa de normalizacion por lotes incluida en un sistema de red neuronal, por ejemplo, la capa de normalizacion por lotes 108 incluida en el sistema de red neuronal 100 de la FIG. 1, programado de manera apropiada, puede llevar a cabo el proceso 200.
[0033] La capa de normalizacion por lotes recibe salidas de capas inferiores para el lote de ejemplos de entrenamiento (paso 202). Las salidas de capas inferiores incluyen una salida respectiva generada para cada ejemplo de entrenamiento del lote por la capa de debajo de la capa de normalizacion por lotes en la secuencia de capas de red neuronal.
[0034] La capa de normalizacion por lotes genera una respectiva salida normalizada para cada uno de los ejemplos de entrenamiento del lote (paso 204). Esto es, la capa de normalizacion por lotes genera una respectiva salida normalizada de cada una de las salidas de capa inferior recibidas.
[0035] En algunos casos, la capa de debajo de la capa de normalizacion por lotes es una capa que genera una salida que incluye multiples componentes indexados por dimension.
[0036] En estos casos, la capa de normalizacion por lotes calcula, para cada dimension, la desviacion estandar y media de los componentes de las salidas de capas inferiores que se corresponden con la dimension. Despues, la capa de normalizacion por lotes normaliza cada componente de cada una de las salidas de niveles inferiores utilizando las desviaciones estandar y medias para generar una respectiva salida normalizada para cada uno de los ejemplos de entrenamiento del lote. En concreto, para un componente determinado de una salida determinada, la capa de normalizacion por lotes normaliza el componente utilizando la desviacion estandar y media calculada para la dimension que se corresponda con el componente. Por ejemplo, en algunas implementaciones, para un componente xk,i correspondiente a la ka dimension de la ia salida de capa inferior a partir de un lote p, la salida normalizada Xk,i satisface:
Figure imgf000005_0001
donde ^ b es la media de los componentes correspondiente a la k a dimension de las salidas de capas inferiores en el lote p, y ob es la desviacion estandar de los componentes correspondiente a la ka dimension de las salidas de capa inferior en el lote p. En algunas implementaciones, la desviacion estandar es una desviacion estandar numericamente estable que es igual a (ob2 £)1/2, donde £ es un valor constante y ob2 es la varianza de los componentes correspondiente a la ka dimension de las salidas de capa inferior del lote p.
[0037] No obstante, en algunos otros casos, la capa de red neuronal que esta por debajo de la capa de normalizacion por lotes es una capa convolucional u otro tipo de capa de red neuronal que genera una salida que incluye multiples componentes que estan cada uno indexados por mdice de caractenstica y por mdice de ubicacion espacial.
[0038] En algunos de estos casos, la capa de normalizacion por lotes calcula, para cada posible combinacion de mdice de caractenstica e mdice de ubicacion espacial, la media y la varianza de los componentes de las salidas de capas inferiores, que tienen ese mdice de caractenstica e mdice de ubicacion espacial. Despues, la capa de normalizacion por lotes calcula, para cada mdice de caractenstica, el promedio de las medias para las combinaciones de mdice de caractenstica e mdice de ubicacion espacial que incluyen el mdice de caractenstica. La capa de normalizacion por lotes tambien calcula, para cada mdice de caractenstica, el promedio de las varianzas para las combinaciones de mdice de caractenstica e mdice de ubicacion espacial que incluyen el mdice de caractenstica. Por lo tanto, tras calcular los promedios, la capa de normalizacion por lotes ha calculado una media estadfstica para cada caractenstica a lo largo de todas las ubicaciones espaciales y una varianza estadfstica para cada caractenstica a lo largo de todas las ubicaciones espaciales.
[0039] Despues, la capa de normalizacion por lotes normaliza cada componente de cada una de las salidas de niveles inferiores utilizando las medias promedio y las varianzas promedio para generar una respectiva salida normalizada para cada uno de los ejemplos de entrenamiento del lote. En concreto, para un componente determinado de una salida determinada, la capa de normalizacion por lotes normaliza el componente utilizando la media promedio y la varianza promedio para el mdice de caractenstica que se corresponde con el componente, por ejemplo, de la misma forma que como se ha descrito anteriormente cuando la capa de debajo de la capa de normalizacion por lotes genera salidas indexadas por dimension.
[0040] En otros de estos casos, la capa de normalization por lotes calcula, para cada mdice de caracteristica, la media y la varianza de los componentes de las salidas de capa inferior que se corresponden con el mdice de caracteristica, es decir, que presentan el mdice de caracteristica.
[0041] Despues, la capa de normalizacion por lotes normaliza cada componente de cada una de las salidas de niveles inferiores utilizando las medias y las varianzas para los indices de caracteristica a fin de generar una respectiva salida normalizada para cada uno de los ejemplos de entrenamiento del lote. En concreto, para un componente determinado de una salida determinada, la capa de normalizacion por lotes normaliza el componente utilizando la media y la varianza para el mdice de caracteristica que se corresponde con el componente, por ejemplo, de la misma forma que como se describe anteriormente cuando la capa de debajo de la capa de normalizacion por lotes genera salidas indexadas por dimension.
[0042] De manera opcional, la capa de normalizacion por lotes transforma cada componente de cada salida normalizada (paso 206).
[0043] En los casos en que la capa de debajo de la capa de normalizacion por lotes es una capa que genera una salida que incluye multiples componentes indexados por dimension, la capa de normalizacion por lotes transforma, para cada dimension, el componente de cada salida normalizada en la dimension de conformidad con los valores actuales de un conjunto de parametros para la dimension. Esto es, la capa de normalizacion por lotes mantiene un respectivo conjunto de parametros para cada dimension y utiliza esos parametros para aplicar una transformation a los componentes de las salidas normalizadas en la dimension. Los valores de los conjuntos de parametros se ajustan como parte del entrenamiento del sistema de red neuronal. Por ejemplo, en algunas implementaciones, la salida normalizada transformada yk,i generada a partir de la salida normalizada Xk,i satisface:
Figure imgf000006_0001
donde Yk y Ak son los parametros para la ka dimension.
[0044] En casos en que la capa de debajo de la capa de normalizacion por lotes es una capa convolucional, la capa de normalizacion por lotes transforma, para cada componente de cada una de las salidas normalizadas, el componente de conformidad con los valores actuales de un conjunto de parametros para el mdice de caracteristica que se corresponde con el componente. Esto es, una capa de normalizacion por lotes mantiene un respectivo conjunto de parametros para cada mdice de caracteristica y utiliza esos parametros para aplicar una transformacion a los componentes de las salidas normalizadas que presentan el mdice de caracteristica, por ejemplo, tal como se ha descrito anteriormente cuando la capa de debajo de la capa de normalizacion por lotes genera salidas indexadas por dimension. Los valores de los conjuntos de parametros se ajustan como parte del entrenamiento del sistema de red neuronal.
[0045] La capa de normalizacion por lotes proporciona las salidas normalizadas o las salidas normalizadas transformadas como entrada a una capa sobre la capa de normalizacion por lotes en la secuencia (paso 208).
[0046] Despues de que la red neuronal haya generado las salidas de red neuronal para los ejemplos de entrenamiento del lote, las estadisticas de normalizacion se retropropagan a su traves como parte del ajuste de los valores de los parametros de la red neuronal, es decir, como parte de realizar la tecnica de entrenamiento por retropropagacion.
[0047] La FIG. 3 es un diagrama de flujo de un proceso de ejemplo 300 para generar una salida de la capa de normalizacion por lotes para una nueva entrada de la red neuronal despues de que la red neuronal se haya entrenado. Por conveniencia, el proceso 300 se describira como llevado a cabo por un sistema de uno o mas ordenadores situados en una o mas ubicaciones. Por ejemplo, una capa de normalizacion por lotes incluida en un sistema de red neuronal, por ejemplo, la capa de normalizacion por lotes 108 incluida en el sistema de red neuronal 100 de FIG. 1, programado de manera apropiada, puede llevar a cabo el proceso 300.
[0048] La capa de normalizacion por lotes recibe una salida de capa inferior para la nueva entrada de red neuronal (paso 302). La salida de capa inferior es una salida generada para la nueva salida de red neuronal por la capa que esta mas abajo de la capa de normalizacion por lotes en la secuencia de capas de red neuronal.
[0049] La capa de normalizacion por lotes genera una salida normalizada para la nueva entrada de red neuronal (paso 304).
[0050] Si las salidas generadas por la capa de debajo la capa de normalizacion por lotes se indexan por dimension, la capa de normalizacion por lotes normaliza cada componente de la salida de capa inferior utilizando medias precalculadas y desviaciones estandar para cada una de las dimensiones a fin de generar una salida normalizada. En algunos casos, las desviaciones medias y estandar para una dimension determinada se calculan a partir de los componentes en la dimension de todas las salidas generadas por la capa de debajo de la capa de normalizacion por lotes durante el entrenamiento del sistema de red neuronal.
[0051] No obstante, en algunos otros casos, las desviaciones medias y estandar para una dimension determinada se calculan a partir de los componentes en la dimension de las salidas de capa inferior generadas por la capa de debajo de la capa de normalizacion por lotes tras el entrenamiento, por ejemplo, a partir de las salidas de capa inferior generadas durante un periodo de tiempo mas reciente de duracion espedfica o a partir de un numero espedfico de salidas de capa inferior generadas mas recientemente por la capa de debajo de la capa de normalizacion por lotes.
[0052] En concreto, en algunos casos, la distribucion de entradas de red y, en consecuencia, la distribucion de entradas de capas inferiores puede cambiar entre los ejemplos de entrenamiento utilizados durante el entrenamiento y las nuevas entradas de red neuronal utilizadas despues de que el sistema de red neuronal se haya entrenado, por ejemplo, si las nuevas entradas de red neuronal son entradas de tipos distintos a los ejemplos de entrenamiento. Por ejemplo, el sistema de red neuronal puede haber sido entrenado con imagenes de usuario y ahora puede utilizarse para procesar fotogramas de video. Las imagenes de usuario y los fotogramas del video probablemente tengan distintas distribuciones en cuanto a las caractensticas representadas, las propiedades de las imagenes, la composicion, etc. Por consiguiente, normalizar las entradas de capa inferior utilizando estadfsticas del entrenamiento puede no capturar de forma precisa las estadfsticas de las salidas de capa inferior que se generan para las nuevas entradas. Por lo tanto, en estos casos, la capa de normalizacion por lotes puede utilizar estadfsticas de normalizacion calculadas a partir de salidas de capa inferior generadas por la capa de debajo de la capa de normalizacion por lotes tras el entrenamiento.
[0053] Si las salidas generadas por la capa de debajo de la capa de normalizacion por lotes se indexan por mdice de caractenstica y por mdice de ubicacion espacial, la capa de normalizacion por lotes normaliza cada componente de la salida de capa inferior utilizando varianzas promedio y medias promedio precalculadas para cada uno de los indices de caractenstica, a fin de generar una salida normalizada. En algunos casos, tal como se ha descrito anteriormente, las medias promedio y las varianzas promedio para un mdice de caractenstica determinado se calculan a partir de las salidas generadas por la capa de debajo de la capa de normalizacion por lotes para todos los ejemplos de entrenamiento utilizados durante el entrenamiento. En algunos otros casos, tal como se ha descrito anteriormente, las desviaciones estandar y medias para un mdice de caractenstica determinado se calculan a partir de las salidas de capa inferior generadas por la capa de debajo de la capa de normalizacion por lotes tras el entrenamiento.
[0054] De manera opcional, la capa de normalizacion por lotes transforma cada componente de la salida normalizada (paso 306).
[0055] Si las salidas generadas por la capa de debajo de la capa de normalizacion por lotes se indexan por dimension, la capa de normalizacion por lotes transforma, para cada dimension, el componente de la salida normalizada en la dimension de conformidad con los valores entrenados del conjunto de parametros para la dimension. Si las salidas generadas por la capa de debajo de la capa de normalizacion por lotes se indexan por mdice de caractenstica y por mdice de ubicacion espacial, la capa de normalizacion por lotes transforma cada componente de la salida normalizada de conformidad con los valores entrenados del conjunto de parametros para el mdice de caractenstica que se corresponde con el componente. La capa de normalizacion por lotes proporciona la salida normalizada o la salida normalizada transformada como entrada a la capa sobre la capa de normalizacion por lotes en la secuencia (paso 308).
[0056] Los modos de realizacion del objeto y las operaciones funcionales descritas en la presente memoria pueden implementarse en circuitena electronica digital, en firmware o software informatico incorporado de modo tangible, en hardware informatico, incluyendo las estructuras dadas a conocer en la presente memoria y sus equivalentes estructurales, o en combinaciones de uno o mas de estos. Pueden implementarse modos de realizacion del objeto descrito en la presente memoria como uno o mas programas informaticos, es decir, uno o mas modulos de instrucciones de un programa informatico codificados en un soporte de programa tangible no transitorio para ser ejecutado por, o para controlar el funcionamiento de, un aparato de procesamiento de datos. De manera alternativa o adicional, las instrucciones del programa pueden codificarse en una senal propagada generada de forma artificial, por ejemplo, una senal electromagnetica, optica o electrica generada por una maquina, que se genera para codificar informacion para su transmision a un aparato receptor adecuado a fin de ser ejecutada por un aparato de procesamiento de datos. El soporte de almacenamiento informatico puede ser un dispositivo de almacenamiento legible por ordenador, un sustrato de almacenamiento legible por ordenador, un dispositivo de almacenamiento de acceso aleatorio o serial, o una combinacion de uno o mas de estos.
[0057] El termino "aparato de procesamiento de datos" abarca todos los tipos de aparatos, dispositivos, y maquinas para procesar datos, incluyendo, a modo de ejemplo, un procesador programable, un ordenador, o multiples ordenadores o procesadores. El aparato puede incluir circuitena logica para fines espedficos, por ejemplo, un FGPA (matriz de puertas programables) o un ASIC (circuito Integrado para aplicaciones espedficas). El aparato tambien puede incluir, ademas del hardware, un codigo que cree un entorno de ejecucion para el programa informatico en cuestion, por ejemplo, un codigo que constituya el firmware del procesador, una pila de protocolos, un sistema de gestion de bases de datos, un sistema operativo o una combinacion de uno o mas de estos.
[0058] Un programa informatico (al que tambien puede hacerse referencia o describirse como un programa, software, una aplicacion informatica, un modulo, un modulo de software, un script, o codigo) puede estar escrito en cualquier lenguaje de programacion, incluyendo lenguajes interpretados o compilados, o lenguajes procedimentales o declarativos, y puede desplegarse de cualquier forma, incluyendo como un programa independiente o como un modulo, componente, subrutina, u otra unidad adecuada para su uso en un entorno informatico. Un programa informatico puede, pero no necesita, corresponderse con un fichero en un sistema de ficheros. Un programa puede almacenarse en una parte de un fichero que contenga otros programas o datos, por ejemplo, uno o mas scripts almacenados en un documento en lenguaje de marcado, en un fichero unico dedicado al programa en cuestion, o multiples ficheros coordinados, por ejemplo, ficheros que almacenan uno o mas modulos, subprogramas, o partes de un codigo. Un programa informatico puede desplegarse para ejecutarse en un ordenador o en multiples ordenadores que esten situados en una zona o distribuidos a lo largo de multiples zonas e interconectados por una red de comunicaciones.
[0059] Los procesos y flujos logicos descritos en esta memoria pueden llevarse a cabo por uno o mas ordenadores programables que ejecutan uno o mas programas informaticos para llevar a cabo funciones al operar con datos de entrada y generar salidas. Los procesos y flujos logicos tambien pueden ser realizados por, y los aparatos tambien pueden implementarse como, circuitena logica espedfica, por ejemplo, un FGPA (matriz de puertas programables) o un ASIC (circuito Integrado para aplicaciones espedficas).
[0060] Los ordenadores adecuados para la ejecucion de un programa informatico incluyen, a modo de ejemplo, pueden estar basados en microprocesadores generales o para fines espedficos o ambos, o cualquier otro tipo de unidad central de procesamiento. En general, una unidad central de procesamiento recibira instrucciones y datos de una memoria de solo lectura o de una memoria de acceso aleatorio o de ambas. Los elementos esenciales de un ordenador son una unidad central de procesamiento para llevar a cabo o ejecutar instrucciones y uno o mas dispositivos de memoria para almacenar instrucciones y datos. En general, un ordenador tambien incluira, o estara acoplado de manera operativa para recibir datos, o transferir datos, o ambos, de o a uno o mas dispositivos de almacenamiento masivo para almacenar datos, por ejemplo, discos magneticos, magento-opticos u opticos. No obstante, un ordenador no necesita tener tales dispositivos. Ademas, un ordenador puede estar integrado en otro dispositivo, por ejemplo, un telefono movil, un asistente personal digital (PDA), un reproductor portatil de audio o video, una videoconsola, un receptor de un Sistema de Posicionamiento Global (GPS), o un dispositivo de almacenamiento portatil, como una memoria USB (Bus Universal en Serie), por mencionar algunos.
[0061] Los soportes legibles por ordenador adecuados para almacenar datos e instrucciones de programas informaticos incluyen todos los medios, dispositivos de memoria y formas de memoria no volatiles, incluyendo, a tftulo de ejemplo, dispositivos de memoria semiconductores, como EPROM, EEPROM, y dispositivos de memoria flash; discos magneticos, como discos duros internos o discos extrafbles; discos magneto-opticos; y discos CD-ROM y DVD-ROM. El procesador y la memoria pueden estar complementados por, o incorporados en, circuitena logica para fines espedficos.
[0062] Para mantener la interaccion con un usuario, los modos de realizacion del objeto descrito en la presente memoria pueden implementarse en un ordenador que presente un dispositivo de visualizacion, por ejemplo, un monitor CRT (tubo de rayos catodicos) o LCD (pantalla de cristal lfquido), para mostrar informacion al usuario y un teclado y un dispositivo de puntero, por ejemplo, un raton o una bola de desplazamiento, mediante el cual el usuario puede proporcionar datos de entrada al ordenador. Tambien pueden utilizarse otros tipos de dispositivos para mantener la interaccion con un usuario; por ejemplo, la retroalimentacion proporcionada al usuario puede ser cualquier forma de retroalimentacion sensorial, por ejemplo, retroalimentacion visual, retroalimentacion auditiva o retroalimentacion tactil; y las entradas del usuario pueden recibirse de cualquier forma, incluyendo entradas acusticas, tactiles o habladas. Ademas, un ordenador puede interactuar con un usuario al enviar documentos a y recibir documentos de un dispositivo que es utilizado por el usuario; por ejemplo, al enviar paginas web a un navegador en un dispositivo cliente del usuario en respuesta a las consultas recibidas del navegador.
[0063] Los modos de realizacion del objeto descrito en la presente memoria pueden implementarse en un sistema informatico que incluya un componente de back-end, por ejemplo, como un servidor de datos, o que incluya un componente de middleware, por ejemplo, un servidor de aplicacion, o que incluya un componente de front-end, por ejemplo, un ordenador cliente que presente una interfaz grafica de usuario o un navegador a traves del cual el usuario puede interactuar con una implementacion del objeto descrito en la presente memoria, o cualquier combinacion de uno o mas de dichos componentes de back-end, middleware o front-end. Los componentes del sistema pueden estar interconectados por cualquier forma o medio de comunicacion de datos digital, por ejemplo, una red de comunicacion. Ejemplos de redes de comunicacion incluyen una red de area local ("LAN") y una red de area extensa ("WAN"), por ejemplo, Internet.
[0064] El sistema informatico puede incluir clientes y servidores. Un cliente y un servidor normalmente estan alejados entre sf, y normalmente interactuan a traves de una red de comunicaciones. La relacion entre el cliente y el servidor se produce gracias a programas informaticos en ejecucion en los respectivos ordenadores, y presentando una relacion cliente-servidor entre sf.
[0065] Aunque la presente memoria contiene muchos detalles espedficos sobre la implementacion, estos no deben interpretarse como limitaciones del alcance de cualquier invencion o de lo que se pueda reivindicar, sino como descripciones de caractensticas que puedan ser espedficas en modos de realizacion concretos de invenciones concretas. Determinadas caractensticas que se describen en la presente memoria en el contexto de modos de realizacion separados tambien pueden implementarse en conjunto en un unico modo de realizacion. En cambio, varias caractensticas que se describen en el contexto de un unico modo de realizacion tambien puede implementarse en multiples modo de realizacion por separado o en cualquier subcombinacion adecuada. Ademas, aunque las caractensticas pueden estar descritas anteriormente como que actuan en determinadas combinaciones e incluso se reivindican inicialmente como tal, una o mas caractensticas de una combinacion reivindicada pueden, en algunos casos, escindirse de la combinacion, y la combinacion reivindicada puede dirigirse a una subcombinacion o variacion de una subcombinacion.
[0066] De manera similar, aunque las operaciones se representan en los dibujos en un orden concreto, esto no debena entenderse como que se requiere que dichas operaciones se lleven a cabo en el orden en concreto mostrado o en orden secuencial, o que todas las operaciones ilustradas se lleven a cabo, para conseguir resultados deseables. En determinadas circunstancias, la multitarea y el procesamiento paralelo pueden ser ventajosos. Asimismo, la separacion de varios componentes y modulos de sistema en los modos de realizacion descritos anteriormente no debena entenderse como que requieren tal separacion en todos los modos de realizacion, y debena entenderse que los sistemas y componentes de los programas descritos pueden estar integrados por lo general en un unico producto de software o empaquetados en multiples productos de software.
[0067] Se han descrito modos de realizacion concretos del objeto. Otros modos de realizacion estan dentro del alcance de las siguientes reivindicaciones. Por ejemplo, algunas acciones detalladas en las reivindicaciones pueden llevarse a cabo en un orden distinto y aun asf conseguir resultados deseables. Por ejemplo, los procesos representados en las figuras adjuntas no requieren necesariamente el orden concreto mostrado, o un orden secuencial, para conseguir resultados deseables. En determinadas implementaciones, la multitarea y el procesamiento paralelo pueden ser ventajosos.

Claims (1)

  1. REIVINDICACIONES
    1. Sistema de red neuronal (100) implementado por uno o mas ordenadores, comprendiendo el sistema de red neuronal:
    una capa de normalizacion por lotes (108) entre una primera capa de red neuronal (104) y una segunda capa de red neuronal (112), donde la primera capa de red neuronal genera primeras salidas de capa presentando una pluralidad de componentes, y donde la capa de normalizacion por lotes esta configurada para, durante el entrenamiento del sistema de red neuronal con un lote de ejemplos de entrenamiento: recibir una primera salida de capa respectiva para cada ejemplo de entrenamiento del lote; calcular una pluralidad de estadfsticas de normalizacion para el lote a partir de las primeras salidas de capa;
    normalizar cada componente de cada primera salida de capa utilizando las estadfsticas de normalizacion para generar una respectiva salida de capa normalizada para cada ejemplo de entrenamiento del lote;
    generar una respectiva salida de la capa de normalizacion por lotes para cada uno de los ejemplos de entrenamiento a partir de las salidas de capas normalizadas; y
    proporcionar la salida de la capa de normalizacion por lotes como entrada a la segunda capa de red neuronal;
    donde la pluralidad de componentes de primera salida de capa se indexan por dimension, y donde calcular una pluralidad de estadfsticas de normalizacion para las primeras salidas de capas comprende: calcular, para cada una de las dimensiones, una media de los componentes de la primera salida de capa en la dimension; y
    calcular, para cada una de las dimensiones, una desviacion estandar de los componentes de las primeras salidas de capa en la dimension.
    2. Sistema de red neuronal segun la reivindicacion 1, en el que normalizar cada componente de cada salida de capa comprende:
    normalizar el componente utilizando la media calculada y a la desviacion estandar calculada para la dimension correspondiente al componente.
    3. Sistema de red neuronal segun la reivindicacion 1 o 2, en el que la capa de normalizacion por lotes mantiene un respectivo conjunto de parametros para cada dimension, y en el que generar la respectiva salida de capa de normalizacion por lotes para cada uno de los ejemplos de entrenamiento a partir de las salidas de capa normalizadas comprende:
    transformar, para cada dimension, el componente de la salida de capa normalizada para el ejemplo de entrenamiento en la dimension de conformidad con valores actuales de un conjunto de parametros para la dimension.
    4. Sistema de red neuronal segun la reivindicacion 3, en el que la capa de normalizacion por lotes esta configurada para, despues de que el sistema de red neuronal se haya entrenado para determinar valores entrenados de los parametros para cada una de las dimensiones:
    recibir una nueva primera salida de capa generada por la primera capa de red neuronal para una nueva entrada de red neuronal;
    normalizar cada componente de la nueva primera salida de capa utilizando estadfsticas de media y de desviacion estandar calculadas previamente para las dimensiones para generar una nueva salida de capa normalizada;
    generar una nueva salida de capa de normalizacion por lotes al transformar, para cada dimension, el componente de la nueva salida de capa normalizada para el ejemplo de entrenamiento en la dimension de conformidad con los valores entrenados del conjunto de parametros para la dimension; y proporcionar la salida de capa de normalizacion por lotes como una nueva entrada de capa a la segunda capa de red neuronal.
    5. Sistema de red neuronal segun la reivindicacion 4, en el que las estadfsticas de desviacion media y estandar calculadas previamente para las dimensiones se calculan a partir de primeras salidas de capa generadas por la primera capa de red neuronal durante el entrenamiento del sistema de red neuronal o se calculan a partir de nuevas primera salidas de capa generadas por la primera capa de red neuronal despues de que la red neuronal haya sido entrenada.
    6. Sistema de red neuronal implementado por uno o mas ordenadores, comprendiendo el sistema de red neuronal:
    una capa de normalizacion por lotes entre una primera capa de red neuronal y una segunda capa de red neuronal, donde la primera capa de red neuronal genera primeras salidas de capas presentando una pluralidad de componentes, y donde la capa de normalizacion por lotes esta configurada para, durante el entrenamiento del sistema de red neuronal con un lote de ejemplos de entrenamiento:
    recibir una respectiva primera salida de capa para cada ejemplo de entrenamiento del lote; calcular una pluralidad de estadfsticas de normalizacion para el lote a partir de las primera salidas de capa;
    normalizar cada componente de cada primera salida de capa utilizando las estadfsticas de normalizacion para generar una respectiva salida de capa normalizada para cada ejemplo de entrenamiento del lote;
    generar una respectiva salida de capa de normalizacion por lotes para cada uno de los ejemplos de entrenamiento a partir de las salidas de capas normalizadas; y
    proporcionar la salida de capa de normalizacion por lotes como una entrada a la segunda capa de red neuronal;
    donde la primera capa de red neuronal es una capa convolucional, donde la pluralidad de componentes de la primera salida de capa se indexan por mdice de caractenstica e mdice de ubicacion espacial, y donde calcular una pluralidad de estadfsticas de normalizacion para las primeras salidas de capa comprende, para cada uno de los indices de caractenstica:
    calcular una media de los componentes de las primeras salidas de capa que se corresponden con el mdice de caractenstica; y
    calcular una varianza de los componentes de la primeras salidas de capa que se corresponden con el mdice de caractenstica.
    7. Sistema de red neuronal segun la reivindicacion 6, en el que normalizar cada componente de cada salida de capa comprende:
    normalizar el componente utilizando la media y la varianza para mdice de caractenstica que se corresponde con el componente.
    8. Sistema de red neuronal segun la reivindicacion 6 o 7, en el que generar la respectiva salida de capa de normalizacion por lotes para cada uno de los ejemplos de entrenamiento a partir de las salidas de capa normalizada comprende:
    transformar cada componente de la salida de capa normalizada de conformidad con valores actuales de un conjunto de parametros para el mdice de caractenstica correspondiente al componente.
    9. Sistema de red neuronal segun la reivindicacion 8, en el que la capa de normalizacion por lotes esta configurada para, despues de que la red neuronal se haya entrenado para determinar los valores entrenados de los parametros para cada una de las dimensiones:
    recibir una nueva primera entrada de capa generada a partir de una nueva entrada de red neuronal; normalizar cada componente de la nueva primera salida de capa utilizando estadfsticas de desviacion media y estandar calculadas previamente para los indices de caractenstica con el fin de generar una nueva salida de capa normalizada;
    generar una nueva salida de capa de normalizacion por lotes al transformar cada componente de la salida de capa normalizada de conformidad con los valores entrenados del conjunto de parametros para el mdice de caractenstica correspondiente al componente; y
    proporcionar la nueva salida de capa de normalizacion por lotes como una nueva entrada de capa a la segunda capa de red neuronal.
    10. Sistema de red neuronal segun la reivindicacion 6, en el que la pluralidad de componentes de la primera salida de capa se indexan por mdice de caractenstica y por mdice de ubicacion espacial, y en el que calcular una pluralidad de estadfsticas de normalizacion para las primeras salidas de capa comprende ademas: calcular, para cada combinacion de mdice de caractenstica e mdice de ubicacion espacial, una media de los componentes de las primeras salidas de capa presentando el mdice de caractenstica y el mdice de ubicacion espacial;
    calcular, para cada mdice de caractenstica, un promedio de las medias para combinaciones que incluyan el mdice de caractenstica;
    calcular, para cada combinacion de mdice de caractenstica y de mdice de ubicacion espacial, una varianza de los componentes de las primeras salidas de capa presentando el mdice de caractenstica y el mdice de ubicacion espacial; y
    calcular, para cada mdice de caractenstica, un promedio de las varianzas para combinaciones que incluyan el mdice de caractenstica.
    11. Sistema de red neuronal segun la reivindicacion 6, en el que normalizar cada componente de cada salida de capa comprende:
    normalizar el componente utilizando el promedio de las medias y el promedio de las varianzas para el mdice de caractenstica correspondiente al componente.
    12. Sistema de red neuronal segun cualquiera de las reivindicaciones 1-11, en el que la primera capa de red neuronal genera las primeras salidas de capa al modificar primeras entradas de capa de conformidad con valores actuales de un conjunto de parametros de la primera capa de red neuronal y en el que la segunda capa de red neuronal genera segundas salidas de capa al aplicar una operacion no linear a las salidas de capa de normalizacion por lotes; o en el que la primera capa de red neuronal genera las primeras salidas de capa al modificar primeras salidas de capa de conformidad con los valores actuales de un conjunto de parametros de la primera capa de red neuronal para generar primeras entradas de capa modificadas y luego aplicar una operacion no linear a las primeras entradas de capa modificadas.
    13. Sistema de red neuronal segun cualquiera de las reivindicaciones 1-12, en el que, durante el entrenamiento de la red neuronal, el sistema de red neuronal se configura para retropropagar las estadfsticas de normalizacion como parte del ajuste de valores de los parametros de la red neuronal.
    14. Metodo de procesamiento de datos utilizando el sistema de red neuronal segun cualquiera de las reivindicaciones 1-13, comprendiendo el metodo realizar operaciones con una capa de normalizacion por lotes entre una primera capa de red neuronal y una segunda capa de red neuronal, en el que la primera capa de red neuronal genera primeras salidas de capa presentando una pluralidad de componentes, comprendiendo el metodo utilizar la capa de normalizacion por lotes para, durante el entrenamiento del sistema de red neuronal con un lote de ejemplos de entrenamiento:
    recibir una respectiva primera salida de capa para cada ejemplo de entrenamiento del lote;
    calcular una pluralidad de estadfsticas de normalizacion para el lote a partir de las primeras salidas de capa;
    normalizar cada componente de cada primera salida de capa utilizando las estadfsticas de normalizacion para generar una respectiva salida de capa normalizada para cada ejemplo de entrenamiento del lote; generar una respectiva salida de capa de normalizacion por lotes para cada uno de los ejemplos de entrenamiento a partir de las salidas de capa normalizadas; y
    proporcionar la salida de capa de normalizacion por lotes como una entrada a la segunda capa de red neuronal;
    donde la pluralidad de componentes de la primera salida de capa se indexan por i) dimension o ii) donde la primera capa de red neuronal es una capa convolucional y donde la pluralidad de componentes de la primera salida de capa se indexan por mdice de caractenstica y por mdice de ubicacion geografica, y donde calcular una pluralidad de estadfsticas de normalizacion para las primeras salidas de capa comprende ademas, para (i):
    calcular, para cada una de las dimensiones, una media de los componentes de la primeras salidas de capa en la dimension; y
    calcular, para cada una de las dimensiones, una desviacion estandar de los componentes de las primeras salidas de capa en la dimension; y para (ii):
    calcular, para cada uno de los indices de caractenstica, una media de los componentes de las primeras salidas de capa que se corresponden con el mdice de caractenstica; y
    calcular, para cada uno de los indices de caractenstica, una varianza de los componentes de las primeras salidas de capa que se corresponden con el mdice de caractenstica.
    15. Uno o mas soportes de almacenamiento informatico no transitorios codificados con un programa informatico, comprendiendo el programa informatico instrucciones que al ser ejecutadas por uno o mas ordenadores hacen que el uno o mas ordenadores implementen el metodo segun la reivindicacion 14.
ES16704121T 2015-01-28 2016-01-28 Capas de normalización por lotes Active ES2714152T3 (es)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
ES2714152T3 true ES2714152T3 (es) 2019-05-27

Family

ID=55349983

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16704121T Active ES2714152T3 (es) 2015-01-28 2016-01-28 Capas de normalización por lotes

Country Status (17)

Country Link
US (7) US10417562B2 (es)
EP (3) EP3483795B1 (es)
JP (5) JP6453477B2 (es)
KR (2) KR102204286B1 (es)
CN (1) CN107278310A (es)
AU (5) AU2016211333B2 (es)
CA (1) CA2975251C (es)
DE (1) DE112016000509T5 (es)
DK (1) DK3251059T3 (es)
ES (1) ES2714152T3 (es)
IL (1) IL253676A0 (es)
MX (1) MX2017009879A (es)
PL (1) PL3251059T3 (es)
RU (1) RU2666308C1 (es)
SG (1) SG11201706127RA (es)
TR (1) TR201902908T4 (es)
WO (1) WO2016123409A1 (es)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102204286B1 (ko) 2015-01-28 2021-01-18 구글 엘엘씨 배치 정규화 레이어들
CN107851195B (zh) * 2015-07-29 2022-02-11 诺基亚技术有限公司 利用神经网络进行目标检测
US10402649B2 (en) 2016-08-22 2019-09-03 Magic Leap, Inc. Augmented reality display device with deep learning sensors
EP3563306B1 (en) 2017-02-10 2023-12-06 Google LLC Batch renormalization layers
US10255681B2 (en) * 2017-03-02 2019-04-09 Adobe Inc. Image matting using deep learning
US20190370641A1 (en) * 2017-03-06 2019-12-05 Sony Corporation Information processing apparatus
US11308391B2 (en) * 2017-03-06 2022-04-19 Baidu Usa Llc Offline combination of convolutional/deconvolutional and batch-norm layers of convolutional neural network models for autonomous driving vehicles
CN110663049B (zh) * 2017-04-28 2023-12-26 谷歌有限责任公司 神经网络优化器搜索
CN109034384B (zh) * 2017-06-12 2021-06-22 浙江宇视科技有限公司 一种数据处理方法和装置
US10635813B2 (en) 2017-10-06 2020-04-28 Sophos Limited Methods and apparatus for using machine learning on multiple file fragments to identify malware
US11586905B2 (en) * 2017-10-11 2023-02-21 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for customizing kernel machines with deep neural networks
CN111373416B (zh) * 2017-10-27 2024-01-23 谷歌有限责任公司 通过离散神经网络输入来增强神经网络的安全性
WO2019123544A1 (ja) * 2017-12-19 2019-06-27 オリンパス株式会社 データ処理方法およびデータ処理装置
CN108009634B (zh) * 2017-12-21 2021-05-25 美的集团股份有限公司 一种卷积神经网络的优化方法、装置及计算机存储介质
EP3511872A1 (en) 2018-01-12 2019-07-17 Sony Corporation Artificial neural network
US11003774B2 (en) 2018-01-26 2021-05-11 Sophos Limited Methods and apparatus for detection of malicious documents using machine learning
US11941491B2 (en) 2018-01-31 2024-03-26 Sophos Limited Methods and apparatus for identifying an impact of a portion of a file on machine learning classification of malicious content
WO2019149375A1 (en) * 2018-02-02 2019-08-08 Toyota Motor Europe Method and system for processing input data and propagating variance in a neural network
WO2019149376A1 (en) 2018-02-02 2019-08-08 Toyota Motor Europe Method and system for processing input data using a neural network and normalizations
US20190251429A1 (en) * 2018-02-12 2019-08-15 Kneron, Inc. Convolution operation device and method of scaling convolution input for convolution neural network
CN108875787B (zh) 2018-05-23 2020-07-14 北京市商汤科技开发有限公司 一种图像识别方法及装置、计算机设备和存储介质
CN108921283A (zh) * 2018-06-13 2018-11-30 深圳市商汤科技有限公司 深度神经网络的归一化方法和装置、设备、存储介质
WO2020068498A1 (en) * 2018-09-27 2020-04-02 Google Llc Data compression using integer neural networks
US11947668B2 (en) * 2018-10-12 2024-04-02 Sophos Limited Methods and apparatus for preserving information between layers within a neural network
KR20200051278A (ko) 2018-11-05 2020-05-13 삼성전자주식회사 인공 신경망에서의 작업 관리 방법 및 이를 포함하는 시스템
US11687761B2 (en) * 2018-12-11 2023-06-27 Amazon Technologies, Inc. Improper neural network input detection and handling
US10789510B2 (en) * 2019-01-11 2020-09-29 Google Llc Dynamic minibatch sizes
US10325185B1 (en) * 2019-01-23 2019-06-18 StradVision, Inc. Method and device for online batch normalization, on-device learning, and continual learning applicable to mobile devices or IOT devices additionally referring to one or more previous batches to be used for military purpose, drone or robot, and testing method and testing device using the same
US11574052B2 (en) 2019-01-31 2023-02-07 Sophos Limited Methods and apparatus for using machine learning to detect potentially malicious obfuscated scripts
JP2020135011A (ja) 2019-02-13 2020-08-31 キオクシア株式会社 情報処理装置及び方法
CN109886392B (zh) * 2019-02-25 2021-04-27 深圳市商汤科技有限公司 数据处理方法和装置、电子设备和存储介质
KR102046113B1 (ko) 2019-03-19 2019-11-18 주식회사 루닛 신경망 학습 방법 및 그 장치
KR102046133B1 (ko) * 2019-03-20 2019-11-18 주식회사 루닛 특징 데이터 리캘리브레이션 방법 및 그 장치
DE102019204136A1 (de) * 2019-03-26 2020-10-01 Robert Bosch Gmbh Verfahren und Vorrichtung für Training und Herstellung eines künstlichen neuronalen Netzes
KR102037483B1 (ko) 2019-04-02 2019-11-15 주식회사 루닛 신경망 데이터 정규화 방법 및 그 장치
TWI706337B (zh) * 2019-05-02 2020-10-01 旺宏電子股份有限公司 記憶體裝置及其操作方法
US11361218B2 (en) * 2019-05-31 2022-06-14 International Business Machines Corporation Noise and signal management for RPU array
CN111967570B (zh) * 2019-07-01 2024-04-05 北京砥脊科技有限公司 可视化神经网络系统的实现方法、装置和机器设备
KR102461732B1 (ko) * 2019-07-16 2022-11-01 한국전자통신연구원 강화 학습 방법 및 장치
KR20190098106A (ko) * 2019-08-02 2019-08-21 엘지전자 주식회사 배치 정규화 레이어 트레이닝 방법
CN110598852A (zh) * 2019-08-29 2019-12-20 北京小米移动软件有限公司 子网络采样方法、构建超网络拓扑结构的方法及装置
DE102019213898A1 (de) * 2019-09-11 2021-03-11 Robert Bosch Gmbh Robustes und besser trainierbares künstliches neuronales Netzwerk
US11568259B2 (en) * 2019-10-15 2023-01-31 Zoox, Inc. Cross batch normalization
KR102127913B1 (ko) 2019-10-29 2020-06-29 주식회사 루닛 신경망 학습 방법 및 그 장치
US11868855B2 (en) * 2019-11-04 2024-01-09 Hewlett Packard Enterprise Development Lp Resiliency for machine learning workloads
KR102143191B1 (ko) * 2019-11-12 2020-08-10 주식회사 루닛 특징 데이터 리캘리브레이션 방법 및 그 장치
KR102143192B1 (ko) 2019-11-12 2020-08-10 주식회사 루닛 신경망 학습 방법 및 그 장치
CN111144556B (zh) * 2019-12-31 2023-07-07 中国人民解放军国防科技大学 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路
US11610303B2 (en) 2020-03-03 2023-03-21 The University Court Of The University Of Edinburgh Data processing apparatus and method
JP7297705B2 (ja) 2020-03-18 2023-06-26 株式会社東芝 処理装置、処理方法、学習装置およびプログラム
US11915419B1 (en) 2020-06-25 2024-02-27 Verily Life Sciences Llc Auto-normalization for machine learning
WO2022051908A1 (en) * 2020-09-08 2022-03-17 Huawei Technologies Co., Ltd. Normalization in deep convolutional neural networks
KR102441442B1 (ko) * 2021-01-11 2022-09-08 성균관대학교산학협력단 그래프 컨볼루션 네트워크 학습 방법 및 장치
US12010129B2 (en) 2021-04-23 2024-06-11 Sophos Limited Methods and apparatus for using machine learning to classify malicious infrastructure
JP7211556B1 (ja) 2021-06-09 2023-01-24 コニカミノルタ株式会社 ニューラル・ネットワーク・システム
US20230119791A1 (en) * 2021-10-04 2023-04-20 Qualcomm Incorporated Relaxed instance frequency normalization for neural-network-based audio processing
WO2023085852A1 (ko) * 2021-11-11 2023-05-19 서울대학교산학협력단 통계 기반 정규화를 시행하는 딥 뉴럴 네트워크 학습 장치 및 그 방법

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875284A (en) 1990-03-12 1999-02-23 Fujitsu Limited Neuro-fuzzy-integrated data processing system
JPH05346915A (ja) * 1992-01-30 1993-12-27 Ricoh Co Ltd 学習機械並びにニューラルネットワークおよびデータ分析装置並びにデータ分析方法
JPH0785280B2 (ja) * 1992-08-04 1995-09-13 タカタ株式会社 神経回路網による衝突予測判定システム
US5729662A (en) * 1995-06-07 1998-03-17 Rozmus; J. Michael Neural network for classification of patterns with improved method and apparatus for ordering vectors
US5790758A (en) * 1995-07-07 1998-08-04 The United States Of America As Represented By The Secretary Of The Navy Neural network architecture for gaussian components of a mixture density function
US6134537A (en) * 1995-09-29 2000-10-17 Ai Ware, Inc. Visualization and self organization of multidimensional data through equalized orthogonal mapping
US6539267B1 (en) * 1996-03-28 2003-03-25 Rosemount Inc. Device in a process system for determining statistical parameter
US6650779B2 (en) * 1999-03-26 2003-11-18 Georgia Tech Research Corp. Method and apparatus for analyzing an image to detect and identify patterns
US6418378B1 (en) * 2000-06-26 2002-07-09 Westerngeco, L.L.C. Neural net prediction of seismic streamer shape
WO2002044926A1 (en) * 2000-11-30 2002-06-06 Yang Ming Pok Neural cortex
US7107207B2 (en) * 2002-06-19 2006-09-12 Microsoft Corporation Training machine learning by sequential conditional generalized iterative scaling
US7082394B2 (en) * 2002-06-25 2006-07-25 Microsoft Corporation Noise-robust feature extraction using multi-layer principal component analysis
US7496546B2 (en) 2003-03-24 2009-02-24 Riken Interconnecting neural network system, interconnecting neural network structure construction method, self-organizing neural network structure construction method, and construction programs therefor
US7219085B2 (en) * 2003-12-09 2007-05-15 Microsoft Corporation System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit
JP2005352900A (ja) 2004-06-11 2005-12-22 Canon Inc 情報処理装置、情報処理方法、パターン認識装置、及びパターン認識方法
US7747070B2 (en) 2005-08-31 2010-06-29 Microsoft Corporation Training convolutional neural networks on graphics processing units
CN100367300C (zh) * 2006-07-07 2008-02-06 华中科技大学 一种基于人工神经网络的特征选择方法
US7606777B2 (en) 2006-09-01 2009-10-20 Massachusetts Institute Of Technology High-performance vision system exploiting key features of visual cortex
EP2345984B1 (en) 2010-01-19 2012-03-14 Honda Research Institute Europe GmbH Online learning of grounded categories using adaptive feature spaces
JP5772442B2 (ja) * 2011-09-22 2015-09-02 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
US10127475B1 (en) 2013-05-31 2018-11-13 Google Llc Classifying images
TWI648609B (zh) 2013-06-07 2019-01-21 美商科學設計股份有限公司 程序監控系統及方法
CN103824055B (zh) * 2014-02-17 2018-03-02 北京旷视科技有限公司 一种基于级联神经网络的人脸识别方法
US9058517B1 (en) 2014-04-16 2015-06-16 I.R.I.S. Pattern recognition system and method using Gabor functions
EP3029606A3 (en) 2014-11-14 2016-09-14 Thomson Licensing Method and apparatus for image classification with joint feature adaptation and classifier learning
KR102204286B1 (ko) 2015-01-28 2021-01-18 구글 엘엘씨 배치 정규화 레이어들
US11151449B2 (en) * 2018-01-24 2021-10-19 International Business Machines Corporation Adaptation of a trained neural network
KR102046113B1 (ko) * 2019-03-19 2019-11-18 주식회사 루닛 신경망 학습 방법 및 그 장치
US11367163B2 (en) * 2019-05-31 2022-06-21 Apple Inc. Enhanced image processing techniques for deep neural networks
US11568259B2 (en) * 2019-10-15 2023-01-31 Zoox, Inc. Cross batch normalization
US20210150306A1 (en) * 2019-11-14 2021-05-20 Qualcomm Incorporated Phase selective convolution with dynamic weight selection

Also Published As

Publication number Publication date
JP2023029845A (ja) 2023-03-07
KR102055355B1 (ko) 2019-12-12
JP6935542B2 (ja) 2021-09-15
EP3251059B1 (en) 2018-12-05
US20220237462A1 (en) 2022-07-28
AU2020250312B2 (en) 2021-12-16
EP3483795B1 (en) 2021-03-10
US20200057924A1 (en) 2020-02-20
JP2018508879A (ja) 2018-03-29
JP6453477B2 (ja) 2019-01-16
CA2975251A1 (en) 2016-08-04
JP2020149719A (ja) 2020-09-17
JP7179935B2 (ja) 2022-11-29
US11893485B2 (en) 2024-02-06
US11308394B2 (en) 2022-04-19
DE112016000509T5 (de) 2018-03-22
EP3483795A1 (en) 2019-05-15
KR20190138712A (ko) 2019-12-13
CN107278310A (zh) 2017-10-20
US20210224653A1 (en) 2021-07-22
BR112017016306A8 (pt) 2018-08-14
US11281973B2 (en) 2022-03-22
EP3872716A1 (en) 2021-09-01
PL3251059T3 (pl) 2019-05-31
US20210357756A1 (en) 2021-11-18
US10628710B2 (en) 2020-04-21
AU2020250312A1 (en) 2020-11-12
MX2017009879A (es) 2018-05-28
AU2016211333B2 (en) 2018-11-15
IL253676A0 (en) 2017-09-28
KR20170108081A (ko) 2017-09-26
EP3251059A1 (en) 2017-12-06
TR201902908T4 (tr) 2019-03-21
JP6710745B2 (ja) 2020-06-17
AU2016211333A1 (en) 2017-08-17
AU2022201819A1 (en) 2022-04-07
US20210216870A1 (en) 2021-07-15
RU2666308C1 (ru) 2018-09-06
AU2023285952A1 (en) 2024-01-25
WO2016123409A1 (en) 2016-08-04
DK3251059T3 (en) 2019-04-01
JP2021192251A (ja) 2021-12-16
US11853885B2 (en) 2023-12-26
SG11201706127RA (en) 2017-08-30
AU2019200309A1 (en) 2019-02-07
JP2019071080A (ja) 2019-05-09
KR102204286B1 (ko) 2021-01-18
AU2022201819B2 (en) 2023-09-28
US10417562B2 (en) 2019-09-17
US20200234127A1 (en) 2020-07-23
US10902319B2 (en) 2021-01-26
CA2975251C (en) 2021-01-26
US20160217368A1 (en) 2016-07-28
US20200012942A1 (en) 2020-01-09
AU2019200309B2 (en) 2020-07-09
BR112017016306A2 (pt) 2018-07-10

Similar Documents

Publication Publication Date Title
ES2714152T3 (es) Capas de normalización por lotes
CA3038812C (en) Dynamic coattention network for question answering
EP3485396B1 (en) Classifying images using machine learning models
US10936949B2 (en) Training machine learning models using task selection policies to increase learning progress
US11443170B2 (en) Semi-supervised training of neural networks
CN109815459A (zh) 生成被调整到目标受众词汇的文本内容的目标概要
US20240185030A1 (en) Adjusting neural network resource usage
US11238332B2 (en) Attention neural networks with sparse attention mechanisms
US20220230065A1 (en) Semi-supervised training of machine learning models using label guessing
CN109891437A (zh) 使用神经网络处理文本序列
US20200364543A1 (en) Computationally efficient expressive output layers for neural networks
US20200104681A1 (en) Neural Networks with Area Attention
US20240078379A1 (en) Attention neural networks with n-grammer layers
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