Uno strato in una rete neurale senza distorsione non è altro che la moltiplicazione di un vettore di input con una matrice. (Il vettore di output potrebbe essere passato attraverso una funzione sigmoide per la normalizzazione e per l'uso in ANN multi-strato in seguito, ma questo non è importante.)
Ciò significa che stai usando una funzione lineare e quindi un input di tutti gli zeri verrà sempre associato a un output di tutti gli zeri. Questa potrebbe essere una soluzione ragionevole per alcuni sistemi, ma in generale è troppo restrittiva.
Usando un bias, stai effettivamente aggiungendo un'altra dimensione al tuo spazio di input, che assume sempre il valore uno, quindi stai evitando un vettore di input di tutti gli zeri. Non perdi alcuna generalità in questo modo perché la tua matrice di peso allenata non deve necessariamente essere suriettiva, quindi può comunque essere mappata su tutti i valori precedentemente possibili.
2d ANN:
Per una ANN che associa due dimensioni a una dimensione, come nel riprodurre le funzioni AND o OR (o XOR), puoi pensare a una rete neuronale nel modo seguente:
Sul piano 2d contrassegnare tutte le posizioni dei vettori di input. Quindi, per i valori booleani, si desidera contrassegnare (-1, -1), (1,1), (-1,1), (1, -1). Quello che fa la tua ANN ora è disegnare una linea retta sul piano 2d, separando l'uscita positiva dai valori di uscita negativi.
Senza pregiudizi, questa linea retta deve passare attraverso zero, mentre con pregiudizi sei libero di metterlo ovunque. Quindi, vedrai che senza pregiudizi stai affrontando un problema con la funzione AND, dal momento che non puoi mettere entrambi (1, -1) e (-1,1) sul lato negativo. (Non possono essere sulla linea.) Il problema è uguale per la funzione OR. Con un pregiudizio, tuttavia, è facile disegnare la linea.
Si noti che la funzione XOR in quella situazione non può essere risolta nemmeno con bias.