Inscreva-se no The Softtek Blog
No auge do Big Data boom e com uma procura cada vez maior, o Deep Learning está a crescer e a evoluir rapidamente graças a todas as aplicações que tem para revolucionar a IA. A visão por computador é um destes campos da inteligência artificial, que visa permitir e configurar máquinas para tentar ver o ambiente como os humanos o fazem e usar os conhecimentos para realizar diferentes tarefas, tais como o reconhecimento, análise e classificação de imagens.
As redes neurais Deep Learning são um mercado com uma dimensão global de cerca de 120 milhões de dólares, com uma previsão de 296 milhões de dólares até 2024 [1]. Assim, a introdução de algoritmos de aprendizagem profunda para a visão por computador está a trazer grandes avanços. Por exemplo, as Redes Neurais Convolucionais o Convolutional Neural Networks (CNN) revolucionaram este aspecto. Graças às CNNs, o reconhecimento facial em redes sociais ou a detecção de doenças utilizando imagens visuais, entre outras aplicações, é possível.
Um exemplo pode ser uma imagem onde existe uma variedade específica de flor a ser identificada. Para tal, é necessário alimentar os pixels da imagem sob a forma de matrizes para a camada de entrada da rede neural. As camadas ocultas realizam a extracção de características através da realização de cálculos. Uma destas camadas escondidas é a camada de convolução, que extrai características da imagem, permitindo-nos saber, neste exemplo, se a flor que queremos identificar existe na imagem e quantas flores deste tipo existem.
Uma CNN pode assim ser definida como uma rede neural de feedback utilizada para a análise de imagens visuais através do processamento de dados com uma tipologia em forma de grelha para detectar e classificar objectos numa imagem.
Este tipo de redes neurais é um subconjunto de algoritmos de Aprendizagem de Máquina, Aprendizagem Profunda, composto por camadas de nós que têm uma camada de entrada, camadas ocultas e uma camada de saída, onde todos os nós estão ligados com um valor associado. Assim, se a saída de um nó individual tiver um valor acima do valor limiar especificado de cada nó, esse nó é activado e envia a informação para a camada seguinte da rede.
As CNN fornecem uma abordagem mais escalável à identificação de objectos em imagens do que outros tipos de redes neurais, tirando partido dos princípios da álgebra linear através da multiplicação de matrizes para a identificação de padrões.
O algoritmo deste tipo de rede neural é diferente dos outros na medida em que tem uma maior capacidade de desempenho para entrada de imagem, voz ou áudio. Para compreender como funcionam, é necessário conhecer a existência das três camadas que compõem esta rede.
A primeira é a camada convolutiva, que pode ser seguida por camadas convolutivas adicionais ou camadas agrupadas. A camada agrupada é a camada que se liga à camada final. Estas camadas concentram-se em características simples, tais como cores ou margens. À medida que os dados de imagem progridem através das camadas CNN, o algoritmo é capaz de reconhecer elementos mais complexos até finalmente reconhecer o objecto desejado.
A camada convolutiva é portanto o núcleo central de uma CNN e requer diferentes componentes tais como dados de entrada, um filtro e um mapa de características. O filtro é normalmente uma matriz 3×3 que é aplicada a uma área de imagem e um cálculo de produto escalar é realizado entre os pixels dos dados de entrada e o filtro. Este produto escalar é aplicado a uma matriz de saída e é o filtro que se move através da imagem realizando estes cálculos até fazer o mesmo para toda a imagem. O resultado da série de produtos escalares da entrada e do filtro é conhecido como um mapa de características.
Esta matriz de saída não precisa de estar relacionada com cada valor de entrada, pelo que são referidas como camadas parcialmente ligadas. Uma unidade de transformação linear rectificada (ReLu) deve então ser aplicada a esta convolução, ou seja, é aplicada ao mapa de características dando linearidade ao modelo. Em suma, a camada convolutiva converte uma imagem em valores numéricos, o que facilita a interpretação e extracção de padrões relevantes por parte da rede neural.
A camada de agregação realiza a redução da dimensionalidade para reduzir os parâmetros na entrada. Semelhante à camada de convolução, é este filtro que varre a entrada para uma selecção de valores a enviar para a matriz de saída, reduzindo a complexidade, melhorando a eficiência e limitando o risco de sobreajustamento.
Finalmente, os valores de pixel da imagem de entrada não estão directamente ligados à camada de saída em camadas parcialmente ligadas. A camada totalmente ligada refere-se ao facto de cada nó da camada de saída estar directamente ligado a um nó da camada anterior. Esta camada desempenha a função de classificação com base nas características extraídas através das camadas anteriores e dos seus diferentes filtros. As camadas convolutivas e agrupadas utilizam funções ReLu, enquanto estas camadas totalmente ligadas tiram partido de uma função de activação softmax para classificar as entradas de forma apropriada.
A principal utilização de redes neurais convolucionais é o reconhecimento e classificação de imagens com o objectivo de desconstruir uma imagem para encontrar uma característica distintiva, utilizando um algoritmo de classificação de Aprendizagem Automática supervisionado. Outra opção é a redução da descrição da credencial, mas neste caso utiliza um algoritmo não supervisionado. Estes métodos podem ser aplicados nas seguintes áreas:
Esta função baseia-se no algoritmo mais básico de classificação de imagens. A rotulagem de imagens consiste em descrever imagens para facilitar a sua localização, para pesquisa visual e reconhecimento de objectos ou análise de tom de imagens.
A pesquisa visual baseia-se na comparação de imagens de entrada com uma base de dados visual. Assim, avalia a imagem e procura mais imagens que tenham credenciais comparáveis.
O reconhecimento de imagem da CNN para fazer sugestões também é adequado, especialmente para produtos combinados de acordo com critérios visuais. Por exemplo, a Pinterest emprega este tipo de reconhecimento CNN, concentrando-se na correspondência visual de credenciais, tais como todas as que contêm objectos vermelhos.
Existe um subconjunto de reconhecimento de imagem que trata do reconhecimento facial ou de imagens complexas. A distinção entre reconhecimento de imagem e reconhecimento facial baseia-se na complexidade operacional, uma vez que é necessária uma camada adicional de trabalho no reconhecimento facial porque o rosto e as suas características devem ser reconhecidos em primeiro lugar, seguido do reconhecimento básico de objectos.
O reconhecimento facial é utilizado em plataformas de redes sociais para acelerar o processo de etiquetagem de pessoas em fotografias. Também é utilizado para utilizar filtros snapchat ou Instagram que partem de um desenho básico gerado automaticamente do rosto e adicionam novos elementos ou efeitos. Na vigilância, está a tornar-se um método essencial devido à sua eficiência e rapidez.
A utilização do reconhecimento de imagem CNN em medicina permite a sua aplicação para detectar anomalias em imagens de raios X com maior precisão do que o olho humano, por exemplo. A classificação das imagens médicas baseia-se em dados maciços, tais como registos de saúde pública, que servem de base a algoritmos de formação.
Por outro lado, o sistema HRA pode ser utilizado como aplicação preditiva para calcular a probabilidade de eventos específicos em relação à saúde e aos riscos dos indivíduos, tais como a progressão da doença ou complicações. Um exemplo para melhor compreender isto é que este tipo de rede neural estuda todos os dias a actividade solar para determinar o nível de ameaça de radiação.
Finalmente, dentro desta aplicação, as CNNs podem trabalhar na descoberta de medicamentos, uma vez que durante o desenvolvimento de medicamentos há uma grande quantidade de dados a considerar: análise dos efeitos médicos observados, detecção de anomalias, e assim por diante. Estas redes neurais facilitam o processo de cobertura de drogas em fases críticas, reduzindo o tempo necessário para desenvolver drogas através da realização de análises preditivas.
Embora as CNN tragam grandes resultados quando se trata de reconhecer padrões e pequenos detalhes que podem passar despercebidos pelo olho humano, quando se trata de compreender o conteúdo de uma imagem, esta falha. Por exemplo, numa imagem de várias pessoas, uma CNN é capaz de diferenciar idades e características, mas quando um ser humano olha para a mesma imagem, é capaz de estabelecer cenários e situações. Especialmente quando se trata de aplicações práticas, tais como o bloqueio de imagens inadequadas em redes sociais, encontra dificuldades. Um caso foi uma estátua nua de 30.000 anos no Facebook que foi bloqueada por uma CNN.
No entanto, embora as CNN apresentem estas dificuldades, levaram a um avanço na inteligência artificial, uma vez que são utilizadas em muitas aplicações de visão por computador, tais como reconhecimento facial, pesquisa e edição de imagens. As indústrias da realidade aumentada e da realidade virtual estão cada vez mais a explorar este tipo de rede neural, embora ainda esteja longe de replicar os comportamentos da inteligência humana.