Quais são as desvantagens das CNNs?
As CNNs têm desvantagens como o longo tempo de treinamento, a necessidade de grandes conjuntos de dados rotulados e a suscetibilidade ao overfitting. A complexidade da rede também pode afetar o desempenho. No entanto, as CNNs continuam sendo uma ferramenta amplamente utilizada e eficaz em visão computacional, incluindo detecção e segmentação de objetos, apesar das limitações em tarefas que exigem conhecimento contextual, como PNL.
As redes neurais convolucionais têm várias desvantagens que podem dificultar seu uso em algumas aplicações de aprendizado de máquina. Por exemplo, o treinamento da CNN pode demorar um pouco, especialmente para grandes conjuntos de dados, porque as CNNs são computacionalmente caras. Além disso, a criação da arquitetura CNN pode ser desafiadora e requer uma compreensão completa das ideias fundamentais das redes neurais artificiais.
Outra desvantagem é que as CNNs precisam de muitos dados rotulados para serem treinadas de maneira eficaz. Isto pode constituir um sério constrangimento em circunstâncias com poucos dados disponíveis. As CNNs também nem sempre são bem-sucedidas em tarefas que exigem mais conhecimento contextual, como PNL, mesmo que sejam muito boas em tarefas de reconhecimento de imagens.
O número e o tipo de camadas empregadas no design da CNN podem afetar o desempenho. Por exemplo, adicionar mais camadas pode melhorar a precisão, mas ao mesmo tempo aumentar a complexidade da rede e os custos de computação. As arquiteturas CNN de aprendizagem profunda também são vulneráveis ao overfitting, que acontece quando uma rede se torna excessivamente especializada nos dados de treinamento e tem um desempenho insatisfatório em dados novos e não treinados.
Apesar dessas desvantagens, as CNNs ainda são uma ferramenta amplamente utilizada e muito eficaz para algoritmos de aprendizado profundo e de aprendizado de máquina no campo de redes neurais artificiais, incluindo segmentação, detecção de objetos e reconhecimento de imagens. Dito isto, as CNNs continuarão sendo um ator importante na visão computacional.
Quais são as vantagens das CNNs?
As CNNs são preferidas em tarefas de visão computacional devido às suas vantagens, incluindo invariância de tradução, compartilhamento de parâmetros, representações hierárquicas, resiliência a mudanças e treinamento ponta a ponta.
As redes neurais convolucionais têm diversas vantagens, tornando-as uma escolha atraente para diversas tarefas de visão computacional. Uma de suas principais vantagens é a invariância de tradução, um recurso das CNNs que permite reconhecer objetos em uma imagem independentemente de sua posição. Camadas convolucionais são usadas para fazer isso aplicando filtros à imagem de entrada completa para que a rede possa aprender recursos que são invariantes à tradução.
O uso do compartilhamento de parâmetros, no qual o mesmo conjunto de parâmetros é compartilhado por todas as áreas da imagem de entrada, é outro benefício das CNNs. Como resultado, a rede tem menos parâmetros e pode generalizar melhor novos dados, o que é crucial quando se trabalha com grandes conjuntos de dados.
As CNNs também podem aprender representações hierárquicas da imagem de entrada, com as camadas superiores aprendendo recursos mais complicados, como peças e formas de objetos, enquanto as camadas inferiores aprendem elementos mais simples, como bordas e texturas. Para tarefas desafiadoras como detecção e segmentação de objetos, esse modelo hierárquico permite que a rede aprenda características em vários níveis de abstração.
As CNNs são adequadas para aplicações do mundo real porque são resistentes a mudanças na iluminação, cor e pequenas distorções na imagem de entrada. Finalmente, as redes neurais convolucionais podem ser treinadas de ponta a ponta, permitindo que a descida gradiente otimize simultaneamente todos os parâmetros da rede para desempenho e convergência mais rápida. O gradiente descendente é um algoritmo de otimização usado para ajustar iterativamente os parâmetros do modelo, minimizando a função de perda na direção do gradiente negativo.
Quais são os tipos de redes neurais convolucionais?
Existem vários tipos de redes neurais convolucionais, incluindo CNNs tradicionais, redes neurais recorrentes, redes totalmente convolucionais e redes de transformadores espaciais – entre outras.
CNNs tradicionais
CNNs tradicionais, também conhecidas como CNNs “vanilla”, consistem em uma série de camadas convolucionais e de pooling, seguidas por uma ou mais camadas totalmente conectadas. Conforme mencionado, cada camada convolucional nesta rede executa uma série de convoluções com uma coleção de filtros ensináveis para extrair recursos da imagem de entrada.
A arquitetura Lenet-5, uma das primeiras CNNs eficazes para reconhecimento de dígitos manuscritos, ilustra uma CNN convencional. Possui dois conjuntos de camadas convolucionais e de pooling seguindo duas camadas totalmente conectadas. A eficiência das CNNs na identificação de imagens foi comprovada pela arquitetura Lenet-5, que também as tornou mais amplamente utilizadas em tarefas de visão computacional.
Redes neurais recorrentes
Redes neurais recorrentes (RNNs) são um tipo de rede neural que pode processar dados sequenciais, acompanhando o contexto das entradas anteriores. As redes neurais recorrentes podem lidar com entradas de comprimentos variados e produzir saídas dependentes das entradas anteriores, ao contrário das redes neurais feedforward típicas, que processam apenas dados de entrada em uma ordem fixa.
Por exemplo, RNNs podem ser utilizados em atividades de PNL, como geração de texto ou tradução de idiomas. Uma rede neural recorrente pode ser treinada em pares de sentenças em dois idiomas diferentes para aprender a traduzir entre os dois.

