Este artigo é parte da Desmistificação AI, uma série de posts que (tentar) é capaz de distinguir o jargão e mitos em torno do AI.
desde a década de 1950, os primeiros dias da inteligência artificial, os cientistas da computação têm tentado construir computadores que podem fazer sentido de dados visuais., Nas décadas seguintes, o campo, que se tornou conhecido como visão computacional, viu avanços incrementais. Em 2012, a computer vision deu um salto quântico quando um grupo de pesquisadores da Universidade de Toronto desenvolveu um modelo de IA que superou os melhores algoritmos de reconhecimento de imagens por uma grande margem.
O sistema AI, que ficou conhecido como AlexNet (nomeado em homenagem ao seu principal criador, Alex Krizhevsky), ganhou o 2012 ImageNet computer vision contest com uma incrível precisão de 85 por cento. O segundo colocado marcou um modesto 74 por cento no teste.,no coração da AlexNet estava uma rede neural convolucional (CNN), um tipo especializado de rede neural artificial que imita aproximadamente o sistema de visão humana. Nos últimos anos, o CNNs tornou-se fundamental para muitas aplicações de visão computacional. Aqui está o que você precisa saber sobre a história e funcionamento da CNNs.
a brief history of convolucional neural networks
convolucional neural networks, also called ConvNets, were first introduced in the 1980s by Yann LeCun, a postdoctoral computer science researcher., LeCun tinha construído sobre o trabalho feito por Kunihiko Fukushima, um cientista japonês que, alguns anos antes, tinha inventado o neocognitron, uma rede neural de reconhecimento de imagens muito básica.
a versão inicial da CNNs, chamada LeNet (depois de LeCun), poderia reconhecer dígitos manuscritos. O CNNs encontrou um nicho de mercado nos serviços bancários, postais e bancários, onde eles lêem códigos postais em envelopes e dígitos em verificações.
mas apesar de sua ingenuidade, ConvNets permaneceram à margem da visão de computador e inteligência artificial porque eles enfrentaram um problema grave: eles não podiam escalar., CNNs precisava de um monte de dados e computar recursos para trabalhar de forma eficiente para imagens grandes. Na época, a técnica só era aplicável a imagens com baixas resoluções.em 2012, AlexNet mostrou que talvez tenha chegado a hora de revisitar a aprendizagem profunda, o ramo da IA que usa redes neurais multi-camadas. A disponibilidade de grandes conjuntos de dados, nomeadamente o conjunto de dados do ImageNet com milhões de imagens marcadas, e vastos recursos computacionais permitiram aos pesquisadores criar CNNs complexos que poderiam executar tarefas de Visão Computacional que eram anteriormente impossíveis.como funciona o CNNs?,as redes neurais convolucionais são compostas por múltiplas camadas de neurônios artificiais. Neurônios artificiais, uma imitação grosseira de suas contrapartes biológicas, são funções matemáticas que calculam a soma ponderada de entradas múltiplas e produz um valor de ativação.
O comportamento de cada neurônio é definido pelos seus pesos., Quando alimentados com os valores dos pixels, os neurônios artificiais de uma CNN escolhem várias características visuais.
quando introduz uma imagem numa ConvNet, cada uma das suas camadas gera vários mapas de activação. Mapas de ativação destacam as características relevantes da imagem. Cada um dos neurônios pega um patch de pixels como entrada, multiplica seus valores de cor por seus pesos, resume-os, e os executa através da função de ativação.
A primeira camada (ou inferior) da CNN geralmente detecta características básicas, tais como as arestas horizontais, verticais e diagonais., A saída da primeira camada é alimentada como entrada da próxima camada, que extrai características mais complexas, tais como cantos e combinações de arestas. À medida que você se move mais fundo na rede neural convolucional, as camadas começam a detectar características de nível superior, tais como objetos, rostos, e muito mais.
a operação de multiplicação de valores de pixels por pesos e somá-los é chamada de “convolução” (daí o nome rede neural convolucional). Um CNN é normalmente composto por várias camadas de convolução, mas também contém outros componentes. A camada final de uma CNN é uma camada de classificação, que leva a saída da camada de convolução final como entrada (lembre-se, as camadas de convolução mais altas detectam objetos complexos).,
com base no mapa de ativação da camada de convolução final, a camada de classificação produz um conjunto de pontuações de confiança (valores entre 0 e 1) que especificam a probabilidade da imagem pertencer a uma “classe.”Por exemplo, se você tem uma ConvNet que detecta gatos, cães e cavalos, a saída da camada final é a possibilidade de que a imagem de entrada contém qualquer um desses animais.,
a Formação do convolucionais rede neural
Um dos grandes desafios de desenvolvimento CNNs é ajustar os pesos dos neurônios individuais para extrair o direito de características de imagens. O processo de ajuste desses pesos é chamado de “treinamento” da rede neural.no início, a CNN começa com pesos aleatórios., Durante o treinamento, os desenvolvedores fornecem à rede neural um grande conjunto de dados de imagens anotadas com suas classes correspondentes (gato, cão, cavalo, etc.). A ConvNet processa cada imagem com os seus valores aleatórios e, em seguida, compara a sua saída com o rótulo correcto da imagem. Se a saída da rede não corresponde ao rótulo—o que é provavelmente o caso no início do processo de treinamento—ele faz um pequeno ajuste aos pesos de seus neurônios de modo que da próxima vez que ele vê a mesma imagem, sua saída será um pouco mais perto da resposta correta.,
As correções são feitas através de uma técnica chamada backpropagation (ou backprop). Essencialmente, a backpropagation otimiza o processo de ajuste e torna mais fácil para a rede decidir quais unidades ajustar em vez de fazer correções aleatórias.
cada execução de todo o conjunto de dados de treino é chamado De “época”.”A ConvNet passa por várias épocas durante o treinamento, ajustando seus pesos em pequenas quantidades. Depois de cada época, a rede neural torna-se um pouco melhor na classificação das imagens de treinamento., À medida que a CNN melhora, os ajustes que faz aos pesos tornam-se menores e menores. Em algum momento, a rede “converge”, o que significa que ela essencialmente se torna tão boa quanto pode.
Depois de treinar a CNN, os desenvolvedores usam um conjunto de dados de teste para verificar sua precisão. O conjunto de dados de teste é um conjunto de imagens marcadas que não fazem parte do processo de treinamento. Cada imagem é executada através da ConvNet, e a saída é comparada com a etiqueta real da imagem. Essencialmente, o conjunto de dados de teste avalia o quão boa a rede neural se tornou na classificação de imagens que não tinha visto antes.,
Se uma CNN pontua bem nos seus dados de formação, mas pontua mal nos dados de ensaio, diz-se que foi “overfited”.”Isso geralmente acontece quando não há variedade suficiente nos dados de treinamento ou quando a ConvNet passa por muitas épocas no conjunto de dados de treinamento.
O sucesso das redes neurais convolucionais é em grande parte devido à disponibilidade de enormes conjuntos de dados de imagem desenvolvidos na última década. ImageNet, o concurso mencionado no início deste artigo, obteve o seu título a partir de um conjunto de dados homônimo com mais de 14 milhões de imagens marcadas., Existem outros conjuntos de dados mais especializados, como o MNIST, um banco de dados de 70.000 imagens de dígitos manuscritos.no entanto, você não precisa treinar todas as redes neurais convolucionais em milhões de imagens. Em muitos casos, você pode usar um modelo pré-criado, como o AlexNet ou o ResNet da Microsoft, e finetune-lo para outra aplicação mais especializada. Este processo é chamado de aprendizagem de transferência, no qual uma rede neural treinada é retreinada um conjunto menor de novos exemplos.,
os limites das redes neurais convolucionais
apesar de seu poder e complexidade, as redes neurais convolucionais são, em essência, máquinas de reconhecimento de padrões. Eles podem alavancar recursos computacionais massivos para explorar pequenos e discretos padrões visuais que podem passar despercebidos ao olho humano. Mas quando se trata de compreender o significado do conteúdo das imagens, elas funcionam mal.
considere a seguinte imagem. Uma ConvNet bem treinada dir-lhe-á que é a imagem de um soldado, de uma criança e da bandeira americana., Mas uma pessoa pode dar uma longa descrição da cena, e falar sobre o serviço militar, passeios em um país estrangeiro, o sentimento de saudade de casa, a alegria de se reunir com a família, etc. Redes neurais artificiais não têm noção desses conceitos.
Esses limites tornam-se mais evidentes em aplicações práticas de convolucionais redes neurais. Por exemplo, o CNN é agora amplamente utilizado para moderar o conteúdo nas redes de mídia social., Mas apesar dos vastos repositórios de imagens e vídeos em que são treinados, eles ainda lutam para detectar e bloquear conteúdos inapropriados. Em um caso, o conteúdo-moderação do Facebook AI baniu a foto de uma estátua de 30.000 anos como Nudez.
também, as redes neurais começam a quebrar assim que se movem um pouco fora de seu contexto. Vários estudos têm mostrado que CNNs treinados em ImageNet e outros conjuntos de dados populares não conseguem detectar objetos quando eles os vêem sob diferentes condições de iluminação e a partir de novos ângulos.,
A recent study by researchers at the MIT-IBM Watson AI Lab evidencia estas deficiências. Ele também introduz ObjectNet, um conjunto de dados que melhor representa as diferentes nuances de como os objetos são vistos na vida real. CNNs não desenvolvem os modelos mentais que os seres humanos têm sobre diferentes objetos e sua capacidade de imaginar esses objetos em contextos anteriormente invisíveis.
outro problema com as redes neurais convolucionais é a sua incapacidade de entender as relações entre os diferentes objetos. Considere a seguinte imagem, que é conhecida como um” problema de Bongard”, nomeada em homenagem ao seu inventor, cientista russo da computação Mikhail Moiseevich Bongard. Os problemas de Bongard apresentam-lhe dois conjuntos de imagens (seis à esquerda e seis à direita), e você deve explicar a diferença chave entre os dois conjuntos., Por exemplo, no exemplo abaixo, as imagens no conjunto esquerdo contém um objeto e as imagens no conjunto direito contêm dois objetos.é fácil para os seres humanos tirar tais conclusões de tão pequenas quantidades de amostras. Se eu mostrar estes dois conjuntos e, em seguida, fornecer-lhe uma nova imagem, você será capaz de decidir rapidamente se ele deve ir para o conjunto esquerdo ou direito.
mas ainda não há rede neural convolucional que possa resolver problemas de Bongard com tão poucos exemplos de treinamento. Em um estudo realizado em 2016, pesquisadores da IA treinaram uma CNN em 20.000 amostras de Bongard e testaram-na em mais 10 mil. O desempenho da CNN foi muito inferior ao dos humanos médios.as peculiaridades das Convnetas também as tornam vulneráveis a ataques contraditórios, perturbações em dados de entrada que passam despercebidos ao olho humano, mas afetam o comportamento das redes neurais., Os ataques contraditórios tornaram-se uma grande fonte de preocupação, uma vez que a aprendizagem profunda e, especialmente, CNNs tornaram-se um componente integral de muitas aplicações críticas, tais como carros de auto-condução.
isto significa que as CNN são inúteis?, Apesar dos limites das redes neurais convolucionais, no entanto, não há como negar que eles causaram uma revolução na inteligência artificial. Atualmente, CNNs são usados em muitas aplicações de visão de computador, tais como reconhecimento facial, busca e edição de imagens, realidade aumentada, e muito mais. Em algumas áreas, como o processamento de imagens médicas, ConvNets bem treinados podem até mesmo superar especialistas humanos na detecção de padrões relevantes.,como mostram os avanços nas redes neurais convolucionais, as nossas realizações são notáveis e úteis, mas ainda estamos muito longe de replicar os principais componentes da inteligência humana.