human
I am working on the file "2.Backpropagation.ipynb".
The first task is:
The gradient with respect to the parameter to optimise is $$\nabla_\omega\mathcal{L(f(x,\omega),t)} = (\frac{\partial \mathcal{L}}{\partial \omega_1},\frac{\partial \mathcal{L}}{\partial \omega_2}, \dots, \frac{\partial \mathcal{L}}{\partial \omega_d}) = \frac{\partial \mathcal{L}}{\partial \bar{\omega}}$$.
Recall the graph representation 
<img src = "./images/pipeline1.png"  width = "200">
and consider the chain rule
$$\frac{\partial \mathcal{L}}{\partial \bar{\omega}} = \frac{\partial \mathcal{L}}{\partial y}\frac{\partial y}{\partial \bar{\omega}}$$
Observe that the complete differentiation is easier this way. 
Given that $\mathcal{L}(y,t) = (t-y)^2$, then 
$$\frac{\partial \mathcal{L}}{\partial y} = -2(t-y)$$
Given that $y = \omega^Tx$, then 
$$ \frac{\partial y}{\partial \bar{\omega}} = x$$
The flow of the chain rule
Let us try to understand visually what the chain rule is about. This will constitute the basis of the backpropagation algorithm, that will be next used to train deep learning techniques and the basis of automatic differentiation, a programatically optimum way for computing differentials.
Can you write Python code for it?
assistant
#Here the chain rule is about.

class optimize:
    def __init__(self):
        pass

    def run(self, data, target, model, loss, num_iter, eta):
        #Takes a loss function and a model and find the optimal parameters for an specific data set
        N_samples = data.shape[0]
        for t in xrange(num_iter):
            #Step 1.-take a sample x at random from the training set
            idx = np.random.randint(N_samples)
            xi = data[idx,:]
            yi = target[idx]
            
            #Step 2.- update the parameters to optimise
            model.w = model.w - eta * loss.gradient(model,xi,yi)*model.gradient(xi)