BR112021010410A2 - Redução de espaço de busca de contrução de modelo automatizado - Google Patents

Redução de espaço de busca de contrução de modelo automatizado Download PDF

Info

Publication number
BR112021010410A2
BR112021010410A2 BR112021010410-0A BR112021010410A BR112021010410A2 BR 112021010410 A2 BR112021010410 A2 BR 112021010410A2 BR 112021010410 A BR112021010410 A BR 112021010410A BR 112021010410 A2 BR112021010410 A2 BR 112021010410A2
Authority
BR
Brazil
Prior art keywords
models
model
architectural
input data
input
Prior art date
Application number
BR112021010410-0A
Other languages
English (en)
Other versions
BR112021010410B1 (pt
Inventor
Tyler S. McDonnell
Sari Andoni
Junhwan Choi
Jimmie Goode
Yiyun Lan
Keith D. Moore
Gavin Sellers
Original Assignee
SparkCognition, Inc.
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 SparkCognition, Inc. filed Critical SparkCognition, Inc.
Publication of BR112021010410A2 publication Critical patent/BR112021010410A2/pt
Publication of BR112021010410B1 publication Critical patent/BR112021010410B1/pt

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
    • G06N3/086Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of 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/044Recurrent networks, e.g. Hopfield 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)

Abstract

REDUÇÃO DE ESPAÇO DE BUSCA DE CONTRUÇÃO DE MODELO AUTOMATIZADO. Trata-se de um método que inclui receber, através de um processador, um conjunto de dados de entrada. O conjunto de dados de entrada inclui uma pluralidade de recursos. O método inclui determinar, através do processador, uma ou mais características do conjunto de dados de entrada. O método inclui, com base na uma ou mais características, ajustar, através do processador, um ou mais parâmetros arquiteturais de um processo de geração de modelo automatizado. O processo de geração de modelo automatizado é configurado para gerar uma pluralidade de modelos com o uso de um processo de randomização ponderado. O um ou mais parâmetros arquiteturais pondera o processo de randomização ponderado para ajustar uma probabilidade de geração de modelos que tem recursos arquiteturais específicos. O método inclui adicionalmente executar, através do processador, o processo de geração de modelo automatizado para emitir um modo, sendo que o modelo inclui dados representativos de uma rede neural.

Description

