Coletânea Python do ZERO às Redes Neurais Artificiais
Redes Neurais Artificiais Convolucionais
REDES NEURAIS ARTIFICIAIS
CONVOLUCIONAIS
Uma das aplicações mais comuns dentro de machine learning é o processamento de imagens. Na verdade, esta é uma área da computação que tem evoluído a passos largos justamente pelos avanços e inovações que redes neurais artificiais trouxeram para esse meio. O processamento de imagens que se deu início agrupando pixels em posições específicas em tela hoje evoluiu para modelos de visão computacional e até mesmo geração de imagens inteiramente novas a partir de dados brutos de características de imagens usadas para aprendizado.
O fato de haver um capítulo inteiro dedicado a este tipo de aprendizado
de máquina se dá porque da mesma forma que anteriormente classificamos dados e extraímos informações a partir dos mesmos via redes neurais artificiais, aqui usaremos de modelos de redes neurais que serão adaptados desde o reconhecimento de dígitos e caracteres escritos à mão até modelos capazes de aprender características de um animal e gerar imagens completamente novas a partir de tais características “do que é um cachorro”.
Assim como nos capítulos anteriores, estaremos aprendendo de forma
procedural, nos primeiros exemplos contando com bastante referencial teórico para cada linha de código e à medida que você for criando sua bagagem de conhecimento estaremos mais focados a prática.
Como no capítulo anterior, iniciaremos nosso entendimento com base
em um modelo que não necessariamente usa de uma rede neural artificial densa para seu processamento, inicialmente temos que fazer uma abordagem que elucide o processo de identificação de uma imagem assim como sua conversão para dados interpretados por um perceptron.
Raciocine que nos próximos exemplos sim estaremos trabalhando com
modelos de redes neurais convolucionais, redes muito utilizadas na chamada visão computacional, onde se criam modelos capazes de detectar e reconhecer objetos. Uma das características importantes das redes ditas convolucionais é que apesar de poder haver ou não uma fase de treinamento manual da rede, elas são capazes de aprender sozinhas, reforçando padrões encontrados e a partir desses realizar as conversões de imagem-matriz e matriz-imagem com base em mapeamento de pixels e seus respectivos valores e padrões.
Tenha em mente que aqui abordaremos de forma simples e prática uma
das áreas de maior complexidade dentro da computação. Como de costume, abordaremos tudo o que for necessário para entendimento de nossos modelos, porém existe muito a se explorar com base na documentação das ferramentas que usaremos. De forma simples adaptaremos os conceitos aprendidos até então de uma rede neural para operadores de convolução, suas mecânicas de alimentação, conversão e processamento de dados assim como a prática da execução da rede neural convolucional em si.
O processo de processamento de dados oriundos de imagens se dá por uma série de etapas onde ocorrem diversas conversões entre os dados até o formato que finalmente possa ser processado via rede neural. Tenha em mente que a imagem que aparece para o usuário, internamente é uma espécie de mapa de pixels onde é guardado dados de informação como seu aspecto, coloração, intensidade de coloração, posição na grade de resolução, etc...
Sendo assim, ainda existe uma segunda etapa de processamento para que tais informações sejam transformadas em padrões e formatos interpretados dentro de uma rede neural para que seja feito o cruzamento desses dados e aplicação das funções necessárias.
De forma resumida, por hora, raciocine que uma imagem é lida a partir de algum dispositivo, de imediato serão feitas as conversões pixel a pixel para um mapa, como em um processo de indexação interna, para que tais dados possam ser convertidos para tipo e formato que possa ser processado via rede neural.