▷ Inteligência Artificial – Redes Neurais Artificiais no Excel

Olá pessoal! Bem vindo ao meu novo artigo! Será demonstrado o princípio básico de uma Rede Neural Artificial dentro do Excel.

Redes Neurais no Excel

Segue o link original do Julio onde foi demonstrado o passo a passo

Confesso que quando observei essa imagem a primeira vez fiquei com muita dúvida de como é cada elemento e como que ele se comporta. Vamos a prática!

As Redes Neurais Artificiais têm basicamente quatro etapas. Vou descrevê-las passo a passo::

1° Passo - Identificação do Problema:

Neste simples exemplo, temos que separar os pontos A e D por uma reta.

Redes Neurais no Excel

Segue os dados

Redes Neurais no Excel

Onde na célula AT5 temos a fórmula

=$AS5*-$AU$3

e na célula AU5 segue a fórmula

=$AS5*$AT$3

Iremos iniciar com os pesos W1 = 0,8 e W2 = -0,5, mas pode ser aleatório.

Um detalhe muito importante para a criação das Redes Neurais Artificiais é a necessidade de parâmetros de entradas como demonstrado acima, X1 e X2, temos que ter um parâmetro saída, neste caso é a coluna L, (t). Separando as variáveis A e D, colocamos nesta coluna (L) o valor 1 e nas variáveis B e C o valor 0, separando as variáveis em grupos.

2° Modelar e estipular os pesos

Nesta etapa vamos realizar alguns cálculos que são eles:

Y_in - Sumarização entre os produtos, Coluna M

Real (y) - Validação do cálculo, função de ativação, Coluna N

Iguais (t e y) - Validação da rede, caso não seja igual teremos que recalcular os pesos, Coluna O

Redes Neurais no Excel

Segue as fórmulas:

Coluna M - Cálculo do Y_in, aqui iremos multiplicar os valores de X com os W (pesos)

=SE(A5="";"";SOMARPRODUTO(B5:C5;P4:Q4))

ou em inglês

=IF(A5="";"";SUMPRODUCT(B5:C5;P4:Q4))

Coluna N - Cálculo do Real(y), também conhecida como Função de Ativação. Neste exemplo vamos colocar uma função muito simples, se o valor Y_in for acima de 0, irá resultar no valor de 1, se for menor ou igual, irá resultar 0.

=SE(A5="";"";SE(M5>$C$2;1;0))

ou em inglês

=IF(A5="";"";IF(M5>$C$2;1;0))

Coluna O - Cálculo Iguais (t e y), nesta coluna iremos validar se a saída t (coluna L) é igual a coluna Real(y) (coluna N), se for igual será "Sim" como resposta, caso não, será "Não".

=SE(L5="";"";SE(L5=N5;"Sim";"Não"))

ou em inglês

=IF(L5="";"";IF(L5=N5;"Sim";"Não"))

Coluna P e Q - Cálculo dos reajustes dos pesos

Nesta etapa, quando os valores não são iguais, o resultado é dado como "Não" na coluna O, caso seja "Sim" o resultado é só manter o peso, mas com o resultado "Não", teremos que recalcular os pesos, para isso teremos na seguinte fórmula:

Peso_Novo = Peso_antigo + Alfa * Erro * X

Segue a fórmula na célula P5 até a Q8

=SE(OU(P$4="";$A5="");"";SE($O5="Não";P4+$C$1*SE($L5-$N5=0;0;$L5-$N5)*B5;P4))

ou em inglês

=IF(OR(P$4="";$A5="");"";IF($O5="Não";P4+$C$1*IF($L5-$N5=0;0;$L5-$N5)*B5;P4))

3° Validar a Rede com seus pesos

Após calculado todos os pesos, precisamos validar novamente os nossos dados com o último peso calculado, neste caso W1 = 1,05 e W2 = 0,025.

Redes Neurais no Excel

OBS: nesta parte poderá ser realizada de diversas formas, podemos extrair uma parte dos nossos dados para validar a rede, ou podemos fazer igual ao exemplo (quando os dados forem poucos) validar a todos os dados novamente.

Segue as fórmulas nas colunas

Coluna AB - Valores de X1

=SE(B5="";"";B5)