“REDUÇÃO DE ESPAÇO DE BUSCA DE CONTRUÇÃO DE MODELO AUTOMATIZADO” ANTECEDENTES
[0001] Computadores são frequentemente usados para solucionar problemas quantitativos e qualitativos complexos. Para determinados tipos de problemas, técnicas avançadas de computação, como algoritmos genéticos, podem estar disponíveis para desenvolver um modelo, como uma rede neural, que é usada para solucionar o problema. No entanto, os algoritmos genéticos podem assumir um grande número de iterações para convergir em uma rede neural aceitável.
[0002] Ademais, vários tipos de problemas de aprendizado de máquina existem. Por exemplo, os problemas de regressão envolvem avaliar uma série de entradas para prever uma saída numérica, problemas de classificação envolvem avaliar uma série de entradas para prever uma saída categórica, e o aprendizado de reforço envolve realizar ações em um ambiente enquanto aprende a partir das respostas das ações. Devido às diferenças nos vários tipos de problemas, os mecanismos disponíveis para gerar e treinar uma rede neural podem ser específicos ao problema. Por exemplo, um método de geração e treinamento de uma rede neural soluciona um problema de regressão pode ser significativamente menos eficiente para gerar e treinar uma rede neural para solucionar um problema de classificação.
SUMÁRIO
[0003] A presente revelação descreve sistemas e métodos para gerar eficientemente redes neurais para diferentes tipos de problemas ajustando-se automaticamente parâmetros arquiteturais de um processo de construção de modelo automatizado. Os parâmetros arquiteturais são automaticamente ajustados com base em características de um conjunto de dados de entrada. O ajuste dos parâmetros arquiteturais opera para reduzir o espaço de busca para uma rede neural confiável para solucionar um dado problema. Por exemplo, parâmetros de um processo de geração de modelo automático, como um algoritmo genético, podem ser propensos a aumentar a probabilidade em que determinados tipos de redes neurais são usadas durante a evolução (por exemplo, como parte de um conjunto inicial de modelos ou um conjunto de modelos gerado durante uma época posterior). Então, o ajuste dos parâmetros arquiteturais com base nas características do conjunto de dados de entrada pode resultar no processo de construção de modelo automatizado que foca nos tipos de redes neurais que são particularmente adequadas para processar o conjunto de dados de entrada, que pode reduzir a quantidade de tempo e processar recursos usados pelo processo de construção de modelo automatizado para convergir em uma rede neural aceitável (por exemplo, uma rede neural que satisfaz um adequação ou outros critérios).
[0004] Para ilustrar, um conjunto de dados de entrada é analisado para determinar características do conjunto de dados de entrada. As características podem indicar um tipo de dados do conjunto de dados de entrada, um problema a ser solucionado pelo conjunto de dados de entrada, etc. Por exemplo, se o conjunto de dados de entrada incluir dados de tempo-série industrial, as características podem indicar que o conjunto de dados de entrada recebeu carimbo de data e hora e é sequencial e que o conjunto de dados de entrada inclui valores contínuos (em comparação com os valores categóricos). Com base nas características do conjunto de dados de entrada, um ou mais parâmetros de um processo de geração de modelo automatizado são selecionados para ajuste. Em uma implantação específica, as características são comparadas a um conjunto de regras que mapeia características de conjuntos de dados para as gramáticas de rede neural. Conforme usado no presente documento, uma gramática de rede neural é uma lista de regras que especifica uma topologia ou uma arquitetura de uma rede neural. Com base nas gramáticas que são associadas às características no conjunto de regras, um ou mais parâmetros arquiteturais são selecionados. Nessa implantação, o conjunto de regras pode ser gerado com base na análise de uma pluralidade (por exemplo, centenas ou milhares) de redes neurais previamente geradas. Em uma implantação alternativa, um classificador é gerado e treinado com o uso de dados representativos de redes neurais previamente geradas e o classificador é configurado para emitir uma gramática de rede neural com base nas características dos dados de entrada.
[0005] Após selecionar o um ou mais parâmetros arquiteturais, o um ou mais parâmetros arquiteturais são ajustados para ponderar um processo de randomização (por exemplo, um algoritmo genético) para ajustar uma probabilidade de geração de modelos (por exemplo, redes neurais) que têm recursos arquiteturais específicos. Por exemplo, se as características do arquivo de dados de entrada forem associadas às estruturas recorrentes, seja no conjunto de regras ou pelo classificador treinado, um parâmetro arquitetural que corresponde a estruturas recorrentes (por exemplo, redes neurais recorrentes (RNNs), camadas de memória a curto prazo longa (LSTM), camadas de unidade recorrente restrita (GRU), como exemplos não limitantes) é ajustado para aumentar a probabilidade de que as redes neurais que têm estruturas recorrentes sejam incluídas no processo de randomização. Para ilustrar mais, um peso associado às estruturas recorrentes pode ser aumentado, o que aumenta a probabilidade de que as redes neurais que têm estruturas recorrentes (em oposição a outras redes neurais aleatoriamente selecionadas) estejam incluídas no processo de randomização. Como um outro exemplo, se o conjunto de regras (ou o classificador treinado) indicar que as camadas feedforward têm uma correspondência negativa em relação às características do conjunto de dados de entrada, um parâmetro arquitetural que corresponde às camadas feedforward é ajustado para diminuir a probabilidade de que as redes neurais que têm camadas feedforward sejam incluídas no processo de randomização. Então, um processo de randomização pode ser ponderado (através do ajuste dos parâmetros arquiteturais) para focar o processo de randomização em tipos específicos de redes neurais que são esperadas para realizar bem as dadas características do conjunto de dados de entrada, o que pode aumentar a velocidade e reduzir a quantidade de recursos de processamento usada pelo processo de geração de modelo automatizado na convergência em uma rede neural aceitável.
BREVE DESCRIÇÃO DOS DESENHOS
[0006] A Figura 1 ilustra uma implantação específica de um sistema que é operável para ajustar um parâmetro arquitetural de um processo de geração de modelo automatizado com base nas características de um conjunto de dados de entrada;
[0007] As Figuras 2A e 2B ilustram exemplos específicos de seleção de parâmetros arquiteturais para o ajuste com base nas características de dados de entrada de acordo com um ou mais aspectos revelados no presente documento;
[0008] A Figura 3 ilustra um exemplo de uma gramática que indica parâmetros arquiteturais de uma rede neural;
[0009] A Figura 4 ilustra um diagrama para ilustrar uma implantação específica de um sistema que é operável para determinar uma topologia de uma rede neural, como uma rede neural da Figura 1, com base na execução de um algoritmo genético; e
[0010] A Figura 5 é um fluxograma para ilustrar uma implantação específica de um método de operação no sistema da Figura 1.
DESCRIÇÃO DETALHADA
[0011] Com referência à Figura 1, um exemplo ilustrativo específico de um sistema 100 é mostrado. O sistema 100, ou porções do mesmo, pode ser implantado com o uso (por exemplo, executado por) de um ou mais dispositivos de computação, como computadores do tipo laptop, computadores do tipo desktop, dispositivos móveis, servidores, e dispositivos de Internet das Coisas e outros dispositivos que utilizam processadores embutidos e firmware ou sistemas operacionais, etc. No exemplo ilustrado, o sistema 100 inclui um seletor de parâmetro 104 e um processo de geração de modelo automatizado 120.
[0012] Deve-se compreender que as operações descritas no presente documento como sendo realizadas pelo seletor de parâmetro 104 e pelo processo de geração de modelo automatizado 120 podem ser realizados por um dispositivo que executa instruções. As instruções podem ser armazenadas em uma memória, como uma memória de acesso aleatório (RAM), uma memória apenas de leitura (ROM), um dispositivo de armazenamento legível por computador, um dispositivo de armazenamento corporativo, qualquer outro tipo de memória ou uma combinação dos mesmos. Em uma implantação específica, as operações descritas com referência ao seletor de parâmetro 104 e ao processo de geração de modelo automatizado 120 são realizadas através de um processador (por exemplo, uma unidade de processamento central (CPU), unidade de processamento gráfica (GPU), ou outros tipos de processador). Em algumas implantações, as operações do seletor de parâmetro 104 são realizadas em um dispositivo, processador (por exemplo, CPU, GPU ou outro tipo de processador), núcleo de processador e/ou encadeamento (por exemplo, encadeamento de hardware ou software) diferente do processo de geração de modelo automatizado 120. Além do mais, a execução de determinadas operações do seletor de parâmetro 104 ou do processo de geração de modelo automatizado 120 podem ser paralelizadas.
[0013] O seletor de parâmetro 104 é configurado para receber um conjunto de dados de entrada 102 e para determinar uma ou mais características 106 do conjunto de dados de entrada 102. As características 106 podem indicar um tipo de dados do conjunto de dados de entrada 102, um problema a ser solucionado para o conjunto de dados de entrada 102, um tamanho do conjunto de dados de entrada 102, outras características associadas ao conjunto de dados de entrada 102 ou uma combinação dos mesmos. O seletor de parâmetro 104 é adicionalmente configurado para ajustar um parâmetro arquitetural 112 do processo de geração de modelo automatizado 120 com base nas características 106. Em uma implantação específica, o seletor de parâmetro 104 é configurado para selecionar o parâmetro arquitetural 112 com o uso de um conjunto de regras 108, conforme adicionalmente descrito no presente documento. Em uma outra implantação específica, o seletor de parâmetro 104 é configurado para selecionar o parâmetro arquitetural 112 com o uso de um classificador treinado 110, conforme adicionalmente descrito no presente documento.
[0014] O processo de geração de modelo automatizado 120 é configurado para gerar uma pluralidade de modelos 122 com o uso de um processo de randomização ponderado. Em uma implantação específica, o processo de geração de modelo automatizado 120 inclui um algoritmo genético. Nessa implantação, a pluralidade de modelos 122 inclui um ou mais conjuntos de modelos gerados durante uma ou mais épocas do algoritmo genético. Por exemplo, a pluralidade de modelos 122 pode incluir um conjunto de modelos iniciais usados como entrada para uma primeira época do algoritmo genético, um conjunto de modelos emitidos pela primeira época e usados como entrada para uma segunda época do algoritmo genético, e outros conjuntos de modelos emitidos pelas outras épocas do algoritmo genético. O processo de geração de modelo automatizado 120 é configurado para gerar conjuntos de modelos durante cada época com o uso do processo de randomização ponderado. Por exemplo, se todos os pesos dos parâmetros arquiteturais forem iguais, o processo de geração de modelo automatizado 120 gera um conjunto inicial de modelos selecionando-se aleatoriamente (ou pseudoaleatoriamente) modelos que têm várias arquiteturas, e o conjunto inicial de modelos é evoluído através de várias épocas, conforme adicionalmente descrito com referência à Figura 4. Como um exemplo específico, um ou mais modelos podem ser mutados ou cruzados (por exemplo, combinados) durante uma primeira época, conforme adicionalmente descrito com referência à Figura 4, para gerar modelos de um conjunto de saída da primeira época. O conjunto de saída é usado como um conjunto de entrada para uma próxima época do processo de geração de modelo automatizado 120. Épocas adicionais continuam dessa maneira, evoluindo-se (por exemplo, realizando operações genéticas em) um conjunto de entrada de modelos para gerar um conjunto de saída de modelos, conforme adicionalmente descrito com referência à Figura 4.
[0015] O parâmetro arquitetural 112 pondera o processo de randomização ponderado do processo de geração de modelo automatizado 120 para controlar uma probabilidade de geração de modelos que têm recursos arquiteturais específicos. Por exemplo, se o parâmetro arquitetural 112 corresponder à recorrência, o parâmetro arquitetural 112 pode ser ajustado (por exemplo, aumentando-se um peso) para aumentar uma probabilidade de geração de modelos recorrentes pelo processo de randomização ponderado. Como um outro exemplo, se o parâmetro arquitetural 112 corresponder ao pooling, o parâmetro arquitetural 112 pode ser ajustado (por exemplo, diminuindo-se um peso) para diminuir a probabilidade de geração de modelos baseados em pooling pelo processo de randomização ponderado. O parâmetro arquitetural 112 é ajustado com base nas características 106, conforme adicionalmente descrito no presente documento.
[0016] O processo de geração de modelo automatizado 120 é configurado para gerar a pluralidade de modelos 122 durante o desempenho do processo de geração de modelo automatizado 120 (por exemplo, durante múltiplas épocas do algoritmo genético). O processo de geração de modelo automatizado 120 é adicionalmente configurado para emitir um ou mais modelos 124 (por exemplo, dados indicativos de uma ou mais redes neurais). Em uma implantação específica, o processo de geração de modelo automatizado 120 é configurado para executar para uma quantidade definida de tempo (por exemplo, um número específico de épocas), e o um ou mais modelos 124 são os modelos “mais adequados” gerados durante a última época do processo de geração de modelo automatizado 120. Alternativamente, o processo de geração de modelo automatizado 120 pode ser executado até que o processo de geração de modelo automatizado 120 converge no um ou mais modelos que têm escores de adequação que satisfazem um limite de adequação. Os escores de adequação podem se basear em uma frequência e/ou uma grandeza de erros produzidos pelo teste do um ou mais modelos 124 em uma porção no conjunto de dados de entrada 102. Por exemplo, se o um ou mais modelos 124 forem treinados, com base no conjunto de dados de entrada 102 para prever um valor de um recurso específico, o escore de adequação pode ser usado no número de recursos corretamente preditos para uma porção de teste do conjunto de dados de entrada 102 em comparação com o número total de recursos (tanto correta quanto incorretamente preditos). Adicional ou alternativamente, o escore de adequação pode indicar características do modelo, como uma densidade (por exemplo, quantas camadas estão incluídas na rede neural, quantas conexões estão incluídas na rede neural, etc.) do modelo. Adicional ou alternativamente, o escore de adequação pode ser baseado na quantidade de tempo levada pelo processo de geração de modelo automatizado 120 para convergir no um ou mais modelos 124. Dados indicativos do um ou mais modelos 124, como dados que indicam um tipo de arquitetura do um ou mais modelos 124, o escore de adequação ou uma combinação dos mesmos, pode ser usado como dados de treinamento 130 para treinar o seletor de parâmetro 104.
[0017] A execução do processo de geração de modelo automatizado 120 resulta (por exemplo, emite) no um ou mais modelos 124. O um ou mais modelos 124 são executáveis através do processador que executa o processo de geração de modelo automatizado 120 (ou através de um outro processador ou através de um outro dispositivo) para realizar uma operação, como classificação, agrupamento, detecção de anomalia, ou algum outro tipo de operação com base nos dados de entrada. Definido de outro modo, o processo de geração de modelo automatizado 120 usa um conjunto de dados desconhecido (por exemplo, o conjunto de dados de entrada 102) para gerar software (por exemplo, o um ou mais modelos 124) que é configurado para realizar uma ou mais operações com base nos conjuntos de dados relacionados. Como um exemplo não limitante específico, se o conjunto de dados de entrada 102 incluir dados de tempo- série de um sensor de um dispositivo, o processo de geração de modelo automatizado 120 pode ser executado para treinar uma rede neural que pode ser executada por um processador para realizar a detecção de anomalia com base nos dados de tempo-série em tempo real (ou tempo quase real) do sensor. Nesse exemplo, o um ou mais modelos 124 pode ser usado para prever quando uma falha é provável de ocorrer no dispositivo, que pode ser usada para reparar o dispositivo antes que danos ocorram ou para aplicar reparos preventivos mais curtos ao invés de esperar que o dispositivo falhe. Devido ao fato de que o processo de geração de modelo automatizado 120 é propenso a incluir modelos que têm tipos arquiteturais específicos (ou a excluir modelos que têm tipos arquiteturais específicos), o um ou mais modelos 124 podem ser gerados mais rápido do que em comparação com um processo de geração de modelo que seleciona aleatoriamente modelos para uso durante o processo de geração de modelo. Adicionalmente, o um ou mais modelos 124 pode ter um escore de adequação maior que os modelos que são gerados com o uso de outras técnicas de geração de modelo.
[0018] Durante a operação, o seletor de parâmetro 104 recebe o conjunto de dados de entrada 102. O conjunto de dados de entrada 102 inclui uma pluralidade de recursos. O conjunto de dados de entrada 102 pode incluir dados de entrada (por exemplo, recursos) para os quais uma ou mais redes neurais devem ser treinadas para solucionar um problema. Por exemplo, o conjunto de dados de entrada 102 pode incluir dados de imagem de dígitos escritos à mão, e o conjunto de dados de entrada 102 pode ser usado para determinar qual dígito (por exemplo, 0-9) é mostrado em cada imagem, como um exemplo não limitante. Em outros exemplos, o conjunto de dados de entrada 102 inclui outros tipos de dados devem ser usados para solucionar outros tipos de problemas.
[0019] O seletor de parâmetro 104 determina as características 106 com base no conjunto de dados de entrada 102. Em uma implantação específica, as características 106 indicam um tipo de problema associado ao conjunto de dados de entrada, um tipo de dados associado ao conjunto de dados de entrada ou uma combinação dos mesmos. Para ilustrar, em um exemplo específico, o conjunto de dados de entrada 102 inclui dados de tempo-série industrial. Nesse exemplo, as características 106 incluem que o conjunto de dados de entrada 102 recebeu o carimbo de data e hora e é sequencial, e que o conjunto de dados de entrada 102 inclui recursos contínuos (por exemplo, recursos numéricos). Como um outro exemplo, o conjunto de dados de entrada 102 inclui dados para uma tarefa de classificação. Nesse exemplo, as características 106 incluem que os dados incluem um ou mais recursos categóricos e que os dados são indicados para classificação. Como em ainda um outro exemplo, se o conjunto de dados de entrada 102 incluir dados de imagem, as características 106 indicam que um tipo de dados do conjunto de dados de entrada 102 inclui dados de imagem.
[0020] O seletor de parâmetro 104 ajusta o parâmetro arquitetural 112 com base nas características
106. Por exemplo, as características 106 podem corresponder a um ou mais tipos de arquiteturas de redes neurais, e o seletor de parâmetro 104 pode selecionar e ajustar o parâmetro arquitetural 112 para ponderar o processo de randomização ponderado do processo de geração de modelo automatizado 120 para ajustar uma probabilidade de geração de modelos que têm o um ou mais tipos de arquiteturas.
[0021] Em uma implantação específica, o seletor de parâmetro 104 seleciona o parâmetro arquitetural 112 que usa o conjunto de regras 108. Por exemplo, o seletor de parâmetro 104 pode armazenar ou ter acesso ao conjunto de regras 108. Nessa implantação, o conjunto de regras 108 mapeia características de conjuntos de dados para parâmetros arquiteturais. Por exemplo, o conjunto de regras 108 pode mapear características de conjuntos de dados para gramáticas que indicam parâmetros arquiteturais de redes neurais. Como um exemplo específico, o conjunto de regras 108 pode mapear características de problemas supervisionados padrão (ou “simples”) para parâmetros arquiteturais que correspondem às camadas feedforward densamente conectadas. Como um outro exemplo, o conjunto de regras 108 pode mapear características de problemas de sequências para estruturas recorrentes (como redes neurais recorrentes (RNNs), camadas de memória a curto prazo longa (LSTM), ou camadas de unidade recorrente restritas (GRU), como exemplos não limitantes). Como um outro exemplo, o conjunto de regras 108 pode mapear características de problemas de imagens (por exemplo, dados de imagem de entrada) para redes neurais convolucionais em 2D baseadas em pooling. Como um outro exemplo, o conjunto de regras 108 pode mapear características de dados de tempo-série industriais para cadeias daisy de blocos convolucionais causais. Em uma implantação específica, o conjunto de regras 108 se baseia em uma análise de uma pluralidade de modelos que foram anteriormente gerados pelo processo de geração de modelo automatizado 120, com base na análise de outros modelos ou uma combinação dos mesmos.
[0022] Em uma implantação específica, o conjunto de regras 108 inclui valores ponderados. Por exemplo, uma primeira regra pode mapear uma primeira característica para um primeiro parâmetro arquitetural com um primeiro valor ponderado, e uma segunda regra pode mapear a primeira característica para um segundo parâmetro arquitetural com um segundo valor ponderado. Por exemplo, os dados de tempo-série podem ser mapeados para cadeias daisy de valores ponderados convolucionais causais com um primeiro valor ponderado, e dados de tempo-série podem ser mapeados para estruturas recorrentes com um segundo valor ponderado. O valor ponderado indica quanto o seletor de parâmetro 104 irá ajustar o parâmetro arquitetural. Por exemplo, se o segundo valor ponderado for menor que o primeiro valor ponderado, o ajustador de parâmetro irá ajustar parâmetros arquiteturais tal que a probabilidade de modelos que têm cadeias daisy de blocos convolucionais causais é maior que a probabilidade de modelos que têm estruturas recorrentes. Em algumas implantações, o peso pode ser negativo. Para pesos negativos, o seletor de parâmetro 104 pode ajustar o parâmetro arquitetural 112 para reduzir a probabilidade de que os modelos tenham o recurso arquitetural específico.
[0023] Em uma outra implantação específica, o seletor de parâmetro 104 seleciona o parâmetro arquitetural 112 que usa o classificador treinado 110. Para ilustrar, o seletor de parâmetro 104 fornece dados indicativos das características 106 para o classificador treinado 110, e o classificador treinado 110 identifica um ou mais parâmetros arquiteturais para o ajuste com base nos dados indicativos das características 106. O classificador treinado 110 pode ser treinado com base nos dados indicativos de modelos anteriores gerados pelo processo de geração de modelo automatizado 120 (por exemplo, dados indicativos de tipos arquiteturais dos modelos anteriores) e dados indicativos de características dos dados de entrada usados para treinar os modelos anteriores. Por exemplo, as características de dados de entrada podem ser rotuladas com um parâmetro arquitetural que corresponde ao modelo gerado para os dados de entrada, e esses dados rotulados podem ser usados como dados de treinamento supervisionados para treinar o classificador treinado 110 para identificar parâmetros arquiteturais com base nas características de dados de entrada. Em uma implantação específica, o classificador treinado 110 inclui um classificador de rede neural. Em outras implantações, o classificador treinado 110 inclui um classificador de árvore de decisão, um classificador de máquina de vetor de suporte, um classificador de regressão, um classificador naive Bayes, um classificador perceptron, ou um outro tipo de classificador.
[0024] Após selecionar o parâmetro arquitetural 112, o seletor de parâmetro 104 ajusta o parâmetro arquitetural 112 para ajustar uma probabilidade de geração de modelos (através do processo de geração de modelo automatizado 120) que têm recursos arquiteturais específicos. Em uma implantação específica, o recurso arquitetural inclui um tipo de modelo inicial usado pelo processo de randomização ponderado do processo de geração de modelo automatizado 120. O tipo de modelo inicial pode incluir modelos feedforward, modelos recorrentes, modelos convolucionais bidimensionais baseados em pooling, cadeias daisy de modelos convolucionais causais, outros tipos de modelos ou uma combinação dos mesmos. Para ilustrar, o seletor de parâmetro 104 pode definir o parâmetro arquitetural 112 para um primeiro valor com base nas características 106, o primeiro parâmetro arquitetural associado a uma probabilidade de que modelos de uma primeira época do processo de randomização ponderado têm um primeiro tipo de modelo, e o seletor de parâmetro 104 pode definir um segundo parâmetro arquitetural para um segundo valor com base nas características 106, o segundo parâmetro arquitetural é associado a uma probabilidade de que os modelos da primeira época do processo de randomização ponderado têm um segundo tipo de modelo.
[0025] Como um exemplo, as características 106 podem indicar que o conjunto de dados de entrada 102 inclui dados de imagem. Nesse exemplo, o conjunto de regras 108 (ou o classificador treinado 110) indica que redes neurais convolucionais em 2D baseadas em pooling têm uma correspondência positiva com dados de imagem e que camadas feedforward densamente conectadas têm uma correspondência negativa com dados de imagem. Com base nas características 106, o seletor de parâmetro 104 seleciona o parâmetro arquitetural 112 (que corresponde às redes neurais convolucionais em 2D baseadas em pooling) e um segundo parâmetro arquitetural (que corresponde às camadas feedforward densamente conectadas) para ajuste. Nesse exemplo, o seletor de parâmetro 104 ajusta o parâmetro arquitetural 112 para aumentar a probabilidade de que a pluralidade de modelos 122 inclui redes neurais convolucionais em 2D baseadas em pooling. Nesse exemplo, o seletor de parâmetro 104 também ajusta o segundo parâmetro arquitetural para diminuir a probabilidade de que a pluralidade de modelos 122 inclui modelos que têm camadas feedforward densamente conectadas. O ajuste dos parâmetros arquiteturais dessa maneira pode fazer com que o processo de geração de modelo automatizado 120 convirja mais rápido no um ou mais modelos 124 com o uso de menos recursos de processamento, devido ao fato de que os modelos que têm mais probabilidade de ser bem-sucedidos têm maior probabilidade de serem gerados e usados no processo de geração de modelo automatizado 120 (e modelos que são menos prováveis de serem bem-sucedidos têm uma probabilidade menor de serem gerados).
[0026] O parâmetro arquitetural 112 também pode incluir um parâmetro de mutação. Um parâmetro de mutação controla a mutação que ocorre durante o processo de geração de modelo automatizado 120, de modo que pelo menos um modelo da pluralidade de modelos 122 seja modificado com base no parâmetro de mutação. Por exemplo, a mutação pode ocorrer para um ou mais modelos durante uma época do processo de geração de modelo automatizado 120. Conforme adicionalmente descrito com referência à Figura 4, a mutação inclui alterar pelo menos uma característica do modelo. O parâmetro de mutação indica quão provavelmente a mutação deve ocorrer, qual tipo de mutação é provável de ocorrer (por exemplo, qual característica é provável de alterar), ou ambos. O parâmetro de mutação pode ser ajustado com base nas características 106. Por exemplo, o conjunto de regras 108 (ou o classificador treinado 110) pode indicar um ajuste para um parâmetro de mutação que corresponde às características 106, e o parâmetro de mutação (por exemplo, o parâmetro arquitetural 112) pode ser ajustado consequentemente.
[0027] Em uma implantação específica, o seletor de parâmetro 104 também seleciona e ajusta um ou mais hiperparâmetros de treinamento do processo de geração de modelo automatizado 120. O um ou mais hiperparâmetros de treinamento controla um ou mais aspectos de treinamento do modelo. Conforme usado no presente documento, um hiperparâmetro se refere a uma característica que determina como um modelo é treinado. Por exemplo, um hiperparâmetro pode incluir uma taxa de aprendizado de uma rede neural (por exemplo, quão rapidamente uma rede neural atualiza outros parâmetros), momento de uma rede neural, número de épocas do processo de geração de modelo automatizado 120, tamanho do lote ou uma combinação dos mesmos. O seletor de parâmetro 104 pode ajustar o hiperparâmetro com base nas características 106. Por exemplo, o conjunto de regras 108 (ou o classificador treinado 110) pode indicar que um hiperparâmetro específico corresponde às características 106, e o seletor de parâmetro 104 pode ajustar o hiperparâmetro específico consequentemente.
[0028] Após o parâmetro arquitetural 112 ser ajustado, o processo de geração de modelo automatizado 120 é executado. Por exemplo, um processador executa o processo de geração de modelo automatizado 120. Durante a execução do processo de geração de modelo automatizado 120, a pluralidade de modelos 122 é gerada. A pluralidade de modelos 122 é gerada com o uso de um processo de randomização ponderado, em que os parâmetros arquiteturais controlam os pesos. Por exemplo, se um parâmetro arquitetural específico tiver um peso maior que um outro parâmetro arquitetural, os modelos que têm um tipo arquitetural específico têm uma probabilidade maior de ser incluída em um conjunto inicial (ou outro conjunto) de modelos gerado pelo processo de geração de modelo automatizado 120. A pluralidade de modelos 122 inclui um conjunto inicial de modelos gerados como entrada em uma época inicial assim como outros conjuntos de modelos gerados como conjuntos de saída de uma ou mais épocas, conforme adicionalmente descrito com referência à Figura 4. O processo de geração de modelo automatizado 120 pode ser executado até que o processo de geração de modelo automatizado 120 convirja no um ou mais modelos 124. Como um exemplo, o um ou mais modelos 124 podem ser o modelo(s) mais adequado de uma última época do processo de geração de modelo automatizado 120. Em uma implantação específica, o número de épocas do processo de geração de modelo automatizado 120 é definido antes da execução do processo de geração de modelo automatizado 120, e o um ou mais modelos 124 são tomados do conjunto de saída da última época. Alternativamente, o processo de geração de modelo automatizado 120 pode ser executado por uma quantidade de tempo específica (por exemplo, até que um tempo limite tenha expirado). Alternativamente, o processo de geração de modelo automatizado 120 pode ser executado até que pelo menos um modelo de um conjunto de saída tenha um escore que satisfaça um limite (por exemplo, até que o processo de geração de modelo automatizado 120 convirja em um modelo aceitável), e o um ou mais modelos 124 são o um ou mais modelos que satisfazem o limite. Então, o um ou mais modelos 124 podem ser referidos como a saída do processo de geração de modelo automatizado 120.
[0029] O um ou mais modelos 124 são treinados para realizar uma tarefa baseada nos dados de entrada. Como um exemplo específico, o um ou mais modelos 124 pode ser treinado com base no conjunto de dados de entrada 102 para realizar uma tarefa de classificação. Para ilustrar adicionalmente, o conjunto de dados de entrada 102 pode incluir dados de tempo-série industriais indicativos de vários estados operacionais de um dispositivo (por exemplo, maquinário industrial, como uma turbina eólica, uma usina de energia, um gerador, etc.), e o um ou mais modelos 124 podem ser treinados para identificar um estado operacional (ou para prever um estado falho) com base em dados de entrada de tempo-série em tempo real. Como um outro exemplo, o um ou mais modelos 124 podem ser treinados para realizar o agrupamento em transações de cartão de crédito para identificar transações potencialmente fraudulentas.
Esses exemplos são não limitantes e, em outras implantações, o um ou mais modelos 124 são treinados para realizar outras tarefas de aprendizado de máquina.
[0030] Em algumas implantações, após o um ou mais modelos 124 serem gerados e treinados, dados indicativos do um ou mais modelos 124 são fornecidos como os dados de treinamento 130 para atualizar o seletor de parâmetro 104. Os dados de treinamento 130 indicam características, como tipos de arquitetura, do um ou mais modelos 124. A atualização do seletor de parâmetro 104 com base nos dados de treinamento 130 possibilita que o seletor de parâmetro 104 justifique o sucesso do um ou mais modelos 124 gerados pelo processo de geração de modelo automatizado
120.
[0031] Em uma implantação específica, o seletor de parâmetro 104 atualiza o conjunto de regras 108 com base nos dados de treinamento 130 (por exemplo, com base nas características do um ou mais modelos 124). Em algumas implantações, o conjunto de regras 108 são atualizados responsivos aos escores do um ou mais modelos 124 que satisfazem um limite. Por exemplo, se os escores de adequação do um ou mais modelos 124 satisfizerem (por exemplo, forem maiores ou iguais a) um primeiro limite, o conjunto de regras 108 pode ser atualizado para indicar uma correspondência entre as características 106 e parâmetros arquiteturais que indicam tipos arquiteturais do um ou mais modelos 124. Se o conjunto de regras 108 já indicar uma correspondência entre as características 106 e os parâmetros arquiteturais, uma ponderação associada ao parâmetro arquitetural pode ser aumentada. Como um outro exemplo, se os escores de adequação do um ou mais modelos 124 falharem em satisfizer (por exemplo, forem menores que) um segundo limite, o conjunto de regras 108 pode ser atualizado para indicar uma correspondência negativa entre as características 106 e parâmetros arquiteturais que indicam tipos arquiteturais do um ou mais modelos 124. Se o conjunto de regras 108 já indicar uma correspondência entre as características 106 e os parâmetros arquiteturais, uma ponderação associada aos parâmetros arquiteturais pode ser diminuída. Então, o conjunto de regras 108 pode ser atualizado para justificar o sucesso (ou falta do mesmo) do um ou mais modelos 124.
[0032] Em uma implantação alternativa, o seletor de parâmetro 104 usa os dados de treinamento 130 como dados de treinamento para treinar novamente o classificador treinado 110. Por exemplo, os dados de treinamento 130 podem incluir dados que correspondem às características 106 e um rótulo que indica um parâmetro arquitetural que corresponde aos tipos arquiteturais do um ou mais modelos 124. Nesse exemplo, os dados de treinamento 130 são usados como dados de treinamento rotulados para atualizar o classificador treinado 110. Em uma implantação específica, o classificador treinado 110 é atualizado apenas se os escores de adequação do um ou mais modelos 124 satisfizerem (por exemplo, forem maiores ou iguais a) um primeiro limite. Adicional ou alternativamente, um rótulo alternativo (por exemplo, que indica uma correspondência negativa) pode ser usado se os escores de adequação do um ou mais modelos 124 falhar em satisfazer (por exemplo, forem menores que) um segundo limite. Então, o classificador treinado 110 pode ser treinado para justificar o sucesso (ou falta do mesmo) do um ou mais modelos 124.
[0033] O sistema 100 possibilitar que o processo de geração de modelo automatizado 120 convirja no um ou mais modelos 124 mais rápido do que outros processos de geração de modelo. Por exemplo, o parâmetro arquitetural 112 pode ser ajustado com base nas características 106 para aumentar a probabilidade de que um conjunto inicial de modelos do processo de geração de modelo automatizado 120 inclua modelos que têm tipos arquiteturais que foram anteriormente bem-sucedidos para conjunto de dados de entradas semelhantes. Esses modelos podem ser mais adequados do que outros tipos de modelos na modelagem do conjunto de dados de entrada 102. O aumento da probabilidade de que os modelos que têm maior adequação estão incluídos no conjunto inicial de modelos pode diminuir o número de épocas necessárias para convergir em uma rede neural aceitável (por exemplo, o um ou mais modelos 124) aumentando, desse modo, a velocidade do processo de geração de modelo automatizado 120 e diminuindo a quantidade de recursos de processamento utilizados pelo processo de geração de modelo automatizado 120. Adicionalmente, devido ao fato de que os modelos mais adequados são introduzidos no conjunto inicial de modelos, a adequação geral do um ou mais modelos 124 pode ser aprimorada em comparação com os processos de geração de modelo que determinam aleatoriamente o conjunto inicial de modelos. O parâmetro arquitetural 112 pode ser ajustado por uma quantidade que ainda mantém alguma aleatoriedade na seleção do conjunto de entrada inicial a fim de tentar modelos que têm diferentes parâmetros arquiteturais no caso de haver um tipo que não foi testado para o conjunto de dados de entrada 102 que se desempenha melhor que aqueles que foram tentados anteriormente. O ajuste de um parâmetro de mutação, ou um hiperparâmetro, com base nas características 106 pode aprimorar semelhantemente a velocidade do processo de geração de modelo automatizado 120 e reduzir a quantidade de recursos de processamento usada pelo processo de geração de modelo automatizado 120.
[0034] Será observado que os sistemas e métodos da presente revelação pode ser aplicável em vários cenários, infraestruturas e ambientes de dados. Como um exemplo ilustrativo e não limitante, o conjunto de dados de entrada 102 pode incluir dados que receberam carimbo de data e hora de um grande arranjo de sensores distribuídos ao redor de uma fazenda eólica e, também pode incluir dados de tempo de ativação/tempo de inatividade que receberam carimbo de data e hora de turbinas eólicas individuais. O sistema 100 pode gerar um modelo de rede neural que é configurado para prever quão provavelmente uma turbina eólica deve falhar. O modelo de rede neural pode, em um exemplo específico, aumentar tempo de entrega de falha de 3 a 5 dias a 30 a 40 dias, o que pode resultar em tempo de inatividade reduzido e economias monetárias para um operador da fazenda eólica. O sistema 100 pode ser capaz de construir automaticamente tipos semelhantes de modelos que preveem valores ou estados numéricos (por exemplo, falhas) para internet das coisas (IoT), utilidades e infraestruturas de óleo/gás.
[0035] Como um outro exemplo não limitante ilustrativo, o conjunto de dados de entrada 102 pode incluir dados sobre a saúde e o sistema 100 pode construir automaticamente um modelo para predizer se um paciente que exibe determinadas condições de saúde é provável de ter uma enfermidade específica. Como um outro exemplo não limitante ilustrativo, o conjunto de dados de entrada 102 pode incluir dados financeiros e o sistema 100 pode construir automaticamente um modelo para prever condições do mercado. Como um outro exemplo não limitante ilustrativo, o conjunto de dados de entrada 102 pode incluir segurança de rede, log de rede e/ou dados de malware, e o sistema 100 pode automaticamente construir um modelo para implantar regras de filtro de firewall, detecção de anti-malware de ponto final, um detector de bot/botnet, etc.
[0036] Como um outro exemplo não limitante ilustrativo, o sistema 100 pode gerar uma rede neural para emitir operações de piloto automático de aeronave (por exemplo, aceleração, direção, flaps, etc.) com base no aprendizado de reforço. Em tal exemplo, a função de recompensação otimizada pela rede neural pode envolver altitude da aeronave, distância percorrida da aeronave, etc. Como em ainda um outro exemplo, o sistema 100 pode gerar uma rede neural para prever eventos de intervenção da indústria de óleo/gás (por exemplo, eventos que levam a operações maiores de manutenção ou remediação em uma plataforma ou poço, o que pode levar a perda de tempo de produção considerável e despesas incorridas).
[0037] Ainda outro exemplo de um problema definiu-se que o que pode ser solucionado com redes neurais geradas com o sistema 100 descrito no presente documento é a fusão de dados. Nesse caso, os dados agregados a partir de um número grande de sensores de vários tipos, incluindo múltiplos sensores do mesmo tipo, são coletados e usados para identificar um objeto, ação ou fenômeno que não seria inteiramente detectável com qualquer sensor ou com um pequeno subconjunto de sensores. Por exemplo, a detecção de um submarino pode ser realizada com base nas entradas recebidas de múltiplas boias sonares que fornecem entrada para a rede neural gerada. Um outro exemplo pode ser a identificação de um tipo específico de aeronave com base tanto na assinatura de áudio quanto uma vista visual (que pode ser parcialmente obscurecida ou tem uma resolução baixa).
[0038] Com referência às Figuras 2A e 2B, exemplos específicos de seleção de parâmetros arquiteturais para ajustar com base nas características de dados de entrada são mostrados. Em uma implantação específica, os parâmetros arquiteturais são definidos pelo seletor de parâmetro 104 da Figura 1.
[0039] A Figura 2A ilustra um primeiro exemplo 200 de selecionar parâmetros arquiteturais a serem ajustados com base nas características de dados de entrada. No primeiro exemplo 200, características de um primeiro conjunto de dados de entrada 202 são identificadas, em 210. Por exemplo, tipos de dados do primeiro conjunto de dados de entrada 202 podem ser identificados, um tipo de problema que corresponde ao primeiro conjunto de dados de entrada 202 pode ser identificado, os carimbos de data e hora podem ser identificados, os rótulos podem ser identificados,
outras características podem ser identificadas ou uma combinação dos mesmos. As características do primeiro conjunto de dados de entrada 202 podem ser identificadas pelo seletor de parâmetro 104 da Figura 1.
[0040] No primeiro exemplo 200, o primeiro conjunto de dados de entrada 202 corresponde a um problema supervisionado padrão (ou “simples”) 204. Por exemplo, o primeiro conjunto de dados de entrada 202 pode incluir dados rotulados que indicam que o problema associado ao primeiro conjunto de dados de entrada 202 é o problema supervisionado 204. Após identificar as características do primeiro conjunto de dados de entrada 202 (por exemplo, o problema supervisionado 204), as características são fornecidas para um conjunto de regras (ou um classificador treinado) em 212 para selecionar um parâmetro arquitetural do conjunto de parâmetros arquiteturais 220. O conjunto de regras (ou o classificador treinado) pode incluir ou corresponder ao conjunto de regras 108 (ou o classificador treinado 110) da Figura 1. O conjunto de parâmetros arquiteturais 220 pode incluir um primeiro parâmetro arquitetural 222 (que corresponde às camadas feedforward densamente conectadas), um segundo parâmetro arquitetural 224 (que corresponde às estruturas recorrentes, como RNNs, camadas LSTM, GRUs, etc.), um terceiro parâmetro arquitetural 226 (que corresponde às redes neurais convolucionais em 2D baseadas em pooling), e um quarto parâmetro arquitetural 228 (que corresponde às cadeias daisy de blocos convolucionais causais).
[0041] Com base no conjunto de regras (ou no classificador treinado), determina-se que as camadas feedforward densamente conectadas são bem-sucedidas na modelagem de problemas supervisionados padrão. Então, com base nas características do primeiro conjunto de dados de entrada 202, o primeiro parâmetro arquitetural 222 é ajustado para aumentar a probabilidade de que um conjunto inicial de modelos usados por um processo de randomização ponderado (por exemplo, o processo de geração de modelo automatizado 120 da Figura 1) inclui modelos que têm camadas feedforward densamente conectadas. Isso pode aprimorar a velocidade com a qual o processo de randomização ponderado converge em uma rede neural aceitável (por exemplo, uma rede neural que satisfaz uma adequação ou outros critérios).
[0042] A Figura 2B ilustra um segundo exemplo 230 de selecionar parâmetros arquiteturais a serem ajustados com base nas características de dados de entrada. No segundo exemplo 230, características de um segundo conjunto de dados de entrada 206 são identificadas, em 210. Por exemplo, tipos de dados do segundo conjunto de dados de entrada 206 podem ser identificados, um tipo de problema que corresponde ao segundo conjunto de dados de entrada 206 pode ser identificado, os carimbos de data e hora podem ser identificados, os rótulos podem ser identificados, outras características podem ser identificadas ou uma combinação dos mesmos. As características do segundo conjunto de dados de entrada 206 podem ser identificadas pelo seletor de parâmetro 104 da Figura 1.
[0043] No segundo exemplo 230, o segundo conjunto de dados de entrada 206 corresponde a um problema de tempo-série industrial 208. Por exemplo, o segundo conjunto de dados de entrada 206 pode incluir dados de medição que receberam carimbo de data e hora indicando que o problema associado ao segundo conjunto de dados de entrada 206 é o problema de tempo-série industrial 208. Após identificar as características do segundo conjunto de dados de entrada 206 (por exemplo, o problema de tempo- série industrial 208), as características são fornecidas para um conjunto de regras (ou um classificador treinado) em 212 para selecionar um parâmetro arquitetural do conjunto de parâmetros arquiteturais 220.
[0044] Com base no conjunto de regras (ou no classificador treinado), determina-se que as cadeias daisy de blocos convolucionais causais são bem-sucedidas na modelagem de problemas de tempo-série industriais. Então, com base nas características do segundo conjunto de dados de entrada 206, o quarto parâmetro arquitetural 228 é ajustado para aumentar a probabilidade de que um conjunto inicial de modelos usados por um processo de randomização ponderado (por exemplo, o processo de geração de modelo automatizado 120 da Figura 1) inclui modelos que têm cadeias daisy de blocos convolucionais causais. Isso pode aprimorar a velocidade com a qual o processo de randomização ponderado converge em uma rede neural aceitável (por exemplo, uma rede neural que satisfaz uma adequação ou outros critérios).
[0045] Com referência à Figura 3, um exemplo específico de uma gramática 300 que indica parâmetros arquiteturais para uma rede neural é mostrado. A gramática 300 indica parâmetro arquitetural(s) que podem ser ajustados pelo seletor de parâmetro 104 da Figura 1. Devido ao fato de que a gramática 300 indica parâmetros arquiteturais específicos de redes neurais, a gramática 300 pode ser referida como definindo um espaço de busca para uma rede neural arquitetura.
[0046] A gramática 300 inclui regras de produção 302. As regras de produção 302 definem quais subestruturas de rede neural estão permitidas a evoluir. No exemplo específico ilustrado na Figura 3, uma rede neural (N) inclui dois módulos (MODULE). Qualquer número desses blocos residuais pode ser amarrado para descrever uma topologia ou arquitetura de uma rede neural. Cada módulo inclui uma camada linear, camadas LSTM ou uma combinação dos mesmos. A camada linear é definida por um tamanho específico e um tipo de ativação. As camadas LSTM são definidas por um número de camadas e um tamanho.
[0047] No exemplo específico ilustrado na Figura 3, o tamanho de uma camada linear (ou camadas LSTM) é definida por um número, o número de camadas (das camadas LSTM) é definido por um número, e o tipo de ativação é definido por um tipo de função de ativação específica. Para ilustrar, os números incluem números inteiros de 1 a m, em que m é um número máximo. M pode ser qualquer tamanho máximo permitido de uma camada de rede neural. Os tipos de ativação incluem uma função de unidade linear retificada (relu), uma função de identidade, uma função gaussiana ou uma função sigmoide. Em outras implantações, os tipos de ativação incluem outros tipos de funções de ativação.
[0048] A gramática 300 inclui adicionalmente símbolos terminais 304. Os símbolos terminais 304 incluem os blocos de construção elementares que são usados para produzir as estruturas de rede neural. No exemplo específico ilustrado na Figura 3, os símbolos terminais 304 incluem o número e o tipo de ativação.
[0049] No exemplo específico ilustrado na Figura 3, a gramática 300 envolve RNNs e pode ser usada para problemas de sequência. Em outras implantações, outras gramáticas descrevem outras arquiteturas de rede neural, como redes neurais convolucionais, camadas feedforward densamente conectadas, redes neurais convolucionais em 2D baseadas em pooling, cadeias daisy de blocos convolucionais causais, outros tipos de estruturas recorrentes (por exemplo, GRUs), outros tipos de redes neurais ou uma combinação dos mesmos. Conforme descrito com referência à Figura 1, os parâmetros arquiteturais associados à gramática 300 (ou outras gramáticas) podem ser usados para alterar a probabilidade de que modelos que têm tipos de arquiteturas específicos são gerados pelo processo de geração de modelo automatizado 120, que pode fazer com que o processo de geração de modelo automatizado 120 convirja mais rápido em um modelo aceitável (por exemplo, um modelo que satisfaz uma adequação ou outros critérios).
[0050] Com referência à Figura 4, uma implantação específica de um sistema 400 para determinar uma topologia de uma rede neural é mostrada. Na Figura 4, uma topologia de rede neural pode ser “evoluída” com o uso de um algoritmo genético 410. O algoritmo genético 410 gera automaticamente uma rede neural com base em um conjunto de dados específico, como um conjunto de dados de entrada 402 ilustrativo, e com base em um processo de busca neuroevolucionário recursivo. Em um exemplo ilustrativo, o conjunto de dados de entrada 402 é o conjunto de dados de entrada 102 mostrado na Figura 1. Durante cada iteração do processo de busca (também chamado de uma “época” ou “geração” do algoritmo genético 410), um conjunto de entrada 420 (ou população) é “evoluído” para gerar um conjunto de saída 430 (ou população). Cada membro do conjunto de entrada 420 e do conjunto de saída 430 é um modelo (por exemplo, uma estrutura de dados) que representa uma rede neural. Então, as topologias de rede neural podem ser evoluídas com o uso do algoritmo genético 410. O conjunto de entrada 420 de uma época do algoritmo genético 410 inicial pode ser aleatória ou pseudoaleatoriamente gerada. Em uma implantação específica, o conjunto de entrada 420 da época inicial do algoritmo genético 410 é gerado com base em um ou mais parâmetros arquiteturais, que pondera a seleção do conjunto de entrada 420 em direção à seleção de arquiteturas de rede neural específicas, conforme descrito com referência à Figura 1. Depois disso, o conjunto de saída 430 de uma época pode ser o conjunto de entrada 420 da próxima época (não inicial), conforme adicionalmente descrito no presente documento.
[0051] O conjunto de entrada 420 e o conjunto de saída 430 incluem, cada um, uma pluralidade de modelos, em que cada modelo inclui dados representativos de uma rede neural. Por exemplo, cada modelo pode satisfazer uma rede neural por pelo menos uma topologia de rede neural, uma série de funções de ativação, e pesos de conexão. A topologia de uma rede neural inclui uma configuração de nós da rede neural e conexões entre tais nós. Os modelos também podem ser especificados para incluir outros parâmetros,
incluindo, mas sem limitação, valores/funções de desvio e funções de agregação.
[0052] Em alguns exemplos, um modelo de uma rede neural é uma estrutura de dados que inclui dados de nó e dados de conexão. Os dados de nó para cada nó de uma rede neural podem incluir pelo menos uma dentre uma função de ativação, uma função de agregação, ou um desvio (por exemplo, um valor de desvio constante ou uma função de desvio). A função de ativação de um nó pode ser uma função de etapa, função de seno, função linear contínua ou em pedaços, função sigmoide, função tangente hiperbólica, ou um outro tipo de função matemática que representa um limite no qual o nó é ativado. O análogo biológico à ativação de um nó é o disparo de um neurônio. A função de agregação é uma função matemática que combina (por exemplo, soma, produto, etc.) sinais de entrada ao nó. Um resultado da função de agregação pode ser usado como entrada na função de ativação. O desvio é um valor ou função constante que é usado pela função de agregação e/ou pela função de ativação para tornar o nó mais ou menos provável de ser ativado. Os dados de conexão para cada conexão em uma rede neural incluem pelo menos um de um par de nós ou um peso de conexão. Por exemplo, se uma rede neural incluir uma conexão do nó N1 ao nó N2, então, os dados de conexão para aquela conexão podem incluir o par de nós <N1, N2>. O peso de conexão é uma quantidade numérica que influencia se e/ou como a saída de N1 é modificado antes de ser inserido no N2. No exemplo de uma rede neural recorrente, um nó pode ter uma conexão com o mesmo (por exemplo, os dados de conexão podem incluir o par de nós <N1, Nl>).
[0053] O algoritmo genético 410 inclui ou é, de outro modo, associado a uma função de adequação 440, um critério de estagnação 450, uma operação de cruzamento 460 e uma operação de mutação 470. A função de adequação 440 é uma função objetiva que pode ser usada para comparar os modelos do conjunto de entrada 420. Em alguns exemplos, a função de adequação 440 se baseia em uma frequência e/ou grandeza de erros produzidos testando-se um modelo no conjunto de dados de entrada 402. Como um exemplo simples, supõe-se que o conjunto de dados de entrada 402 inclua dez fileiras, que o conjunto de dados de entrada 402 inclui duas colunas denotadas A e B, e que os modelos ilustrados na Figura 4 representem redes neurais que emitem um valor previsto de B dado um valor de entrada de A.
Nesse exemplo, o teste de um modelo pode incluir inserir cada um dos dez valores de A a partir do conjunto de dados de entrada 402, em comparação com os valores previstos de B para os valores reais correspondentes de B do conjunto de dados de entrada 402, e determinar se e/ou por quanto os dois valores previstos e reais de B diferem.
Para ilustrar, se uma rede neural específica previu corretamente o valor de B para nove das dez fileiras, então, uma função de adequação 440 relativamente simples pode atribuir ao modelo correspondente um valor de adequação de 9/10=0.9. Deve-se compreender que o exemplo anterior é para ilustração apenas e não deve ser considerado limitante.
Em alguns aspectos, a função de adequação 440 pode se basear em fatores não relacionados a frequência de erro ou taxa de erro, como número de nós de entrada, camadas de nó, camadas escondidas, conexões, complexidade computacional, etc.
[0054] Em um aspecto específico, a avaliação de adequação de modelos pode ser realizada em paralelo. Para ilustrar, o sistema ilustrado pode incluir dispositivos, processadores, núcleos e/ou encadeamentos 490 adicionais àqueles que executam o algoritmo genético 410. Esses dispositivos, processadores, núcleos e/ou encadeamentos 490 adicionais podem testar adequação de modelo em paralelo com base no conjunto de dados de entrada 402 e podem fornecer os valores de adequação resultantes para o algoritmo genético 410.
[0055] Em um aspecto específico, o algoritmo genético 410 pode ser configurado para realizar a especificação. Por exemplo, o algoritmo genético 410 pode ser configurado para agrupar os modelos do conjunto de entrada 420 em espécies com base na “distância genética” entre os modelos. Devido ao fato de que cada modelo representa uma rede neural, a distância genética entre dois modelos pode se basear em diferenças em nós, funções de ativação, funções de agregação, conexões, pesos de conexão, etc. dos dois modelos. Em um exemplo ilustrativo, o algoritmo genético 410 pode ser configurado para serializar um modelo em uma cadeia, como um vetor normalizado. Nesse exemplo, a distância genética entre modelos pode ser representada por uma distância de Hamming compartimentalizada entre os vetores normalizados, em que cada compartimento representa uma subfaixa de valores possíveis.
[0056] Devido ao fato de que o algoritmo genético 410 é configurado para imitar a evolução biológica e princípios de seleção natural, pode ser possível que uma espécie de modelos se torne “extinta”. O critério de estagnação 450 pode ser usado para determinar quando uma espécie deve se tornar extinta, conforme adicionalmente descrito abaixo. A operação de cruzamento 460 e a operação de mutação 470 pode ser altamente estocástica sob determinadas restrições e um conjunto definido de probabilidades otimizadas para construção de modelo, que pode produzir operações de reprodução que podem ser usadas para gerar o conjunto de saída 430, ou pelo menos uma porção do mesmo, a partir do conjunto de entrada 420. O cruzamento e a mutação são adicionalmente descritos abaixo.
[0057] A operação do sistema ilustrado é descrita agora. Deve-se compreender, no entanto, que em implantações alternativas, determinadas operações podem ser realizadas em uma ordem diferente daquela descrita. Além do mais, as operações descritas como sequenciais podem ser, ao invés disso, realizadas pelo menos de modo parcialmente concomitante, e as operações descritas como sendo realizadas pelo menos de modo parcialmente concomitante podem, ao invés disso, ser realizadas sequencialmente.
[0058] Durante um estágio de configuração da operação, um usuário pode especificar o conjunto de dados de entrada 402 ou fontes de dados dos quais o conjunto de dados de entrada 402 é determinado. O usuário também pode especificar um objetivo para o algoritmo genético 410. Por exemplo, se o algoritmo genético 410 estiver sendo usado para determinar uma topologia do um ou mais modelos 124, o usuário pode fornecer uma ou mais características das redes neurais. O sistema 400 pode, então, restringir modelos processados pelo algoritmo genético 410 àqueles que têm a uma ou mais características.
[0059] Então, em implantações específicas, o usuário pode configurar vários aspectos dos modelos que devem ser gerados/evoluídos pelo algoritmo genético 410. A entrada de configuração pode indicar um campo de dados específico do conjunto de dados que deve ser incluído no modelo ou um campo de dados específico do conjunto de dados que deve ser omitido do modelo, pode restringir as topologias de modelo permitidas (por exemplo, para incluir no máximo um número especificado de nós de entrada e nós de saída, no máximo um número especificado de camadas escondidas, sem loops recorrentes, etc.).
[0060] Ademais, em implantações específicas, o usuário pode configurar aspectos do algoritmo genético 410, como por meio da entrada em interfaces gráficas de usuário (GUIs). Por exemplo, o usuário pode fornecer entrada para limitar um número épocas que serão executadas pelo algoritmo genético 410. Alternativamente, o usuário pode especificar um limite de tempo que indica uma quantidade de tempo que o algoritmo genético 410 tem que executar antes de emitir um modelo de saída final, e o algoritmo genético 410 pode determinar um número de épocas que será executado com base no limite de tempo especificado. Para ilustrar, uma época inicial do algoritmo genético 410 pode ser temporizada (por exemplo, com o uso de um temporizador de hardware ou software no dispositivo de computação que executa o algoritmo genético 410), e um número total de épocas que devem ser executadas no limite de tempo especificado pode ser determinado consequentemente. Como um outro exemplo, o usuário pode restringir um número de modelos avaliado em cada época, por exemplo, restringindo- se o tamanho do conjunto de entrada 420 e/ou do conjunto de saída 430.
[0061] Após operações de configuração serem realizadas, o algoritmo genético 410 pode começar a execução com base no conjunto de dados de entrada 402. Parâmetros do algoritmo genético 410 podem incluir, mas sem limitação, parâmetro(s) de mutação, um número máximo de épocas que o algoritmo genético 410 será executado, um valor de adequação limite que resulta em terminação do algoritmo genético 410 mesmo se o número máximo de gerações ainda não tiver sido alcançado, se a paralelização de teste de modelo ou avaliação de adequação é possibilitada, se evolui uma rede neural feedforward ou recorrente, etc. Conforme usado no presente documento, um “parâmetro de mutação” afeta a probabilidade de uma operação de mutação ocorrer em relação a uma rede neural candidata, a extensão da operação de mutação (por exemplo, quantos bits, bytes, campos, características, etc. mudam devido à operação de mutação), e/ou o tipo da operação de mutação (por exemplo, se a mutação mudar uma característica de nó, uma característica de enlace, etc.). Em alguns exemplos, o algoritmo genético 410 pode utilizar um único parâmetro de mutação ou conjunto de parâmetros de mutação para todos os modelos. Em tais exemplos, o parâmetro de mutação pode impactar quão frequentemente, quanto e/ou quais tipos de mutações podem acontecer para qualquer modelo do algoritmo genético 410. Em exemplos alternativos, o algoritmo genético 410 mantém múltiplos parâmetros de mutação ou conjuntos de parâmetros de mutação, como para grupos de modelos ou espécies ou individuais. Em aspectos específicos, o parâmetro(s) de mutação afeta as operações de cruzamento e/ou mutação, que são adicionalmente descritas no presente documento. Em uma implantação específica, o parâmetro de mutação é ajustado pelo sistema 400 com base nas características do conjunto de dados de entrada 402, conforme descrito com referência à Figura 1.
[0062] O algoritmo genético 410 pode gerar automaticamente um conjunto inicial de modelos com base no conjunto de dados de entrada 402 e entrada de configuração. Cada modelo pode ser especificado em pelo menos uma topologia de rede neural, uma função de ativação, e pesos de enlace. A topologia de rede neural pode indicar uma disposição de nós (por exemplo, neurônios). Por exemplo, a topologia de rede neural pode indicar um número de nós de entrada, um número de camadas escondidas, um número de nós por camada escondida, e um número de nós de saída. A topologia de rede neural também pode indicar as interconexões (por exemplo, axônios ou enlaces) entre nós. Em alguns aspectos, os nós de camadas podem ser usados ao invés de nós únicos ou além deles. Exemplos de tipos de camada incluem camadas de memória a curto prazo longa (LSTM), camadas de unidade recorrente restritas (GRU), camadas totalmente conectadas, e camadas de rede neural convolucional (CNN). Em tais exemplos, os parâmetros de camada podem ser evoluídos ao invés de parâmetros de nó ou além deles.
[0063] O conjunto inicial de modelos pode ser inserido em uma época inicial do algoritmo genético 410 como o conjunto de entrada 420, e no fim da época inicial,
o conjunto de saída 430 gerado durante a época inicial pode se tornar o conjunto de entrada 420 da próxima época do algoritmo genético 410. Em alguns exemplos, o conjunto de entrada 420 pode ter um número específico de modelos.
[0064] Para a época inicial do algoritmo genético 410, as topologias dos modelos no conjunto de entrada 420 podem ser aleatórias ou pseudoaleatoriamente geradas nas restrições especificadas por quaisquer definições de configuração anteriormente inserida ou por um ou mais parâmetros arquiteturais. Consequentemente, o conjunto de entrada 420 pode incluir modelos com múltiplas topologias distintas. Por exemplo, um primeiro modelo pode ter uma primeira topologia, incluindo um primeiro número de nós de entrada associados a um primeiro conjunto de parâmetros de dados, um primeiro número de camadas escondidas incluindo um primeiro número e disposição de nós escondidos, um ou mais nós de saída, e um primeiro conjunto de interconexões entre os nós. Nesse exemplo, um segundo modelo de época pode ter uma segunda topologia, incluindo um segundo número de nós de entrada associados a um segundo conjunto de parâmetros de dados, um segundo número de camadas escondidas incluindo um segundo número e disposição de nós escondidos, um ou mais nós de saída, e um segundo conjunto de interconexões entre os nós. O primeiro modelo e o segundo modelo podem ou não ter o mesmo número de nós de entrada e/ou nós de saída.
[0065] O algoritmo genético 410 pode automaticamente atribuir uma função de ativação, uma função de agregação, um desvio, pesos de conexão, etc. para cada modelo do conjunto de entrada 420 para a época inicial. Em alguns aspectos, os pesos de conexão são atribuídos aleatória ou pseudoaleatoriamente. Em algumas implantações, uma única função de ativação é usada para cada nó de um modelo específico. Por exemplo, uma função sigmoide pode ser usada como a função de ativação de cada nó do modelo específico. A função de ativação única pode ser selecionada com base nos dados de configuração. Por exemplo, os dados de configuração podem indicar que uma função de ativação tangente hiperbólica não deve ser usada ou que uma função de ativação sigmoide deve ser usada. Alternativamente, a função de ativação pode ser aleatória ou pseudoaleatoriamente selecionada a partir de um conjunto de funções de ativação permitidas, e diferentes nós de um modelo podem ter diferentes tipos de funções de ativação. Em outras implantações, a função de ativação atribuída a cada nó pode ser aleatória ou pseudoaleatoriamente selecionada (do conjunto de funções de ativação permitidas) para cada nó do modelo específico. As funções de agregação podem ser semelhantemente atribuídas aleatória ou pseudoaleatoriamente para os modelos no conjunto de entrada 420 da época inicial. Então, os modelos do conjunto de entrada 420 da época inicial podem ser diferentes topologias (que podem incluir diferentes nós de entrada que correspondem a diferentes campos de dados de entrada se o conjunto de dados incluir muitos campos de dados) e diferentes pesos de conexão. Ademais, os modelos do conjunto de entrada 420 da época inicial podem incluir nós que têm diferentes funções de ativação, funções de agregação e/ou valores/funções de desvio.
[0066] Cada modelo do conjunto de entrada 420 pode ser testado com base no conjunto de dados de entrada 402 para determinar a adequação de modelo. Por exemplo, o conjunto de dados de entrada 402 pode ser fornecido como dados de entrada para cada modelo, que processa o conjunto de dados de entrada (de acordo com a topologia de rede, pesos de conexão, função de ativação, etc., do respectivo modelo) para gerar dados de saída. Os dados de saída de cada modelo podem ser avaliados com o uso da função de adequação 440 para determinar o quão bem o modelo modelou o conjunto de dados de entrada 402 (isto é, o quão favorável cada modelo é para o agrupamento dos dados de entrada). Em alguns exemplos, a adequação de um modelo com base pelo menos em parte na confiabilidade do modelo, desempenho do modelo, complexidade (ou dispersão) do modelo, tamanho do espaço latente ou uma combinação dos mesmos.
[0067] Em alguns exemplos, o algoritmo genético 410 pode empregar a especiação. Em um aspecto específico, um ID de espécie de cada um dos modelos pode ser definido para um valor que corresponde à espécie a qual aquele modelo foi agrupado. Em seguida, uma adequação de espécie pode ser determinada para cada uma das espécies. A adequação de espécie de uma espécie pode ser uma função da adequação de um ou mais dos modelos individuais na espécie. Como um exemplo ilustrativo simples, a adequação de espécie de uma espécie pode ser a média da adequação dos modelos individuais na espécie. Como um outro exemplo, a adequação de espécie de uma espécie pode ser igual à adequação do modelo individual mais adequado ou menos adequado na espécie. Em exemplos alternativos, outras funções matemáticas podem ser usadas para determinar a adequação de espécie. O algoritmo genético 410 pode manter uma estrutura de dados que rastreia a adequação de cada espécie através de múltiplas épocas. Com base na adequação de espécie, o algoritmo genético 410 pode identificar a espécie “mais adequada”, que também pode ser referida como “espécie elite”. Diferentes números de espécie elite podem ser identificados em diferentes modalidades.
[0068] Em um aspecto específico, o algoritmo genético 410 usa a adequação de espécie para determinar se uma espécie se tornou estagnada, portanto, deve se tornar extinta. Como um exemplo não limitante ilustrativo, o critério de estagnação 450 pode indicar que uma espécie se tornou estagnada se a adequação dessa espécie permanecer dentro de uma faixa específica (por exemplo, +/- 5%) para um número específico de épocas (por exemplo, 5). Se uma espécie satisfizer um critério de estagnação, a espécie e todos os modelos subjacentes pode ser removida do algoritmo genético 410.
[0069] Os modelos mais adequados de cada “espécie elite” podem ser identificados. Os modelos mais adequados gerais também podem ser identificados. Uma “elite geral” não precisa ser um “membro de elite”, por exemplo, pode ser proveniente de uma espécie não elite. Diferentes números de “membros de elite” por espécie e “elites gerais” podem ser identificados em diferentes modalidades.
[0070] O conjunto de saída 430 da época pode ser gerado. No exemplo ilustrado, o conjunto de saída 430 inclui o mesmo número de modelos que o conjunto de entrada
420. O conjunto de saída 430 pode incluir cada um dentre os modelos de “elite geral” e cada um dentre os modelos de
“membro de elite”. A propagação dos modelos de “elite geral” e “membro de elite” para a próxima época pode preservar os “tratos genéticos” resultados e faz com que cada um de tais modelos seja atribuído com altos valores de adequação.
[0071] O resto do conjunto de saída 430 pode ser preenchido por reprodução aleatória com o uso da operação de cruzamento 460 e/ou da operação de mutação 470. Após o conjunto de saída 430 ser gerado, o conjunto de saída 430 pode ser fornecido como o conjunto de entrada 420 para a próxima época do algoritmo genético 410.
[0072] Durante uma operação de cruzamento 460, uma porção de um modelo é combinada com uma porção de um outro modelo, em que o tamanho das respectivas porções pode ou não ser igual. Quando os vetores normalizados forem usados para representar redes neurais, a operação de cruzamento pode incluir concatenação de bits/bytes/campos 0 para p de um vetor normalizado com bits/bytes/campos p+1 para q de outros vetores normalizados, em que p e q são números inteiros e p+q é igual ao tamanho dos vetores normalizados. Quando decodificado, o vetor normalizado resultante após a operação de cruzamento produz uma rede neural que difere de cada uma de suas redes neurais “parentais” em termos de topologia, função de ativação, função de agregação, valor/função de desvio, peso de enlace, ou qualquer combinação dos mesmos.
[0073] Então, a operação de cruzamento 460 pode ser um operador aleatório ou pseudoaleatório que gera um modelo do conjunto de saída 430 combinando-se aspectos de um primeiro modelo do conjunto de entrada 420 com aspectos de um ou mais outros modelos do conjunto de entrada 420. Por exemplo, a operação de cruzamento 460 pode reter uma topologia de nós escondidos de um primeiro modelo do conjunto de entrada 420, mas conecta nós de entrada de um segundo modelo do conjunto de entrada aos nós escondidos. Como um outro exemplo, a operação de cruzamento 460 pode reter a topologia do primeiro modelo do conjunto de entrada 420, mas usar uma ou mais funções de ativação do segundo modelo do conjunto de entrada 420. Em alguns aspectos, ao invés de operar em modelos do conjunto de entrada 420, a operação de cruzamento 460 pode ser realizada em um modelo (ou modelos) gerado pela mutação de um ou mais modelos do conjunto de entrada 420. Por exemplo, a operação de mutação 470 pode ser realizada em um primeiro modelo do conjunto de entrada 420 para gerar um modelo intermediário e a operação de cruzamento pode ser realizada para combinar aspectos do modelo intermediário com aspectos de um segundo modelo do conjunto de entrada 420 para gerar um modelo do conjunto de saída 430.
[0074] Durante a operação de mutação 470, uma porção de um modelo é aleatoriamente modificada. A frequência, extensão e/ou tipo de mutações pode se basear no parâmetro(s) de mutação descrito acima, que pode ser definido por usuário, aleatoriamente selecionado/ajustado, ou ajustado com base em características do conjunto de entrada 420. Quando as representações de vetor normalizado forem usadas, a operação de mutação 470 pode incluir modificar aleatoriamente o valor de um ou mais bits/bytes/porções em um vetor normalizado.
[0075] A operação de mutação 470 pode, então,
ser um operador aleatório ou pseudoaleatório que gera ou contribui para um modelo do conjunto de saída 430 mutando- se qualquer aspecto de um modelo do conjunto de entrada
420. Por exemplo, a operação de mutação 470 pode fazer com que a topologia de um modelo específico do conjunto de entrada seja modificada por adição ou omissão de um ou mais nós de entrada, por adição ou omissão de um ou mais conexões, por adição ou omissão de um ou mais nós escondidos ou uma combinação dos mesmos. Como um outro exemplo, a operação de mutação 470 pode fazer com que uma ou mais funções de ativação, funções de agregação, valores/funções de desvio, e/ou pesos de conexão sejam modificados. Em alguns aspectos, ao invés de operar em um modelo do conjunto de entrada, a operação de mutação 470 pode ser realizada em um modelo gerado pela operação de cruzamento 460. Por exemplo, a operação de cruzamento 460 pode combinar aspectos de dois modelos do conjunto de entrada 420 para gerar um modelo intermediário e a operação de mutação 470 pode ser realizada no modelo intermediário para gerar um modelo do conjunto de saída 430.
[0076] O algoritmo genético 410 podem continuar da maneira acima descrita através de múltiplas épocas até um critério de terminação especificado, como um limite de tempo, um número de épocas, ou um limite valor de adequação (por exemplo, de um modelo mais adequado geral), é satisfeito. Quando o critério de terminação for satisfeito, um modelo mais adequado geral da última época executada pode ser selecionado e emitido à medida que reflete a topologia do um ou mais modelos 124 da Figura 1. O procedimento baseado em algoritmo genético mencionado anteriormente pode ser usado para determinar a topologia de zero, uma ou mais de uma rede neural do um ou mais modelos
124.
[0077] Com referência à Figura 5, um exemplo específico de um método 500 de operação ado sistema 100 é mostrado. O método 500 inclui receber, através de um processador, um conjunto de dados de entrada, em 502. O conjunto de dados de entrada inclui uma pluralidade de recursos. Por exemplo, o processador recebe o conjunto de dados de entrada 102 da Figura 1.
[0078] O método 500 inclui determinar, através do processador, uma ou mais características do conjunto de dados de entrada, em 504. Por exemplo, o seletor de parâmetro 104 (por exemplo, o processador) determina as características 106 do conjunto de dados de entrada 102.
[0079] O método 500 inclui, com base na uma ou mais características, ajustar, através do processador, um ou mais parâmetros arquiteturais de um processo de geração de modelo automatizado, em 506. O processo de geração de modelo automatizado é configurado para gerar uma pluralidade de modelos com o uso de um processo de randomização. O um ou mais parâmetros arquiteturais pondera o processo de randomização para ajustar uma probabilidade de geração de modelos que tem recursos arquiteturais específicos. Para ilustrar, o seletor de parâmetro 104 ajusta o parâmetro arquitetural 112 para ajustar uma probabilidade da pluralidade de modelos 122 incluindo modelos que têm tipos arquiteturais que correspondem ao parâmetro arquitetural 112.
[0080] O método 500 inclui adicionalmente executar, através do processador, o processo de geração de modelo automatizado para emitir um modelo, em 508. O modelo inclui dados representativos de uma rede neural. Por exemplo, o processo de geração de modelo automatizado 120 é executado para gerar e treinar o um ou mais modelos 124.
[0081] Em uma implantação específica, os recursos arquiteturais específicos incluem um tipo de modelo inicial usado pelo processo de randomização ponderado. Por exemplo, o parâmetro arquitetural 112 pode corresponder a um tipo de modelo inicial incluído na pluralidade de modelos 122 (por exemplo, em um conjunto inicial de modelos de uma época inicial). O tipo de modelo inicial pode incluir modelos feedforward, modelos recorrentes, modelos convolucionais bidimensionais baseados em pooling, cadeias daisy de modelos convolucionais causais, outros tipos de modelos ou uma combinação dos mesmos.
[0082] Em uma implantação específica, a uma ou mais características indicam um tipo de problema associado ao conjunto de dados de entrada, um tipo de dados associado ao conjunto de dados de entrada ou uma combinação dos mesmos. Por exemplo, as características 106 podem indicar que o conjunto de dados de entrada 102 inclui dados de imagem (por exemplo, é associado a um problema de imagem) ou pode indicar que o conjunto de dados de entrada 102 é associado a um problema de classificação (por exemplo, devido ao fato de que o conjunto de dados de entrada inclui dados rotulados).
[0083] Em uma implantação específica, o um ou mais parâmetros arquiteturais incluem um parâmetro de mutação, e pelo menos um modelo da pluralidade de modelos gerados com o uso do processo de randomização ponderado é modificado com base no parâmetro de mutação. Por exemplo, a operação de mutação 470 pode ser ajustada pelo seletor de parâmetro 104 da Figura 1 com base nas características 106.
[0084] Em uma implantação específica, o método 500 inclui adicionalmente, com base na uma ou mais características, ajustar, através do processador, um ou mais hiperparâmetros de treinamento do processo de geração de modelo automatizado. O um ou mais hiperparâmetros de treinamento controla um ou mais aspectos de treinamento do modelo. Por exemplo, um hiperparâmetro de treinamento, como taxa de aprendizado, pode ser ajustado com base nas características 106, semelhante ao ajuste do parâmetro arquitetural 112.
[0085] Em uma implantação específica, o ajuste do um ou mais parâmetros arquiteturais inclui definir um primeiro parâmetro arquitetural para um primeiro valor com base na uma ou mais características e definir um segundo parâmetro arquitetural para um segundo valor com base na uma ou mais características. O primeiro parâmetro arquitetural é associado a uma probabilidade de que os modelos de uma primeira época do processo de randomização ponderado têm um primeiro tipo de modelo, e o segundo parâmetro arquitetural é associado a uma probabilidade de que os modelos da primeira época do processo de randomização ponderado têm um segundo tipo. Por exemplo, se as características 106 tiverem uma correspondência positivo para um primeiro parâmetro arquitetural e uma correspondência negativa para um segundo parâmetro arquitetural, o primeiro parâmetro arquitetural pode ser ajustado para aumentar a probabilidade de que os modelos de uma época inicial têm um primeiro tipo e o segundo parâmetro arquitetural pode ser ajustado para diminuir a probabilidade de que modos da época inicial têm um segundo tipo.
[0086] Em uma implantação específica, o ajuste do um ou mais parâmetros arquiteturais com base na uma ou mais características inclui comparar a uma ou mais características a um conjunto de regras que mapeia características de conjunto de dados para parâmetros arquiteturais. O conjunto de regras mapeia o conjunto de dados para características de gramáticas, e as gramáticas indicam parâmetros arquiteturais correspondentes. Por exemplo, o conjunto de regras 108 mapeia características de conjuntos de dados para gramáticas, como a gramática 300 da Figura 3, que indica parâmetros arquiteturais específicos. Adicionalmente, o método 500 pode incluir atualizar o conjunto de regras com base nas características do modelo. Por exemplo, o conjunto de regras 108 pode ser atualizado com base nos dados de treinamento 130 de modo que o conjunto de regras 108 leve em consideração o sucesso (ou falta dele) do um ou mais modelos 124. Em uma implantação específica, o conjunto de regras é atualizado responsivo a um escore do modelo que satisfaz um limite. Por exemplo, se os escores de adequação do um ou mais modelos 124 satisfizerem um limite, o conjunto de regras 108 é atualizado com base nos dados de treinamento 130.
[0087] Em uma implantação específica, o ajuste do um ou mais parâmetros arquiteturais com base na uma ou mais características inclui fornecer dados indicativos da uma ou mais características a uma rede neural específica configurada para identificar um ou mais parâmetros arquiteturais para o ajuste com base nos dados indicativos da uma ou mais características. Por exemplo, a rede neural específica pode incluir ou corresponder ao classificador treinado 110 da Figura 1 que é configurada para identificado parâmetro(s) arquitetural(is) com base nas características do conjunto de entradas de dados. O método 500 pode incluir adicionalmente reter a rede neural específica com base nos dados de treinamento. Os dados de treinamento indicam características do modelo. Por exemplo, dados indicativos do um ou mais modelos 124 podem ser usados como os dados de treinamento 130 para treinar adicionalmente o classificador treinado 110.
[0088] Em uma implantação específica, a execução do processo de geração de modelo automatizado inclui, com base em uma função de adequação, selecionar, através do processador, um subconjunto de modelos da pluralidade de modelos (a pluralidade de modelos com base em um algoritmo genético e que corresponde a uma primeira época do algoritmo genético), realizar, através do processador, pelo menos uma operação genética do algoritmo genético em relação a pelo menos um modelo do subconjunto para gerar um modelo treinável, enviar o modelo treinável para um treinador de otimização, e adicionar um modelo treinado recebido do treinador de otimização como uma entrada para uma segunda época do algoritmo genético que é subsequente à primeira época. Por exemplo, um subconjunto do conjunto de entrada 420 da Figura 4 pode ser selecionado para o desempenho de pelo menos uma operação genética, como a operação de cruzamento 460 ou a operação de mutação 470, e pelo menos um modelo (por exemplo, o modelo treinável 422) pode ser fornecido ao treinador de propagação reversa 480 para treinamento no modelo treinado 482. A função de adequação pode ser avaliada com base no conjunto de dados de entrada, e o treinador de otimização pode ser configurado para usar uma porção do conjunto de dados de entrada para treinar o modelo treinável.
[0089] O método 500 possibilita a geração e o treinamento de um ou mais modelos mais rápido, e o uso de menos recursos de processamento, do que outras técnicas de geração de modelo. Por exemplo, ajustando-se o um ou mais parâmetros arquiteturais para ajustar a probabilidade de que os modelos que têm determinados tipos de arquiteturas são incluídos em um conjunto de entrada de um processo de geração de modelo automatizado, o método 500 fornece modelos mais adequados do que seria, de outro modo, incluído com o uso de um processo puramente aleatório. O fornecimento de modelos mais adequados reduz o número de épocas usado para convergir no um ou mais modelos, o que aumenta a velocidade e diminui os recursos de processamento usados pelo processo de geração de modelo automatizado.
[0090] Deve-se compreender que a divisão e ordenação das etapas descritas no presente documento mostradas no fluxograma da Figura 5 é para fins ilustrativos e não deve ser considerado limitante. Em implantações alternativas, determinadas etapas podem ser combinadas e outras etapas podem ser subdivididas em múltiplas etapas. Além do mais, a ordenação de etapas pode mudar.
[0091] Em conjunto com os aspectos descritos, um método inclui receber, através de um processador, um conjunto de dados de entrada. O conjunto de dados de entrada inclui uma pluralidade de recursos. O método inclui determinar, através do processador, uma ou mais características do conjunto de dados de entrada. O método inclui, com base na uma ou mais características, ajustar, através do processador, um ou mais parâmetros arquiteturais de um processo de geração de modelo automatizado. O processo de geração de modelo automatizado é configurado para gerar uma pluralidade de modelos com o uso de um processo de randomização ponderado. O um ou mais parâmetros arquiteturais pondera o processo de randomização ponderado para ajustar uma probabilidade de geração de modelos que tem recursos arquiteturais específicos. O método inclui adicionalmente executar, através do processador, o processo de geração de modelo automatizado para emitir um modelo. O modelo inclui dados representativos de uma rede neural.
[0092] Em conjunto com os aspectos descritos, um dispositivo de computação inclui um processador e uma memória que armazena instruções executáveis através do processador para realizar operações que incluem receber um conjunto de dados de entrada. O conjunto de dados de entrada inclui uma pluralidade de recursos. As operações incluem determinar uma ou mais características do conjunto de dados de entrada. As operações incluem, com base na uma ou mais características, ajustar um ou mais parâmetros arquiteturais de um processo de geração de modelo automatizado. O processo de geração de modelo automatizado é configurado para gerar uma pluralidade de modelos com o uso de um processo de randomização ponderado. O um ou mais parâmetros arquiteturais pondera o processo de randomização ponderado para ajustar uma probabilidade de geração de modelos que tem recursos arquiteturais específicos. As operações incluem adicionalmente executar o processo de geração de modelo automatizado para emitir um modelo. O modelo inclui dados representativos de uma rede neural.
[0093] Em uma implantação específica, os recursos arquiteturais específicos incluem um tipo de modelo inicial usado pelo processo de randomização ponderado, e o tipo de modelo inicial inclui modelos feedforward, modelos recorrentes, modelos convolucionais bidimensionais baseados em pooling, cadeias daisy de modelos convolucionais ou uma combinação dos mesmos. Por exemplo, o parâmetro arquitetural 112 pode incluir um tipo de modelo inicial, e o tipo de modelo inicial pode incluir modelos feedforward, modelos recorrentes, modelos convolucionais bidimensionais baseados em pooling, cadeias daisy de modelos convolucionais ou uma combinação dos mesmos. Adicional ou alternativamente, a uma ou mais características indicam um tipo de problema associado ao conjunto de dados de entrada, um tipo de dados associado ao conjunto de dados de entrada ou uma combinação dos mesmos. Por exemplo, as características 106 podem indicar um tipo de problema associado ao conjunto de dados de entrada 102, um tipo de dados associado ao conjunto de dados de entrada 102 ou uma combinação dos mesmos.
[0094] Em conjunto com os aspectos descritos, um dispositivo de armazenamento legível por computador armazena instruções que, quando executadas, fazem com que um computador realize operações que incluem receber um conjunto de dados de entrada. O conjunto de dados de entrada inclui uma pluralidade de recursos. As operações incluem determinar uma ou mais características do conjunto de dados de entrada. As operações incluem, com base na uma ou mais características, ajustar um ou mais parâmetros arquiteturais de um processo de geração de modelo automatizado. O processo de geração de modelo automatizado é configurado para gerar uma pluralidade de modelos com o uso de um processo de randomização ponderado. O um ou mais parâmetros arquiteturais pondera o processo de randomização ponderado para ajustar uma probabilidade de geração de modelos que tem recursos arquiteturais específicos. As operações incluem adicionalmente executar o processo de geração de modelo automatizado para emitir um modelo. O modelo inclui dados representativos de uma rede neural.
[0095] Em uma implantação específica, as operações incluem adicionalmente definir um primeiro parâmetro arquitetural para um primeiro valor com base na uma ou mais características. O primeiro parâmetro arquitetural é associado a uma probabilidade de que modelos de uma primeira época do processo de randomização ponderado têm um primeiro tipo de modelo. Por exemplo, o parâmetro arquitetural 112 pode ser definido, com base nas características 106, para um valor que aumenta (ou diminui) uma probabilidade de que os modelos de uma primeira época do processo de geração de modelo automatizado 120 têm um primeiro tipo de modelo. Adicional ou alternativamente, as operações incluem adicionalmente atualizar um conjunto de regras ou um classificador treinado com base em um conjunto de dados que indica uma pluralidade de modelos previamente gerados e características de dados de entrada associados à pluralidade de modelos previamente gerados. O conjunto de regras ou o classificador treinado é usado para determinar o um ou mais parâmetros arquiteturais. Por exemplo, o conjunto de regras 108 ou o classificador treinado 110 pode ser gerado (e/ou treinado) com base nos dados que indicam uma pluralidade de modelos previamente gerados e características de dados de entrada associados à pluralidade de modelos anteriormente gerados.
[0096] Os sistemas e métodos ilustrados no presente documento podem ser descritos em termos de componentes de bloco funcional, capturas de tela, seleções opcionais e várias etapas de processamento. Deve-se observar que tais blocos funcionais podem ser realizados por qualquer número de componentes de hardware e/ou software configurados para realizar as funções especificadas. Por exemplo, o sistema pode empregar vários componentes de circuito integrado, por exemplo, elementos de memória, elementos de processamento, elementos lógicos, tabelas de pesquisa, e semelhantes, que podem realizar uma variedade de funções sob o controle de um ou mais microprocessadores ou outros dispositivos de controle. Semelhantemente, os elementos de software do sistema podem ser implantados com qualquer linguagem de programação ou script como C, C++, C#, Java, JavaScript, VBScript, Macromedia Cold Fusion, COBOL, Microsoft Active Server Pages, assembly, PERL, PHP, AWK, Python, Visual Basic, SQL Stored Procedures, PL/SQL, qualquer UNIX shell script, e linguagem de marcação extensível (XML) com os vários algoritmos que são implantados com qualquer combinação de estruturas de dados, objetivos, processos, rotinas ou outros elementos de programação. Ademais, deve-se notar que o sistema pode empregar qualquer número de técnicas para transmissão de dados, sinalização, processamento de dados, controle de rede e semelhantes.
[0097] Os sistemas e métodos da presente revelação podem ser incorporados como uma customização de um sistema existente, um produto complementar, um aparelho de processamento que executa o software atualizado, um sistema independente, um sistema distribuído, um método, um sistema de processamento de dados, um dispositivo para processamento de dados e/ou um produto de programa de computador. Consequentemente, qualquer porção do sistema ou um módulo pode assumir a forma de um aparelho de processamento que executa código, uma modalidade baseada na internet (por exemplo, computação em nuvem), uma modalidade inteiramente de hardware, ou uma modalidade que combina aspectos da internet, software e hardware. Ademais, o sistema pode assumir a forma de um produto de programa de computador em um meio de armazenamento legível por computador ou dispositivo que tem código de programa legível por computador (por exemplo, instruções) incorporadas ou armazenadas no meio ou dispositivo de armazenamento. Qualquer meio ou dispositivo de armazenamento legível por computador adequado pode ser utilizado, incluindo discos rígidos, CD-ROM, dispositivos de armazenamento óptico, dispositivos de armazenamento magnético e/ou outras mídias de armazenamento. Então,
também não mostrado na Figura 1, é o sistema 100 que pode ser implantado com o uso de um ou mais dispositivos de hardware de computador (que pode ser comunicativamente acoplado por meio de redes locais e/ou amplas) que incluem um ou mais processadores, em que o processador (ou processadores) executa instruções de software que correspondem aos vários componentes da Figura 1. Alternativamente, um ou mais dos componentes da Figura 1 podem ser implantados com o uso de um dispositivo de hardware, como um dispositivo de arranjo de porta programável em campo (FPGA), um dispositivo de circuito integrado específico a aplicação (ASIC), etc. Conforme usado no presente documento, um “meio de armazenamento legível por computador” ou “dispositivo de armazenamento legível por computador” não é um sinal.
[0098] Sistemas e métodos podem ser descritos no presente documento com referência a capturas de tela, diagramas de bloco e ilustrações de fluxograma de métodos, aparelhos (por exemplo, sistemas), e mídia de computador de acordo com vários aspectos. Será compreendido que cada bloco funcional de um diagrama de bloco e de ilustração de fluxograma, e combinações de blocos funcionais em diagramas de bloco e ilustrações de fluxograma, respectivamente, pode ser implantado por instruções de programa de computador.
[0099] As instruções de programa de computador podem ser carregadas em um computador ou outro aparelho de processamento de dados programável para produzir uma máquina, de modo que as instruções executadas no computador ou outro aparelho de processamento de dados programável criam meios para implantar as funções especificadas no bloco ou blocos de fluxograma. Essas instruções de programa de computador também podem ser armazenadas em uma memória ou dispositivo legível por computador que pode direcionar um computador ou outro aparelho de processamento de dados programável para funcionar de uma maneira específica, tal que as instruções armazenadas na memória legível por computador produzem um artigo de manufatura que inclui meios de instrução que implantam a função especificada no bloco ou blocos de fluxograma. As instruções de programa de computador também podem ser carregadas em um computador ou outro aparelho de processamento de dados programável para fazer com que uma série de etapas operacionais seja realizada no computador ou outro aparelho programável para produzir um processo implantado por computador de modo que as instruções executadas no computador ou outro aparelho programável fornecem etapas para implantar as funções especificadas no bloco ou blocos de fluxograma.
[0100] Consequentemente, os blocos funcionais dos diagramas de bloco e ilustrações de fluxograma suportam combinações de meios para realizar as funções especificadas, combinações de etapas para realizar as funções especificadas, meios de instruções de programa para realizar as funções especificadas. Será compreendido que cada bloco funcional dos diagramas de bloco e ilustrações de fluxograma, e combinações de blocos funcionais nos diagramas de bloco e ilustrações de fluxograma, pode ser implantado por sistemas de computador baseado e hardware para fins específicos que realizam as funções ou etapas especificadas, ou combinações adequadas de instruções de computador e hardware para fins específicos.
[0101] Embora a revelação possa incluir um método, contempla-se que o mesmo possa ser incorporado como instruções de programa de computador em um meio legível por computador tangível, como uma memória magnética ou óptica ou um disco magnético ou óptico. Todos os equivalentes estruturais, químicos e funcionais dos elementos das modalidades exemplificativas descritas acima que são conhecidos por aqueles de habilidade comum na técnica são expressamente incorporados no presente documento a título de referência e se destinam a serem abrangidos pelas presentes reivindicações. Além do mais, não é necessário que um dispositivo ou método trate cada e todo problema a ser solucionado pela presente revelação, para que seja abrangido pelas presentes reivindicações. Ademais, nenhum elemento, componente ou etapa de método na presente revelação se destina a ser dedicado ao público independentemente da possibilidade de o elemento, componente ou etapas de método ser explicitamente citado nas reivindicações. Conforme usado no presente documento, os termos “compreende”, “que compreende”, ou qualquer outra variação dos mesmos, são destinados a cobrir uma inclusão não exclusiva, de modo que um processo, método, artigo ou aparelho que compreende uma lista de elementos não inclui apenas aqueles elementos, mas pode incluir outros elementos não expressamente listados ou inerentes a tal processo, método, artigo ou aparelho.
[0102] Alterações e modificações podem ser feitas nas modalidades reveladas sem que se afaste do escopo da presente revelação. Essas e outras alterações ou modificações são destinadas a estarem incluídas no escopo da presente revelação, conforme expresso nas reivindicações a seguir.

