packages feed

apple-0.1.0.0: test/data/trainXor.apple

-- see: https://towardsdatascience.com/implementing-the-xor-gate-using-backpropagation-in-neural-networks-c1f255b4f20d
-- wh: 2x2 wo: 2 bh: 2 bo: (scalar)
λwh.λwo.λbh.λbo.
{ X ⟜ ⟨⟨0,0⟩,⟨0,1⟩,⟨1,0⟩,⟨1,1⟩⟩;
  Y ⟜ ⟨0,1,1,0⟩;
  sigmoid ← [1%(1+ℯ(_x))];
  sDdx ← [x*(1-x)];
  sum ⇐ [(+)/x];
  -- ho: 4x2
  -- prediction: 4
  ho ⟜ sigmoid`{0} ([(+)`bh x]'(X%.wh));
  prediction ⟜ sigmoid'((+bo)'(ho%:wo));
  l1E ← (-)`Y prediction;
  l1Δ ⟜ (*)`(sDdx'prediction) l1E; -- 4
  he ← l1Δ (*)⊗ wo; -- 4x2
  hΔ ⟜ (*)`{0,0} (sDdx`{0} ho) he; -- 4x2
  wha ← (+)`{0,0} wh ((|:X)%.hΔ);
  woa ← (+)`wo ((|:ho)%:l1Δ);
  bha ← sum'((<|)`{0,1} bh hΔ);
  boa ← bo + sum l1Δ;
  (wha,woa,bha,boa)
}
-- train ⟨⟨0.51426693,0.56885825⟩,⟨0.48725347,0.15041493⟩⟩ ⟨0.14801747,0.37182892⟩ ⟨0.79726405,0.67601843⟩ 0.57823076