Explicação detalhada do princípio do algoritmo de classificação de redes neurais

Índice

Explicação detalhada do princípio do algoritmo de classificação de redes neurais

Fluxo de trabalho da rede neural

algoritmo de retropropagação

1) O princípio da retropropagação

2) Exemplo de aplicação

Resumir


Propagação direta

(forward-propagation): Refere-se à ordem da rede neural ao longo da camada de entrada para a camada de saída e calcula e armazena sequencialmente as variáveis ​​intermediárias do modelo.

retropropagação

(Retropropagação): Ao longo da ordem da camada de saída para a camada de entrada, de acordo com a regra da cadeia, calcule e armazene sequencialmente o gradiente das variáveis ​​intermediárias e parâmetros da função objetivo relacionados a cada camada da rede neural . Backpropagation é um método para calcular gradientes de parâmetros de rede neural

Explicação detalhada do princípio do algoritmo de classificação de redes neurais

Antes que o algoritmo de rede neural se tornasse popular, o algoritmo mais preocupado no campo do aprendizado de máquina era o " Algoritmo de máquina de vetores de suporte (algoritmo SVM)". Agora que a rede neural está em ascensão, você pode estar curioso. Da mesma forma, por que empilhar tantas camadas de rede neural? Assim como o modelo perceptron de camada única não pode resolver o problema XOR, mas pode ser resolvido adicionando uma camada oculta? Quem no final dotou a rede neural com um poder mágico tão maravilhoso.

De um modo geral, quanto mais camadas da rede neural, mais forte a capacidade de aprendizado do modelo de rede e melhor ele pode se ajustar à distribuição de dados complexos. Mas este é apenas um estado ideal, porque à medida que a rede se aprofunda, outros problemas também surgirão, como a dificuldade de cálculo também aumentará e o modelo será mais difícil de entender. Portanto, escolher o número apropriado de camadas de rede para resolver cenários adequados é um ponto difícil em algoritmos de redes neurais.

Fluxo de trabalho da rede neural

Vamos usar um exemplo simples para entender como funciona uma rede neural:
 

Fluxo de trabalho da rede neural


Figura 1: Modelo de rede neural artificial


Conforme mostrado na Figura 1, A, B, C e D são quatro pessoas cegas que desejam jogar o jogo "Blind Man Touching the Elephant". No conjunto de dados existem os seguintes quatro animais: elefante, javali, rinoceronte, alce. Entre as quatro pessoas, A, B e C são responsáveis ​​por tocar nos animais (isto é, características dos animais), e D é responsável por resumir e analisar as informações enviadas a ele por A, B e C. Ao mesmo tempo, alguém dirá a D em que animal eles tocaram nesta rodada. Além disso, estipula-se que somente quando A, B e C tocarem nas três características a seguir, eles se reportarão a D:

Recurso 1: Como um pilar (perna) 
Recurso 2: Como um leque de taboa (orelha) 
Recurso 3: Como um chicote (cauda)

Observe que o jogo é jogado em condições ideais, sem considerar outros fatores externos. Em seguida, siga o processo de aprendizado supervisionado, primeiro treine e depois preveja. O processo de tocar animais é, na verdade, o processo de obtenção das características das partes de animais. Como são 4 animais, ele precisa ser pesquisado 4 vezes aqui. A seguir estão as informações resumidas por D após a conclusão das quatro rodadas, como segue:

A primeira vez, um elefante: 
A: como um pilar (perna) 
B: como um leque (orelha) 
C: como um chicote (cauda) 
A segunda vez, um javali: 
B: como um leque 
C: como um chicote 
O terceira vez, rinoceronte: 
A: Como um fã de taboa 
C: Como um chicote 
Na quarta vez, alce: 
C: Como um chicote

Através da análise das informações resumidas acima, D acredita que o que C relata é o menos valioso (ou seja, o peso é pequeno), pois seja um elefante ou não, o que ele relata é o mesmo. D acredita que, comparativamente, os relatórios de A e B são mais valiosos (peso pesado), mas haverá erros em seus respectivos relatórios. Após pesquisa sobre D, descobriu-se que, desde que as informações de A e B sejam agregadas, quando as duas pessoas tocam o [pilar e leque de taboa] ao mesmo tempo, o animal tocado é um elefante, de modo que até os cegos pode tocar o elefante através da solidariedade.

Para o exemplo acima, A/B/C/D na verdade constitui um modelo de rede neural simples, eles equivalem a quatro neurônios, e A/B/C é responsável por "tocar", ou seja, voltar para diferentes dimensões. os dados de entrada constituem a camada de entrada da rede neural. Quando os três obtiverem os dados, eles dirão a D e, por meio da análise resumida de D, darão o resultado final da previsão, ou seja, julgarão se é um elefante ou não, o que equivale à camada de saída do neural rede. As redes neurais podem agregar informações dispersas para extrair as informações mais valiosas e confiáveis . Se você escolher apenas um nó independente na rede, é uma generalização parcial.Por exemplo, C pensa que todos aqueles com caudas como chicotes são elefantes, o que obviamente não é razoável. A rede neural distingue a importância de diferentes informações atribuindo diferentes valores de peso às

