Visão geral das redes neurais convolucionais

Eu sou novato, você pode apontar algum problema no estudo

O que é uma rede neural convolucional?

Redes Neurais Convolucionais (CNN) são um tipo de rede neural feedforward que contém cálculos convolucionais e tem uma estrutura profunda. É uma variante do perceptron multicamadas (MLP). É essencialmente um perceptron multicamadas, mas devido ao seu É adotado o método de conexão local e compartilhamento de peso, por um lado, reduz o número de pesos e facilita a otimização da rede, por outro, reduz a complexidade do modelo e diminui o risco de overfitting. As redes neurais convolucionais têm vantagens mais óbvias na entrada de imagens. Elas podem usar imagens diretamente como entrada da rede, evitando os processos complexos de extração de recursos e reconstrução de dados em algoritmos de reconhecimento tradicionais. Durante o processamento de imagens bidimensionais Tem grandes vantagens. Por exemplo, a rede pode extrair características da imagem, incluindo cor, textura, forma e estrutura topológica da imagem por si mesma. É usada para lidar com imagens bidimensionais, especialmente o reconhecimento de deslocamento, dimensionamento e outras formas de aplicações de invariância de distorção Possui boa robustez e eficiência computacional.

A estrutura da rede neural convolucional:

A rede neural convolucional é geralmente composta por uma camada de entrada, uma camada oculta e uma camada de saída. A camada oculta é composta principalmente por uma camada convolucional, uma camada de pooling, uma camada totalmente conectada, etc. A composição geral é como mostrado na figura acima.

Camada convolucional:

Através da operação de convolução, podemos extrair as características da imagem.Através da operação de convolução, algumas características do sinal original podem ser aprimoradas e o ruído reduzido.A operação de convolução é aproximadamente como mostrado na figura abaixo.

O lado esquerdo da figura é a imagem de entrada (5 × 5), o meio é o kernel da convolução (3 × 3) e o direito é o resultado da convolução (3 × 3). Durante a operação, o kernel de convolução começa no canto superior esquerdo da imagem, da esquerda para a direita de cima para baixo, e executa sequencialmente a convolução com um comprimento de passo de 1. A operação de convolução específica é multiplicar os coeficientes no kernel de convolução pela posição correspondente da imagem Valor e, a seguir, acumule todos os valores para obter o valor de um determinado pixel do mapa de feições. Por exemplo, 155 = (- 1) × 0 + (- 2) × 0 + (- 1) × 75 + 0 × 0 + 0 × 75 + 0 × 80 + 1 × 0 + 2 × 75 + 1 × 80 . Como podemos ver na figura, a convolução simples irá diminuir o tamanho da imagem, portanto, para reduzir a perda de recursos da imagem, normalmente preenchemos a imagem de entrada com o valor de preenchimento geralmente 0 ou preenchimento de limite repetido. Suponha que o tamanho da imagem de entrada seja l, o número de camadas de preenchimento para um determinado lado é p, o tamanho do kernel de convolução é f, o tamanho do passo é w e o tamanho da imagem de saída é L, então:

        L = (l + 2 × pf) ÷ w + 1

De modo geral, para garantir o efeito da extração de feições, não alteraremos o tamanho do mapa de feições durante a convolução e a largura e a altura permanecerão inalteradas.

Camada de pooling:

A camada de pooling é geralmente uma operação para reduzir o tamanho do mapa de recursos, garantindo que os recursos não sejam perdidos tanto quanto possível. O pooling usual é dividido em pooling máximo e pooling médio. De modo geral, a energia média de pooling Reduz o erro causado pelo aumento da variância do valor estimado causado pelo tamanho limitado da vizinhança, retendo assim as informações de fundo da imagem, e o agrupamento máximo pode reduzir o desvio do valor médio estimado causado pelo erro de parâmetro da camada de convolução de prata Erro, retendo assim mais informações de textura. A figura acima é o resultado da combinação de uma imagem 4 × 4 com 2 × 2 e um tamanho de etapa de 2.

Camada totalmente conectada:

A camada totalmente conectada na rede neural convolucional é equivalente à camada oculta na rede neural feedforward tradicional. A camada totalmente conectada geralmente é construída na última parte da camada oculta da rede neural convolucional e apenas transmite sinais para outras camadas totalmente conectadas. O mapa de características perde a estrutura tridimensional na camada totalmente conectada, é expandido em um vetor e passado para a próxima camada por meio da função de excitação. Em algumas redes neurais convolucionais, a função da camada totalmente conectada pode ser parcialmente substituída pelo agrupamento médio global. O agrupamento médio global fará a média de todos os valores de cada canal do mapa de características, ou seja, se houver 7 × 7 × 256 mapa de recursos, o agrupamento médio global retornará um vetor 256, onde cada elemento é 7 × 7, o tamanho do passo é 7 e o agrupamento médio sem preenchimento.

