Skip to main content
O Dreamforce está chegando em São Francisco entre 17 e 19 de setembro. Registre-se agora e economize 20% usando o código DF24TRAIL20

Entender a necessidade das redes neurais

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Explicar a limitação de modelos de IA que consideram somente as entradas de peso.
  • Descrever a função das redes neurais na aprendizagem de máquina.
  • Definir os principais componentes das redes neurais.
  • Descrever como a complexidade é adicionada às redes neurais e definir aprendizagem profunda.
  • Explicar como é impossível interpretar os pesos e os vieses determinados pelo treinamento.

Trailcast

Se você deseja escutar uma gravação de áudio deste módulo, use o reprodutor abaixo. Quando terminar de escutar essa gravação, lembre-se de voltar a cada unidade, consultar os recursos e completar as avaliações associadas.

A necessidade das redes neurais

Nenhuma conversa sobre IA está completa sem se falar de redes neurais. As redes neurais são ferramentas importantes para treinar modelos de IA, ou seja, é bom ter uma ideia do que elas são. Mas antes de entrarmos em detalhes, vamos primeiro discutir por que precisamos de redes neurais.

Na unidade anterior, você aprendeu que podemos treinar um modelo de IA permitindo que ele adivinhe e verifique a importância-peso de cada entrada. Mas o exemplo de ir ao supermercado comprar leite na verdade foi muito simplificado. Nosso modelo nos daria estimativas bastante incompletas. Para entender isso, vamos pensar em dois cenários.

  1. É uma noite de terça chuvosa. Você não quer se molhar e decide (assim como outras pessoas) que suas compras podem esperar até amanhã. Neste cenário, a chuva é um fator relevante.
  2. É uma noite de sábado chuvosa. Para muitas pessoas, é o único momento na semana em que podem fazer compras. Ou seja: chova ou faça sol, a loja estará cheia. Nesse cenário, a chuva não faz muita diferença.

O problema é que nosso modelo original só pode atribuir um peso à chuva, mas sabemos que é mais complicado do que isso. No entanto, existe uma solução, que começa com a representação dos dois cenários em dois grafos diferentes. Mais uma vez, a espessura da linha mostra a importância. Na primeira, "fim de semana" e "hora" são fracos, mas "chuva" é grosso. Na segunda, "fim de semana" é grosso e "hora" e "chuva" são fracos.

Dois diagramas, cada um conectando "fim de semana", "hora" e "chuva" a estimativas diferentes. (cinza, azul, amarelo)

Sabemos que esses dois cenários são relevantes porque somos inteligentes e temos experiência em comprar leite. Mas um computador que está aprendendo sobre ir ao supermercado comprar leite não sabe nada! Ele precisa considerar vários cenários: fim de semana-noite-chuva, dia de semana-manhã-sol e outros. Em vez de dois grafos, oito podem representar melhor os tipos de cenário encontrados.

Oito grafos bem semelhantes, cada um com três nós conectados a um.

São muitos grafos semelhantes. Como as três entradas sempre representam "fim de semana", "hora" e "chuva", você pode sobrepô-los. Se você mover os cenários para que não se toquem, terá um grafo combinado com a seguinte aparência.

Um grafo com três nós de um lado e oito do outro. Cada nó está conectado a uma linha.

A importância de cada cenário depende das entradas específicas. Mas saber a importância é apenas metade do problema. Cada cenário precisa afetar a estimativa final da sua própria maneira.

Por exemplo, a ida ao supermercado para comprar leite fim de semana-tarde-sol levaria muito mais tempo. Então vamos dar um ajuste de +5. Quando fazemos conta para calcular uma estimativa, ela resulta em um número maior. Enquanto estamos com a mão na massa, vamos dar ao cenário dia de semana-manhã-chuva um ajuste de -4, já que sabemos que as idas ao supermercado são mais curtas a essa hora.

Cada cenário recebe seu próprio ajuste, que é o que chamamos de viés. Nesse caso, o viés é bom porque ele nos ajuda a obter uma estimativa mais precisa. Vamos redesenhar nosso grafo para incluir o viés de cada cenário.

Um grafo com três nós de um lado e oito do outro, cada um com seu próprio número positivo ou negativo. Cada nó está conectado a uma linha.

Então o que fazemos com esses oito cenários e seus vieses? Com a ajuda de mais cálculos, podemos combiná-los em uma estimativa final. Alguns cenários devem contribuir mais que outros, ou seja, você sabe: precisamos de mais pesos! Podemos atualizar nosso grafo para mostrar como os cenários se conectam à estimativa final com forças diferentes.

Um grafo com três nós à esquerda, oito no meio e um à direita. Linhas conectam a esquerda ao meio e o meio à direita.