informações de entrada . No processo de treinamento do modelo, ajustando o peso correspondente da função linear, aumentando o peso de entrada de informações valiosas e reduzindo o peso de entrada de outras informações de valor, essa é a ideia central de [ajustar o peso], por meio do O método acima pode melhorar a precisão da previsão do modelo de rede.

Quanto maior o número de nós de neurônios e o número de camadas, mais forte será a capacidade expressiva da rede neural ou mais forte será a capacidade de ajustar os dados. É por isso que o algoritmo da rede neural é adequado para processar imagens em comparação com outros algoritmos de aprendizado de máquina . A causa raiz de tarefas complexas, como reconhecimento, reconhecimento de fala, etc.

algoritmo de retropropagação

Existem dois componentes importantes no modelo de rede neural, a saber: a função de ativação e o algoritmo BP de retropropagação.

Sabemos que a rede neural artificial é composta por nós de neurônios, e o papel desses nós é receber e transmitir informações. Como neurônios no cérebro, eles recebem estímulos externos e transmitem sinais excitatórios.

Em um modelo de rede neural artificial, partindo da camada de entrada, passando para a camada de saída e finalmente retornando o resultado, esse método de propagação de sinal é chamado de "propagação direta" (ou operação direta, propagação direta). No modelo de rede neural, se a entrada for passada camada por camada até que a camada de saída produza uma saída, a propagação direta termina.

A retropropagação é semelhante à propagação direta, mas como a direção da propagação é oposta, ela é chamada de algoritmo de retropropagação (referido como algoritmo BP) Este algoritmo apareceu pela primeira vez na década de 1960, mas não atraiu atenção até 1986. Depois de redescrever por Hinton et al., entrou novamente no campo de visão do público. Este algoritmo resolve com sucesso o problema de cálculo de [parâmetro de peso] de uma rede neural de poucas camadas.
 

Operação direta e retropropagação


Figura 2: Diagrama esquemático da operação direta e retropropagação

1) O princípio da retropropagação

O algoritmo de retropropagação (BP) é um algoritmo de aprendizado supervisionado , ou seja, aprende por meio de dados de treinamento rotulados e é um dos métodos comuns para treinar modelos de redes neurais artificiais. Simplificando, o algoritmo BP é aprender com os erros até que o erro seja minimizado, melhorando assim a confiabilidade do modelo.

O processo de aprendizagem do algoritmo BP consiste em duas partes: processo de propagação para frente e processo de propagação para trás .

No processo de propagação direta, as informações de entrada passam pela camada oculta através da camada de entrada, processadas camada por camada e transmitidas para a camada de saída. Se houver um erro entre o valor de saída e o valor marcado,

Em seguida, o erro é propagado da camada de saída para a camada de entrada através da camada oculta (ou seja, retropropagação) e, nesse processo, o algoritmo de gradiente descendente é usado para otimizar os parâmetros de peso dos neurônios. , o treinamento do modelo de rede O fim, ou seja, o fim da retropropagação.

O fluxograma é o seguinte:
 

algoritmo de retropropagação


Figura 3: treinamento do modelo de rede neural


Resuma o processo acima: a camada de entrada aceita um dado de entrada x e inicializa um parâmetro de peso ω ao mesmo tempo. Após o cálculo pela camada oculta, a camada de saída gera o resultado e a operação de encaminhamento é concluída. Depois disso, compare o resultado da camada de saída com o valor marcado para obter o valor do desvio e propague o valor do desvio da camada de saída para a camada de entrada (estágio de retropropagação). Nesta etapa, o algoritmo de descida do gradiente é usado para otimizar repetidamente os parâmetros de peso Quando o valor do desvio é o menor, um conjunto de parâmetros de peso ideais (ω) é obtido.

2) Exemplo de aplicação

O modelo de rede neural existente é o seguinte, que consiste em três camadas, a saber, a camada de entrada, a camada oculta e a camada de saída, e usa a função Sigmóide como a função de ativação da rede neural. Vamos dar uma olhada em como o algoritmo de retropropagação funciona e como obter o ajuste de parâmetros.
 

caso de retropropagação


Figura 4: Modelo de rede neural


Primeiramente, faça uma breve descrição dos dados do modelo de rede:

Camada de entrada: i1=0,05, i2 = 0,1 

Parâmetros de peso de inicialização: w1=0,15, w2=0,2, w3=0,25, w4=0,3, w5=0,4, w6=0,45, w7=0,5, w8=0,55 valor da marca da camada de saída 

( ou seja, valor esperado): o1=0,01, o2=0,99 

Valor do peso do item de tendência: b1=0,35, b2=0,6