Claims (20)

REIVINDICAÇÕES
1. Método de geração de rede neural, sendo que o método compreende: receber, através de um processador, um conjunto de dados de entrada, o conjunto de dados de entrada que inclui uma pluralidade de recursos; determinar, através do processador, uma ou mais características do conjunto de dados de entrada; com base na uma ou mais características, ajustar, através do processador, um ou mais parâmetros arquiteturais de um processo de geração de modelo automatizado, em que o processo de geração de modelo automatizado é configurado para gerar uma pluralidade de modelos com o uso de um processo de randomização ponderado, e em que o um ou mais parâmetros arquiteturais ponderam o processo de randomização ponderado para ajustar uma probabilidade de geração de modelos que têm recursos arquiteturais específicos; e executar, através do processador, o processo de geração de modelo automatizado para emitir um modelo, sendo que o modelo inclui dados representativos de uma rede neural.
2. Método, de acordo com a reivindicação 1, em que os recursos arquiteturais específicos compreendem um tipo de modelo inicial usado pelo processo de randomização ponderado.
3. Método, de acordo com a reivindicação 2, em que o tipo de modelo inicial compreende modelos feedforward, modelos recorrentes, modelos convolucionais bidimensionais baseados em pooling, cadeias daisy de modelos convolucionais causais ou uma combinação dos mesmos.
4. Método, de acordo com a reivindicação 1, em que o um ou mais parâmetros arquiteturais incluem um parâmetro de mutação, e em que pelo menos um modelo da pluralidade de modelos gerada com o uso do processo de randomização ponderado é modificado com base no parâmetro de mutação.
5. Método, de acordo com a reivindicação 1, que compreende adicionalmente, com base na uma ou mais características, ajustar, através do processador, um ou mais hiperparâmetros de treinamento do processo de geração de modelo automatizado, em que o um ou mais hiperparâmetros de treinamento controlam um ou mais aspectos de treinamento do modelo.
6. Método, de acordo com a reivindicação 1, em que o ajuste do um ou mais parâmetros arquiteturais inclui: definir um primeiro parâmetro arquitetural para um primeiro valor com base na uma ou mais características, o primeiro parâmetro arquitetural associado a uma probabilidade de que os modelos de uma primeira época do processo de randomização ponderado têm um primeiro tipo de modelo; e definir um segundo parâmetro arquitetural para um segundo valor com base na uma ou mais características, o segundo parâmetro arquitetural associado a uma probabilidade de que os modelos de uma segunda época do processo de randomização ponderado têm um segundo tipo de modelo.
7. Método, de acordo com a reivindicação 1, em que a uma ou mais características indicam um tipo de problema associado ao conjunto de dados de entrada, um tipo de dados associado ao conjunto de dados de entrada ou uma combinação dos mesmos.
8. Método, de acordo com a reivindicação 1, em que o ajuste do um ou mais parâmetros arquiteturais com base na uma ou mais características compreende comparar a uma ou mais características a um conjunto de regras que mapeia características de conjunto de dados para parâmetros arquiteturais, em que o conjunto de regras mapeia o conjunto de dados para características de gramáticas, e em que as gramáticas indicam parâmetros arquiteturais correspondentes.
9. Método, de acordo com a reivindicação 8, que compreende adicionalmente atualizar o conjunto de regras com base nas características do modelo.
10. Método, de acordo com a reivindicação 9, em que o conjunto de regras é atualizado responsivo a um escore do modelo que satisfaz um limite.
11. Método, de acordo com a reivindicação 1, em que o ajuste do um ou mais parâmetros arquiteturais com base na uma ou mais características compreende fornecer dados indicativos da uma ou mais características a uma rede neural específica configurada para identificar um ou mais parâmetros arquiteturais para o ajuste com base nos dados indicativos da uma ou mais características.
12. Método, de acordo com a reivindicação 11, que compreende adicionalmente treinar novamente a rede neural específica com base nos dados de treinamento, sendo que os dados de treinamento indicam características do modelo.
13. Método, de acordo com a reivindicação 1, em que a execução do processo de geração de modelo automatizado compreende: com base em uma função de adequação, selecionar, através do processador, um subconjunto de modelos da pluralidade de modelos, sendo que a pluralidade de modelos com base em um algoritmo genético e que corresponde a uma primeira época do algoritmo genético; realizar, através do processador, pelo menos uma operação genética do algoritmo genético em relação a pelo menos um modelo do subconjunto para gerar um modelo treinável; enviar o modelo treinável para um treinador de otimização; e adicionar um modelo treinado recebido do treinador de otimização como entrada em uma segunda época do algoritmo genético que é subsequente à primeira época.
14. Método, de acordo com a reivindicação 13, em que a função de adequação é avaliada com base no conjunto de dados de entrada, e em que o treinador de otimização é configurado para usar uma porção do conjunto de dados de entrada para treinar o modelo treinável.
15. Dispositivo de computação que compreende: um processador; e uma memória que armazena instruções executáveis através do processador para realizar operações que compreendem: receber um conjunto de dados de entrada, sendo que o conjunto de dados de entrada inclui uma pluralidade de recursos; determinar uma ou mais características do conjunto de dados de entrada; com base na uma ou mais características, ajustar um ou mais parâmetros arquiteturais de um processo de geração de modelo automatizado, em que o processo de geração de modelo automatizado é configurado para gerar uma pluralidade de modelos com o uso de um processo de randomização ponderado, e em que o um ou mais parâmetros arquiteturais ponderam o processo de randomização ponderado para ajustar uma probabilidade de geração de modelos que têm recursos arquiteturais específicos; e executar o processo de geração de modelo automatizado para emitir um modelo, sendo que o modelo inclui dados representativos de uma rede neural.
16. Dispositivo de computação, de acordo com a reivindicação 15, em que os recursos arquiteturais específicos compreendem um tipo de modelo inicial usado pelo processo de randomização ponderado, e em que o tipo de modelo inicial compreende modelos feedforward, modelos recorrentes, modelos convolucionais bidimensionais baseados em pooling, cadeias daisy de modelos convolucionais ou uma combinação dos mesmos.
17. Dispositivo de computação, de acordo com a reivindicação 15, em que a uma ou mais características indicam um tipo de problema associado ao conjunto de dados de entrada, um tipo de dados associado ao conjunto de dados de entrada ou uma combinação dos mesmos.
18. Dispositivo de armazenamento legível por computador que armazena instruções que, quando executadas por um processador, faz com que o processador realize operações que compreende: receber um conjunto de dados de entrada, sendo que o conjunto de dados de entrada inclui uma pluralidade de recursos; determinar uma ou mais características do conjunto de dados de entrada; com base na uma ou mais características, ajustar um ou mais parâmetros arquiteturais de um processo de geração de modelo automatizado, em que o processo de geração de modelo automatizado é configurado para gerar uma pluralidade de modelos com o uso de um processo de randomização ponderado, e em que o um ou mais parâmetros arquiteturais ponderam o processo de randomização ponderado para ajustar uma probabilidade de geração de modelos que têm recursos arquiteturais específicos; e executar o processo de geração de modelo automatizado para emitir um ou mais modelos, sendo que o um ou mais modelos inclui dados representativos de uma ou mais redes neurais.
19. Dispositivo de armazenamento legível por computador, de acordo com a reivindicação 18, em que as operações compreendem adicionalmente definir um primeiro parâmetro arquitetural para um primeiro valor com base na uma ou mais características, o primeiro parâmetro arquitetural associado a uma probabilidade de que os modelos de uma primeira época do processo de randomização ponderado têm um primeiro tipo de modelo.
20. Dispositivo de armazenamento legível por computador, de acordo com a reivindicação 18, em que as operações compreendem adicionalmente atualizar um conjunto de regras ou um classificador treinado com base em um conjunto de dados que indica uma pluralidade de modelos previamente gerados e características de dados de entrada associados à pluralidade de modelos previamente gerados, e em que o conjunto de regras ou o classificador treinado é usado para determinar o um ou mais parâmetros arquiteturais.
BR112021010410-0A 2018-11-29 2019-11-27 Método de geração de rede neural, dispositivo de computação e memória legível por computador BR112021010410B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/205,088 2018-11-29
US16/205,088 US10657447B1 (en) 2018-11-29 2018-11-29 Automated model building search space reduction
PCT/US2019/063696 WO2020113067A1 (en) 2018-11-29 2019-11-27 Automated model building search space reduction

