Rede neural artificial

Uma rede neural (também chamada de ANN ou rede neural artificial) é uma espécie de software de computador, inspirado em neurônios biológicos. Os cérebros biológicos são capazes de resolver problemas difíceis, mas cada neurônio é responsável apenas por resolver uma parte muito pequena do problema. Da mesma forma, uma rede neural é composta de células que trabalham juntas para produzir um resultado desejado, embora cada célula individual seja apenas responsável pela solução de uma pequena parte do problema. Este é um método para a criação de programas artificialmente inteligentes.

As redes neurais são um exemplo de aprendizagem de máquinas, onde um programa pode mudar à medida que aprende a resolver um problema. Uma rede neural pode ser treinada e melhorada com cada exemplo, mas quanto maior for a rede neural, mais exemplos ela precisa para funcionar bem - muitas vezes precisando de milhões ou bilhões de exemplos no caso de aprendizado profundo.

Visão geral

Há duas maneiras de pensar em uma rede neural. A primeira é como um cérebro humano. A segunda é como uma equação matemática.

Uma rede começa com um input, um pouco como um órgão sensorial. A informação então flui através de camadas de neurônios, onde cada neurônio está conectado a muitos outros neurônios. Se um determinado neurônio recebe estímulos suficientes, então ele envia uma mensagem para qualquer outro neurônio ao qual está conectado através de seu axônio. Da mesma forma, uma rede neural artificial tem uma camada de entrada de dados, uma ou mais camadas ocultas de classificadores, e uma camada de saída. Cada nó de cada camada oculta é conectado a um nó da camada seguinte. Quando um nó recebe informações, ele envia alguma quantidade delas para os nós aos quais está conectado. A quantidade é determinada por uma função matemática chamada função de ativação, tal como sigmóide ou tanh.

Pensando em uma rede neural como uma equação matemática, uma rede neural é simplesmente uma lista de operações matemáticas a serem aplicadas a uma entrada. A entrada e saída de cada operação é um tensor (ou mais especificamente um vetor ou matriz). Cada par de camadas é conectado por uma lista de pesos. Cada camada tem vários tensores armazenados nela. Um tensor individual em uma camada é chamado de um nó. Cada nó é conectado a alguns ou todos os nós da camada seguinte por um peso. Cada nó também tem uma lista de valores chamados de tendenciosidade. O valor de cada camada é então o valor fora da função de ativação dos valores da camada atual (chamada X) multiplicado pelos pesos.

A c t i v a ç ã o ( W ( e i g h t o s ) X + b ( i a s ) ) Ativação no estilo de exibição(W(eights)*X+b(ias))} {\displaystyle Activation(W(eights)*X+b(ias))}

Uma função de custo é definida para a rede. A função de perda tenta estimar o quão bem a rede neural está se saindo em sua tarefa designada. Finalmente, uma técnica de otimização é aplicada para minimizar a saída da função de custo, alterando os pesos e os enviesamentos da rede. Este processo é chamado de treinamento. O treinamento é feito em uma pequena etapa de cada vez. Depois de milhares de etapas, a rede é tipicamente capaz de fazer sua tarefa designada muito bem.

Exemplo

Considere um programa que verifica se uma pessoa está viva. Ele verifica duas coisas - o pulso e a respiração. Se uma pessoa tem um pulso ou está respirando, o programa emitirá 'vivo', caso contrário, emitirá 'morto'. Em um programa que não aprende com o tempo, isto seria escrito como:

função isAlive(pulso, respiração) { if(pulso ||| respiração) { return true;      } else { return false;      } }

Uma rede neural muito simples, feita de apenas um neurônio que resolve o mesmo problema, será parecida com esta:

Single neuron which takes the values of pulse (true/false) and breathing (true/false), and outputs value of alive (true/false).

Os valores de pulso, respiração e vida serão 0 ou 1, representando falso e verdadeiro. Assim, se este neurônio recebe os valores (0,1), (1,0) ou (1,1), ele deve emitir 1, e se é dado (0,0), ele deve emitir 0. O neurônio faz isto aplicando uma simples operação matemática ao input - ele adiciona quaisquer valores que lhe foram dados juntos, e então adiciona seu próprio valor oculto, que é chamado de 'viés'. Para começar, este valor oculto é aleatório, e nós o ajustamos ao longo do tempo se o neurônio não estiver nos dando a saída desejada.

Se somarmos valores como (1,1) juntos, podemos acabar com números maiores que 1, mas queremos que nossa produção esteja entre 0 e 1! Para resolver isto, podemos aplicar uma função que limita nossa saída real a 0 ou 1, mesmo que o resultado da matemática do neurônio não estivesse dentro da faixa. Em redes neurais mais complicadas, aplicamos uma função (como o sigmóide) ao neurônio, para que seu valor fique entre 0 ou 1 (como 0,66), e então passamos este valor para o neurônio seguinte até precisarmos de nossa saída.

Métodos de aprendizagem

Há três maneiras pelas quais uma rede neural pode aprender: aprendizagem supervisionada, aprendizagem não supervisionada e aprendizagem de reforço. Todos estes métodos funcionam minimizando ou maximizando uma função de custo, mas cada um é melhor em determinadas tarefas.

Recentemente, uma equipe de pesquisa da Universidade de Hertfordshire, Reino Unido, usou o aprendizado de reforço para fazer um robô humanóide iCub aprender a dizer palavras simples balbuciando.

Perguntas e Respostas

P: O que é uma rede neural?


R: Uma rede neural (também chamada de ANN ou rede neural artificial) é uma espécie de software de computador, inspirado em neurônios biológicos. Ela é formada por células que trabalham juntas para produzir um resultado desejado, embora cada célula individual seja apenas responsável pela solução de uma pequena parte do problema.

P: Como se compara uma rede neural com os cérebros biológicos?


R: Os cérebros biológicos são capazes de resolver problemas difíceis, mas cada neurônio é responsável apenas pela solução de uma parte muito pequena do problema. Da mesma maneira, uma rede neural é composta de células que trabalham juntas para produzir um resultado desejado, embora cada célula individual seja apenas responsável pela solução de uma pequena parte do problema.

P: Que tipo de programa pode criar programas artificialmente inteligentes?


R: As redes neurais são um exemplo de aprendizagem de máquinas, onde um programa pode mudar à medida que aprende a resolver um problema.

P: Como o senhor pode treinar e melhorar com cada exemplo, a fim de usar o aprendizado profundo?


R: Uma rede neural pode ser treinada e melhorada com cada exemplo, mas quanto maior for a rede neural, mais exemplos ela precisa ter para funcionar bem - muitas vezes precisando de milhões ou bilhões de exemplos no caso de aprendizado profundo.

P: O que o senhor precisa para que o aprendizado profundo seja bem sucedido?


R: Para que o aprendizado aprofundado seja bem sucedido, o senhor precisa de milhões ou bilhões de exemplos, dependendo do tamanho de sua rede neural.

P: Como o aprendizado por máquina se relaciona com a criação de programas artificialmente inteligentes?



R: A aprendizagem de máquinas se relaciona com a criação de programas artificialmente inteligentes, porque permite que os programas mudem à medida que aprendem a resolver problemas.

AlegsaOnline.com - 2020 / 2023 - License CC3