Uma Rede Neural Profunda (DNN) é uma técnica de aprendizagem de máquinas que permite a um computador, através da sua formação, realizar tarefas que seriam muito difíceis de realizar utilizando técnicas convencionais de programação. Os algoritmos de redes neurais foram inspirados pelo cérebro humano e suas funções: tal como a nossa mente humana, foi concebida para funcionar não só seguindo uma lista predefinida de regras, mas também prevendo soluções e tirando conclusões com base em iterações e experiências anteriores.
O que é a arquitectura da rede neural?
Uma rede neural é composta por múltiplas camadas de nós que recebem entradas de outras camadas e produzem uma saída até ser alcançado um resultado final. As redes neuronais podem ter qualquer número de camadas escondidas: quanto mais camadas de nós estiverem na rede, maior será a complexidade. Aqui estão diferentes arquitecturas de redes neuronais:
- Redes neurais tradicionais, geralmente compostas por 2 ou 3 camadas ocultas;
- Rede de aprendizagem profunda, que pode ter até 150 camadas escondidas;
Qual é a diferença entre as redes neurais e as redes neurais profundas?
Uma rede neural profunda é um sistema muito mais complicado do que um sistema neural "simples". Uma rede neural é comparável a um jogo de xadrez, e comporta-se de acordo com algoritmos: serão sugeridas tácticas diferentes de acordo com as jogadas e acções do adversário. Esta rede neural será limitada ao que o programador introduzir:
- Como se movem as peças de xadrez;
- O tamanho do tabuleiro de xadrez;
- Diferentes estratégias para diferentes situações;
Uma rede neural que vai além dos dados introduzidos e pode aprender com as experiências anteriores torna-se uma rede neural profunda
No mesmo computador poderia, por exemplo, treinar uma rede neural, depois jogar com ela contra outras pessoas e deixá-la aprender tal como jogava. A partir daí, se uma rede neural pode aprender com diferentes jogadores, pode tornar-se difícil, ou literalmente impossível, derrotar uma rede neural profunda, mesmo para mestres de xadrez.
As redes neurais profundas podem reconhecer comandos de voz, identificar vozes, reconhecer sons e gráficos e fazer muito mais do que uma rede neural. As redes de aprendizagem profunda utilizam "Grandes Dados" juntamente com algoritmos para resolver um problema, e estas redes neuronais profundas podem resolver problemas com pouca ou nenhuma entrada humana.
Como visualizar o trabalho de uma rede neural profunda?
O processo de uma rede neural profunda é melhor compreendido se olharmos para um exemplo. Imagine que tinha centenas de milhares de imagens, algumas das quais com cães, e decidiu que queria escrever um programa de computador para reconhecer cães em imagens.
Tem duas opções. Pode escrever um programa para identificar explicitamente os cães, ou pode escrever um programa que "aprende" a identificar cães.
Decide, insensatamente, tentar fazer o primeiro.
A utilização de técnicas convencionais de programação é longa e difícil, e os resultados nem sempre são precisos
A fim de identificar imagens de cães, cria-se um programa de software usando declarações "se" e "então" onde a probabilidade de estar a olhar para um cão é programada para aumentar cada vez que se identifica um atributo semelhante a um cão, tal como pêlo, orelhas de disquete e uma cauda. No entanto, este tipo de sistema neural é difícil a muitos níveis:
Por exemplo, se um tufo de pixels se assemelhar a uma cauda, aumenta a probabilidade de se estar a olhar para um cão. A sua rede neural profunda precisa de identificar grupos de pixels que correspondam aos atributos semelhantes aos do cão. Mesmo que consiga fazer isso, existem problemas para o seu algoritmo:
- Muitos objectos fotografados partilham alguns dos atributos semelhantes aos de um cão, especialmente fotografias de animais semelhantes. É necessário acrescentar regras;
- Por vezes os atributos estão lá, mas obscurecidos. Os seus algoritmos não os captam;
- Por vezes, os atributos só são importantes quando outros atributos estão presentes. Serão necessárias mais regras de decisão;
A sua classificação falha. Percebe que não pode identificar manualmente o conjunto completo de atributos e muito menos elaborar todas as regras necessárias para lidar com todos estes casos especiais.
Desiste sabiamente e decide tentar esta última abordagem. Utilizar uma rede neural ou, melhor ainda, uma rede neural profunda.
Um modelo de aprendizagem profunda pode poupar-lhe tempo de codificação e oferecer melhores resultados
A rede neural é assim denominada porque existe uma semelhança entre esta abordagem de programação e a forma como o cérebro funciona.
Tal como o cérebro, os algoritmos de redes neurais utilizam uma rede de neurónios ou nós. E tal como o cérebro, estes neurónios são funções discretas (ou pequenas máquinas se quiserem) que absorvem entradas e geram saídas. Estes nós estão dispostos em camadas em que as saídas dos neurónios de uma camada se tornam as entradas para os neurónios da camada seguinte até os neurónios da camada exterior da rede gerarem o resultado final.
Existem portanto camadas de neurónios com cada neurónio individual a receber entradas muito limitadas e a gerar saídas muito limitadas, tal como no cérebro. A primeira camada (ou camada de entrada) de neurónios absorve as entradas e a última camada de neurónios (ou camada de saída) na saída da rede é o resultado.
É correcto chamar a este tipo de algoritmo uma "rede neural"?
O cérebro humano é muito mais complexo e poderoso do que uma rede neural, claro. Nomear o algoritmo de "rede neural profunda" foi um golpe de branding, mas pode criar expectativas irrealistas sobre o que é possível alcançar com estas técnicas. Dito isto, há pessoas que tentam reengenharia do cérebro, usando uma rede neural muito complexa, na esperança de que, ao fazê-lo, serão capazes de replicar inteligência geral, semelhante à humana, no desenvolvimento do bot. Então, como é que uma rede neural e técnicas de aprendizagem de máquinas nos ajudam com o nosso problema de reconhecimento de cães?
Bem, em vez de definir manualmente atributos tipo cão, um algoritmo de rede neural profunda pode identificar os atributos importantes e lidar com todos os casos especiais sem programação.
Como funciona uma rede neural profunda?
Faz isto da seguinte forma:
Cada neurónio na camada de entrada recebe um pouco de informação da imagem como entrada e depois pesos aleatórios (entre zero e um) quer essa informação sugira ou não um cão. Um peso baixo (inferior a 0,5) significa que é menos provável que a informação esteja associada a um cão e um peso elevado significa que é mais provável que a informação esteja associada a um cão. Esta abordagem de rede neural multicamadas é chamada aprendizagem profunda. As redes neuronais e a aprendizagem profunda são técnicas muito poderosas para alcançar a compreensão informática.
As redes neurais profundas são compostas de múltiplas camadas de nós que se comportam como neurónios no nosso cérebro
Assim, para continuar em redes neurais profundas, os pesos destes neurónios são então alimentados como entradas nas outras camadas de neurónios que também atribuem pesos aleatoriamente e os passam como entradas para ainda mais neurónios na rede. Isto continua até que a camada de saída dos neurónios dê um veredicto binário. Se a média dos pesos passados a eles for superior a 0,5, é um cão, caso contrário não é. Estas ligações entre e activação de neurónios através de múltiplas camadas de nós são o que dá às aplicações de redes neurais profundas o seu poder.
Como é que uma rede neural profunda sabe se produz a resposta certa?
As questões relevantes neste ponto são: a rede neural profunda adivinhou correctamente ou não e o que acontece se adivinhou ou não adivinhou correctamente? E como é que uma rede neural sabe se adivinhou correctamente ou não?
Uma forma de saber é se se empreendeu a tarefa de classificação extremamente demorada de rotular todas as fotografias como "cão" ou "não cão", dependendo da existência ou não de um cão na fotografia. A rede neural irá simplesmente olhar para a etiqueta para ver se identificou correctamente ou não o cão.
E, claro, não estamos interessados em saber se a pergunta "Cão ou não" foi bem colocada numa única fotografia de cão. Estamos interessados em saber se acertou na pergunta para cada fotografia, ou pelo menos em descobrir que percentagem do tempo foi exacta na avaliação se havia ou não um cão na fotografia.
Como é que as redes neurais profundas utilizam a formação para aprender?
Uma rede neural aprende de cada iteração através de dados para melhorar a sua exactidão
Para um dado conjunto de pesos em todos os neurónios da rede, a rede neural fará suposições para todas as fotos e depois determinará a sua precisão. Que percentagem do tempo obteve o resultado certo, isto é, dizer que o cão estava na foto quando estava na foto, e quantas vezes obteve o resultado errado, dizer que o cão estava na foto quando não estava ou dizer que o cão não estava na foto quando estava. Esta indicação sobre a precisão do algoritmo da IA é um feedback essencial para o modelo de rede neural.
Depois de ter percorrido todas as fotos uma vez, pode ajustar aleatoriamente (ou não) alguns dos pesos e depois fazer todo o exercício de adivinhar o que está na foto novamente. Se o resultado da segunda corrida for melhor, manter-se-á em vez de voltar ao conjunto de pesos anterior. Se o resultado da segunda corrida for pior, poderá reverter para o conjunto de pesos anterior e depois tentar modificações diferentes desses pesos.
Este processo prosseguirá desta forma até que a rede neural se torne boa na identificação de cães em fotografias (esperemos).
Quando o algoritmo consegue identificar com precisão os cães, diz-se que convergiu. Tem sido "treinado" com sucesso para identificar cães.
Quais são os diferentes tipos de redes neurais?
Redes neuronais convolucionais
As redes neurais convolucionais (CNN) são um tipo de inteligência artificial concebida para processar, ou aprender com, grandes conjuntos de dados. Rede neural convolucional é um termo recentemente cunhado que descreve especificamente este tipo de rede, ou tecnologia de IA em geral.
As CNN são poderosas ferramentas de IA de reconhecimento de imagem que utilizam uma aprendizagem profunda para realizar não só tarefas generativas, mas também tarefas descritivas. Exemplos de tarefas generativas incluem auto-cropping, escrita de legendas, videografia, mimeógrafo, e sobreposições de imagens. Uma rede neural convolutiva contém aquilo a que se chama camadas convolutivas. Cada neurónio nestas camadas processa apenas informação a partir de uma pequena parte de um campo visual. As entradas de cada neurónio são alinhadas de uma forma semelhante a um checksum para gerar um mapa de características.
Redes neuronais artificiais
Uma rede neural artificial (ANN) é uma rede de muitos perceptrons a diferentes profundidades ou camadas que pode ser entendida como uma Regressão Logística. A ANN é frequentemente chamada Rede Neural Feed Forward porque as entradas são processadas apenas na direcção da frente: uma camada recebe entradas e envia uma saída de uma forma linear.
As redes neurais artificiais são também conhecidas como aproximadores universais de funções. Algoritmos de redes neurais puras, tais como ANNs e funções cartográficas que podem ser implementadas como aprendizagem profunda permitem aos computadores aprender qualquer função. Uma das razões pelas quais a aproximação universal é importante é a função de activação. As funções de activação introduzem propriedades não lineares na rede enquanto aprendem qualquer relação complexa entre entrada e saída. Ajudam diferentes tipos de rede a aprender uns com os outros.
Como é que uma rede neural profunda melhora ao longo do tempo?
Uma maneira de imaginar o que o algoritmo está a fazer é imaginar cada neurónio como uma espécie de teste de certeza. Em vez de codificar todas as declarações se -então para identificar cães, cada neurónio é calibrado para adicionar ou retirar do julgamento final que o objecto na foto é um cão. É como se o julgamento (tal como cão ou não) fosse dividido num grande número de julgamentos ligados que contribuem em conjunto para um julgamento final.
Claro que o objectivo principal é alcançar a convergência, se isso for possível. É também um objectivo importante fazê-lo num espaço de tempo razoável, de preferência num curto espaço de tempo.
Os algoritmos de aprendizagem profunda têm um processo de aprendizagem que os torna difíceis de compreender pelos humanos
O que é interessante é que a lógica que permite às redes neurais identificar os cães na imagem não é compreensível para o ser humano. Os modelos de aprendizagem profunda têm uma lógica oculta, essencialmente uma caixa negra de camadas ocultas de nós criando a sua própria rede profunda. Dito isto, tem havido algumas tentativas de tentar representar visualmente a lógica por detrás das redes neurais para tarefas de reconhecimento de imagem. Para outros casos, não é possível ver o que o algoritmo está a fazer nos bastidores e os métodos de aprendizagem profunda permanecem ocultos.
As redes neurais e a aprendizagem de máquinas são populares agora, mas muitos destes algoritmos eram conhecidos há cerca de 50 anos atrás.
Porque é que as redes neurais profundas são cada vez mais populares em várias indústrias?
Uma das principais razões pelas quais as redes neurais são muito mais populares agora do que quando foram inventadas pela primeira vez, é que o poder de processamento é mais rápido e mais barato do que era. O poder de processamento fez toda a diferença em alcançar uma convergência rápida. A outra razão é que os dados são agora omnipresentes, o que aumenta o valor dos algoritmos que podem fazer uso dos dados como chatbots para as empresas.
As redes neurais avançadas requerem alto poder de processamento e muitos dados
As redes neurais de aprendizagem profunda são técnicas de dados e de processamento que podem alcançar resultados que seriam impossíveis de alcançar pelos programadores que utilizam técnicas de programação. São ideais para certos problemas onde há dados omnipresentes disponíveis e é fácil de classificar ou classificar resultados preferíveis.
Sem ter centenas de milhares ou de preferência milhões de fotos de cães, seria impossível treinar o algoritmo. Estas técnicas só funcionam quando muitos dados estão disponíveis. Isto é bastante óbvio, uma vez que é pouco provável que todos os casos especiais estejam representados num conjunto de apenas 1000 fotografias.
As redes neurais podem ser confrontadas com dados estruturados ou dados não estruturados
Um problema no exemplo acima é que muito trabalho manual está envolvido na etiquetagem de todas as fotografias. É mais fácil para os algoritmos utilizar dados que são etiquetados de uma forma estruturada. A aprendizagem de máquinas em rede neural que utiliza dados estruturados é chamada aprendizagem supervisionada.
Isto leva-nos a uma questão central: é possível evitar todo esse trabalho de etiquetagem? Isso seria bom porque não só se poderia evitar muito trabalho manual, mas também a maioria dos dados disponíveis na Internet não está estruturada, ou seja, não está cuidadosamente etiquetada ou estruturada.
As redes neurais podem funcionar com dados não estruturados?
As redes neurais artificiais e a aprendizagem de máquinas que funcionam com dados não estruturados são chamadas aprendizagem não supervisionada. Naturalmente, este é o santo graal da aprendizagem mecânica e é mais análogo à forma como os humanos aprendem. No entanto, mesmo a aprendizagem não supervisionada por máquinas requer muito mais dados para "aprender" do que os humanos e as máquinas não podem facilmente extrapolar para exemplos que estão fora daquilo em que foram treinados.
Muitos modelos de aprendizagem profunda tentam reproduzir os processos do cérebro humano
Algumas pessoas acreditam que estes tipos de algoritmos podem ser desenvolvidos, talvez através da reengenharia do cérebro, ao ponto de os algoritmos começarem a aproximar-se de uma "compreensão" a nível humano. Acreditam que será possível utilizar a sofisticada tecnologia de scanning do cérebro para nos dar uma visão de como as redes neurais do cérebro funcionam realmente. Ao copiar estes desenhos e padrões, podemos replicar a inteligência a nível humano.
Embora as técnicas sejam sem dúvida engenhosas e muito úteis, especialmente onde existe um grande conjunto de dados, é difícil imaginar que algoritmos tão simples possam ser a base de uma inteligência humana altamente criativa.
Índice
Mantenha-se atualizado com as últimas novidades sobre agentes de IA
Partilhar isto em: