BR112018003434B1 - Método implementado em computador e aparelho para melhorar desempenho de um modelo de aprendizagem de máquina treinado para reconhecimento de padrão ou objeto de uma imagem e memória legível por computador - Google Patents
Método implementado em computador e aparelho para melhorar desempenho de um modelo de aprendizagem de máquina treinado para reconhecimento de padrão ou objeto de uma imagem e memória legível por computador Download PDFInfo
- Publication number
- BR112018003434B1 BR112018003434B1 BR112018003434-7A BR112018003434A BR112018003434B1 BR 112018003434 B1 BR112018003434 B1 BR 112018003434B1 BR 112018003434 A BR112018003434 A BR 112018003434A BR 112018003434 B1 BR112018003434 B1 BR 112018003434B1
- Authority
- BR
- Brazil
- Prior art keywords
- classifier
- objective function
- computer
- model
- fact
- Prior art date
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000015654 memory Effects 0.000 title claims abstract description 34
- 230000006870 function Effects 0.000 claims abstract description 91
- 239000013598 vector Substances 0.000 claims description 42
- 239000000203 mixture Substances 0.000 claims description 16
- 238000012545 processing Methods 0.000 description 38
- 210000002569 neuron Anatomy 0.000 description 36
- 238000013528 artificial neural network Methods 0.000 description 30
- 238000012549 training Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 17
- 238000003860 storage Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000013473 artificial intelligence Methods 0.000 description 10
- 238000013135 deep learning Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000007477 logistic regression Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012706 support-vector machine Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 239000005022 packaging material Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005282 brightening Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 230000023886 lateral inhibition Effects 0.000 description 1
- 230000007786 learning performance Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000002087 whitening effect Effects 0.000 description 1
Abstract
MÉTODO IMPLEMENTADO EM COMPUTADOR E APARELHO PARA MELHORAR DESEMPENHO DE UM MODELO DE APRENDIZAGEM DE MÁQUINA TREINADO PARA RECONHECIMENTO DE PADRÃO OU OBJETO DE UMA IMAGEM E MEMÓRIA LEGÍVEL POR COMPUTADOR. Um método para melhorar o desempenho de um modelo de aprendizagem de máquina treinado inclui adicionar um segundo classificador com uma segunda função objetiva a um primeiro classificador com uma primeira função objetiva. Em vez de minimizar uma função de erros para o primeiro classificador, a segunda função objetiva é usada para reduzir diretamente os erros de número do primeiro classificador.
Description
[0001] O presente pedido reivindica o benefício do Pedido de Patente Provisória Americano (US) n°. 62/209.859,depositado em 25 de agosto de 2015, e intitulado "MÉTODO PARA APERFEIÇOAR O DESEMPENHO DE UM MODELO DE APRENDIZAGEM DE MÁQUINA TREINADO", cuja divulgação é expressamente incorporada por referência aqui em sua totalidade.
[0002] Certos aspectos da presente divulgação geralmente se relacionam com o aprendizado de máquina e, mais particularmente, a sistemas e métodos para melhorar o desempenho de um modelo de aprendizagem de máquina treinado.
[0003] Um modelo de aprendizagem de máquina, tal como uma rede neural artificial, que pode compreender um grupo interconectado de neurônios artificiais (por exemplo, modelos de neurônio), é um dispositivo computacional ou representa um método a ser realizado por um dispositivo computacional.
[0004] As redes neurais convolucionais são um tipo de rede neural artificial. As redes neurais convolucionais podem incluir coleções de neurônios em que cada um tem um campo receptivo e que agrupam um espaço de entrada coletivamente. As redes neurais convolucionais (CNNs) possuem inúmeras aplicações. Em particular, as CNNs foram amplamente utilizadas na área de reconhecimento e classificação de padrões.
[0005] Arquiteturas de aprendizado profundo, como redes de crenças profundas e redes convolucionais profundas, são arquiteturas de redes neurais em camadas nas quais a saída de uma primeira camada de neurônios se torna uma entrada para uma segunda camada de neurônios, a saída de uma segunda camada de neurônios torna-se e entrada para uma terceira camada de neurônios, e assim por diante. Redes neurais profundas podem ser treinadas para reconhecer uma hierarquia de recursos e, portanto, eles foram cada vez mais usados em aplicativos de reconhecimento de objetos. Como as redes neurais convolucionais, a computação nessas arquiteturas de aprendizagem profunda pode ser distribuída em uma população de nós de processamento, que pode ser configurada em uma ou mais cadeias computacionais. Essas arquiteturas de várias camadas podem ser treinadas uma camada de cada vez e podem ser ajustadas usando a propagação traseira.
[0006] Outros modelos também estão disponíveis para o reconhecimento de objetos. Por exemplo, as máquinas de vetores de suporte (SVMs) são ferramentas de aprendizado que podem ser aplicadas para classificação. As máquinas de vetor de suporte incluem um hiperplano de separação (por exemplo, limite de decisão) que classifica os dados. O hiperplano é definido pela aprendizagem supervisionada. Um hiperplano desejado aumenta a margem dos dados de treinamento. Em outras palavras, o hiperplano deve ter a maior distância mínima para os exemplos de treinamento.
[0007] Embora essas soluções obtenham excelentes resultados em vários benchmarks de classificação, sua complexidade computacional pode ser proibitivamente alta. Além disso, o treinamento dos modelos pode ser um desafio.
[0008] Em um aspecto da presente invenção, é apresentado um método para melhorar o desempenho de um modelo de aprendizagem de máquina treinado. O método compreende a adição de um segundo classificador com uma segunda função objetiva a um primeiro classificador com uma primeira função objetiva. A segunda função objetiva é usada para reduzir diretamente os erros do primeiro classificador.
[0009] Em outro aspecto, é apresentado um aparelho para melhorar o desempenho de um modelo de aprendizagem de máquina treinado. O aparelho inclui uma memória e ao menos um processador acoplado à memória. O(s) processador(es) está(ão) configurado(s) para adicionar um segundo classificador com uma segunda função objetiva para um primeiro classificador com uma primeira função objetiva. A segunda função objetiva é usada para reduzir diretamente os erros do primeiro classificador.
[0010] Ainda em outro aspecto, é apresentado um aparelho para melhorar o desempenho de um modelo de aprendizagem de máquina treinado. O aparelho inclui meios para adicionar um segundo classificador com uma segunda função objetiva a um primeiro classificador com uma primeira função objetiva. A segunda função objetiva é usada para reduzir diretamente os erros do primeiro classificador. O aparelho inclui ainda meios para emitir um vetor de características do segundo classificador com base em uma entrada recebida através do modelo de aprendizagem de máquina treinado.
[0011] Ainda em outro aspecto, é apresentado um meio não transitório legível por computador. O meio não transitório legível por computador sendo codificado sobre o código do programa para melhorar o desempenho de um modelo de máquina de aprendizado treinado. O código do programa é executado por um processador e inclui o código do programa para adicionar um segundo classificador com uma segunda função objetiva a um primeiro classificador com uma primeira função objetiva. A segunda função objetiva é usada para reduzir diretamente os erros do primeiro classificador.
[0012] Características adicionais e vantagens da divulgação serão descritos abaixo. Deve ser verificado pelos especialistas na técnica que esta descrição pode ser facilmente utilizada como base para modificar ou criar outras estruturas para a realização dos mesmos propósitos da presente divulgação. Também deve ser compreendido pelos especialistas na técnica que tais construções equivalentes não se afastam dos ensinamentos da divulgação conforme estabelecido nas reivindicações anexas. Os novos recursos, que se acredita serem característicos da divulgação, tanto em relação à sua organização quanto ao seu método de operação, juntamente com outros objetos e vantagens, serão melhor compreendidos a partir da descrição a seguir quando considerada em conexão com as figuras anexas. Contudo, deve ser expressamente entendido que cada uma das figuras é fornecida apenas para fins ilustrativos e descrição e não se destina como uma definição dos limites da presente divulgação.
[0013] As características, a natureza e as vantagens da presente divulgação tornar-se-ão mais evidentes a partir da descrição detalhada apresentada abaixo quando tomada em conjunto com os desenhos em que os caracteres de referência semelhantes se identificam de forma correspondente ao longo deste documento.
[0014] A FIGURA 1 ilustra um exemplo de implementação de concepção de uma rede neural usando um sistema em um chip (SOC), incluindo um processador de propósito geral de acordo com certos aspectos da presente divulgação.
[0015] A FIGURA 2 ilustra um exemplo de implementação de um sistema de acordo com aspectos da presente divulgação.
[0016] A FIGURA 3A é um diagrama que ilustra uma rede neural de acordo com aspectos da presente divulgação.
[0017] A FIGURA 3B é um diagrama de blocos que ilustra uma rede convolucional profunda exemplar (DCN) de acordo com aspectos da presente divulgação.
[0018] A FIGURA 4 é um diagrama de blocos que ilustra uma arquitetura de software exemplar que pode modularizar funções de inteligência artificial (IA) de acordo com aspectos da presente divulgação.
[0019] A FIGURA 5 é um diagrama de blocos que ilustra a operação em tempo de execução de uma aplicação AI em um smartphone de acordo com aspectos da presente divulgação.
[0020] As FIGURAS 6A e 6B são diagramas de blocos que ilustram variações para adicionar um segundo classificador a um primeiro classificador para melhorar o desempenho de um modelo de aprendizagem de máquina de acordo com aspectos da presente divulgação.
[0021] A FIGURA 7 é um diagrama esquemático de um classificador exemplar para melhorar o desempenho de um modelo de aprendizagem de máquina treinado de acordo com os aspectos da presente divulgação.
[0022] A FIGURA 8 ilustra um método para melhorar o desempenho de um modelo de aprendizagem de máquina treinado de acordo com os aspectos da presente divulgação.
[0023] A FIGURA 9 é um diagrama de blocos que ilustra um método para melhorar o desempenho de um modelo de aprendizagem de máquina treinado de acordo com os aspectos da presente divulgação.
[0024] A descrição detalhada apresentada abaixo, em conexão com os desenhos anexos, destina-se como uma descrição de várias configurações e não se destina a representar as únicas configurações em que os conceitos aqui descritos podem ser praticados. A descrição detalhada inclui detalhes específicos com o objetivo de fornecer uma compreensão completa dos vários conceitos. No entanto, será evidente para os especialistas na técnica que esses conceitos podem ser praticados sem esses detalhes específicos. Em alguns casos, estruturas e componentes bem conhecidos são mostrados na forma de diagrama de blocos para evitar obscurecer tais conceitos.
[0025] Com base nos ensinamentos, um especialista na técnica deve verificar que o alcance da divulgação se destina a cobrir qualquer aspecto da divulgação, seja implementado de forma independente ou combinada com qualquer outro aspecto da divulgação. Por exemplo, um aparelho pode ser implementado ou um método pode ser praticado usando qualquer número dos aspectos estabelecidos. Além disso, o alcance da divulgação destina- se a cobrir tal aparelho ou método praticado usando outra estrutura, funcionalidade ou estrutura e funcionalidade adicional ou diferente dos vários aspectos da divulgação apresentados. Deve ser entendido que qualquer aspecto da invenção divulgado pode ser incorporado por um ou mais elementos de uma reivindicação.
[0026] A palavra "exemplar" é usada aqui para significar "servir como exemplo, caso ou ilustração". Qualquer aspecto aqui descrito como "exemplar" não é necessariamente para ser interpretado como preferido ou vantajoso em relação a outros aspectos.
[0027] Embora aspectos particulares sejam aqui descritos, muitas variações e permutações desses aspectos estão dentro do escopo da divulgação. Embora sejam mencionados alguns benefícios e vantagens dos aspectos preferidos, o escopo da divulgação não se destina a ser limitado a benefícios, usos ou objetivos específicos. Em vez disso, os aspectos da divulgação destinam-se a ser amplamente aplicáveis a diferentes tecnologias, configurações de sistemas, redes e protocolos, alguns dos quais são ilustrados por meio de exemplos nas figuras e na descrição a seguir dos aspectos preferidos. A descrição detalhada e os desenhos são meramente ilustrativos da divulgação em vez de serem limitados, sendo o escopo da divulgação definido pelas reivindicações anexas e seus equivalentes.
[0028] Os aspectos da presente divulgação destinam-se a melhorar o desempenho de um modelo de aprendizagem de máquina de menor complexidade treinado. De acordo com os aspectos da presente divulgação, o desempenho do modelo pode ser melhorado adicionando um segundo classificador configurado para minimizar ou reduzir diretamente o número de erros de classificação do classificador de baixa complexidade. Ou seja, ao invés de minimizar uma função de erros como dada por uma função de custo típica (por exemplo, soma de quadrados (SSE) ou probabilidade de log negativa) usando técnicas padrão (por exemplo, descida de gradiente), uma nova função objetiva para o classificador adicionado é definido para minimizar ou reduzir diretamente o número de erros. Por exemplo, se as operações de classificação forem realizadas, sete serão classificações corretas e três classificações incorretas, a função objetiva pode ser projetada para reduzir os três erros para zero.
[0029] Além disso, de acordo com os aspectos da presente invenção, o desempenho do modelo treinado de aprendizagem de máquina de menor complexidade pode ser melhorado usando probabilidades suaves de um modelo de maior complexidade.
[0030] As probabilidades suaves são valores de probabilidade não-máxima ou valores escuros de um vetor de probabilidade. Em muitos sistemas de classificação convencionais, um vetor de probabilidade é usado para prever um rótulo de classe. Em tais sistemas convencionais, o rótulo da classe é previsto usando o valor de probabilidade máximo ou máximo no vetor de probabilidade. Os valores de probabilidade não máxima ou probabilidades leves são ignorados.
[0031] Por exemplo, considere um problema de aprendizado de máquina supervisionado de classificação, onde um modelo de aprendizagem de máquina, Mi (W), é treinado usando os dados de treinamento compostos de N amostras dos dados de entrada Xtr = [XO, XI, X2,...,XN-I] onde Xi e RD e as amostras de treinamento N correspondentes dos dados de saída marcados em C ytr =[yo, y1, y2,...,yN-1] onde yi e [0,C - 1]. Normalmente, os parâmetros À que definem a arquitetura do modelo de aprendizagem da máquina (por exemplo, rede neural) e os parâmetros do processo de aprendizagem para treinar o modelo são pré-determinados. Os dados de treinamento {Xtr , ytr} são usados para aprender os pesos W do modelo MÀ. O treinamento pode incluir a codificação dos dados marcados y = [y0, y1, y2,...,yN-1] usando a codificação de 1-K para P = [po, PI, P2,...,PN-I], de modo que Pj e Z2c, onde Pjk = 1 se yj
[0032] Dada uma entrada x, o modelo de aprendizagem da máquina MÀ produz uma estimativa para a probabilidade de saída, que pode ser expressa como:de modo a minimizar a função de entropia cruzada multi-classe dada por:
[0033] O rótulo da classe de saída é obtido como:
[0034] Como tal, apenas o índice do valor máximo do vetor 'p, referido como a probabilidade difícil, é utilizado para a inferência e os valores não máximos são ignorados.
[0035] Os aspectos da divulgação atual utilizam as probabilidades suaves para aperfeiçoar o desempenho da classificação. Em alguns aspectos, as probabilidades suaves podem ser extraídas usando dimensionamento de temperatura. Por exemplo, as probabilidades 'p geradas pelo modelo de rede neural são estimadas através da função softmax da seguinte forma:onde asaída= [asaída,0,asaída,1,...,asaída,C-1] são os valores de ativação fora do nó de saída do rede neural.
[0036] As probabilidades de saída geradas por um modelo de aprendizagem de máquina treinado (por exemplo, rede neural) podem ser dimensionadas pela temperatura T para extrair a informação escondida nas probabilidades de soft, da seguinte forma:
[0037] Um objetivo é suavizar a distribuição do vetor de probabilidade 'p gerado pelo modelo treinado. O dimensionamento através da temperatura T nivela a distribuição de probabilidades, permitindo assim que a informação nas probabilidades suaves seja explorada.
[0038] Uma vez extraídos, as probabilidades suaves podem ser usadas para melhorar o desempenho da classificação. Por exemplo, em um caso, onde Wm e bm representam o conjunto de pesos e as polarizações usadas para juntar as informações em probabilidades suaves, uma probabilidade de mistura pode ser dada por:
[0039] As probabilidades da mistura podem ser usadas para prever o rótulo da classe de saída pelo modelo de aprendizagem de máquina treinado da seguinte maneira:
[0040] Os dados de treinamento {Xtr,ytr} podem ser usados para estimar os valores dos pesos e inclinações utilizados para gerar a mistura de probabilidades suaves. O erro de treinamento fracionário gerado pelo modelo de aprendizagem de máquina treinado quando os rótulos de saída são preditos usando apenas probabilidades rígidas ed (Eq. 3) e o erro de treinamento fracionário quando os rótulos de saída são previstos usando as probabilidades de soft (e) (Eq. 7) são dados por:
[0041] Uma função de custo C pode ser usada para reduzir os erros de classificação. Ou seja, a função de custo C pode ser projetada de tal forma que o erro nos dados de treinamento ao usar os valores previstos para os rótulos de saída gerados pela mistura de probabilidades suaves é menor que o erro obtido usando as probabilidades que a função de custo assume um valor positivo não nulo. A função de custo pode ser expressa como:
[0042] Um peso melhorado ou otimizado e os vies para a mistura de probabilidades suaves podem ser obtidos solucionando o seguinte problema de otimização:
[0043] O problema de otimização da Equação 11 pode ser resolvido usando qualquer um dos processos padrão de otimização sem restrições que não usam valores de gradiente com as condições iniciais {Wm (0), bm (0)} = {1, 0}. Em alguns aspectos, técnicas de otimização também podem ser empregadas para determinar uma temperatura melhorada ou ótima para gerar as probabilidades suaves. Por exemplo, o problema de otimização da Equação 11 pode ser modificado da seguinte forma:
[0044] O uso de um processo de minimização sem restrições padrão resulta em uma solução, que é um mínimo local para C em torno da escolha inicial da temperatura. A estratégia de convergência pode ser usada para sair dos mínimos locais em torno da escolha inicial de temperatura. Por exemplo, em alguns aspectos, a estratégia pode começar com um conjunto inicial de parâmetros: {T(0),Wm(0),bm(0)} e que resolva os valores ideais para o {Wm*T(O),bm*T(0)} utilizando a Equação 11. Partindo da condição inicial T'(0), otimiza a função de custo: C = max (0, (e - e')/e), onde e é computado utilizando a equação 11 com {T'(0),Wm*T(O),bm*T(0)} e e' é calculado usando Equação 11 com {T'(0),Wm*T(O),bm*T(0)}. A sequência pode ser repetida até a convergência.
[0045] Em alguns aspectos, a média do conjunto pode ser implementada em modelos de aprendizado de máquina e/ou em múltiplas camadas de regressão logística em um único modelo de aprendizado de máquina. Em um exemplo, vários modelos de aprendizado de máquina (M > 1) são treinados usando os dados de treinamento com probabilidades de saída {po, pi • •• PM-I} geradas pelos modelos treinados por M. Para cada um desses modelos, uma mistura otimizada de probabilidades suaves pode ser gerada usando técnicas de otimização de procedimento e/ou estratégia de convergência acima. As probabilidades de mistura resultante {p0Te0, p1Te1 • •• PM-iTeM-1} podem ser utilizadas para estimar o rótulo de saída como:
[0046] Uma escolha para {wk} é wk = i/M, para k = (1, 2, • ••, M - 1). Alternativamente, a técnica de otimização e a estratégia de convergência acima ou outras técnicas similares podem ser usadas para estimar o conjunto ótimo dos pesos da mistura de probabilidade multi-modelo {wk}.
[0047] Em outro exemplo, em um único modelo de aprendizagem de máquina, porém com múltiplas camadas de saída de regressão logística, as técnicas de otimização, a estratégia de convergência e similares podem ser usadas para melhorar ou otimizar as probabilidades suaves resultantes das diferentes camadas de regressão logística do modelo.
[0048] Em alguns aspectos, as inferências podem ser melhoradas usando probabilidades leves quando o número de classes é grande (por exemplo, C »1). O número de parâmetros para gerar uma mistura ideal de dimensionamento de probabilidades suaves como C2 e pode ser um problema ao estimar a mistura de probabilidades suaves para inferência. Neste caso, um subconjunto P << C das probabilidades suaves mais altas para cada classe que se acredita conter informações úteis pode ser alavancado para melhorar o desempenho da classificação. Por sua vez, a Equação 11 pode ser resolvida para obter pesos e tendências, de modo que o número total de parâmetros a serem estimados seja P(P + 1). Em ou sobre o tempo de inferência, o índice das melhores probabilidades suaves de P pode ser rastreado e anexado através das probabilidades de mistura estimadas usando os pesos e tendências otimizadas.
[0049] A FIGURA 1 ilustra um exemplo de implementação do método acima mencionado para melhorar o desempenho de um modelo de aprendizagem de máquina treinado usando um sistema (100) em um chip (SOC), que pode incluir um processador de uso geral (CPU) ou um núcleo de núcleo múltiplo, processadores de propósito (CPUs) 102 de acordo com certos aspectos da presente divulgação. As variáveis (por exemplo, os pesos do modelo), os parâmetros do sistema associados a um dispositivo computacional (por exemplo, modelo de aprendizagem de máquina com pesos), atrasos, informações do compartimento de frequência e informações da tarefa podem ser armazenados em um bloco de memória associado a uma unidade de processamento neural (PU) 108, em um bloco de memória associado a uma CPU 102, em um bloco de memória associado a uma unidade de processamento de gráficos (GPU) 104, em um bloco de memória associado a um processador de sinal digital (DSP) 106, em um bloco de memória dedicado 118, ou podem ser distribuídos em vários blocos. As instruções executadas no processador de propósito geral 102 podem ser carregadas a partir de uma memória de programa associada à CPU 102 ou podem ser carregadas a partir de um bloco de memória dedicado 118.
[0050] O SOC 100 também pode incluir blocos de processamento adicionais adaptados a funções específicas, como uma GPU 104, um DSP 106, um bloco de conectividade 110, que pode incluir a 4a geração de conectividade de longa duração (4G LTE), conectividade Wi-Fi sem licença, USB conectividade, conectividade Bluetooth e outros, e um processador multimídia 112 que, por exemplo, pode detectar e reconhecer gestos. Em uma implementação, o PU é implementado na CPU, DSP e/ou GPU. O SOC 100 também pode incluir um processador de sensor 114, processadores de sinal de imagem (ISPs) e/ou navegação 120, que podem incluir um sistema de posicionamento global.
[0051] O SOC 100 pode ser baseado em um conjunto de instruções ARM. Em um aspecto da presente divulgação, as instruções carregadas no processador de propósito geral 102 podem compreender código para adicionar um segundo classificador com uma segunda função objetiva (por exemplo, custo) para um primeiro classificador com uma primeira função objetiva (por exemplo, custo). A segunda função objetiva é usada para reduzir diretamente os erros do primeiro classificador.
[0052] A FIGURA 2 ilustra um exemplo de implementação de um sistema 200 de acordo com certos aspectos da presente divulgação. Conforme ilustrado na FIGURA 2, o sistema 200 pode ter várias unidades de processamento locais 202 que podem executar várias operações dos métodos aqui descritos. Cada unidade de processamento local 202 pode compreender uma memória de estado local 204 e uma memória de parâmetro local 206 que pode armazenar parâmetros de uma rede neural. Além disso, a unidade de processamento local 202 pode ter uma memória de programa de modelo local (neurônio) 208 para armazenar um programa de modelo local, uma memória de programa de aprendizagem local (LLP) 210 para armazenar um programa de aprendizagem local e uma memória de conexão local 212. Além disso, conforme ilustrado na Figura 2, cada unidade de processamento local 202 pode interagir com uma unidade de processador de configuração 214 para fornecer configurações para memórias locais da unidade de processamento local, e com uma unidade de processamento de conexão de roteamento 216 que fornece roteamento entre as unidades de processamento locais 202.
[0053] As arquiteturas de aprendizagem profunda podem realizar uma tarefa de reconhecimento de objetos, aprendendo a representar entradas em níveis sucessivamente maiores de abstração em cada camada, criando assim uma representação característica útil dos dados de entrada. Desta forma, o aprendizado profundo aborda um grande estrangulamento da aprendizagem automática de máquinas. Antes do advento do aprendizado profundo, uma abordagem de aprendizado de máquina para um problema de reconhecimento de objetos pode ter dependido fortemente de recursos humanos, talvez em combinação com um classificador superficial. Um classificador superficial pode ser um classificador linear de duas classes, por exemplo, no qual uma soma ponderada dos componentes do vetor de características pode ser comparada com um limite para prever a qual classe a entrada pertence. Os recursos de engenharia humana podem ser modelos ou kernels adaptados a um domínio problemático específico por engenheiros com expertise de domínio. As arquiteturas de aprendizado profundo, ao contrário, podem aprender a representar recursos que são semelhantes ao que um engenheiro humano pode projetar, porém através do treinamento. Além disso, uma rede profunda pode aprender a representar e reconhecer novos tipos de recursos que um ser humano pode não ter considerado.
[0054] Uma arquitetura de aprendizagem profunda pode aprender uma hierarquia de recursos. Se apresentado com dados visuais, por exemplo, a primeira camada pode aprender a reconhecer recursos relativamente simples, como bordas, no fluxo de entrada. Em outro exemplo, se apresentado com dados auditivos, a primeira camada pode aprender a reconhecer o poder espectral em frequências específicas. A segunda camada, tomando a saída da primeira camada como entrada, pode aprender a reconhecer combinações de recursos, tais como formas simples para dados visuais ou combinações de sons para dados auditivos. Por exemplo, camadas mais altas podem aprender a representar formatos complexos em dados visuais ou palavras em dados auditivos. Camadas ainda mais altas podem aprender a reconhecer objetos visuais comuns ou frases faladas.
[0055] Arquiteturas de aprendizagem profunda podem ser especialmente bem executadas quando aplicadas a problemas que tenham uma estrutura hierárquica natural. Por exemplo, a classificação de veículos motorizados pode beneficiar do primeiro aprendizado para reconhecer rodas, para-brisas e outras características. Essas características podem ser combinadas em camadas mais altas de maneiras diferentes para reconhecer carros, caminhões e aviões.
[0056] Os modelos de aprendizagem de máquinas, tais como as redes neurais, podem ser projetados com uma variedade de padrões de conectividade. Em redes de alimentação sequencial, a informação é passada das camadas inferiores para as mais altas, com cada neurônio em uma determinada camada se comunicando com neurônios em camadas mais altas. Uma representação hierárquica pode ser construída em camadas sucessivas de uma rede alimentação sequencial, conforme descrito acima. As redes neurais também podem ter conexões recorrentes ou de feedback (também chamadas de cima para baixo). Em uma conexão recorrente, a saída de um neurônio em uma determinada camada pode ser comunicada a outro neurônio na mesma camada. Uma arquitetura recorrente pode ser útil para reconhecer padrões que abrangem mais de um dos pedaços de dados de entrada que são entregues à rede neural em uma sequência. Uma conexão de um neurônio em uma determinada camada para um neurônio em uma camada inferior é chamada de conexão de feedback (ou de cima para baixo). Uma rede com muitas conexões de feedback pode ser útil quando o reconhecimento de um conceito de alto nível pode ajudar a discriminar os recursos particulares de baixo nível de uma entrada.
[0057] Referindo-se à FIGURA 3A, as conexões entre as camadas de uma rede neural podem estar totalmente conectadas 302 ou conectadas localmente 304. Em uma rede totalmente conectada 302, um neurônio em uma primeira camada pode comunicar sua saída a cada neurônio em uma segunda camada, de modo que cada neurônio na segunda camada receberá a entrada de cada neurônio na primeira camada. Alternativamente, em uma rede conectada localmente 304, um neurônio em uma primeira camada pode ser conectado a um número limitado de neurônios na segunda camada. Uma rede convolucional 306 pode ser conectada localmente e é ainda configurada de modo que as forças de conexão associadas às entradas para cada neurônio na segunda camada sejam compartilhadas (por exemplo, 308). De forma mais geral, uma camada conectada localmente de uma rede pode ser configurada para que cada neurônio em uma camada tenha o mesmo padrão de conectividade ou similar, mas com forças de conexão que podem ter valores diferentes (por exemplo, 310, 312, 314 e 316). O padrão de conectividade conectado localmente pode gerar campos receptivos espacialmente distintos em uma camada mais alta, porque os neurônios de camada mais alta em uma determinada região podem receber entradas que são sintonizadas através do treinamento para as propriedades de uma porção restrita da entrada total para a rede.
[0058] As redes neurais conectadas localmente podem ser adequadas para problemas em que a localização espacial das entradas é significativa. Por exemplo, uma rede 300 projetada para reconhecer recursos visuais de uma câmera montada no carro pode desenvolver neurônios de camada alta com propriedades diferentes dependendo da sua associação com a parte inferior versus a parte superior da imagem. Os neurônios associados à parte inferior da imagem podem aprender a reconhecer marcas de pista, por exemplo, enquanto os neurônios associados à parte superior da imagem podem aprender a reconhecer semáforos, sinais de trânsito e outros.
[0059] Um DCN pode ser treinado com aprendizagem supervisionada. Durante o treinamento, um DCN pode ser apresentado com uma imagem, tal como uma imagem cortada de um sinal de limite de velocidade 326, e uma "passagem para frente" pode então ser calculada para produzir uma saída 322. A saída 322 pode ser um vetor de valores correspondentes a características como "sinal", "60" e "100". O projetista de rede pode querer que o DCN aumente uma pontuação alta para alguns dos neurônios no vetor de características de saída, por exemplo, os correspondentes a "sinal" e "60" conforme mostrado na saída 322 para uma rede 300 que foi treinada. Antes do treinamento, o resultado produzido pelo DCN provavelmente estará incorreto e, portanto, um erro pode ser calculado entre a saída real e a saída alvo. Os pesos do DCN podem então ser ajustados para que os resultados de saída do DCN estejam mais alinhados com o alvo.
[0060] Para ajustar os pesos, um algoritmo de aprendizagem pode calcular um vetor de gradiente para os pesos. O gradiente pode indicar uma quantidade que um erro aumentaria ou diminuiria se o peso fosse ajustado ligeiramente. Na camada superior, o gradiente pode corresponder diretamente ao valor de um peso que conecta um neurônio ativado na penúltima camada e um neurônio na camada de saída. Nas camadas inferiores, o gradiente pode depender do valor dos pesos e dos gradientes de erro calculado das camadas mais altas. Os pesos podem então ser ajustados de modo a reduzir o erro. Essa maneira de ajustar os pesos pode ser referida como "propagação de volta", pois envolve uma "passagem para trás" através da rede neural.
[0061] Na prática, o gradiente de erro de pesos pode ser calculado sobre um pequeno número de exemplos, de modo que o gradiente calculado se aproxime do gradiente de erro verdadeiro. Este método de aproximação pode ser referenciado como descendência de gradiente estocástica. A descida do gradiente estocástico pode ser repetida até que a taxa de erro alcançável de todo o sistema tenha parado de diminuir ou até que a taxa de erro tenha atingido um nível alvo.
[0062] Após aprender, o DCN pode ser apresentado com novas imagens 326 e uma passagem direta através da rede pode produzir uma saída 322 que pode ser considerada uma inferência ou uma previsão do DCN.
[0063] As redes de crença profunda (DBNs) são modelos probabilísticos que compreendem múltiplas camadas de nós ocultos. As DBNs podem ser usadas para extrair uma representação hierárquica dos conjuntos de dados de treinamento. Uma DBN pode ser obtida empilhando camadas de Máquinas Boltzmann de Restrição (RBMs). Uma RBM é um tipo de rede neural artificial que pode aprender uma distribuição de probabilidade em um conjunto de entradas. Como os RBMs podem aprender uma distribuição de probabilidade na ausência de informações sobre a classe a que cada entrada deve ser categorizada, os RBMs são frequentemente usados na aprendizagem sem supervisão. Usando um paradigma híbrido não supervisionado e supervisionado, os RBMs inferiores de um DBN podem ser treinados de forma não supervisionada e podem servir como extrator de recursos e o RBM superior pode ser treinado de forma supervisionada (em uma distribuição conjunta de entradas da camada anterior e classes de destino) e pode servir como um classificador.
[0064] As redes convolucionais profundas (DCNs) são redes de redes convolucionais, configuradas com camadas adicionais de agrupamento e normalização. As DCNs alcançaram o desempenho de ponta em muitas tarefas. As DCNs podem ser treinadas usando aprendizagem supervisionada em que os alvos de entrada e saída são conhecidos por muitos exemplares e são usados para modificar os pesos da rede usando métodos de gradientes descendentes.
[0065] As DCNs podem ser redes de alimentação sequencial. Além disso, conforme descrito acima, as conexões de um neurônio em uma primeira camada de uma DCN para um grupo de neurônios na próxima camada mais alta são compartilhadas entre os neurônios na primeira camada. As conexões de alimentação sequencial e compartilhamentos de DCNs podem ser exploradas para processamento rápido. A carga computacional de um DCN pode ser muito menor, por exemplo, do que a de uma rede neural de tamanho semelhante que compreende conexões recorrentes ou de feedback.
[0066] O processamento de cada camada de uma rede convolucional pode ser considerada como um modelo invariante espacialmente ou uma projeção de base. Se a entrada é primeiro decomposta em múltiplos canais, como os canais vermelho, verde e azul de uma imagem colorida, a rede convolucional treinada nessa entrada pode ser considerada tridimensional, com duas dimensões espaciais ao longo dos eixos da imagem e uma terceira dimensão capturando informações de cores. As saídas das conexões convolucionais podem ser consideradas para formar um mapa de recursos na camada subsequente 318 e 320, com cada elemento do mapa de recursos (por exemplo, 320) recebendo entrada de uma gama de neurônios na camada anterior (por exemplo, 318) e de cada um dos múltiplos canais. Os valores no mapa de recursos podem ser processados posteriormente com uma não linearidade, como uma retificação, max (0,x). Os valores dos neurônios adjacentes podem ser agregados, o que corresponde a amostragem decrescente, e pode proporcionar uma invariância local adicional e redução de dimensionalidade. A normalização, que corresponde ao clareamento, também pode ser aplicada através da inibição lateral entre neurônios no mapa de recursos.
[0067] O desempenho de arquiteturas de aprendizado profundo pode aumentar à medida que mais pontos de dados rotulados se tornam disponíveis ou conforme o poder computacional aumenta. As redes neurais modernas e profundas são rotineiramente treinadas com recursos de computação que são milhares de vezes maiores do que o que estava disponível para um pesquisador típico há apenas quinze anos. Novas arquiteturas e paradigmas de treinamento podem aumentar o desempenho da aprendizagem profunda. As unidades lineares retificadas podem reduzir um problema de treinamento conhecido como gradientes de queda. Novas técnicas de treinamento podem reduzir a sobreposição e, assim, permitir que modelos maiores obtenham uma melhor generalização. As técnicas de encapsulamento podem resumir dados em um determinado campo receptivo e aumentar ainda mais o desempenho geral.
[0068] A FIGURA 3B é um diagrama de blocos que ilustra uma rede convolucional profunda exemplar 350. A rede convolucional profunda 350 pode incluir vários tipos diferentes de camadas com base na conectividade e no compartilhamento de peso. Conforme mostrado na Figura 3B, a rede de convolução profunda exemplar 350 inclui múltiplos blocos de convolução (por exemplo, C1 e C2). Cada um dos blocos de convolução pode ser configurado com uma camada de convolução, uma camada de normalização (LNorm) e uma camada de pesquisa. As camadas de convolução podem incluir um ou mais filtros convolucionais, que podem ser aplicados aos dados de entrada para gerar um mapa de recursos. Embora apenas dois blocos de convolução sejam mostrados, a presente invenção não é limitativa e, em vez disso, qualquer número de blocos convolucionais podem ser incluídos na rede de convolução 360 profunda de acordo com a preferência de projeto. A camada de normalização pode ser usada para normalizar a saída dos filtros de convolução. Por exemplo, a camada de normalização pode fornecer clareamento ou inibição lateral. A camada de pesquisa pode fornecer uma agregação de amostragem descendente em espaço para invariância local e redução de dimensionalidade.
[0069] Os bancos de filtros paralelos, por exemplo, de uma rede convolucional profunda podem ser carregados em uma CPU 102 ou GPU 104 de um SOC 100, opcionalmente com base em um conjunto de instruções ARM, para alcançar alto desempenho e baixo consumo de energia. Em formas de realização alternativas, os bancos de filtros paralelos podem ser carregados no DSP 106 ou em um ISP 116 de um SOC 100. Além disso, o DCN pode acessar outros blocos de processamento que podem estar presentes no SOC, conforme blocos de processamento dedicados aos sensores 114 e navegação 120.
[0070] A rede de convolução profunda 350 também pode incluir uma ou mais camadas totalmente conectadas (por exemplo, FC1 e FC2). A rede convolucional profunda 350 pode ainda incluir uma camada de regressão logística (LR). Entre cada camada da rede convolucional profunda 350 existem pesos (não mostrados) que devem ser atualizados. A saída de cada camada pode servir como uma entrada de uma camada sucessiva na rede convolucional profunda 350 para aprender representações de características hierárquicas a partir de dados de entrada (por exemplo, imagens, áudio, vídeo, dados de sensores e / ou outros dados de entrada) fornecidos no primeiro bloco de convolução C1.
[0071] A FIGURA 4 é um diagrama de blocos que ilustra uma arquitetura de software exemplar 400 que pode modularizar as funções de inteligência artificial (A1). Usando a arquitetura, as aplicações 402 podem ser projetadas que podem causar vários blocos de processamento de um SOC 420 (por exemplo, uma CPU 422, uma DSP 424, uma GPU 426 e/ou uma PU 428) para executar cálculos de suporte durante o funcionamento em tempo de execução de a aplicação 402.
[0072] A aplicação AI 402 pode ser configurada para chamar funções definidas em um espaço de utilizador 404 que pode, por exemplo, providenciar a detecção e reconhecimento de uma cena indicativa da localização na qual o dispositivo atualmente opera. O aplicativo AI 402 pode, por exemplo, configurar um microfone e uma câmera de maneira diferente dependendo se a cena reconhecida é um escritório, uma sala de conferências, um restaurante ou um ambiente externo, como um lago. O aplicativo AI 402 pode fazer uma solicitação para código de programa compilado associado a uma biblioteca definida em uma interface de programação de aplicativo (API) 406 da Detecção de Cena para fornecer uma estimativa da cena atual. Esse pedido pode, em último caso, confiar na saída de uma rede neural profunda configurada para fornecer estimativas de cena com base em dados de vídeo e posicionamento, por exemplo.
[0073] Um motor de tempo de execução 408, que pode ser o código compilado de um tempo de execução de quadro de trabalho, podendo ser acessível ao aplicativo 402 da AI. O aplicativo AI 402 pode fazer com que o mecanismo de tempo de execução, por exemplo, solicite uma estimativa de cena em um determinado intervalo de tempo ou seja acionado por um evento detectado pela interface do usuário da aplicação. Quando causado a estimativa da cena, o motor de tempo de execução pode, por sua vez, enviar um sinal para um sistema operacional 410, como um Kernel 412 Linux, rodando no SOC 420. O sistema operacional 410, por sua vez, pode causar uma computação a ser executada na CPU 422, no DSP 424, na GPU 426, na NPU 428 ou em alguma combinação dos mesmos. A CPU 422 pode ser acessada diretamente pelo sistema operacional, e outros blocos de processamento podem ser acessados através de um driver, como um driver 414-418 para um DSP 424, para um GPU 426 ou para um NPU 428. No exemplo ilustrativo, a rede neural profunda pode ser configurada para ser executada em uma combinação de blocos de processamento, como uma CPU 422 e uma GPU 426, ou pode ser executada em uma NPU 428, se presente.
[0074] A FIGURA 5 é um diagrama de blocos que ilustra a operação de tempo de execução 500 de uma aplicação AI em um smartphone 502. O aplicativo de AI pode incluir um módulo de pré-processamento 504 que pode ser configurado (usando, por exemplo, a linguagem de programação JAVA) para converter o formato de uma imagem 506 e, em seguida, recortar e / ou redimensionar a imagem 508. A imagem pré-processada pode então ser comunicada a um aplicativo de classificação 510 que contém um Mecanismo de Detecção de Cena de Extremidade Final 512 que pode ser configurado (usando, por exemplo, a linguagem de programação C) para detectar e classificar cenas com base na entrada visual. O Mecanismo de Detecção de Cena de Extremidade Final 512 pode ser configurado para pré-processar 514 a imagem, escalando 516 e recortando 518. Por exemplo, a imagem pode ser dimensionada e cortada para que a imagem resultante seja 224 pixels por 224 pixels. Essas dimensões podem ser mapeadas para as dimensões de entrada de uma rede neural. A rede neural pode ser configurada por um bloco de rede neural profundo 520 para fazer com que vários blocos de processamento do SOC 100 processem ainda mais os pixels da imagem com uma rede neural profunda. Os resultados da rede neural profunda podem então ser limitados 522 e passados através de um bloco exponencial de suavização 524 na aplicação classificadora 510. Os resultados suavizados podem então causar uma alteração das configurações e/ou a exibição do smartphone 502.
[0075] Em uma configuração, um modelo de aprendizado de máquina é configurado para adicionar um segundo classificador com uma segunda função de objetivo (por exemplo, custo) para um primeiro classificador com uma primeira função de objetivo (por exemplo, custo), sendo a segunda função objetiva usada para reduzir diretamente os erros do primeiro classificador. O modelo de aprendizagem da máquina também está configurado para a saída de um vetor de recursos a partir do segundo classificador com base em uma entrada recebida através do modelo de aprendizagem de máquina treinado. O modelo de aprendizagem da máquina inclui um meio de adição e/ou meios de saída. Em um aspecto, os meios de adição e/ou os meios de saída podem ser o processador de propósito geral 102, memória de programa associada ao processador de propósito geral 102, bloco de memória 118, unidades de processamento locais 202 e/ou as unidades de processamento de conexão de roteamento 216 configuradas para executar as funções citadas. Em outra configuração, os meios acima mencionados podem ser qualquer módulo ou qualquer aparelho configurado para executar as funções citadas pelos meios acima mencionados.
[0076] De acordo com determinados aspectos da presente descrição, cada unidade de processamento local 202 pode ser configurada para determinar parâmetros da rede com base em uma ou mais características funcionais desejadas da rede e desenvolver uma ou mais características funcionais em relação às características funcionais desejadas como os parâmetros determinados não adaptados, sintonizados e atualizados.
[0077] As FIGURAS 6A e 6B são diagramas de blocos que ilustram variações para adicionar um segundo classificador a um primeiro classificador para melhorar o desempenho de um modelo de aprendizagem de máquina, como um modelo de rede neural. Com referência às FIGURAS 6A e 6B, um segundo classificador 602 pode ser adicionado a um primeiro classificador 604 de um modelo de aprendizagem de máquina treinado 606. Em alguns aspectos, o modelo de aprendizagem da máquina 606 pode compreender uma rede convolucional profunda (DCN), incluindo uma camada conectada localmente (L-C) ou outro modelo de aprendizado de máquina. O modelo de aprendizagem da máquina pode ser de baixa complexidade. Em alguns aspectos exemplares, um modelo de aprendizado de máquina que possui menos de 1 bilhão de operações de acumulação múltipla (MACs) pode ser considerado um modelo de baixa complexidade. Por outro lado, um modelo de aprendizado de máquina que tenha mais de 1 bilhão de operações de acumulação múltipla pode ser considerado um modelo de alta complexidade. Claro, outras métricas também podem ser usadas para determinar a complexidade relativa dos modelos (por exemplo, número de parâmetros, número de estágios (camadas) e/ ou tipo de estágios).
[0078] O modelo de aprendizagem de máquina treinado 606 pode ser configurado para receber uma entrada (por exemplo, uma imagem) (não mostrada). O modelo de aprendizagem da máquina 606 pode processar a imagem para extrair um conjunto de recursos da entrada. Um vetor de características correspondente à entrada pode ser fornecido ao primeiro classificador 604. O primeiro classificador 604 pode ser configurado com uma função objetiva diferenciável (por exemplo, um gradiente passível de determinação), que pode ser usado para melhorar a precisão da classificação. Por sua vez, o primeiro classificador 604 pode gerar um vetor de probabilidade Pc que pode ser usado para determinar uma etiqueta de classe de saída.
[0079] Para melhorar o desempenho e a precisão do primeiro classificador 604, o segundo classificador 602 pode ser adicionado. O segundo classificador 602 pode ser configurado com uma função objetiva não diferenciável (por exemplo, não há gradiente). A função objetiva pode ser configurada para reduzir diretamente o número de erros produzidos pelo primeiro classificador 604. Ou seja, ao invés de tentar minimizar uma função de custo ou função de erros para o primeiro classificador 604, o segundo classificador 602 reduz o número total de erros. Por exemplo, em alguns aspectos, a função objetiva para o segundo classificador 602 pode ser expressa como:
[0080] A função objetiva pode ser usada para determinar pesos e termos de polarização para o segundo classificador 602 usando técnicas de minimização sem restrições conforme descrito acima. Consequentemente, os rótulos de classe de saída do segundo classificador 602 podem incluir menos erros do que os produzidos apenas pelo segundo classificador 602.
[0081] Esta configuração pode ser particularmente benéfica porque a melhoria no desempenho da classificação pode ser alcançada sem o retreinamento do modelo de aprendizagem de máquina previamente treinado. Em vez disso, o desempenho pode ser melhorado apenas pelo retreinamento do segundo classificador 602.
[0082] Em alguns aspectos, conforme mostrado na Figura 6B, o segundo classificador 602 pode, alternativamente, ser fornecido dentro de um modelo de aprendizagem de máquina treinado 606 (por exemplo, como uma camada do modelo a partir do modelo de aprendizagem de máquina treinado). Além disso, em alguns aspectos, o desempenho do modelo de aprendizagem de máquina 606 (mostrado nas FIGURAS 6A e 6B) pode ser melhorado usando probabilidades suavizadas fornecidas através de um modelo de alta complexidade 608.
[0083] A FIGURA 7 apresenta um diagram esquemático de um classificador exemplar 700 para melhorar o desempenho de um modelo de aprendizagem de máquina treinado (por exemplo, uma rede neural) de acordo com aspectos da presente descrição. Com referência à FIGURA 7, uma função objetiva não diferenciável, O, é adicionada na saída da camada classificadora (regressão) da rede neural. A função objetiva pode ser especificada de tal forma que o valor máximo não-zero para a função objetiva para um determinado conjunto de dados de treinamento (ou teste) só ocorrerá quando o número de erros de treinamento (teste) estiver abaixo dos obtidos para a rede neural treinada original.
[0084] Dada uma entrada X e RD, um modelo de aprendizagem de máquina 702 pode ser configurado para classificar a entrada em uma das classes C. Usando um esquema de codificação, como a codificação de um local, os rótulos de classe podem ser denotados por um vetor de probabilidade, P e Z2C, de modo que, para um determinado rótulo de classe 1 < C, P = [p1,p2...,pc]T onde pj = 1 se i = l e ∑i=2Cpi = 1. Dado um modelo de aprendizagem de máquina treinado (por exemplo, rede neural) M: X e RD -> Z e RC, um vetor de probabilidade estimado P pode ser obtido de Z como: P = o(Z), onde o é a suavização máxima não linear.
[0085] Conforme discutido acima, as abordagens tradicionais usam P para prever o rótulo da classe como 1 = argmax[P]. Para um determinado conjunto de dados com amostras de treinamento de U, o erro de treinamento é então obtido como: edtr= 1/U ∑i=iUHi * i, e o erro de teste em amostras de teste V é obtido de forma semelhante como: edts= 1/V ∑i=iVHi * 1. Os valores para edtr e edts determinam a qualidade ou a precisão do modelo M. Uma métrica de qualidade ou precisão para um modelo treinado M é, edtr = 0 e edts << 1. Os aspectos da presente divulgação visam melhorar o desempenho de um modelo treinado M para o qual edtr * 0.
[0086] De acordo com aspectos da presente descrição, uma representação de característica gerada através de um modelo treinado 702 pode ser fornecida a um classificador 700. O classificador 700 recebe o vetor de característica Z, que pode ser misturado com o peso do modelo Wz para produzir um novo vetor de característica Zs = WzT Z. O vetor de recurso Zs pode então deve ser usado para estimar o vetor de probabilidade Ps = o(Zs). Um vetor de característica de probabilidade Pf = WpTPs pode então seja usado para calcular um erro de previsão estimado no conjunto de treinamento como: etr = 1/U = ∑i=iUHi * 1 onde If = argmax [Pf]. Os parâmetros, À = [Wz, Wp] são estimados pela otimização sobre a seguinte função objetiva: 0 = MAX(O,(edtr - etr)) (14)
[0087] Em alguns aspectos, um modelo de alta complexidade 704 pode fornecer um vetor de probabilidade suave PH para o modelo de aprendizagem da máquina 702. O vetor de probabilidade suave pode ser misturado com o peso do modelo Wh. Por sua vez, o vetor de característica de probabilidade Pf = WpTPs + WhTPH pode ser usado para calcular o erro de previsão estimado no conjunto de treinamento como: etr = 1/U ∑i=iUHi * i onde if= argmax[pf]. Os parâmetros, À = [Wz, Wp, T] podem ser estimados pela otimização sobre a função objetiva da Equação 14.
[0088] Dado que 0 é uma função não diferenciável, um processo de minimização sem restrições pode ser usado para resolver o À* como: À* = argmax [0]. Um valor de convergência não nulo para 0 implicaria que edtr < etr, produzindo assim um modelo resultante com melhor desempenho do que o modelo original ao custo de estimar um conjunto adicional de parâmetros.
[0089] Em alguns aspectos, alguns dos parâmetros em À (por exemplo, Wz, Wp, Wh ou T) podem ser definidos previamente. Como tal, problemas de superação devido à adição de vários dos novos parâmetros podem ser mitigados ou reduzidos.
[0090] Em alguns aspectos, podem ser utilizadas várias simplificações, melhorando o desempenho de acordo com as preferências de projeto. Por exemplo, os pesos correspondentes aos recursos produzidos pelo modelo de aprendizagem treinado podem ser definidos como um valor de identidade. Como tal, uma mistura de vetores de características gerados pelo modelo de aprendizagem de máquinas treinado não será considerada. Por outro lado, em um segundo exemplo, apenas uma mistura de vetores de características produzidos através do modelo de aprendizagem de máquinas treinado pode ser considerada.
[0091] Em um terceiro exemplo, os pesos correspondentes aos recursos produzidos pelo modelo de aprendizado treinado podem ser configurados para um valor de identidade e a informação de probabilidade suave disponível no modelo de alta complexidade 704 pode ser ignorada.
[0092] Em um quarto exemplo, as probabilidades suaves PH do modelo de alta complexidade 704 podem ser redimensionadas por um determinado valor de temperatura (por exemplo, T = α, α> 1).
[0093] A FIGURA 8 ilustra um método 800 para melhorar o desempenho de um modelo de aprendizagem de máquina treinado. No bloco 802, o processo adiciona um segundo classificador com uma segunda função objetiva (por exemplo, custo) para um primeiro classificador com uma primeira função objetiva (por exemplo, custo). A segunda função objetiva é usada para reduzir diretamente os erros do primeiro classificador.
[0094] A primeira função objetiva é diferenciável e a segunda função objetiva não é diferenciável. Em alguns aspectos, a segunda função objetiva pode ser uma função de uma diferença entre os erros do primeiro classificador e o segundo classificador. Em outros aspectos, a segunda função objetiva pode ser determinada com base em uma mistura de probabilidades de um modelo de maior complexidade.
[0095] Em alguns aspectos, o segundo classificador pode ser adicionado externamente ao primeiro classificador. Alternativamente, o segundo classificador pode ser incorporado no primeiro classificador (por exemplo, uma camada do primeiro classificador). Além disso, o segundo classificador pode ser adicionado sem retreinamento do primeiro classificador.
[0096] No bloco 804, o processo emite um vetor de recurso do segundo classificador com base em uma entrada recebida através do modelo de aprendizagem de máquina treinado.
[0097] Em alguns aspectos, o processo pode implementar várias simplificações para reduzir ou mitigar problemas de superposição. Por exemplo, o processo pode atribuir pesos aos recursos produzidos por um modelo, que é treinado pelo primeiro classificador, a um valor de identidade. O processo também pode atribuir pesos a recursos produzidos por um vetor de probabilidade de um modelo de alta complexidade para zero. O processo pode ainda atribuir pesos às características produzidas por um vetor de probabilidade do segundo classificador. O processo pode atribuir pesos a características produzidas por um vetor de probabilidade de um modelo de alta complexidade para zero. O processo pode ainda atribuir pesos às características produzidas por um vetor de probabilidade do segundo classificador. O processo também pode dimensionar vetores de probabilidade gerados por um modelo de maior complexidade por uma temperatura fixa T.
[0098] A FIGURA 9 é um diagrama de blocos que ilustra um método 900 para melhorar o desempenho de um modelo de aprendizagem de máquina treinado de acordo com os aspectos da presente invenção. No bloco 902, o processo recebe em um modelo de aprendizagem de máquina (por exemplo, classificador) um vetor de probabilidade de máquina através de um modelo de aprendizagem de máquina treinado. Os vetores de probabilidade correspondem a entradas recebidas no modelo de aprendizagem de máquina treinado. No bloco 904, os parâmetros do modelo de aprendizagem de máquina, como os pesos e as inclinações do modelo, podem ser calculados com base em uma função objetiva que reduz diretamente os erros do modelo de aprendizagem de máquina treinado. Ou seja, a função objetiva é projetada para reduzir diretamente o número de erros e não a função de erros para o modelo de aprendizagem de máquina treinado. Como tal, a função objetiva do modelo de aprendizagem da máquina não é diferenciável.
[0099] Em alguns aspectos, probabilidades suaves do modelo de aprendizagem de máquina treinado e/ou um modelo de alta complexidade podem ser usadas para calcular os parâmetros.
[0100] No bloco 906, o processo pode atualizar os parâmetros do modelo de aprendizagem da máquina. Posteriormente, o modelo de aprendizagem da máquina pode gerar rótulos de classe de saída para as entradas correspondentes aos vetores de probabilidade recebidos, no bloco 908. Como tal, os erros de classificação após a atualização podem ser inferiores aos produzidos pelo modelo de aprendizagem de máquina treinado para as mesmas entradas.Consequentemente, o desempenho do modelo de aprendizagem de máquinas treinado pode ser aperfeiçoado.
[0101] As diversas operações dos métodos descritos acima podem ser realizadas por qualquer meio adequado capaz de executar as funções correspondentes. Os meios podem incluir vários componentes e/ou módulo(s) de hardware e/ou software, incluindo, mas não limitados a, um circuito, um circuito integrado específico (ASIC) ou um processador. Geralmente, onde existem operações ilustradas nas figuras, essas operações podem ter correspondentes equivalentes de componentes de funções de meios adicionais com numeração similar.
[0102] Tal como aqui utilizado, o termo "determinação" engloba uma grande variedade de ações. Por exemplo, "determinar" pode incluir o cálculo, computação, processamento, derivação, pesquisa, pesquisa (por exemplo, pesquisa em uma tabela, banco de dados ou outra estrutura de dados), verificação e similares. Adicionalmente, a "determinação" pode incluir a recepção (por exemplo, a recepção de informação), o acesso (por exemplo, o acesso a dados em uma memória) e semelhantes. Além disso, "determinar" pode incluir a resolução, seleção, escolha, estabelecimento e outros.
[0103] Tal como aqui utilizado, uma frase referente a "pelo menos uma de" uma lista de itens refere- se a qualquer combinação desses itens, incluindo membros únicos. Por exemplo, "pelo menos um de: a, b ou c" destina- se a cobrir: a, b, c, a-b, a-c, b-c e a-b-c.
[0104] Os diversos blocos, módulos e circuitos lógicos ilustrativos descritos em conexão com a presente descrição podem ser implementados ou executados com um processador de propósito geral, um processador de sinal digital (DSP), um circuito integrado específico de aplicação (ASIC), uma matriz de portas programável de campo sinal (FPGA) ou outro dispositivo lógico programável (PLD), lógica de porta discreta ou de transistor, componentes de hardware discretos ou qualquer combinação dele projetada para executar as funções aqui descritas. Um processador de propósito geral pode ser um microprocessador, mas, alternativamente, o processador pode ser qualquer processador, controlador, microcontrolador ou máquina de estado comercialmente disponível. Um processador também pode ser implementado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP ou qualquer outra configuração desse tipo.
[0105] As etapas de um método ou algoritmo descrito em conexão com a presente descrição podem ser incorporadas diretamente em hardware, em um módulo de software executado por um processador, ou em uma combinação dos dois. Um módulo de software pode residir em qualquer forma de meio de armazenamento que seja conhecida na técnica. Alguns exemplos de mídia de armazenamento que podem ser usados incluem memória de acesso aleatório (RAM), memória somente leitura (ROM), memória flash, memória somente leitura programável apagável (EPROM), memória somente leitura programável apagável eletricamente (EEPROM), registradores, um disco rígido, um disco removível, um CD- ROM e assim por diante. Um módulo de software pode compreender uma única instrução, ou muitas instruções, e pode ser distribuído em vários segmentos de código diferentes, entre diferentes programas e em vários meios de armazenamento. Um meio de armazenamento pode ser acoplado a um processador de modo que o processador possa ler informações de e armazenar informações para o meio de armazenamento. Em alternativa, o meio de armazenamento pode ser integrado ao processador. Os métodos aqui descritos compreendem uma ou mais etapas ou ações para alcançar o método descrito.
[0106] As etapas do método e/ou ações podem ser trocadas entre si sem se afastar do escopo das reivindicações. Em outras palavras, a menos que uma ordem específica de etapas ou ações seja especificada, a ordem e/ou o uso de etapas e/ou ações específicas podem ser modificados sem se afastar do escopo das reivindicações.
[0107] As funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação delas. Se implementado em hardware, um exemplo de configuração de hardware pode incluir um sistema de processamento em um dispositivo. O sistema de processamento pode ser implementado com uma arquitetura de barramento. O barramento pode incluir qualquer número de barramentos e pontes de interconexão dependendo da aplicação específica do sistema de processamento e das restrições gerais de projeto. O barramento pode vincular vários circuitos, incluindo um processador, mídia legível por máquina e uma interface de barramento. A interface do barramento pode ser usada para conectar um adaptador de rede, entre outras coisas, ao sistema de processamento via o barramento. O adaptador de rede pode ser usado para implementar funções de processamento de sinal. Para certos aspectos, uma interface de usuário (por exemplo, teclado, display, mouse, joystick, etc.) também pode ser conectada ao barramento. O barramento também pode ligar vários outros circuitos, tais como fontes de temporização, periféricos, reguladores de tensão, circuitos de gerenciamento de energia e similares, que são bastante conhecidos na técnica e, portanto, não serão descritos em maiores detalhes.
[0108] O processador pode ser responsável pelo gerenciamento do barramento e processamento geral, incluindo a execução de software armazenado na mídia legível por máquina. O processador pode ser implementado com um ou mais processadores de uso geral e/ou de propósito específico. Os exemplos incluem microprocessadores, microcontroladores, processadores DSP e outros circuitos que podem executar o software. O software deve ser interpretado de forma geral como instruções, dados ou qualquer combinação dos mesmos, seja designado como software, firmware, middleware, microcódigo, linguagem de descrição de hardware ou de outra forma. A mídia legível por máquina pode incluir, a título de exemplo, memória de acesso aleatório (RAM), memória flash, memória somente leitura (ROM), memória somente leitura programável (PROM), memória de leitura programável apagável (EPROM), eletricamente apagável memória de leitura programável (EEPROM), registos, discos magnéticos, discos ópticos, discos rígidos ou qualquer outro meio de armazenamento adequado, ou qualquer combinação destes. A mídia legível por máquina pode ser incorporada em um produto de programa de computador. O produto do programa de computador pode incluir materiais de embalagem.
[0109] Em uma implementação de hardware, a mídia legível por máquina pode ser parte do sistema de processamento separado do processador. No entanto, como os especialistas na técnica verificarão facilmente, o meio legível pela máquina, ou qualquer parte dele, pode ser externo ao sistema de processamento. A título de exemplo, a mídia legível por máquina pode incluir uma linha de transmissão, uma onda portadora modulada por dados, e/ou um produto informático separado do dispositivo, tudo ao qual o processador pode acessar através da interface do barramento. Alternativamente, ou, além disso, a mídia legível por máquina, ou qualquer parte dela, pode ser integrada no processador, como pode ser o caso com cache e/ou arquivos de registro geral. Embora os vários componentes discutidos possam ser descritos como tendo uma localização específica, como um componente local, eles também podem ser configurados de várias maneiras, como certos componentes sendo configurados como parte de um sistema de computação distribuída.
[0110] O sistema de processamento pode ser configurado como um sistema de processamento de propósito geral com um ou mais microprocessadores, fornecendo a funcionalidade do processador e a memória externa proporcionando pelo menos uma parte da mídia legível por máquina, tudo ligado em conjunto com outros circuitos de suporte através de uma arquitetura de barramento externa. Alternativamente, o sistema de processamento pode compreender um ou mais processadores neuromórficos para implementar modelos de neurônios e modelos de sistemas neurais aqui descritos. Como outra alternativa, o sistema de processamento pode ser implementado com um circuito integrado específico de aplicação (ASIC) com o processador, a interface do barramento, a interface do usuário, circuitos de suporte e pelo menos uma parte da mídia legível por máquina integrada em um único chip, ou com uma ou mais matrizes de portas programáveis de campo (FPGAs), dispositivos lógicos programáveis (PLDs), controladores, máquinas de estado, lógica fechada, componentes de hardware discretos ou qualquer outro circuito adequado, ou qualquer combinação de circuitos que possam executar as várias funcionalidades descrito ao longo desta divulgação. Os especialistas na técnica reconhecerão a melhor forma de implementar a funcionalidade descrita para o sistema de processamento dependendo da aplicação específica e das restrições gerais de projeto impostas ao sistema geral.
[0111] A mídia legível por máquina pode incluir uma série de módulos de software. Os módulos de software incluem instruções que, quando executadas pelo processador, fazem com que o sistema de processamento execute várias funções. Os módulos de software podem incluir um módulo de transmissão e um módulo de recepção. Cada módulo de software pode residir em um único dispositivo de armazenamento ou ser distribuído em vários dispositivos de armazenamento. A título de exemplo, um módulo de software pode ser carregado na RAM a partir de um disco rígido quando ocorrer um evento desencadeante. Durante a execução do módulo de software, o processador pode carregar algumas das instruções no cache para aumentar a velocidade de acesso. Uma ou mais linhas de cache podem então ser carregadas em um arquivo de registro geral para execução pelo processador. Ao se referir à funcionalidade de um módulo de software abaixo, entenderá que essa funcionalidade é implementada pelo processador ao executar instruções desse módulo de software. Além disso, deve ser verificado que aspectos da presente divulgação resultam em melhorias no funcionamento do processador, computador, máquina ou outro sistema que implemente esses aspectos.
[0112] Caso implementado em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em um meio legível por computador. A mídia legível por computador inclui tanto mídia de armazenamento de computador quanto mídia de comunicação, incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro. Um meio de armazenamento pode ser qualquer meio disponível que possa ser acessado por um computador. A título de exemplo, e não de limitação, tais mídias legíveis por computador podem incluir memória RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético ou qualquer outro meio que possa ser usado para transportar ou armazenar o código do programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Além disso, qualquer conexão é designada como um meio legível por computador. Por exemplo, se o software for transmitido de um site, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, como infravermelho (TR), rádio e microondas, o cabo coaxial, cabo de fibra óptica, par trançado, DSL ou tecnologias sem fio, como infravermelho, rádio e microondas, estão incluídos na definição de meio. O disco e o disco, como aqui utilizados, incluem disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disco flexível e disco Blu-ray®, onde os discos geralmente reproduzem dados magneticamente, enquanto os discos reproduzem os dados opticamente com lasers. Assim, em alguns aspectos, a mídia legível por computador pode compreender meios não transitórios legíveis por computador (por exemplo, mídia tangível). Além disso, para outros aspectos, a mídia legível por computador pode compreender meios transitórios legíveis por computador (por exemplo, um sinal). As combinações dos itens acima também devem ser incluídas no escopo de mídia legível por computador.
[0113] Assim, certos aspectos podem compreender um produto de programa de computador para executar as operações aqui apresentadas. Por exemplo, um tal produto de programa de computador pode compreender um meio legível por computador com instruções armazenadas (e/ou codificadas) sobre o mesmo, sendo as instruções executáveis por um ou mais processadores para executar as operações aqui descritas. Para certos aspectos, o produto do programa de computador pode incluir material de embalagem.
[0114] Além disso, deve ser apreciado que os módulos e/ou outros meios apropriados para executar os métodos e técnicas aqui descritos podem ser baixados e/ou obtidos de outra forma por um terminal de usuário e/ou estação base, conforme aplicável. Por exemplo, um tal dispositivo pode ser acoplado a um servidor para facilitar a transferência de meios para executar os métodos aqui descritos. Alternativamente, vários métodos aqui descritos podem ser proporcionados através de meios de armazenamento (por exemplo, RAM, ROM, um meio de armazenamento físico, como um disco compacto (CD) ou disquete, etc.), de modo que um terminal de usuário e/ou estação base podem obter os vários métodos ao acoplar ou fornecer os meios de armazenamento ao dispositivo. Além disso, pode ser utilizada qualquer outra técnica adequada para proporcionar os métodos e técnicas aqui descritos para um dispositivo.
[0115] Deve ser entendido que as reivindicações não estão limitadas à configuração precisa e aos componentes ilustrados acima. Várias modificações, mudanças e variações podem ser feitas no arranjo, operação e detalhes dos métodos e aparelhos descritos acima sem se afastar do escopo das reivindicações.
Claims (14)
1. Método implementado em computador para melhorar desempenho de um modelo de aprendizagem de máquina treinado para reconhecimento de padrão ou objeto de uma imagem caracterizado pelo fato de que compreende:receber, em um segundo classificador (602) com uma segunda função objetiva, uma primeira saída de classificação de um primeiro classificador (604) com uma primeira função objetiva;adicionar o segundo classificador (602) ao primeiro classificador (604), a primeira saída de classificação gerada por extração de um conjunto de características e classificação de um objeto identificado em uma entrada recebida no primeiro classificador (604), em que a primeira função objetiva é diferente da segunda função objetiva, no qual a primeira função objetiva é diferenciável e a segunda função objetiva é não diferenciável, e a segunda função objetiva sendo utilizada para reduzir erros diretamente do primeiro classificador (604); e classificar, no segundo classificador (602), o objeto ao atribuir pesos às características geradas pela primeira saída de classificação, o segundo classificador (602) diretamente reduzindo um número de erros de classificação da primeira saída de classificação para reconhecimento de padrão ou objetos.
2. Método implementado em computador, de acordo com a reivindicação 1, caracterizado pelo fato de que a segunda função objetiva é uma função de uma diferença entre erros do primeiro classificador (604) e do segundo classificador (602).
3. Método implementado em computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente determinar a segunda função objetiva com base pelo menos em parte em uma mistura de probabilidades a partir de um modelo de maior complexidade.
4. Método implementado em computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente adicionar o segundo classificador (602) sem retreinamento do primeiro classificador (604).
5. Método implementado em computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente adicionar o segundo classificador (602) externamente ao primeiro classificador (604).
6. Método implementado em computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente atribuir pesos às características produzidas por um modelo, que é treinado pelo primeiro classificador (604), a um valor de identidade.
7. Método implementado em computador, de acordo com a reivindicação 6, caracterizado pelo fato de que compreende adicionalmente atribuir pesos às características produzidas por um vetor de probabilidade de um modelo de alta complexidade para zero.
8. Método implementado em computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente atribuir pesos a características produzidas por um vetor de probabilidade do segundo classificador (602).
9. Método implementado em computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente atribuir pesos às características produzidas por um vetor de probabilidade de um modelo de alta complexidade para zero.
10. Método implementado em computador, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende adicionalmente atribuir pesos às características produzidas por um vetor de probabilidade do segundo classificador (602).
11. Método implementado em computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente dimensionar vetores de probabilidade gerados por um modelo de maior complexidade por uma temperatura fixa T.
12. Aparelho para melhorar desempenho de um modelo de aprendizagem de máquina treinado para reconhecimento de padrão ou objeto de uma imagem caracterizado pelo fato de que compreende: uma memória; e pelo menos um processador acoplado à memória, o pelo menos um processador configurado para: receber, em um segundo classificador (602) com uma segunda função objetiva, uma primeira saída de classificação de um primeiro classificador (604) com uma primeira função objetiva; adicionar o segundo classificador (602) ao primeiro classificador (604), a primeira saída de classificação gerada por extração de um conjunto de características e classificação de um objeto identificado em uma entrada recebida no primeiro classificador (604), em que a primeira função objetiva é diferente da segunda função objetiva, no qual a primeira função objetiva é diferenciável e a segunda função objetiva é não diferenciável, e a segunda função objetiva sendo utilizada para reduzir erros diretamente do primeiro classificador (604); e classificar, no segundo classificador (602), o objeto ao atribuir pesos às características geradas pela primeira saída de classificação, o segundo classificador (602) diretamente reduzindo um número de erros de classificação da primeira saída de classificação para reconhecimento de padrão ou objetos.
13. Aparelho, de acordo com a reivindicação 12, caracterizado pelo fato de que compreende um dentre: i) a segunda função objetiva é uma função de uma diferença entre os erros do primeiro classificador (604) e do segundo classificador (602); ii) o pelo menos um processador é configurado adicionalmente para determinar a segunda função objetiva com base pelo menos em parte em uma mistura de probabilidades de um modelo de maior complexidade; iii) o pelo menos um processador é configurado adicionalmente para adicionar o segundo classificador (602) sem retreinamento do primeiro classificador (604); iv) o pelo menos um processador é configurado adicionalmente para adicionar o segundo classificador (602) externamente ao primeiro classificador (604); v) o pelo menos um processador é configurado adicionalmente para atribuir pesos às características produzidas por um modelo, o qual é treinado pelo primeiro classificador (604), em um valor de identidade; vi) o pelo menos um processador é configurado adicionalmente para atribuir pesos às características produzidas por um vetor de probabilidade do segundo classificador (602); vii) o pelo menos um processador é configurado adicionalmente para atribuir pesos a características produzidas por um vetor de probabilidade de um modelo de alta complexidade para zero; viii) no qual pelo menos um processador é configurado adicionalmente para dimensionar vetores de probabilidade gerados por um modelo de maior complexidade por uma temperatura fixa T.
14. Memória legível por computador caracterizada pelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executáveis por um computador para realizar as etapas de método conforme definido em qualquer uma das reivindicações 1 a 11.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562209859P | 2015-08-25 | 2015-08-25 | |
US62/209,859 | 2015-08-25 | ||
US14/863,410 US10332028B2 (en) | 2015-08-25 | 2015-09-23 | Method for improving performance of a trained machine learning model |
US14/863,410 | 2015-09-23 | ||
PCT/US2016/046576 WO2017034820A1 (en) | 2015-08-25 | 2016-08-11 | Method for improving performance of a trained machine learning model |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112018003434A2 BR112018003434A2 (pt) | 2018-09-25 |
BR112018003434B1 true BR112018003434B1 (pt) | 2024-04-16 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027899B (zh) | 用于提高经训练的机器学习模型的性能的方法 | |
KR102595399B1 (ko) | 미지의 클래스들의 검출 및 미지의 클래스들에 대한 분류기들의 초기화 | |
US10878320B2 (en) | Transfer learning in neural networks | |
CN107209873B (zh) | 用于深度卷积网络的超参数选择 | |
KR102570706B1 (ko) | 분류를 위한 강제된 희소성 | |
US11334789B2 (en) | Feature selection for retraining classifiers | |
JP6859332B2 (ja) | 選択的バックプロパゲーション | |
BR112017023028B1 (pt) | Especificidade de filtro como critério de treinamento para redes neurais | |
US10902312B2 (en) | Tracking axes during model conversion | |
BR112018003434B1 (pt) | Método implementado em computador e aparelho para melhorar desempenho de um modelo de aprendizagem de máquina treinado para reconhecimento de padrão ou objeto de uma imagem e memória legível por computador | |
BR112018004219B1 (pt) | Esparsidade forçada para classficação | |
BR112018002248B1 (pt) | Detecção de classes desconhecidas e inicialização de classificadores para classes desconhecidas | |
WO2023146868A1 (en) | Causal representation learning for instantaneous temporal effects | |
CN117441170A (zh) | 高效神经因果发现 | |
BR112018000502B1 (pt) | Prioris baseadas em contexto para detecção de objeto em imagens |