O que são redes neurais e como elas funcionam?

Redes neurais são a próxima grande coisa quando se trata de cálculos pesados ​​e algoritmos inteligentes. Veja como eles funcionam e por que eles são tão incríveis.

Redes neurais são a próxima grande coisa quando se trata de cálculos pesados ​​e algoritmos inteligentes.  Veja como eles funcionam e por que eles são tão incríveis.
Propaganda

Se você acompanhar as novidades da tecnologia, você provavelmente se deparará com o conceito de redes neurais (também conhecidas como redes neurais).

Em 2016, por exemplo, a rede neural AlphaGo do Google venceu um dos melhores jogadores profissionais do mundo em uma série de 4 a 1. O YouTube também anunciou que estaria usando redes neurais para entender melhor seus vídeos. O YouTube usará redes neurais para entender os vídeos. O YouTube usará as redes neurais para entender vídeos. Pesquisar no YouTube pode ser frustrante, porque o YouTube não vê os vídeos da mesma forma. uma pessoa faz. Recentemente, o Google registra uma patente que poderia mudar isso. Consulte Mais informação . Dezenas de outras histórias podem vir à mente.

Mas o que exatamente é uma rede neural? Como funciona? E por que é tão popular no aprendizado de máquina?

Um computador como um cérebro

Os neurocientistas modernos costumam discutir o cérebro como um tipo de computador. As redes neurais visam fazer o oposto: construir um computador que funcione como um cérebro.

É claro que só temos uma compreensão superficial das funções extremamente complexas do cérebro, mas ao criar uma simulação simplificada de como o cérebro processa os dados, podemos construir um tipo de computador que funciona de maneira muito diferente de um computador padrão.

Processadores de computador processam dados em série (“em ordem”). Eles executam muitas operações em um conjunto de dados, um de cada vez. O processamento paralelo (“processando vários fluxos de uma só vez”) acelera significativamente o computador usando vários processadores em série.

Na imagem abaixo, o exemplo de processamento paralelo requer cinco processadores diferentes:

processamento paralelo serial vs.
Crédito de imagem: ExplainThatStuff

Uma rede neural artificial (assim chamada para distingui-la das redes neurais reais no cérebro) tem uma estrutura fundamentalmente diferente. Está altamente interligado. Isso permite processar dados muito rapidamente, aprender com esses dados e atualizar sua própria estrutura interna para melhorar o desempenho.

O alto grau de interconexão, no entanto, tem alguns efeitos surpreendentes. Por exemplo, redes neurais são muito boas em reconhecer padrões obscuros em dados.

A capacidade de aprender

A capacidade de uma rede neural de aprender é a sua maior força. Com a arquitetura de computação padrão, um programador precisa desenvolver um algoritmo que informe ao computador o que fazer com os dados recebidos para garantir que o computador produza a resposta correta.

Uma resposta de entrada-saída pode ser tão simples quanto “quando a tecla A é pressionada, exibe 'A' na tela” ou é tão complicado quanto executar estatísticas complexas. Redes neurais, por outro lado, não precisam do mesmo tipo de algoritmo. Através de mecanismos de aprendizagem, eles podem essencialmente projetar seus próprios algoritmos. 4 Algoritmos de aprendizado de máquina que moldam sua vida Você pode não perceber, mas o aprendizado de máquina já está ao seu redor, e pode exercer um surpreendente grau de influência. sobre sua vida. Não acredita em mim? Você pode se surpreender. Leia mais para garantir que eles funcionem corretamente.

É importante notar que, como as redes neurais são programas de software escritos em máquinas que usam hardware de processamento serial padrão, a tecnologia atual ainda impõe limites. Realmente construir uma versão de hardware de uma rede neural é outro problema inteiramente.

De neurônios a nós

Agora que estabelecemos as bases para o funcionamento das redes neurais, podemos começar a olhar para algumas das especificidades. A estrutura básica de uma rede neural artificial é semelhante a esta:

arquitetura de rede neural

Cada um dos círculos é chamado de "nó" e simula um único neurônio. À esquerda estão os nós de entrada, no meio estão os nós ocultos e à direita os nós de saída.

Em termos muito básicos, os nós de entrada aceitam valores de entrada, que podem ser um binário 1 ou 0, parte de um valor de cor RGB, o status de uma peça de xadrez ou qualquer outra coisa. Esses nós representam as informações que fluem para a rede.

Cada nó de entrada é conectado a um número de nós ocultos (às vezes para cada nó oculto, às vezes para um subconjunto). Os nós de entrada obtêm as informações fornecidas e os transmitem para a camada oculta.

