Com base no modelo de McCulloch e Pitts a lógica para definir o limiar ($\theta$) depende do número de entradas ativas:
- Operação Lógica AND (E)
Para a operação AND, o neurônio só deve disparar (saída = 1) se todas as entradas forem iguais a 1 simultaneamente.
Entradas: $x_1, x_2, x_3$
Soma: $g(X) = x_1 + x_2 + x_3$
Condição: O valor máximo da soma com 3 entradas é 3.
Se qualquer entrada for 0, a soma será menor que 3.
Limiar: $g(X) \geq 3$
Resultado: O limiar adequado é 3.
O Gemini disse
Com base no modelo de McCulloch e Pitts e no exemplo que você viu em aula, a lógica para definir o limiar (θ) depende do número de entradas ativas necessárias para satisfazer a condição lógica.
Aqui está a solução detalhada para o cenário de 3 entradas:
- Operação Lógica AND (E)
Para a operação AND, o neurônio só deve disparar (saída = 1) se todas as entradas forem iguais a 1 simultaneamente.
Entradas: x
1
,x
2
,x
3
Soma: g(X)=x
1
+x
2
+x
3
Condição: O valor máximo da soma com 3 entradas é 3. Se qualquer entrada for 0, a soma será menor que 3.
Limiar: g(X)≥3
Resultado: O limiar adequado é 3.
- Operação Lógica OR (OU)
Para a operação OR, o neurônio deve disparar se pelo menos uma das entradas for igual a 1.
Entradas: $x_1, x_2, x_3$
Soma: $g(X) = x_1 + x_2 + x_3$
Condição: Se apenas uma entrada for 1, a soma já é 1. Se duas ou três forem 1, a soma será 2 ou 3. O único caso em que ele não ativa é quando todas são 0.
Limiar: g(X)≥1
Resultado: O limiar adequado permanece 1.
implementação
def perceptron(x1, x2, x3, theta):
g = x1 + x2 + x3
return 1 if g >= theta else 0
AND
print(perceptron(1,1,1,3)) # 1
print(perceptron(1,1,0,3)) # 0
OR
print(perceptron(1,0,0,1)) # 1
print(perceptron(0,0,0,1)) # 0
conclusão:ao aumentar o número de variáveis, o AND sempre exige que o limiar seja igual ao número total de entradas, enquanto o OR mantém o limiar em 1, independentemente de quantas entradas existam.