// Neural Networks

Prós e Contras da Arquitetura de Rede Neural

Nos últimos anos, as redes neurais tornaram-se uma espécie de nova eletricidade - uma tecnologia revolucionária que penetrou em todas as esferas da atividade humana. E isso não é surpreendente, já que soluções tecnológicas baseadas em redes neurais...

Índice

#1. O que são redes neurais
#2. Como funciona uma rede neural
#3. Principais tipos de redes neurais
#4. Benefícios das Redes Neurais
#5. Desvantagens das redes neurais
#6. Breve conclusão

Nos últimos anos, as redes neurais tornaram-se uma espécie de nova eletricidade - uma tecnologia revolucionária que penetrou em todas as esferas da atividade humana. E isso não é surpreendente, já que soluções tecnológicas baseadas em redes neurais podem realizar uma gama extremamente ampla de tarefas - desde tratar as doenças mais complexas até recomendar uma série de TV para a noite. No entanto, essa tecnologia não é perfeita, tem seus prós e contras que você precisa conhecer e considerar se decidir criar seu produto baseado em redes neurais.

O que são redes neurais

Redes neurais (RNs), ou redes neurais artificiais (RNAs) é um nome generalizado para modelos matemáticos e programas construídos sobre o princípio de organização e funcionamento de redes neurais biológicas - redes de neurônios no cérebro humano. A principal característica das redes neurais artificiais, por causa das quais se tornaram tão populares, é a capacidade de aprender e agir com base em experiências passadas, e não apenas de acordo com algoritmos pré-escritos.

As redes neurais são muitas vezes percebidas como algo novo e revolucionário. No entanto, os desenvolvimentos nesta área começaram na primeira metade do século passado, depois que Warren McCulloch e Walter Pitts em 1943 conseguiram criar o primeiro modelo matemático dos princípios do neurônio. Em seu trabalho "Representação de Eventos em Redes de Nervos e Autômatos Finitos", os cientistas descreveram na forma de funções um modelo matemático simples que funciona como um neurônio biológico: recebe entrada, processa e retorna o resultado.

McCulloch-Pitts neuron model

McCulloch - modelo de neurônio de Pitts. Fonte

Em 1957, Frank Rosenblatt, usando o trabalho de Warren McCulloch e Walter Pitts, bem como Donald Hebb (propôs o primeiro algoritmo de aprendizagem), inventou o perceptron, um autômato de percepção e reconhecimento. E embora esse autômato tenha sido concebido como uma máquina, não como um programa, acredita-se que seja ele a primeira rede neural artificial. Ao mesmo tempo, o próprio termo "perceptron" começou a ser usado como sinônimo da rede neural artificial mais simples.

O próximo avanço significativo no campo das RNAs não ocorreu até 60 anos depois: em 2006, Geoffrey Hinton descreveu algoritmos de aprendizado profundo para RNAs multicamadas baseados na máquina restrita de Boltzmann, ou RBM (máquina restrita de Boltzmann). Ao mesmo tempo, Hinton também formulou o conceito básico de treinamento de algoritmos de redes neurais: para obter uma solução pronta e de trabalho rápido para resolver um problema específico, NN precisa ser treinado em muitos exemplos reais (por exemplo, fotografias de vários gatos em poses diferentes e em contextos diferentes).

Você precisa desenvolver um projeto de sucesso?

Obtenha uma consulta rápida.

Solicite uma cotação

Neural network architecture (left) and deep learning neural network (right). The circles represent artificial neurons, the lines represent the network of connections between them.

Arquitetura de uma rede neural (esquerda) e uma rede neural de aprendizado profundo (direita). Os círculos representam neurônios artificiais, as linhas representam a rede de conexões entre eles. Fonte

Graças ao aprendizado profundo (e big data), as RNAs se tornaram verdadeiramente treináveis. Assim, já em 2012, a rede neural conseguiu superar os humanos no reconhecimento de imagens dentro da competição ImageNet. E em 2015, o AlphaGo se tornou o primeiro programa do mundo a vencer um enxadrista profissional sem handicap (incondicionalmente).

Como funciona uma rede neural

A arquitetura de uma rede neural artificial consiste em três ou mais camadas: entrada, saída e um ou mais nós ocultos. Atualmente , o aprendizado profundo é usado por padrão para criar um NN , portanto, geralmente há vários nós ocultos. Cada camada NN consiste em unidades de computação (“neurônios”) que recebem dados da camada anterior, processam-nos realizando cálculos simples nela e passam esses dados para a próxima camada.

A camada de entrada aceita entrada em vários formatos diferentes, como brilho, contraste, cor, linhas ou outras características de uma imagem se for uma fotografia. A camada oculta é responsável por encontrar padrões e recursos ocultos por meio de cálculos simples. A camada de saída, por assim dizer, soma todos os cálculos e emite uma resposta na forma de conclusão, ação e/ou previsão. Se a resposta estiver correta ou simplesmente acima de um certo limite de “correção”, a rede neural, por assim dizer, “amplifica” os cálculos (“neurônios”) que a forneceram. E vice versa.

Funciona da seguinte forma. Digamos que você precise de um programa para reconhecer se uma foto contém um cachorro ou um lobo. Em seguida, sua rede neural irá: analisar a imagem em diferentes detalhes usando a camada de entrada, procurar sinais de cães e gatos entre esses detalhes usando camadas ocultas e resumir (há um gato ou lobo na foto) usando a camada de saída.

A simplified model of artificial neural network operation

Um modelo simplificado do funcionamento de uma rede neural artificial. Fonte

É claro que, para treinar nossa rede neural para procurar cães ou lobos em fotografias, precisaremos de um grande número de fotos com e sem cães e lobos - quanto mais houver, mais eficaz será o treinamento NN.

Principais tipos de redes neurais

Dependendo da arquitetura, as redes neurais artificiais são divididas em vários tipos, que são usados para diferentes propósitos. Abaixo estão os tipos mais comuns de redes neurais que você provavelmente encontrará se quiser desenvolver sua solução com base em NNs.

Perceptron . A rede neural mais antiga criada por Frank Rosenblatt em 1957. Consiste em apenas um neurônio e é a forma mais simples de uma rede neural artificial.

Frank Rosenblatt's Perceptron.

Perceptron de Frank Rosenblatt. Fonte

Redes neurais de feedforward . Essas redes consistem em uma camada de entrada, uma camada de saída e uma ou mais camadas ocultas. E apesar do fato de que eles também são chamados de perceptrons multicamadas (MLPs), é importante notar que eles consistem em neurônios sigmóides, não perceptrons (os primeiros são melhores no processamento de problemas não lineares). As redes neurais feedforward são usadas para visão computacional, processamento de linguagem natural e outras tarefas semelhantes.

Neural network architecture with direct connection

A arquitetura de uma rede neural com feedforward. Fonte

Redes Neurais Recorrentes (RNN). Eles são identificados por loops de feedback. Este tipo de redes neurais são usadas para tarefas ordinais ou temporais, por exemplo, para prever resultados futuros: previsões do mercado de ações ou previsões de vendas da cadeia de lojas. Além disso, eles também se saem bem com tradução de idiomas, processamento de linguagem natural (NLP) ou reconhecimento de fala, e é por isso que estão incluídos no Siri e no Google Tradutor.

The architecture of recurrent neural networks.

Arquitetura de redes neurais recorrentes. Fonte

Redes neurais convolucionais (ConvNets ou CNNs). Consiste em uma camada convolucional, uma camada mesclada e uma camada totalmente conectada (FC). Essas redes neurais usam princípios de álgebra linear (como multiplicação de matrizes) para encontrar padrões ocultos em uma imagem, vídeo ou áudio. Além disso, as CNNs trabalham com esses dados a uma velocidade incrível, por isso são frequentemente usadas para tarefas em que você precisa reconhecer imagens e imagens em tempo real.

Benefícios das Redes Neurais

Auto-aprendizagem . Esta é a principal característica e vantagem das redes neurais artificiais, tão populares entre programadores e empresários de todo o mundo. Você apenas cria um algoritmo básico, então o alimenta com exemplos para treinar (por exemplo, fotos de pessoas, se você quiser que sua rede neural procure pessoas em uma foto) e veja os resultados. Ao mesmo tempo, o próprio algoritmo decide como atingir o objetivo desejado, muitas vezes encontrando soluções que não são óbvias (para as pessoas).

Além disso, a rede neural não é apenas autodidata, ela é projetada para aprender continuamente e melhorar seus resultados. Uma vez que o sistema é treinado, o programa ou aplicativo torna-se mais amigável à medida que é usado. É por isso que o sistema de recomendação do Google Translate, Netflix ou TikTok melhora a cada ano.