Publications (2)

Publication Number Publication Date
BR112021010410A2 true BR112021010410A2 (pt) 2021-08-24
BR112021010410B1 BR112021010410B1 (pt) 2023-11-28

Family

ID=70736532

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021010410-0A BR112021010410B1 (pt) 2018-11-29 2019-11-27 Método de geração de rede neural, dispositivo de computação e memória legível por computador

Country Status (5)

Country Link
US (2) US10657447B1 (pt)
EP (1) EP3888015A4 (pt)
CN (1) CN111242296A (pt)
BR (1) BR112021010410B1 (pt)
WO (1) WO2020113067A1 (pt)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785886B1 (en) * 2017-04-17 2017-10-10 SparkCognition, Inc. Cooperative execution of a genetic algorithm with an efficient training algorithm for data-driven model creation
US10963790B2 (en) 2017-04-28 2021-03-30 SparkCognition, Inc. Pre-processing for data-driven model creation
WO2019110063A1 (en) * 2017-12-06 2019-06-13 Vestas Wind Systems A/S Model predictive control in local systems
US11327870B2 (en) * 2019-01-08 2022-05-10 General Electric Company System and methods for generating fault indications for an additive manufacturing process based on a probabilistic comparison of the outputs of multiple process models to measured sensor data
WO2020246631A1 (ko) * 2019-06-04 2020-12-10 엘지전자 주식회사 온도 예측 모델의 생성 장치 및 시뮬레이션 환경의 제공 방법
JP2021043791A (ja) * 2019-09-12 2021-03-18 富士通株式会社 リザーバコンピュータ、リザーバ設計方法及びリザーバ設計プログラム
US11475374B2 (en) 2019-09-14 2022-10-18 Oracle International Corporation Techniques for automated self-adjusting corporation-wide feature discovery and integration
US11562267B2 (en) 2019-09-14 2023-01-24 Oracle International Corporation Chatbot for defining a machine learning (ML) solution
US12118474B2 (en) 2019-09-14 2024-10-15 Oracle International Corporation Techniques for adaptive pipelining composition for machine learning (ML)
CN111856287B (zh) * 2020-07-17 2021-07-13 上海交通大学 基于堆叠残差因果卷积神经网络的锂电池健康状态检测方法
WO2022035948A1 (en) * 2020-08-12 2022-02-17 Cognizant Technology Solutions U.S. Corporation System and method for generating parametric activation functions
CN111984842B (zh) * 2020-08-18 2024-02-27 中国银行股份有限公司 银行客户数据处理方法及装置
US12039453B2 (en) * 2020-12-10 2024-07-16 International Business Machines Corporation Reinforcement testing of a neural network
JP7517613B2 (ja) 2020-12-23 2024-07-17 日本電気株式会社 設計空間削減装置、制御方法、及びプログラム
US11397629B1 (en) 2021-01-06 2022-07-26 Wells Fargo Bank, N.A. Automated resolution engine
CN112925926B (zh) * 2021-01-28 2022-04-22 北京达佳互联信息技术有限公司 多媒体推荐模型的训练方法、装置、服务器以及存储介质
CN113128685B (zh) * 2021-04-25 2023-04-07 湖南大学 基于神经网络的自然选择分类和群体规模变化分析系统
WO2023033199A1 (en) * 2021-08-31 2023-03-09 Stratio Methods for automatically identifying a match between a product image and a reference drawing based on artificial intelligence
CN115294967B (zh) * 2022-05-18 2024-08-20 国网浙江省电力有限公司营销服务中心 一种适用于语音分类的学习模型搜索空间全自动构建方法
CN115204901B (zh) * 2022-09-09 2022-12-06 中国人民解放军国防科技大学 基于多特征融合的信用卡欺诈检测方法、装置及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004063831A2 (en) * 2003-01-15 2004-07-29 Bracco Imaging S.P.A. System and method for optimization of a database for the training and testing of prediction algorithms
US10185803B2 (en) * 2015-06-15 2019-01-22 Deep Genomics Incorporated Systems and methods for classifying, prioritizing and interpreting genetic variants and therapies using a deep neural network
KR102492318B1 (ko) * 2015-09-18 2023-01-26 삼성전자주식회사 모델 학습 방법 및 장치, 및 데이터 인식 방법
US20170185904A1 (en) * 2015-12-29 2017-06-29 24/7 Customer, Inc. Method and apparatus for facilitating on-demand building of predictive models
US10685281B2 (en) * 2016-02-12 2020-06-16 Microsoft Technology Licensing, Llc Automated predictive modeling and framework
CA3015658A1 (en) * 2016-03-11 2017-09-14 Magic Leap, Inc. Structure learning in convolutional neural networks
WO2018058509A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Dynamic neural network surgery
US20180137424A1 (en) * 2016-11-17 2018-05-17 General Electric Company Methods and systems for identifying gaps in predictive model ontology
AU2018350891B9 (en) * 2017-10-16 2022-05-19 Illumina, Inc. Deep learning-based techniques for training deep convolutional neural networks
US11586875B2 (en) * 2017-11-22 2023-02-21 Massachusetts Institute Of Technology Systems and methods for optimization of a data model network architecture for target deployment

