Redes Neurais - O que é e características



Redes Neurais

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.

Redes Neurais o que são?

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.
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.

Aprofundando-se nas redes neurais

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.

A humanidade sempre desenvolveu máquinas para nos auxiliar. Elas aperfeiçoam nossa potência ou velocidade, reduzindo o tempo de trabalho ou aumentando nossa força. São poucas as máquinas que fazem o que o ser humano não faz, mas todas fazem o que fazemos de uma forma muito mais eficaz.
Recentemente, principalmente a partir da Terceira Revolução Industrial, com o desenvolvimento de computadores e a implantação de sistemas informatizamos no trabalho, muitos pesquisadores vêm desenvolvendo máquinas para nos ajudar a pensar melhor. Conseguimos até agora, com bastante eficácia, melhorar nossa força, nosso rendimento, nossa velocidade, mas mal arranhamos a capacidade de melhorar nossa inteligência. Isso acontece principalmente porque mal conhecemos como ela funciona.
Computadores fazem parte do nosso dia-a-dia, principalmente do trabalho. Muitas pessoas defendem que a inteligência é fruto do pensamento lógico e desenvolveram vários sistemas lógicos diferentes, culminando na criação dos computadores. Outras pessoas defendem que a inteligência humana é fruto de como nosso cérebro é organizado. Esse grupo desenvolveu, na década de 1940 e 1950, a teoria das Redes Neurais.

Essas redes eram tão promissoras, que vários pesquisadores acharam que isso não daria certo ou esse modelo nunca alcançaria as previsões feitas até então. Durante mais de 20 anos, as pesquisas sobre redes neurais caíram em descrédito e mais ênfase foi dada à computação lógica conhecida e utilizada atualmente.
Porém, de um tempo para cá, principalmente devido ao avanço das neurociências, as pesquisas sobre redes neurais foram retomadas e muita coisa foi desenvolvida. Existem pesquisas, por exemplo, para o desenvolvimento de neurocomputadores. Para se entender melhor o que são as Redes Neurais e como seria os computadores baseados nelas, vale à pena conhecer como funcionam os neurônios. Neurônios funcionam melhor quando ligados a outros neurônios.

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 encontrar 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.

O Comportamento dos Neurônios

Os neurônios são as células que formam o nosso cérebro. Elas são compostas basicamente por três partes: os dentritos, que captam informações ou do ambiente ou de outras células, o corpo celular ou Soma, responsável pelo processamento das informações, e um axônio, para distribuir a informação processada para outros neurônios ou células do corpo. Só que uma célula dificilmente trabalha sozinha. Quanto mais células trabalharem em conjunto, mais elas podem processar e mais eficaz torna-se o trabalho. Logo, para o melhor rendimento do sistema são necessários muitos neurônios.

Dos Neurônios às Redes Neurais

Foi pensando em como os neurônios trabalham que pesquisadores desenvolveram neurônios artificiais. Cada um tem dois ou mais receptores de entrada, responsáveis por perceberem um determinado tipo de sinal. Eles também possuem um corpo de processadores, responsável por um sistema de feedback que modifica sua própria programação dependendo dos dados de entrada e saída. Finalmente, eles possuem uma saída binária para apresentar a resposta “Sim” ou “Não”, dependendo do resultado do processamento.

Um neurônio artificial tenta imitar o comportamento de um neurônio natural.

Um neurônio artificial é capaz de um único processamento. Cada entrada recebe somente um tipo de sinal ou informação. Como um neurônio pode possuir várias entradas, então ele pode perceber diferentes sinais. Porém, ligar vários neurônios similares em rede, faz com que o sistema consiga processar mais informações e oferecer mais resultados.
Por exemplo, é possível criar um sistema para identificação de bananas e maças. Para tal, cria-se neurônios sensíveis a cor e forma. Os de cor percebem o amarelo e o vermelho. Os de forma percebem o redondo e o comprido. Cada neurônio, então, possui quatro entradas, uma para cada informação.
Para obter um melhor rendimento do sistema, cria-se uma rede em camadas: uma primeira camada com quatro neurônios (um para cada sinal de entrada), uma segunda camada oculta de processamento com três neurônios e uma camada de saída com dois neurônios, um para avisar quando é uma maça e outro para avisar quando é uma banana.