Esse é nosso novo modelo. Esperamos que mais conexões signifiquem melhores estimativas. Essa rede de conexões, orientadas por pesos e vieses, é um exemplo de rede neural. Chamamos assim porque as conexões, forjadas pela experiência (dados), se parecem com como os neurônios estão conectados em um cérebro.

E embora cenário seja uma boa palavra inicial para descrever uma combinação única de fatores, deveríamos realmente usar a palavra para esse conceito. É o que os especialistas em IA usam, ou seja, de agora em diante também a usaremos.

Como adicionar complexidade às redes neurais

Nosso modelo de ida ao supermercado para comprar leite é um exemplo bem básico de uma rede neural. Na prática, ela pode ficar bastante complexa. Vamos explorar algumas formas usadas pelos pesquisadores para configurar redes neurais e obter resultados melhores em tarefas específicas.

Primeiro, você deve estar se perguntando por que escolhemos colocar oito nós entre nossas entradas e nossa saída. Esse número admite alguma flexibilidade. Sabemos que não ter nós nos daria estimativas pouco exatas. Da mesma forma, ter muito poucos não refletiria toda a nuance do sistema que estamos tentando modelar. Mas ter muitos nós também é um problema. Não queremos que o computador faça mais cálculos do que o necessário. Ou seja, existe um número ideal de nós para obtermos bons resultados com o mínimo de esforço. A escolha do número certo é parte do design de uma boa rede neural.

Existe outra coisa que podemos fazer para tornar as redes neurais artificiais mais parecidas com as nossas redes orgânicas. Tem a ver com como nossas mentes costumam pular de uma ideia para outra a fim de encontrar conexões entre duas coisas que não têm relação óbvia. Alguns dos insights mais brilhantes são resultado de vários pulos. E se pudéssemos fazer uma rede neural que também possa dar mais pulos? Nós podemos! Fazemos isso adicionando outros nós como camadas e conectando cada nó ao seu vizinho.

Diagrama de uma rede neural com duas camadas de nós entre entradas e saídas.

O treinamento de IA com a adição de outras camadas para encontrar significados ocultos nos dados é o que chamamos de aprendizagem profunda. Graças à abundância do poder da computação, muitas redes neurais são projetadas para ter várias camadas. Novamente: o melhor número de camadas é um equilíbrio entre o número de cálculos exigido e a qualidade dos resultados produzidos por eles.

Mais do que matemática mental, é matemática de rede neural

Bem, sobre esses cálculos. Até agora, passamos por cima da parte matemática do treinamento de redes neurais. Isso ocorre por alguns motivos. Primeiro, a matemática pode ficar realmente complicada e muito rapidamente. Por exemplo, veja aqui um trecho de um artigo científico sobre redes neurais.

Captura de tela de um artigo científico sobre redes neurais

Muito intenso, não é?

Segundo, a matemática exata vai depender do tipo de tarefa para a qual você está treinando a rede neural. Terceiro, cada novo artigo científico atualiza a matemática conforme vamos aprendendo o que funciona melhor no treinamento de modelos diferentes.

Ou seja, o design de uma rede neural envolve a escolha do número de nós, camadas e a matemática adequada para a tarefa objeto do treinamento. Com a arquitetura do modelo pronta, você precisa deixar o computador usar toda essa matemática linda para fazer sua rotina de adivinhar e verificar. Eventualmente ele descobre os melhores pesos e vieses para dar boas estimativas.

E isso nos leva a algo que é um pouco desconcertante sobre as redes neurais artificiais. Imagine um olheiro habilidoso que está procurando a próxima estrela do futebol. "Vou saber quando encontrá-lo", ele pode dizer. Ele não sabe dizer como vai saber; ele apenas sabe. Da mesma forma, nossa rede neural não consegue explicar por que alguns fatores são importantes. Claro, podemos ver os valores anexados a cada peso e viés, mas a relevância de um número que é resultado de uma conexão de uma conexão de uma conexão se mantém um mistério para nós.

Ou seja, assim como a mente do olheiro é uma caixa preta, nossa rede também é. Como não vemos as camadas entre a entrada e a saída, elas são chamadas de camadas ocultas.

Conclusão

Resumindo: as redes neurais são uma mistura de nós, camadas, pesos, vieses e muita matemática. Juntos, eles imitam nossas próprias redes neurais orgânicas. Cada rede neural é refinada minuciosamente para uma tarefa específica. Talvez ela seja ótima em prever chuva; talvez categorize plantas, ou talvez mantenha seu carro centralizado na faixa da estrada. Seja qual for a tarefa, as redes neurais são grande parte do que faz a IA parecer magia. E agora você sabe um pouco sobre como o truque funciona.

Recursos