E se os programas de computador fossem capazes de se aperfeiçoar, com o tempo de uso, para satisfazer cada vez melhor as necessidades de seus usuários? Essa possibilidade, de grande valor para as empresas de software, está cada vez mais próxima da realidade graças a tecnologias de inteligência artificial que permitem que os programas “aprendam” com o que seus usuários fazem. As redes neurais são uma dessas tecnologias.

O Olhar Digital conversou com especialistas nesse assunto para entender melhor como funcionam as redes neurais, programas de computador que “imitam” o cérebro humano e permitem que as máquinas aprendam a realizar tarefas de maneira cada vez melhor. Essa tecnologia está presente em diversos produtos que usamos no dia-a-dia, como o Google e o Facebook, então vale a pena saber mais sobre ela. Confira a seguir:

O que são redes neurais?

De acordo com Ian Carvalho, que trabalha na área de pesquisa em uma multinacional de tecnologia, as redes neurais são modelos de computação inspirados no cérebro humano, que têm como objetivo processar informação ou reconhecer padrões.

Elas se diferenciam dos programas de computadores mais tradicionais, principalmente, porque sua programação não é feita completamente por seres humanos. Embora ela seja construída e treinada por programadores, eles têm acesso apenas aos dados de entrada e saída dela. O vídeo abaixo fala mais sobre essa tecnologia; ele está em inglês, mas possui legendas em português:

Segundo Carvalho, “Redes neurais funcionam como caixas pretas. Ou seja, você tem acesso à entrada e à saída, mas não sabe exatamente o que acontece em seu interior. Isso faz com que seja difícil depurar erros e saber porque certas saídas foram resultados de suas respectivas entradas”.

Pode parecer curioso que um programa de computador não seja plenamente compreendido pelos seus próprios criadores. No entanto, isso acontece por conta da maneira como as redes neurais funcionam. Para entender melhor esse aspecto, é necessário que nos aprofundemos mais na forma como elas são construídas.

Como elas funcionam?

Como o nome sugere, as redes neurais são compostas por várias camadas de “neurônios”: um conjunto de sinais de entrada e de saída. Segundo o professor doutor Edson Satoshi Gomi, da Escola Politécnica da USP, o sinal inicial (uma foto, som ou texto) entra pela primeira camada de neurônios, chamada de camada de entrada. As saídas dessa primeira camada são ligadas às entradas da camada seguinte, e assim por diante.

A última camada, por sua vez, se chama camada de saída, e é responsável por reconhecer o sinal. Em outras palavras, é ela que recebe a informação processada por todas as outras camadas de neurônios e, com base nela, emite uma conclusão do tipo: essa imagem é um rosto, ou a voz presente nesse arquivo de som é a daquela pessoa.

Dentro dos neurônios, cada entrada é multiplicada por um determinado valor. Os valores de todas as entradas são somados e, então, o resultado é convertido para a saída do neurônio e enviado para o neurônio seguinte. Esse valor, no entanto, é “aprendido” pela rede durante um processo de treinamento.

No treinamento, um programador “alimenta” a rede com uma série de dados de entrada e os resultados de saída esperados. De acordo com Carvalho, a rede, então, compara todas as informações disponíveis e reforça os valores de multiplicação das entradas que gera as saídas esperadas. As redes podem ter diversas camadas de neurônios, e redes com muitas camadas são chamadas de redes “profundas”; daí o nome “deep learning” usado para se referir a processos de aprendizagem de máquina que usam essas redes.

Reprodução

Em outras palavras, dentre todos os valores possíveis, a rede aprende a “fortalecer” os valores que geram a saída adequada e a “enfraquecer” os que geram saídas inesperadas. Segundo Carvalho, “após o treinamento, a rede neural será capaz de fornecer um resultado preciso para entradas novas, baseando-se nas entradas anteriores”.

Construindo conexões

Isso significa que durante o processo de treinamento, a rede neural cria conexões entre as saídas de um neurônio e a entrada de outro que não são totalmente conhecidas pelos programadores. Isso porque não são eles que determinam os valores de multiplicação das entradas de cada neurônio, mas a própria rede, com base nos dados de entrada e na saída esperada.