Uma rede neural é capaz de identificar diferentes padrões.

O segredo não está na arquitetura dessa rede, mas na forma como ela processa: Redes Neurais não rodam programas, elas aprendem!

O aprendizado das Redes Neurais

Não existe uma programação pré-definida dos neurônios artificiais, como existem nas portas lógicas utilizadas nos circuitos computacionais. Ao invés disso, eles possuem um sistema de feedback que modifica sua programação. Cada informação processada gera um peso, dependendo do resultado. Se for um acerto, ela ganha um ponto, se for um erro, ela perde meio ponto.
Dessa forma, a rede neural do exemplo acima testa várias vezes a percepção do objeto. A cada acerto, os neurônios envolvidos no processamento ganham um ponto e aquela rede é reforçada. A cada erro, esses neurônios perdem meio ponto. Dessa forma, o sistema cria a rotina de seguir o caminho com mais pontos sempre. Quanto mais tentativas, mais aprimorado fica o sistema, chegando, ao final de um processo de aprendizado, a executar tarefas quase sem erro algum.
Uma rede neural não precisa de memória para executar suas tarefas aprendidas. A grande vantagem disso é que para executar tarefas, uma rede neural não precisa guardar instruções de comando e executá-las de forma lógica, como num computador tradicional. Ao invés disso, a rede aprende o que é preciso ser feito e executa a função. Dessa forma, uma mesma rede, se ela for capacitada com os neurônios necessários para tal, é capaz de executar várias funções diferentes, independente de espaço de memória.

Isso porque em uma mesma rede é possível criar várias regras diferentes. No exemplo acima, podemos ainda ensinar a rede a detectar bolas amarelas ou bastões vermelhos, utilizando os mesmos neurônios e as mesmas regras. A diferença é q precisaríamos capacitá-las com neurônios de saída extras para cada nova informação que queremos dela e outros neurônios ocultos para facilitar o processamento. Mas isso não implica em criarmos novas regras ou novas programações, somente em ensinar o sistema e executar novas funções utilizando a mesma rede existente.
Em sistemas mais elaborados, uma rede neural consegue aprender qualquer função que uma pessoa possa saber e não há limites para a quantidade de informação que ela possa processar.

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.

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”.

Inteligência Artificial (IA)

As redes neurais são principalmente utilizadas para criar sistemas de inteligência artificial. Os computadores tradicionais podem fazer isso de forma simulada, mas sua principal função é seguir regras ou comandos oferecidos pelo usuário. Assim, a inteligência artificial gerada por computadores tradicionais são simulações de inteligência real, ou seja, apresentam respostas segundo regras e comandos de um programa pré-estabelecido.
Um sistema inteligente é capaz de resolver problemas de forma eficaz. Acontece que a verdadeira inteligência não é a capacidade de seguir regras, mas sim a capacidade de resolver problemas. Mais inteligente é o sistema que consegue resolver problemas diferentes de forma eficaz. Baseado nisso, temos então duas formas diferentes de inteligência artificial, ou IA, a simbólica e a conexionista.

A IA simbólica simula o comportamento inteligente. Ela é baseada em uma programação que indica quais respostas devem ser dadas diante de determinados comandos. Essa IA é a utilizada em programas “inteligentes”, como corretores ortográficos ou simuladores dos mais variados. A questão é que esses programas dificilmente aprendem coisas novas, somente se você incluir novas programações. Essa é a IA mais comum.
A IA conexionista simula a estrutura do cérebro, pois acredita-se que a inteligência está na forma de processar informação e não na informação processada. Como o sistema do cérebro é inteligente, usa-se tal modelo para desenvolver IA. Assim, os sistemas de IA baseados em redes neurais conseguem aprender com seus erros e executar diferentes processos, independente de instruções.

As Redes Neurais e o Perceptron

Não só pensando nisso, mas principalmente tentando desenvolver melhores formas de inteligência artificial, alguns pesquisadores começaram a estudar o funcionamento dos neurônios. Em especial, Frank Rosenblatt pesquisou a estrutura da retina humana. Ela é composta por vários neurônios sensoriais, responsáveis por perceber as cores e as formas. Cada um desses neurônios transmite uma resposta em rede para vários outros neurônios que então enviam suas informações para o cérebro para finalmente processá-las e transformá-las em imagens. Essa é a base de funcionamento dos neurônios artificiais, que levaram ao desenvolvimento do Perceptron.