Filtragem de Ruído Eficiente em Dados . Imagine qualquer lugar razoavelmente barulhento, como um mercado ou um estádio. As pessoas estão conversando, a música está tocando alto, os carros estão passando em algum lugar e os pássaros estão gritando - há barulho em todos os lugares, mas, apesar disso, você pode se comunicar calmamente com as pessoas próximas. Seus ouvidos captam toneladas de sons desnecessários, mas seu cérebro os filtra e percebe apenas o que seu interlocutor diz. Essa propriedade também é encontrada em redes neurais artificiais. Após o treinamento, eles são capazes de isolar apenas as informações de que precisam de um enorme fluxo contínuo de dados, ignorando todos os ruídos estranhos.

Esse é um recurso muito útil se você precisar procurar padrões em grandes quantidades de dados heterogêneos, como pesquisa médica não clínica, previsões do tempo, análise de mercado econômico ou tradução de texto.

Adaptando-se à mudança . Outra vantagem das redes neurais artificiais é a capacidade de se adaptar às mudanças nos dados de entrada. Como analogia, podemos dar um exemplo com a atualização de aplicativos. Digamos que você está offline há muito tempo e, durante esse período, o Instagram e o TikTok foram atualizados com alguns novos recursos. Depois de alguns minutos para ler as instruções, você estará familiarizado com todos os novos recursos e continuará usando o Instagram e o TikTok. O mesmo acontecerá com as redes neurais. Após um curto período de adaptação às mudanças, continuará a trabalhar com a mesma eficiência.

Tolerância a falhas . Soluções baseadas em redes neurais permanecem operacionais mesmo após a falha de parte dos neurônios. Sim, isso pode afetar a precisão e/ou velocidade do algoritmo, mas suas respostas ainda serão lógicas, racionais e corretas. Esta é uma propriedade muito útil se um dispositivo com uma rede neural a bordo deve funcionar em um ambiente agressivo (zonas radioativas, em guerra, em edifícios destruídos ou no espaço).

Grandes oportunidades . Outra vantagem importante das RNAs é sua ampla gama de aplicações. As redes neurais funcionam como um cérebro humano, o que significa que, uma vez treinadas, elas podem realizar uma variedade de tarefas em diversas áreas, desde aumentar as conversões em uma loja online até encontrar planetas semelhantes à Terra no espaço. O principal é que existem conjuntos suficientes de dados reais ou sintéticos para treinamento.

Velocidade de trabalho . Outra vantagem importante das redes neurais é sua enorme velocidade, tanto em comparação com algoritmos convencionais de computador quanto em comparação com o cérebro humano. As redes neurais artificiais não se cansam e não têm pausas para o almoço. A velocidade de seu trabalho é determinada apenas pelo poder computacional disponível para eles (placa de vídeo, servidor em nuvem ou data center). Isso geralmente significa que eles emitem uma solução quase instantaneamente.

Desvantagens das redes neurais

O problema da caixa preta . Talvez a falha mais notória de todas as NNs seja sua natureza de "caixa preta". Simplificando, você não sabe como e por que sua rede neural chega a um determinado resultado. Por exemplo, quando você coloca uma foto de um gato em uma rede neural e ela diz que é um avião, é muito difícil entender o que fez chegar a essa conclusão. Você simplesmente não sabe o que está acontecendo dentro do "cérebro" da rede neural.

Neither the creators of neural networks nor other experts can say how they come to one conclusion or another, so we can say there is a magic going on

Nem os criadores de redes neurais nem outros especialistas podem dizer como chegaram a esta ou aquela conclusão, então podemos dizer que a “mágica” acontece ali. Fonte

Este é um grande problema para aprender como uma rede neural funciona. E também é um grande desafio integrar essa tecnologia em algumas áreas de negócios. Por exemplo, é por esse motivo que muitos bancos não usam NN para prever a qualidade de crédito - eles precisam explicar aos clientes por que não receberam um empréstimo, caso contrário, uma pessoa pode se sentir injustamente ofendida ou até discriminada com base em raça, gênero e / ou nacionalidade (esses casos com IA já aconteceram e mais de uma vez).

O mesmo se aplica a sites como YouTube, Facebook, TikTok ou Quora. Se um algoritmo de aprendizado de máquina excluir uma conta de usuário, a plataforma terá que explicar o motivo. É improvável que ele fique satisfeito com a frase: "O computador nos disse isso". Isso está repleto de ações judiciais.

Natureza probabilística das respostas . Mas isso não é tudo. Se você alimentar uma imagem em uma rede neural e perguntar: “Isso é um gato, um cachorro ou outra coisa?”, você provavelmente quer que a resposta seja: é um gato, um cachorro ou outra coisa? . Mas, na realidade, mesmo uma rede neural muito bem treinada não produzirá resultados tão limpos. Muito provavelmente, será algo como: gato - 0,97, cachorro - 0,01, outra coisa - 0,02. Esses resultados podem ser interpretados como probabilidades. No nosso caso, isso significa que a probabilidade de a foto mostrar um gato é de 97%, para um cachorro essa probabilidade é de 1%, para outra coisa - 2%.

An example of a black response of an artificial neural network.

Um exemplo de uma resposta "caixa preta" de uma rede neural artificial. Fonte

Quando você tem funções interpretadas por humanos, é muito mais fácil entender a causa do erro. Em comparação, algoritmos como árvores de decisão são fáceis de interpretar. Isso é importante porque em muitas áreas, a interpretabilidade é crítica. Você pode imaginar o CEO de uma grande empresa, tomando milhões de dólares em decisões, que tem que tomar uma decisão importante, mas não pode, porque a IA não deu uma resposta definitiva para uma pergunta aparentemente simples. Ou você pode imaginar um general que tem que decidir sobre um ataque de míssil, mas não pode, pois a foto com probabilidade de 1% ou 10% pode não ser de terroristas, mas de crianças pequenas.

Duração do desenvolvimento . Embora existam muitas bibliotecas como NeuroLab, ffnet, SciPy, TensorFlow, Scikit-Neural Network, Lasagne, pyrenn, NumPy, Spark MLlib, Scikit-Learn, Theano, PyTorch, Keras que ajudam a economizar tempo e esforço ao desenvolver redes neurais artificiais , nem sempre são aplicáveis. Por exemplo, se você precisar criar alguma solução nova ou bastante complexa que exija mais controle sobre os detalhes do algoritmo.

An algorithm for developing artificial neural networks.

Algoritmo para o desenvolvimento de redes neurais artificiais. Fonte

Além disso, quanto mais exclusiva e complexa for sua tarefa, mais tempo e recursos você precisará gastar. E não se trata apenas de escrever o código do algoritmo da rede neural, mas também de coletar dados para seu treinamento. Muitas vezes, esses dados são muito difíceis de coletar, por exemplo, se são informações sobre acidentes de carro ou sobre a operação de um reator nuclear em condições críticas. Em alguns casos, o processo de desenvolvimento pode ser acelerado e mais barato com a ajuda de dados sintéticos, mas eles estão longe de ser sempre aplicáveis, e tais dados sempre serão muito condicionais - correspondendo apenas aproximadamente à realidade.

A quantidade de dados . A próxima desvantagem das redes neurais é que seu treinamento geralmente requer muito mais dados do que os algoritmos tradicionais de aprendizado de máquina. E, como dissemos antes, se forem dados exclusivos ou difíceis de coletar, isso pode ser um sério desafio para os desenvolvedores. E muitas vezes muito mais do que escrever o código de uma rede neural artificial.

É por isso que agora novas redes neurais artificiais (soluções de IA) estão sendo desenvolvidas principalmente por grandes empresas (Google, Microsoft, IBM), que têm não apenas muito dinheiro e acesso a programadores de alta classe, mas também big data. As pequenas e médias empresas não são concorrentes aqui.

Computacionalmente caro . Algoritmos modernos de aprendizado profundo baseados em redes neurais artificiais exigem várias semanas, e às vezes anos, para aprender do zero. Enquanto os algoritmos de aprendizado de máquina mais tradicionais exigem muito menos tempo para treinar: de vários minutos a várias horas. Por exemplo, uma rede neural com 50 camadas será muito mais lenta do que um algoritmo de floresta aleatória (um método de aprendizado conjunto para classificação, regressão e outros problemas) com apenas 10 árvores.

Isso novamente complica o desenvolvimento de soluções baseadas em redes neurais e complica sua integração nos negócios, e ainda mais no setor sem fins lucrativos.

Breve conclusão

As redes neurais artificiais são ótimas para algumas tarefas e não tão boas para outras. No entanto, poucas pessoas entendem quando podem realmente agregar valor real ao seu negócio e quando é melhor recorrer a outras opções para implementar a inteligência artificial. A Merehead é uma empresa assim. Somos versados no desenvolvimento de soluções baseadas em inteligência artificial, aprendizado de máquina e redes neurais, portanto, se você planeja lançar um projeto semelhante, entre em contato conosco, teremos prazer em ajudá-lo.

Feedback de nossos clientes

Desenvolvimento de um ecossistema complexo baseado na tecnologia blockchain

Você tem perguntas?

Seu nome *
Seu email *
Seu número de telefone
Mensagem
 

Você tem perguntas? Você pode nos escrever.

Telegram

Desde 2015, ajudamos a trazer sua ideia para o produto de qualidade.

Assine a nossa newsletter