O RNN processa sentenças uma de cada vez, produzindo uma sentença de saída dependendo da sentença de entrada e da saída anterior em cada etapa. A RNN pode produzir traduções corretas mesmo para textos complexos, uma vez que monitora entradas e saídas anteriores.
Redes totalmente convolucionais
Redes totalmente convolucionais (FCNs) são um tipo de arquitetura de rede neural comumente usada em tarefas de visão computacional, como segmentação de imagens, detecção de objetos e classificação de imagens. FCNs podem ser treinados ponta a ponta usando retropropagação para categorizar ou segmentar imagens.
Backpropagation é um algoritmo de treinamento que calcula os gradientes da função de perda em relação aos pesos de uma rede neural. A capacidade de um modelo de aprendizado de máquina de prever a saída prevista para uma determinada entrada é medida por uma função de perda.
As FCNs são baseadas exclusivamente em camadas convolucionais, pois não possuem camadas totalmente conectadas, o que as torna mais adaptáveis e computacionalmente eficientes do que as redes neurais convolucionais convencionais. Uma rede que aceita uma imagem de entrada e gera a localização e classificação de objetos dentro da imagem é um exemplo de FCN.
Rede de transformadores espaciais
Uma rede de transformadores espaciais (STN) é usada em tarefas de visão computacional para melhorar a invariância espacial dos recursos aprendidos pela rede. A capacidade de uma rede neural reconhecer padrões ou objetos em uma imagem independente de sua localização geográfica, orientação ou escala é conhecida como invariância espacial.
Uma rede que aplica uma transformação espacial aprendida a uma imagem de entrada antes de processá-la posteriormente é um exemplo de STN. A transformação poderia ser usada para alinhar objetos dentro da imagem, corrigir distorções de perspectiva ou realizar outras alterações espaciais para melhorar o desempenho da rede em um trabalho específico.
Uma transformação refere-se a qualquer operação que modifique uma imagem de alguma forma, como girar, dimensionar ou cortar. Alinhamento refere-se ao processo de garantir que os objetos dentro de uma imagem estejam centralizados, orientados ou posicionados de maneira consistente e significativa.
Quando os objetos em uma imagem aparecem distorcidos ou deformados devido ao ângulo ou à distância em que a imagem foi tirada, ocorre distorção de perspectiva. A aplicação de diversas transformações matemáticas à imagem, como transformações afins, pode ser usada para corrigir distorções de perspectiva. As transformações afins preservam linhas paralelas e proporções de distâncias entre pontos para corrigir distorções de perspectiva ou outras alterações espaciais em uma imagem.
Mudanças espaciais referem-se a quaisquer modificações na estrutura espacial de uma imagem, como inverter, girar ou traduzir a imagem. Essas alterações podem aumentar os dados de treinamento ou abordar desafios específicos da tarefa, como iluminação, contraste ou variações de fundo.
Como funcionam as redes neurais convolucionais?
As redes neurais convolucionais funcionam extraindo recursos dos dados de entrada por meio de camadas convolucionais e aprendendo a classificar os dados de entrada por meio de camadas totalmente conectadas.
As etapas envolvidas no funcionamento de redes neurais convolucionais incluem o seguinte:
Camada de entrada: A camada de entrada – a primeira camada em uma CNN – recebe dados brutos como entrada, como uma imagem ou vídeo, e os envia para a próxima camada para processamento.
Camada convolucional: A extração de recursos ocorre na camada convolucional. Esta camada aplica uma coleção de filtros ou kernels para extrair recursos como arestas, cantos e formas dos dados de entrada.
Camada ReLU: Para fornecer não linearidade à saída e melhorar o desempenho da rede, uma função de ativação de unidade linear retificada (ReLU) é frequentemente implementada após cada camada convolucional. ReLU gera a entrada diretamente se for positiva e gera zero se for negativa.
Camada de pooling: Os mapas de recursos da camada convolucional são formados com uma camada de pooling, o que reduz sua dimensionalidade. Max-pooling é uma técnica comumente usada em que o valor máximo em cada patch do mapa de recursos é considerado como saída.
Camada totalmente conectada: A camada totalmente conectada pega a saída nivelada da camada de pooling e aplica um conjunto de pesos para produzir a saída final, que pode ser usada para tarefas de classificação ou previsão.

