versione finale si spera. Trova sempre soluzione con pesi random

This commit is contained in:
2025-01-24 10:07:13 +01:00
parent b87b4abd37
commit bbbfa9af69
3 changed files with 55 additions and 71 deletions

View File

@@ -24,30 +24,11 @@ for i in range(1,100000): #Epoche
for j in range(0,4): #Combinazioni
y = p.funzione_sigmoide(x[j][0], x[j][1])
if y >= soglia_funzione_attivazione:
previsione = 1
else:
previsione = 0
if previsione == output[j]:
corrette += 1
#La formula del costo è sicuro questa, la retta scappa se tolgo il meno
#Y è confermato, se metto la previsione invece di y la retta non corrisponde
errore = -(output[j] - y)
#Il gradiente può non essere calcolato nel percettrone singolo, funziona lo stesso
gradiente_w1 = errore * y * (1-y) * x[j][0]
gradiente_w2 = errore * y * (1-y) * x[j][1]
gradiente_bias = errore * y * (1-y)
p.correggi_pesi(gradiente_w1, gradiente_w2, gradiente_bias)
if errore != 0:
pass
else:
corrette += 1
print("\n")
disegna_funzione(p, y, x[j][0], x[j][1], True, errore)
@@ -57,5 +38,19 @@ for i in range(1,100000): #Epoche
rette.append([m,q])
except ZeroDivisionError:
pass
if y >= soglia_funzione_attivazione:
previsione = 1
else:
previsione = 0
if previsione == output[j]:
corrette += 1
else:
#Il gradiente può non essere calcolato nel percettrone singolo, funziona lo stesso
gradiente_w1 = errore * y * (1-y) * x[j][0]
gradiente_w2 = errore * y * (1-y) * x[j][1]
gradiente_bias = errore * y * (1-y)
p.correggi_pesi(gradiente_w1, gradiente_w2, gradiente_bias)
disegna_grafico_singolo(rette)