Esta implementação simples de um neurônio artificial para portas lógicas é composto básicamente de uma entrada "bias" com valor "-1", duas entradas e a saída. O "bias" é um elemento que serve para aumentar o grau de liberdade dos ajustes dos pesos.
Os valores de w, x e y precisam estar em um domínio específico.
domínio de w = [-1, 1] domínio de x = [ 0, 1] domínio de y = [ 0, 1]
A execução do neurônio se dá pelo somatório de todas as suas entradas multiplicadas por seus pesos sinápticos passados por uma função de transferência "T".
Após a saída do net, o valor é jogado na função de transferência T, retornando então o resultado final y.
se net > 0 então y = 1 senão y = 0
A seguir é apresentada a fórmula para ajustes dos pesos do neurônio artificia e deve ser aplicada à todos os pesos de todas as entradas caso o resultado y que resultou da execução do neurônio seja diferente do resultado esperado. Esta fórmula é específica para o treinamento do neurônio artificial.
início atribuir pesos aleatórios laço para cada exemplo fazer executar exemplo se saida incorreta então fazer modificar pesos (w) fim se fim para repetir até (todas saídas corretas) ou (terminar N épocas) fim
Para descobrir o net, é necessário fazer o cálculo do neurônio para todas suas entradas. Por exemplo, considere que esteja sendo feito o treinamento do neuronio para aprender a operação lógica OU. Para cada conjunto de entradas e saida é necessário testar:
y = Transferência(Net)
Observe que para a operação OU tem-se os seguintes exemplos (conjuntos de entradas e saída):
1 - entradas 0 e 0 - saída 0 2 - entradas 0 e 1 - saída 1 3 - entradas 1 e 0 - saída 1 4 - entradas 1 e 1 - saída 1
Para cada um desses 4 conjuntos (exemplos), deve-se executar o neurônio.
Para exemplificar, peguemos peguemos o exemplo 2, onde as entradas são 0 e 1 e a saída é 1):
x0 = bias = -1 w0 = 0,7 x1 = 0 w1 = -0,3 x2 = 1 w2 = 0,4
Se executarmos o Net, então teremos o seguinte:
Net = x0 X w0 + x1 X w1 + x2 X w2. Net = (-1) X 0,7 + 0 X (-0,3) + 1 X 0,4 Net = -0,7 + 0 + 0,4 Net = -0,3
Aplicando a função de Transferência, teremos:
Se Net > 0, então y = 1, senão y = 0
Sendo assim teremos o resultado da execução do neurônio em y:
y = 0; (deveria ter dado 1)
Neste caso, o y retornado está errado. Dessa forma é necessário usar o algoritmo de ajuste dos pesos para todos os pesos de todas as entradas do neurônio.
fórmula de ajuste de pesos: wi = wi + N(t - y)xi (considerando que N = 0,1)
w0 = 0,7 + 0,1(1 - 0) * (-1) = 0,6 w1 = -0,3 + 0,1(1 - 0) * 0 = -0,3 w2 = 0,4 + 0,1(1 - 0) * 1 = 0,5Logo, os novos pesos são:
w0 = 0,6 w1 = -0,3 w2 = 0,5
Tendo feito ou não os ajustes dos pesos, segue-se para o próximo exemplo. Quando terminar a execução de todos os exemplos é completada uma época.
O algoritmo deve continuar até que não não seja mais necessário ajustar os pesos. Nesse caso, diz-se que o neurônio esta treinado. Também deve-se definir um limite de épocas, caso o algoritmo não convergir, ou seja, não conseguir treinar. Isso previne que o algoritmo fique indefinidamente treinando sem nunca conseguir convergir
[voltar]