Aqui está uma ilustração de como a CNN categorizaria fotos de cães e gatos:
Etapa 1: A camada de entrada recebe imagens de 3 canais (RGB) de um cachorro ou gato e outros dados de imagem brutos. Um canal de 3 canais (RGB) é um formato padrão usado para representar imagens coloridas em redes neurais, com cada pixel sendo representado por três valores que representam a intensidade dos canais de cores vermelho, verde e azul.
Etapa 2: a camada convolucional aplica uma série de filtros à imagem de entrada para extrair recursos como bordas, cantos e formas.
Etapa 3: A saída da camada convolucional torna-se não linear devido à camada ReLU.
Etapa 4: ao obter o valor máximo em cada patch do mapa de características, a camada de pooling reduz a dimensionalidade dos mapas de características criados pela camada convolucional.
Etapa 5: muitas camadas convolucionais e de pooling são empilhadas para extrair características progressivamente complicadas da imagem de entrada.
Etapa 6: A camada Flatten converte a saída da camada anterior em um vetor unidimensional ou 1D (uma sequência de números organizados em uma única linha ou coluna, cada um representando um recurso ou característica). Em seguida, uma camada totalmente conectada recebe a saída nivelada da última camada de pooling e aplica um conjunto de pesos para produzir a saída final, identificando se a imagem é de um gato ou de um cachorro.
A CNN é treinada usando um conjunto de imagens rotuladas, com os pesos dos filtros e das camadas totalmente conectadas ajustados durante o treinamento para minimizar o erro entre os rótulos previstos e reais. Uma vez treinada, a rede neural convolucional pode classificar com precisão imagens novas e invisíveis de cães e gatos.
O que são redes neurais convolucionais em aprendizagem profunda?
Redes neurais convolucionais são usadas em tarefas de visão computacional, que empregam camadas convolucionais para extrair recursos de dados de entrada.
Redes neurais convolucionais (CNNs) são uma classe de redes neurais profundas comumente usadas em tarefas de visão computacional, como reconhecimento de imagens e vídeos, detecção de objetos e segmentação de imagens.
As redes neurais são modelos de aprendizado de máquina que consistem em nós interconectados que processam informações para tomar decisões, enquanto as redes neurais profundas possuem múltiplas camadas ocultas que lhes permitem aprender representações complexas para diversas tarefas. Ambos imitam a estrutura e função do cérebro humano. A visão computacional é um campo da inteligência artificial (IA) que se concentra em permitir que as máquinas interpretem e compreendam dados visuais do mundo.
Embora o reconhecimento de imagens e vídeos envolva a classificação ou reconhecimento de objetos, cenas ou ações em fotos ou vídeos, a detecção de objetos envolve a localização de certas coisas dentro de uma imagem ou vídeo. A segmentação de imagens envolve a divisão de uma imagem em segmentos ou regiões significativas para análise ou manipulação posterior.

As CNNs usam várias camadas convolucionais para extrair automaticamente recursos dos dados de entrada. Os dados de entrada são submetidos a filtros pelas camadas convolucionais, com os mapas de características produzidos passados para outras camadas de processamento. Camadas convolucionais são os blocos de construção das CNNs que realizam a operação de filtragem e extração de recursos nos dados de entrada.
Filtragem é o processo de convolução de uma imagem com um filtro para extrair características, enquanto a extração de características é o processo de identificação de padrões ou características relevantes das imagens convoluídas.
Camadas de pooling, que reduzem a resolução da saída das camadas convolucionais para reduzir o custo computacional e aumentar a capacidade da rede de generalizar para novas entradas, são frequentemente incluídas nas CNNs, além das camadas convolucionais. Camadas típicas adicionais incluem camadas de normalização, que ajudam a reduzir o overfitting e melhorar o desempenho da rede, e camadas totalmente conectadas, que são utilizadas para tarefas de classificação ou previsão.
Muitas aplicações, como reconhecimento facial, carros autônomos, análise de imagens médicas e processamento de linguagem natural (PNL), têm utilizado extensivamente as CNNs. Eles também têm sido usados para obter resultados de última geração em tarefas de classificação de imagens, como o desafio ImageNet.
