Redes Neurais é uma nova tendência que tem trazido excelentes resultados para o campo da tecnologia da informação.
Isso tudo, por conta de sua capacidade de entender o comportamento dos usuários e assim criar novos caminhos para as ferramentas tecnológicas.
Esse panorama faz com que seja essencial que não só profissionais de TI, como empresas e estudantes se aprofundem no conhecimento dessas Redes Neurais.
Acompanhe esse conteúdo e entenda mais sobre Redes Neurais e também o porque ela é o caminho da Tecnologia da Informação do Futuro.
Entendendo Redes Neurais
Redes Neurais é um conjunto de tecnologias e ferramentas que permitem que soluções tecnológicas recebam aprendizado a partir das ações dos usuários.
Ou seja, há uma capacidade de entender o comportamento dos usuários e dessa forma fornecer novos parâmetros e caminhos para as ferramentas tecnológicas.
Para entender melhor, Redes neurais fazem parte do conjunto de algoritmos denominado Aprendizado de Máquina.
As redes neurais artificiais tentam imitar a estrutura do cérebro humano, um neurônio artificial é uma função matemática que implementa um modelo de um neurônio biológico.
Em uma rede neural, os neurônios estão conectados em camadas como mostrado na imagem acima.
A primeira, é a camada de entrada que recebe os sinais de entrada. Depois, podemos ter diversas camadas ocultas, ou “hidden”, e a última é a camada de saída.
Na Figura abaixo cada círculo representa um neurônio. Nesta rede simples temos 4 camadas, e em cada camada temos um número variável de neurônios.
Fonte e Referência: https://towardsdatascience.com/applied-deep-learning-part-1-artificial-neural-networks-d7834f67a4f6
Para modelarmos uma função mais complexa teremos necessidade de acrescentarmos mais camadas e aumentarmos o número de neurônios por camada.
Resnet50 é um modelo, ou arquitetura bastante usado para a classificação de imagens em categorias, ele possui mais de de 23 milhões de parâmetros a serem treinados, e nem é um dos maiores modelos existentes.
Estes parâmetros devem ser otimizados durante a fase de treinamento, que consiste basicamente na realização de milhões de operações de multiplicação.
Uma CPU, mesmo poderosa, não consegue realizar esta função de forma satisfatória, para isso o mais recomendável é um GPU (ou Graphics Processing Unit).
Por mais que esse processador tenha sido desenvolvido inicialmente para permitir a representação de imagens 3D em video games, ele permite a execução destas operações em paralelo, alcançando uma performance dezenas de vezes superior a uma CPU.
Conceitos dentro das Redes Neurais
Para entender melhor as Redes Neurais e o seu funcionamento é preciso entender os principais conceitos envolvidos com ela.
São eles: Inteligência Artificial (IA), Aprendizado da Máquina ou Machine Learning e Deep Learning.
A explicação desses conceitos se dará com base no seguinte artigo do Medium: https://medium.com/ai-in-plain-english/artificial-intelligence-vs-machine-learning-vs-deep-learning-whats-the-difference-dccce18efe7f.
- Inteligência Artificial (IA) é uma ciência, tal como a matemática ou a biologia. Ela estuda mecanismos para construir programas e máquinas que podem resolver problemas de forma criativa, característica que sempre foi considerada apenas possível entre os humanos.
- Aprendizado de Máquina, ou machine learning, é um subconjunto da IA que habilita a sistemas a capacidade de aprender e a melhorar sua performance, de forma automática , a partir de experiências e dados, sem serem programados especificamente para este fim.
- Deep Learning (o termo em português aprendizagem profunda não é comumente utilizado) é um subconjunto do aprendizado de máquina que utiliza algoritmos de alto nível, usualmente denominados REDES NEURAIS, de forma similar a rede neural do cérebro humano.
Esses três conceitos são dispostos da seguinte maneira que é apresentado na imagem abaixo:
Aprendizado da Máquina, como é
Um programa de computador tradicional processa as suas entradas gerando resultados, conforme o diagrama abaixo.
Um sistema de aprendizado de máquina trabalha em dois tempos: aprendizado e predição
O objetivo do aprendizado é encontrar parâmetros do modelo ou arquitetura para obter sua melhor performance.
Esses parâmetros são gradativamente melhorados a partir dos resultados obtidos.
Em um programa para jogar damas, os resultados seriam as jogadas realizadas e sua performance seria o resultado do jogo, como apresentado no gráfico seguinte.
No término do aprendizado, associamos os parâmetros obtidos ao modelo inicial.
A partir deste momento temos um sistema similar ao tradicional. Em um sistema em produção, o resultado do modelo é denominado predição, como o apresentado a seguir.
O sistema aprendeu a partir de sua experiência e não a partir de uma programação tradicional realizada através de uma sequência de passos.
De forma geral, então o que foi apresentado acima é o que podemos chamar de aprendizado da máquina.
Aplicação de Redes Neurais
Inúmeras redes neurais já encontram-se em produção e utilização, logo abaixo você encontra algumas destas aplicações:
- Processamento de Linguagem Natural (NLP): Resposta automática de perguntas, reconhecimento de voz, sumarização de documentos, classificação de documentos, encontrar nomes e datas em documentos, procura por artigos que mencionam um conceito;
- Visão Computadorizada: Interpretação de imagens de satélite e drones, reconhecimento facial, criação de legenda para imagens, leitura de sinais de trânsito, localização de pedestres e veículos em veículos autônomos;
- Medicina: Busca por anomalias em imagens radiológicas, contagem de características em imagens patológicas, medição de características em ultra som, diagnóstico de retinopatia diabética;
- Biologia: Enovelamento de proteínas, classificação de proteínas, tarefas ligadas ao sequenciamento de genoma, classificação de mutações genéticas, classificação de células, análise de interações entre proteínas;
- Geração de imagens: Colorir imagens preto e branco, aumentar a resolução de imagens, remoção de ruído, conversão de imagens seguindo estilos de artistas famosos;
- Sistemas de recomendação: Procura na web, recomendações de produtos, layout de sites
- Jogos: jogando Chess, Go, maioria dos video games Atari e muitos jogos de estratégia em tempo real;
- Robótica: Manipulação de objetos difíceis de serem localizados (por exemplo: transparentes, brilhantes, sem textura) ou difíceis de serem manuseados;
- Outras aplicações: Predições nas áreas financeira e logística, conversão de texto para voz.
Como aplicar as Redes Neurais
Como já mencionado, o computador deve possuir um processador GPU para poder executar em tempo razoável o código.
As bibliotecas mais populares de redes neurais apenas rodam em GPUs da NVIDIA.
Mas a boa notícia aqui é que você pode usar um computador com GPU na nuvem, sem custos, através do Google Colab (https://colab.research.google.com/).
Existem outros serviços na rede que disponibilizam um ambiente completo com as bibliotecas mais populares já instaladas.
Por exemplo: Paperspace (https://gradient.paperspace.com/), e os grandes do mercado como AWS, Azure, GCP e vários outros com preços iniciais em U $0.45 hora.
Os dois frameworks mais utilizados atualmente são o TensorFlow e o PyTorch.
O TensorFlow é o produto mais tradicional, porém o PyTorch está ganhando popularidade.
Fast.ai é uma API de alto nível, escrita sobre PyTorch, que facilita muitos os primeiros passos nesta tecnologia.
Através de suas API ‘s em camadas, ela consegue ser simples e poderosa ao mesmo tempo.
Quem deseja começar a explorar esta área o Fast.ai é um excelente caminho inciail.
A ferramenta possui:
- Um curso atualizado (https://course.fast.ai/)
- Um livro recém lançado, em inglês, que pode ser acessado, sem custos: (https://github.com/fastai/fastbook)
- E uma vibrante comunidade que dá suporte ao produto e contribui ao seu desenvolvimento.
Python é a linguagem mais usada nesta área, e um conhecimento básico é importante para quem queira se aventurar.
O curso e livro acima mencionados são baseados em Jupyter notebooks que permite você codificar e experimentar de forma bastante simples.
Existem inúmeras alternativas para o estudo de redes neurais, o que foi apresentado aqui é um caminho claro e simples para começar nos estudos.
Venha com a Accurate para o Futuro
Na Accurate há sempre a preocupação em seguir e inserir nos trabalhos as melhores e mais recentes ferramentas tecnológicas.
Isso tudo não só para o desenvolvimento de suas soluções como para evoluir junto aos colaboradores.
Se você quer conhecer mais sobre as soluções Accurate, acesse o site ou se for um profissional da área de tecnologia, acesse a nossa página de carreiras.
Se você gostou desse conteúdo, compartilhe-o com seus amigos e deixe seu comentário e sugestão abaixo.
Não deixe também de acompanhar o Blog da Accurate e as Redes Sociais: Facebook, Instagram, Twitter, Linkedin e YouTube.
Autor

- Inovação faz parte do nosso DNA, nascemos com a missão da “busca constante de domínio de novas tecnologias de informação para fornecermos as soluções mais adequadas às necessidades do negócio dos nossos clientes”.
Artigos do mesmo autor
Tecnologia2021.01.04Redes Neurais: o Caminho da Tecnologia da Informação do Futuro
Destaque2020.11.24Accurate e a Claro: Saiba como se deu essa Parceria Premiada
Eventos2020.10.27Saiba Como foi o Nasa Space Apps Challenges e a participação da Accurate
Eventos2020.10.18SEMAC, Accurate apoia Semana da Computação da Unesp de Rio Preto