No início, um computador ocupava uma grande sala de trabalho.

O Perceptron foi à primeira máquina criada para processamento de informação feita sobre o sistema de redes neurais. Ele foi o primeiro sistema de processamento pequeno o suficiente para ser usado por uma pessoa, diferente dos computadores da época que ocupavam salas enormes com seus processadores. Ele foi considerada por muitos como o pai do computador pessoal.
Atualmente, o Perceptron é conhecido como a forma de processamento de informação baseado em redes neurais. Ele é construído com neurônios artificiais, formando redes de processamento. Uma rede dessas é chamada de Perceptron.

Diferenças entre Computador e Perceptron


A melhor forma de compreender a singularidade desse sistema é compará-lo ao computador. Talvez a característica mais marcante de um Perceptron seja que ele não executa programas, mas os aprende. Em um computador, instala-se instruções de comando que formam um programa. Em um perceptron, treina-o para executá-los. As informações não são gravadas, mas aprendidas.
Um computador funciona a partir da execução de operações lógicas, rodando programas que podem ser reduzidos à combinação de procedimentos de lógica booleana. Por sua vez, um perceptron é capaz de processos não-lógicos, comparações e transformações, pois seus sistema não é condicionado a um funcionamento lógico e linear.

Essas são as principais diferenças entre um computador e um perceptron.

Ao mesmo tempo, um perceptron é capaz de múltiplos processamentos e testes de hipóteses em paralelo, enquanto computadores funcionam com um processamento em cada circuito de cada vez. Isso faz com que a velocidade de processamento do perceptron seja muito maior do que a de um computador tradicional.
Finalmente, um computador está preso à sua programação. Ele só executa aquilo que foi programado. Enquanto isso, um perceptron pode perceber novas possibilidades, aprender com as tentativas e erros e apresentar novos resultados.

Computador neuromórfico

O professor Robinson Pino e seus colegas da Universidade de Boise, nos Estados Unidos, deram um passo importante rumo à construção do seu apregoado computador neuromórfico.
O circuito foi construído com memristores, componentes eletrônicos capazes de se "lembrar" das correntes elétricas que passaram por eles, o que faz com que sejam chamados de sinapses artificiais.
Os cientistas acreditam que essas sinapses artificiais poderão ser usadas para construir computadores cujo funcionamento se assemelhe ao funcionamento do cérebro humano.

Sinapses artificiais

O grupo do professor Pino construiu um processador neuromórfico que é basicamente uma rede neural formada por 100 memristores, ou 100 sinapses artificiais.
Os memristores foram construídos pela própria equipe, à base de calcogeneto, contendo Ge2Se3, e prata, uma inovação nessa área ainda nascente.
Os resultados demonstram que a rede neural de memristores pode ser programada para cada estado memristivo individual - eles programaram três estados diferentes de cada sinapse artificial.
Embora ainda esteja em seus estágios iniciais de desenvolvimento, essa capacidade de programação em multi-estados é altamente promissora, apontando para uma abordagem potencialmenet muito mais eficiente do que, por exemplo, os primeiros processadores cognitivos da IBM, apresentados há pouco mais de um mês.

Conclusão

Sabe-se que nenhuma máquina é capaz de superar a inteligência humana. Muitas são capazes de vários processamentos por segundo, de calcular inúmeras possibilidades, mas nenhum computador é capaz de aprender com seus erros. Já os perceptrons nos mostram que podemos construir máquinas realmente inteligentes, capazes de aprender, de errar, de melhorar e principalmente, que não são presos a programações que podem falhar. O que limita uma máquina dessas é sua própria experiência.

Aliado a isso e ao uso de nanotecnologia, podemos esperar grandes avanços nos computadores e na forma como entendemos a mente humanao. O que virá disso tudo, só o futuro pode dizer.

Referências


Chip neural: rumo ao computador neuromórfico

Acessado dia 19 de Novembro de 2016

Saiba como as redes neurais deixam os computadores 'inteligentes'

Acessado dia 19 de Novembro de 2016

O que são Redes Neurais?

Acessado dia 19 de Novembro de 2016

Comentários