Função de incentivo:

No passado, as funções de excitação comumente usadas eram a função sigmóide e a função tanh. No entanto, nos últimos anos, a função ReLu (retificação linear) é mais comumente usada em redes neurais convolucionais. Usar ReLu e a função sigmóide anterior têm o mesmo efeito, mas a velocidade de convergência de ReLu será É muito mais rápido do que os outros dois e é mais fácil de aprender e otimizar. Por causa de sua linearidade por partes, a passagem frontal e a passagem traseira e a derivação são todas lineares por partes, o que alivia os problemas de desaparecimento de gradiente e sobreajuste até certo ponto. No treinamento de rede profunda, tanh e sigmóide tendem a saturar no valor final, fazendo com que a velocidade de treinamento seja muito lenta, portanto, a função ReLu é frequentemente usada por padrão. No entanto, a função ReLu terá um problema de morte. O principal motivo é que a taxa de aprendizado é muito grande, de modo que o valor de saída dos dados de entrada é menor que 0 quando os dados de entrada passam pelo neurônio, e então ReLu não terá efeito, então preste atenção para que a taxa de aprendizado não seja muito grande.

O processo de treinamento da rede neural convolucional:

CNN é essencialmente um mapeamento de entrada para saída. Ele pode aprender um grande número de relações de mapeamento entre entrada e saída sem exigir quaisquer expressões matemáticas precisas entre entrada e saída, desde que use um padrão conhecido para A rede convolucional é treinada e a rede tem a capacidade de mapear entre os pares de entrada e saída. A rede convolucional realiza treinamento supervisionado, portanto seu conjunto de amostra é composto por pares de vetores da forma: (vetor de entrada, vetor de saída ideal). Todos esses pares de vetores devem ser derivados da estrutura real "em execução" do sistema que a rede está prestes a simular e podem ser coletados do sistema real em execução.

1) Inicialização dos parâmetros: Antes de iniciar o treinamento, todos os pesos devem ser inicializados com alguns números aleatórios diferentes. "Número aleatório pequeno" é usado para garantir que a rede não entre em um estado saturado devido a pesos excessivos, resultando em falha de treinamento; "diferente" é usado para garantir que a rede possa aprender normalmente. Na verdade, se a matriz de ponderação for inicializada com o mesmo número, a rede não tem capacidade de aprendizado.

2) O processo de treinamento inclui quatro etapas ① O primeiro estágio: o estágio de propagação direta i pega uma amostra do conjunto de amostras e entra na rede ii para calcular a saída real correspondente; neste estágio, a informação é transformada da camada de entrada para a camada de saída Este processo também é o processo realizado quando a rede é executada normalmente após o treinamento ser concluído. A segunda etapa: a etapa de propagação para trás iii calcula a diferença entre a saída real e a saída ideal correspondente iv ajusta a matriz de peso de toda a rede de acordo com o método de minimizar o erro Etapas de treinamento específicas:

1. Selecione o grupo de treinamento e busque aleatoriamente N amostras do conjunto de amostras como o grupo de treinamento;

2. Defina cada peso e limite para um pequeno valor aleatório próximo a 0 e inicialize os parâmetros de controle de precisão e a taxa de aprendizado;

3. Pegue um padrão de entrada do grupo de treinamento e adicione-o à rede e forneça seu vetor de saída de destino;

4. Calcule o vetor de saída da camada intermediária e calcule o vetor de saída real da rede;

5. Compare os elementos do vetor de saída com os elementos do vetor de destino para calcular o erro de saída; a unidade oculta da camada intermediária também precisa calcular o erro;

6. Calcule o valor de ajuste de cada peso e o valor de ajuste do limite por sua vez;

7. Ajuste o peso e ajuste o limite;

8. Depois de experimentar M, julgue se o índice atende aos requisitos de precisão, se não, volte para (3) e continue iterando; se estiver satisfeito, vá para a próxima etapa;

9. No final do treinamento, salve os pesos e limites em um arquivo. Neste momento, pode-se considerar que os vários pesos se estabilizaram e o classificador foi formado. O treinamento é executado novamente e os pesos e limites são derivados diretamente do arquivo para treinamento sem inicialização.

 

Acho que você gosta

Origin blog.csdn.net/qq_36909245/article/details/104380251
Recomendado
Clasificación