Also Published As

Publication number Publication date
US10657447B1 (en) 2020-05-19
WO2020113067A1 (en) 2020-06-04
US20200175378A1 (en) 2020-06-04
US20200242480A1 (en) 2020-07-30
EP3888015A1 (en) 2021-10-06
BR112021010410B1 (pt) 2023-11-28
US12051002B2 (en) 2024-07-30
CN111242296A (zh) 2020-06-05
EP3888015A4 (en) 2022-10-19

Similar Documents

Publication Publication Date Title
BR112021010410A2 (pt) Redução de espaço de busca de contrução de modelo automatizado
US10410121B2 (en) Adjusting automated neural network generation based on evaluation of candidate neural networks
US20200210847A1 (en) Ensembling of neural network models
US11106978B2 (en) Execution of a genetic algorithm with variable evolutionary weights of topological parameters for neural network generation and training
US20210342699A1 (en) Cooperative execution of a genetic algorithm with an efficient training algorithm for data-driven model creation
US11687786B2 (en) Pre-processing for data-driven model creation
US11853893B2 (en) Execution of a genetic algorithm having variable epoch size with selective execution of a training algorithm
US10373056B1 (en) Unsupervised model building for clustering and anomaly detection
Zheng et al. Fault localization analysis based on deep neural network
US20190122096A1 (en) Automated evaluation of neural networks using trained classifier
US10733512B1 (en) Cooperative use of a genetic algorithm and an optimization trainer for autoencoder generation
Yu et al. Improving ranking-oriented defect prediction using a cost-sensitive ranking SVM
CN116635866A (zh) 用于挖掘少数类数据样本以训练神经网络的方法和系统
US20200226490A1 (en) Machine learning-based infrastructure anomaly and incident detection using multi-dimensional machine metrics
KR102531645B1 (ko) 모델의 성능 테스트를 위한 컴퓨터 프로그램
US20240095535A1 (en) Executing a genetic algorithm on a low-power controller
US20220129708A1 (en) Segmenting an image using a neural network
Vescan et al. Neural network-based test case prioritization in continuous integration
CN108304854A (zh) 一种基于随机森林的异常数据处理方法
Monteiro et al. Comparison between LightGBM and other ML algorithms in PV fault classification
Tao Weight Combination Search for Confidence Calibration
Mishra et al. Deep learning based continuous integration and continuous delivery software defect prediction with effective optimization strategy
Li et al. HOBAT: Batch Verification for Homogeneous Structural Neural Networks
Neukart et al. Cortical artificial neural networks and their evolution—Consciousness-inspired data mining

Legal Events

Date Code Title Description
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: G06N 3/08 , G06N 3/04 , G06N 3/063

Ipc: G06N 3/086 (2023.01), G06N 3/082 (2023.01)

B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 27/11/2019, OBSERVADAS AS CONDICOES LEGAIS