Fica claro, portanto, que o processo de treinamento é essencial para a criação de uma rede neural. Segundo o professor Gomi, “o grande desafio na área de redes neurais tem sido ecnontrar métodos efetivos para treiná-las de forma que sua função seja executada com a menor taxa de erros possível”.

Por outro lado, isso também representa uma das principais vantagens desse método sobre as demais tecnologias de aprendizagem de máquina. Segundo a professora titular do Instituto de Ciências Matemáticas e Computacionais da USP, Roseli Romero, “a vantagem das redes neurais é que elas podem aprender com exemplos. A partir deles, elas têm a capacidade de generalizar”.

Com isso, as redes neurais são capazes de lidar até mesmo com situações para as quais não foram especificamente preparadas. Conforme Roseli explica, uma rede treinada para reconhecer imagens geométricas, por exemplo, “será capaz de classificar ou reconhecer imagens que se pareçam com aquelas aprendidas, mesmo que elas não estejam posicionadas exatamente na mesma posição das imagens usadas para o treinamento”.

É por meio dessa característica, por exemplo, que um sistema de reconhecimento facial consegue reconhecer um rosto mesmo que parte dele esteja escurecida. Ou, ainda, que um sistema de reconhecimento de fala (como o do buscador do Google para smartphones) seja capaz de entender o que você disse mesmo com ruído de fundo.

Outro motivo para que essa técnica de aprendizagem de máquina tenha frequentemente sido preferida em relação a outras, segundo Roseli, é o desenvolvimento do hardware de computadores. “Com o aumento da capacidade computacional dos computadores de hoje, com as placas gráficas disponíveis, tornou-se possível trabalhar com quantidades enormes de dados”, diz.

Dificuldades de aprendizado

Mesmo com esses avanços, no entanto, as redes neurais ainda têm seus limites. Conforme aponta Gomi, elas “são boas para determinadas tarefas, como reconhecimento de padrões. Mesmo assim, é preciso ter em mente que a eficácia na execução de determinada tarefa depende da qualidade do conjunto de treinamento, e que não há garantia de que uma rede neural dará sempre uma resposta correta”.

Por esse motivo, Gomi opina que ainda é necessário ter cautela no uso dessa tecnologia. “Aplicações críticas, como em diagnóstico médico ou identificação de fraudes, só devem ser executadas sob o comando de profissionais qualificados e treinados para o uso dessas redes neurais”, diz.

Segundo Carvalho, “mesmo com o avanço da área nos últimos anos, algumas tarefas ainda não podem ser ensinadas aos computadores devido ao alto nível de complexidade”. O pesquisador também lembra que em, alguns casos, métodos mais simples podem ser mais eficientes para executar algumas tarefas. O vídeo abaixo, do próprio Google, fala sobre as diversas técnicas de aprendizagem de máquina existentes: 

Outro ponto levantado por Carvalho é que “em geral, após o fim da fase de treinamento, o aprendizado é desligado e a rede neural não se aperfeiçoa mais”. No entanto, ele também ressalta que alguns sistemas de recomendação, como os do Netflix e do Spotify, redes neurais se adaptam continuamente para dar sugestões de filmes e músicas aos usuários.

Inteligência?

Segundo a professora Romero, “as redes neurais foram inspiradas no funcionamento do cérebro humano”, ainda que “alguns modelos [de redes neurais] sejam mais biologicamente plausíveis do que outros. Em outras palavras, ainda não entendemos direito como nosso cérebro funciona, mas é possível que seja de uma maneira semelhante a essas redes.

No entanto, Romero ressalta que “mesmo o modelo de redes neurais multi-camadas, que não é considerado um modelo plausível, possui um poder de classificação e reconhecimento incrível, comparável ao desempenho dos seres humanos”. Isso reforça o quanto a tecnologia é impressionante.

E, de acordo com Romero, não há problema algum em dizer que as redes neurais tornam os sistemas “inteligentes”: “Quando vemos o mundo, o tempo todo estamos recebendo imagens, analisando e tomando decisóes em fun;áo dos sinais que estamos recebendo. É exatamente isso que os sistemas de redes neurais propiciam aos sistemas computacionais: que eles fiquem mais inteligentes”.