Por exemplo, um nó de entrada pode enviar um sinal ("fogo", no jargão da neurociência) se receber um 1 e permanecer inativo se receber um zero. Cada nó oculto tem um limite: se todas as suas entradas somadas atingirem um determinado valor, ele será disparado.

De sinapses a conexões

Cada conexão, o equivalente a uma sinapse anatômica, também recebe um peso específico, o que permite que a rede enfatize mais a ação de um nó específico. Aqui está um exemplo:

peso líquido neural

Como você pode ver, o peso da conexão B é maior que o das conexões A e C. Digamos que o nó oculto 4 só será acionado se receber uma entrada total de 2 ou maior. Isso significa que, se 1 ou 3 dispararem sozinhos, 4 não serão acionados, mas 1 e 3 juntos acionariam o nó. O nó 2 também pode acionar o nó por conexão B.

Vamos pegar o tempo como um exemplo prático. Digamos que você projete uma rede neural simples para determinar se deve haver um aviso de tempestade de inverno.

Usando as conexões e pesos acima, o nó 4 só pode disparar se a temperatura estiver abaixo de 0 F e os ventos estiverem acima de 30 MPH, ou se disparar se houver mais de 70% de chance de neve. A temperatura seria alimentada no nó 1, ventos no nó 3 e a probabilidade de nevar no nó 2. Agora, o nó 4 pode levar tudo isso em consideração ao determinar qual sinal enviar para a camada de saída.

Melhor que a lógica simples

Obviamente, essa função poderia simplesmente ser executada com portas lógicas simples de E / OU. Mas redes neurais mais complexas, como a abaixo, são capazes de operações significativamente mais complexas.

exemplo de rede neural
Crédito de imagem: redes neurais e aprendizagem profunda por Michael A. Nielsen

Os nós da camada de saída funcionam da mesma forma que os da camada oculta: os nós de saída somam a entrada da camada oculta e, se atingirem um determinado valor, os nós de saída são acionados e enviam sinais específicos. No final do processo, a camada de saída estará enviando um conjunto de sinais que indica o resultado da entrada.

Embora a rede mostrada acima seja simples, as redes neurais profundas podem ter muitas camadas ocultas e centenas de nós.

rede neural profunda
Crédito de imagem: redes neurais e aprendizagem profunda por Michael A. Nielsen

Correção de erros

O processo, até agora, é relativamente simples. Mas onde as redes neurais realmente brilham está no aprendizado. A maioria das redes neurais usa um processo chamado retropropagação, que envia sinais para trás através da rede.

Antes de os programadores implementarem uma rede neural, eles a executam através de uma fase de treinamento na qual recebe um conjunto de entradas com resultados conhecidos. Por exemplo, um programador pode ensinar uma rede neural para reconhecer imagens Use seu smartphone para identificar qualquer coisa com CamFind Use seu smartphone para identificar qualquer coisa com CamFind Este aplicativo realmente pode identificar praticamente qualquer objeto que você jogue nele. Isso não é apenas legal, mas também tem um monte de usos práticos! Consulte Mais informação . A entrada poderia ser uma imagem de um carro e a saída correta seria a palavra "carro".

O programador fornece a imagem como entrada e vê o que sai dos nós de saída. Se a rede responder com “avião”, o programador informará ao computador que está incorreto.

A rede então faz ajustes em suas próprias conexões, alterando os pesos dos diferentes links entre os nós. Essa ação é guiada por um algoritmo de aprendizado específico adicionado à rede. A rede continua a ajustar os pesos de conexão até fornecer a saída correta.

Isso é uma simplificação, mas as redes neurais podem aprender operações altamente complexas usando princípios semelhantes.

Melhoria contínua

Mesmo depois do treinamento, a retropropagação continua - e é aí que as redes neurais ficam bem legais. Eles continuam aprendendo enquanto são usados, integrando novas informações e ajustando os pesos das diferentes conexões, tornando-se cada vez mais eficazes e eficientes na tarefa para a qual foram projetados.

Isso pode ser tão simples quanto o reconhecimento de imagens ou tão complexo quanto jogar o Go.

Desta forma, as redes neurais estão sempre mudando e melhorando. E isso pode ter efeitos surpreendentes, resultando em redes que priorizam coisas que um programador não teria pensado em priorizar.

Além do processo descrito acima, que é chamado de aprendizado supervisionado, há também outro método: aprendizado não supervisionado .

Nessa situação, as redes neurais tomam uma entrada e tentam recriá-la exatamente em sua saída, usando a retropropagação para atualizar suas conexões. Isso pode soar como um exercício infrutífero, mas, dessa forma, as redes aprendem a extrair recursos úteis e a generalizar esses recursos para melhorar seus modelos.

