anchor.diff:  and stem:[B \in \mathbb{R}]
   
   This function simply computes a weighted sum of the input data,
  -add a bias and saturates the result with stem:[\max()]. The stem:[\max()] part is called the activation function.
  +adds a bias and saturates the result with stem:[\max()]. The stem:[\max()] part
  +is called the activation function.
   There are different possible activation functions.
   
   
  
positive.code: 
  The loss function should have several properties:
  
  * its input are the ouput of the network and the ouput from the training data
  * its ouput is a scalar
  * it should measure properly the error : the more stem:[Y] and stem:[\tilde{Y}] are close, the less the error must be
  * it must be differentiable
  
  There are several ad-hoc loss function that we can use depending on our application.
  A very simple one - the stem:[L2] norm - consists in summing the square error on each ouput dimensions:
  
  stem:[L(Y,\tilde{Y}) = \sum{(Y_i-\tilde{Y_i})^2}]
  
  
negative.code: 0 & Y \leqslant 0
  \end{matrix}]
  
  stem:[G_{B} = G_Y \cdot \frac{\partial F_{neuron}(X,W,B)}{\partial W_B}
  =G_Y \cdot
  \Big\{
  \begin{matrix}
  