Redes neurais convolucionais
Observação
Consulte a guia Texto e imagens para obter mais detalhes!
A capacidade de usar filtros para aplicar efeitos a imagens é útil em tarefas de processamento de imagem, como você pode executar com o software de edição de imagem. No entanto, o objetivo da pesquisa visual computacional é, muitas vezes, extrair significado, ou pelo menos insights acionáveis, de imagens; que requer a criação de modelos de machine learning treinados para reconhecer recursos com base em grandes volumes de imagens existentes.
Dica
Esta unidade pressupõe que você esteja familiarizado com os princípios fundamentais do aprendizado de máquina e que você tenha conhecimento conceitual do aprendizado profundo com redes neurais. Se você não estiver familiarizado com o aprendizado de máquina, considere concluir o módulo Introdução aos conceitos de aprendizado de máquina no Microsoft Learn.
Uma das arquiteturas de modelo de aprendizado de máquina mais comuns para visão computacional é uma rede neural convolucional (CNN), um tipo de arquitetura de aprendizado profundo. As CNNs usam filtros para extrair mapas de características numéricas de imagens e, em seguida, inserem os valores das características em um modelo de aprendizado profundo para gerar uma predição de rótulo. Por exemplo, em um cenário de classificação de imagem , o rótulo representa o assunto principal da imagem (em outras palavras, do que se trata essa imagem?). Você pode treinar um modelo da CNN com imagens de diferentes tipos de frutas (como maçã, banana e laranja) para que o rótulo previsto seja o tipo de fruta em uma determinada imagem.
No processo de treinamento de uma CNN, os kernels de filtro são inicialmente definidos usando valores de peso gerados aleatoriamente. Em seguida, conforme o processo de treinamento progride, as previsões de modelos são avaliadas em relação aos valores de rótulo conhecidos e os pesos de filtro são ajustados para melhorar a precisão. Eventualmente, o modelo treinado para classificação de imagens de frutas usa os pesos dos filtros que melhor extraem recursos, ajudando na identificação de diferentes tipos de frutas.
O diagrama a seguir ilustra como funciona uma CNN para um modelo de classificação de imagem:
- Imagens com rótulos conhecidos (por exemplo, 0: maçã, 1: banana ou 2: laranja) são alimentadas na rede para treinar o modelo.
- Uma ou mais camadas de filtros são usadas para extrair recursos de cada imagem conforme ela é alimentada pela rede. Os kernels de filtro começam com pesos atribuídos aleatoriamente e geram matrizes de valores numéricos chamados mapas de recursos. Camadas adicionais podem agregar ou reduzir o tamanho dos mapas de características para criar matrizes menores que enfatizam as principais características visuais extraídas pelos filtros.
- Os mapas de recursos são mesclados em uma única matriz dimensional de valores de recurso.
- Os valores das características são inseridos em uma rede neural totalmente conectada.
- A camada de saída da rede neural usa uma softmax ou função semelhante para produzir um resultado que contenha um valor de probabilidade para cada classe possível, por exemplo [0,2, 0,5, 0,3].
Durante o treinamento, as probabilidades de saída são comparadas com o rótulo de classe real – por exemplo, uma imagem de uma banana (classe 1) deve ter o valor [0,0, 1,0, 0,0]. A diferença entre as pontuações de classe previstas e reais é usada para calcular a perda no modelo. Em seguida, os pesos na rede neural totalmente conectada e os kernels de filtro nas camadas de extração de recursos são modificados para reduzir essa perda.
O processo de treinamento é repetido em várias épocas até que um conjunto ideal de pesos seja aprendido. Em seguida, os pesos são salvos e o modelo pode ser usado para prever rótulos para novas imagens para as quais o rótulo é desconhecido.
Observação
As arquiteturas da CNN geralmente incluem várias camadas de filtro convolucional e camadas adicionais para reduzir o tamanho dos mapas de recursos, restringir os valores extraídos e manipular os valores de recurso. Essas camadas foram omitidas neste exemplo simplificado para se concentrar no conceito de chave, que é que os filtros são usados para extrair recursos numéricos de imagens, que são então usados em uma rede neural para prever rótulos de imagem.