Em seguida, o algoritmo de retropropagação é utilizado para tornar a saída real e o valor marcado o mais próximo possível, ou seja, o desvio entre o valor real e o valor marcado seja o menor. Calculamos passo a passo de acordo com o processo acima.

Estágio de operação direta : camada de entrada --> camada oculta --> camada de saída, calcule a soma dos pesos do neurônio H1:
 

soma dos pesos


Colocando os dados de inicialização na fórmula acima, os seguintes resultados podem ser obtidos:
 


O resultado de saída de H1 do neurônio da camada oculta, observe que esse resultado precisa ser mapeado pela função de ativação:
 

Resultados do mapeamento da função de ativação


Da mesma forma, a saída do neurônio H2 pode ser calculada de acordo com o método acima e os resultados são os seguintes:
 


O resultado de saída real da camada de saída O1 é calculado da seguinte forma:
 


Traga os dados para a fórmula acima e, por meio do mapeamento da função de ativação, obtém-se o resultado da camada de saída O1:
 


Da mesma forma, a saída real de O2 pode ser calculada de acordo com o método acima:
 

Resultado da saída da camada de saída


Através do cálculo acima, pode-se concluir que o resultado real da saída está longe do valor marcado, o resultado do cálculo é [0,75136507,0,772928465], mas o valor real marcado é [0,01,0,99]. Em seguida, use o algoritmo de retropropagação para atualizar iterativamente os pesos e recalcular a saída.


No estágio de retropropagação , camada de saída --> camada oculta --> camada de entrada, primeiro use a fórmula de erro quadrático médio MSE para calcular o erro total:
 

Observação: o MSE é um método mais conveniente para medir o "erro médio". O MSE pode avaliar o grau de alteração dos dados. Quanto menor o valor do MSE, melhor a capacidade de generalização do modelo de previsão.

O erro total (Etotal) é obtido através do cálculo acima, e este valor é “comumente” composto por todos os nós da rede neural. Portanto, é necessário calcular quanto valor de desvio cada nó de neurônio "contribui". Este é o problema central a ser resolvido pelo algoritmo de retropropagação. Claro, a solução também é muito simples, ou seja, encontrar a derivada parcial, como quanta perda o nó A contribui com o valor, apenas calculamos a derivada parcial desse nó.

Tomamos w5 como exemplo para ajustá-lo. Para saber quanta influência w5 tem no erro geral, usamos aqui a regra da cadeia para encontrar a derivada parcial, conforme mostrado abaixo:
 

regra da cadeia


Para obter a derivada parcial de w5, é necessário obter as derivadas parciais das outras três partes, como segue:
 

encontrar derivadas parciais


A derivada parcial de w5 pode ser obtida multiplicando os resultados das três partes acima, e o valor resultante é 0,082167041. Finalmente, o valor do parâmetro w5 é atualizado usando o algoritmo de descida de gradiente da seguinte forma:
 

Atualizar pesos

Observação: η é a taxa de aprendizado no algoritmo de descida de gradiente, e o valor aqui é 0,5. Ele foi introduzido na explicação anterior do algoritmo de descida de gradiente. Consulte " Descida de gradiente para extremos ".

Desta forma, a atualização do peso w5 é concluída. Da mesma forma, as atualizações w6, w7 e w8 podem ser concluídas de acordo com o método acima.

O processo acima se propaga apenas da camada de saída para a camada oculta. Quando o peso atualizado é calculado, ele começa a se propagar da camada oculta para a camada de entrada e atualiza w1, w2, w3 e w4 em sequência, completando assim o primeira rodada de atualização de peso. Pode-se ver que após a primeira rodada de atualização de peso, o erro total diminuiu de 0,298371109 para 0,291027924. Após 10.000 iterações, o erro total é 0,000035085 e o valor de saída é [0,015912196, 0,984065734], que é muito próximo do esperado valor [0,01, 0,99].

Resumir

O algoritmo de classificação de rede neural é um algoritmo de aprendizado supervisionado. O uso do algoritmo de classificação de rede neural geralmente requer as cinco etapas a seguir:

  • Inicialize os pesos de todos os nós de neurônios na rede neural;
  • A camada de entrada recebe a entrada e gera a saída por meio da propagação direta ;
  • De acordo com o valor previsto da saída, o desvio é calculado em combinação com o valor real;
  • A camada de saída recebe o desvio, e permite que todos os neurônios atualizem os pesos através do mecanismo de retropropagação (inversão reversa);
  • Do passo 2 ao passo 4 é um processo completo de treinamento do modelo, e esse processo é repetido até que o valor do desvio seja minimizado.


O algoritmo da rede neural permite que todos os neurônios realizem a atualização do peso por meio do mecanismo de retropropagação. Quando iteramos o processo de treinamento acima até que o valor do desvio seja o menor, finalmente obteremos um modelo de rede ideal, que realiza a melhor simulação dos dados .

Acho que você gosta

Origin blog.csdn.net/qq_38998213/article/details/132297022
Recomendado
Clasificación