Questões de Profundidade

A retropropagação é uma maneira muito eficaz de ensinar redes neurais… quando elas têm apenas algumas camadas de profundidade. À medida que o número de camadas ocultas aumenta, a eficácia da retropropagação diminui. Este é um problema para redes profundas. Usando a retropropagação, eles geralmente não são mais eficazes do que redes simples.

Os cientistas criaram uma série de soluções para esse problema, cujas especificidades são bastante complicadas e estão além do escopo desta parte introdutória. O que muitas dessas soluções tentam fazer, em termos simples, é diminuir a complexidade da rede, treinando-a para “compactar” os dados.

poda de rede neural
Crédito de imagem: Song Han

Para fazer isso, a rede aprende a extrair um número menor de recursos de identificação da entrada, tornando-se mais eficiente em seus cálculos. Com efeito, a rede está fazendo generalizações e abstrações, da mesma forma que os humanos aprendem.

Após esse aprendizado, a rede pode remover nós e conexões que julgar menos importantes. Isso torna a rede mais eficiente e o aprendizado se torna mais fácil.

Aplicações de Rede Neural

Assim, as redes neurais simulam como o cérebro aprende usando várias camadas de nós - entrada, ocultação e saída - e são capazes de aprender em situações supervisionadas e não supervisionadas. As redes complexas são capazes de fazer abstrações e generalizar, tornando-as mais eficientes e mais capazes de aprender.

Para que podemos usar esses sistemas fascinantes?

Em teoria, podemos usar redes neurais para quase tudo. E você provavelmente já as usou sem perceber. Eles são muito comuns na fala e no reconhecimento visual, por exemplo, porque podem aprender a identificar traços específicos que os sons ou imagens têm em comum.

Então, quando você perguntar Siri 8 coisas que você provavelmente não percebeu Siri poderia fazer 8 coisas que você provavelmente não realizou Siri poderia fazer Siri tornou-se um dos recursos definidores do iPhone, mas para muitas pessoas, nem sempre é o mais útil. Enquanto isso é devido às limitações de reconhecimento de voz, a estranheza de usar ... Leia mais onde está o posto de gasolina mais próximo, o seu iPhone está colocando o seu discurso através de uma rede neural para descobrir o que você está dizendo. Pode haver outra rede neural que aprenda a prever os tipos de coisas que você provavelmente pedirá.

ícone siri

Os carros autônomos podem usar redes neurais para processar dados visuais, seguindo as regras da estrada e evitando colisões. Robôs de todos os tipos podem se beneficiar de redes neurais que os ajudam a aprender a executar tarefas com eficiência. Os computadores podem aprender a jogar jogos como xadrez, Go e clássicos Atari . Se você já conversou com um chatbot, há uma chance de usar uma rede neural para oferecer respostas apropriadas.

A pesquisa na Internet pode se beneficiar muito das redes neurais, já que o modelo de processamento paralelo altamente eficiente pode gerar rapidamente muitos dados. Uma rede neural também pode aprender seus hábitos para personalizar seus resultados de pesquisa ou prever o que você vai procurar em um futuro próximo. Esse modelo de previsão obviamente seria muito valioso para os profissionais de marketing (e para qualquer outra pessoa que precisasse prever um comportamento humano complexo).

Reconhecimento de imagem, reconhecimento óptico de caracteres As 5 melhores ferramentas de OCR para extrair texto de imagens As 5 melhores ferramentas de OCR para extrair texto de imagens Quando você tem resmas de papel, como converter todo o texto impresso em algo que um programa digital será capaz de reconhecer e indexar? Mantenha um bom software de OCR por perto. Leia mais, previsão do mercado de ações, localização de rotas, processamento de big data, análise de custos médicos, previsão de vendas, videogames AI… as possibilidades são quase infinitas. A capacidade das redes neurais de aprender padrões, fazer generalizações e prever com sucesso o comportamento as torna valiosas em inúmeras situações.

O futuro das redes neurais

As redes neurais avançaram de modelos muito simples para simulações de aprendizado altamente complexas. Eles estão em nossos telefones, nossos tablets e executam muitos dos serviços da web que usamos. Existem muitos outros sistemas de aprendizado de máquina por aí.

Mas as redes neurais, devido à sua similaridade (de uma forma muito simplificada) com o cérebro humano, são algumas das mais fascinantes. À medida que continuamos a desenvolver e refinar modelos, não há como saber do que eles serão capazes.

Você conhece algum uso interessante de redes neurais? Você tem experiência com eles mesmo? O que você acha mais interessante sobre essa tecnologia? Compartilhe seus pensamentos nos comentários abaixo!

In this article