ou em inglês

=IF(B5="";"";B5)

Coluna AC - Valores de X2

=SE(C5="";"";C5)

ou em inglês

=IF(C5="";"";C5)

Coluna AL - Parâmetro de separação, neste caso faz a separação dos conjuntos

=SE(L5="";"";L5)

ou em inglês

=IF(L5="";"";L5)

Coluna AM - Cálculo das variáveis X com os pesos W

=SE(AA5="";"";SOMARPRODUTO(AB5:AK5;$AB$3:$AK$3))

ou em inglês

=IF(AA5="";"";SUMPRODUCT(AB5:AK5;$AB$3:$AK$3))

Coluna AN - Cálculo da Função de Ativação

=SE(AA5="";"";SE(AM5>$C$2;1;0))

ou em inglês

=IF(AA5="";"";IF(AM5>$C$2;1;0))

Coluna AO - Resultado

=SE(AL5="";"";SE(AL5=AN5;"Sim";"Não"))

ou em inglês

=IF(AL5="";"";IF(AL5=AN5;"Sim";"Não"))

E por último a fórmula na célula AO3

=CONT.SE(AO5:AO8;"Sim")/CONT.VALORES(AO5:AO8)

ou em inglês

=COUNTIF(AO5:AO8;"Sim")/COUNTA(AO5:AO8)

Neste exemplo a rede conseguiu acertar 100% das saídas e com isso podemos plotar a nossa reta com o último peso calculado.

Redes Neurais no Excel

4° Aplicar em outros dados validando e ajustando a rede.

Esta etapa é necessária quando tem novos registros na base.

Simulando a entrada de novos registros, são eles o E, F e G, com seus respectivos valores:

Redes Neurais no Excel

Com os critérios de X1, X2 e (t) definidos, temos uma assertividade, neste caso de 100%, como podemos ver no gráfico abaixo

Redes Neurais no Excel

E está finalizado a nossa Rede Neural Artificial.

Observando a cada iteração (ou ajuste de pesos) como que a reta se comporta, adaptando ao nosso objetivo.

Redes Neurais no Excel

O interessante desde modelo é que com alguns padrões, o mesmo terá os pesos iniciais (podendo ser aleatórios ou não) e com cada valor ele irá validar e irá ajustar ou não os pesos, com o ajuste do ultimo valor é necessário validar novamente todos os dados, desta validação é calculado uma taxa de aceitação onde é possível reavaliar todos os pesos do modelo. Aprovado os pesos dos dados apresentados, poderemos inserir novos valores a nossa base com os pesos já definidos e podemos ver a saída dos mesmos, se a taxa de erro for muito alta, esses novos registros deverão entrar na base de dados original para que novos pesos sejam calculados de acordo com essa nova matriz de dados e com isso nossa "Rede" estará sempre "treinada" para resultar os melhores valores.

Esta técnica é bastante interessantes para as mais diversas aplicações. Como identificação de padrões, ajustes matemáticos, modelos não lineares, OCR, entre muitas outras aplicações.

Neste exemplo não utilizamos o bias, ou podemos considera-lo como zero.

Gostaria de agradecer novamente a Profa. Dra. Denise Tsunoda pelos maravilhosos ensinamentos em suas disciplinas, suas aulas são sensacionais e muito obrigado de coração.

Espero que tenham gostado e se inspirado desse artigo! Caso tenha alguma sugestão de melhorias ou de mais pontos que você identificou, ou de outra técnica mais eficiente, posta aqui nos comentários.

Se gostou, curta e compartilhem para que todos saibam o que é possível fazer dentro do Excel.

E ja conhece o meu novo curso online de Excel?

Abraços a todos e até o próximo artigo!

Fabio BALDINI

Frase do dia: "Superar-se não é apenas ser melhor que algo, que alguns, que muitos, que todos. Superar-se pode ser uma vitória contra si mesmo, como alcançar verdadeiramente algo que você passou a vida inteira chamando de ''impossível'' por falta de coragem em tentar." Autor: Filipe OMB

OBS2: Obrigadão grande Mestre e amigão Alessandro Trovato pelas inúmeras correções do artigo, obrigado de coração, eternamente.

2 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *