Q4: (20 marks) Assume that X = \{x^{(1)}, ..., x^{(m)}\} is a dataset of m samples with 3 features. The samples are classified into 2 categories with labels $y^{(i)} \in \{0,1\}$. We want to perform binary classification using a simple neural network. Assume that the three features are $x_1, x_2$ and $x_3$, the three neurons in the hidden layer are $h_1, h_2$ and $h_3$, the output neuron is $o$, the bias for input layer is $b_x$ and that for the hidden layer is $b_h$. Let the weight from $x_i$ to $h_j$ be $w_{i,j}^{[1]}$ for $i \in \{1,2,3\}$, $j \in \{1,2,3\}$, and the weight from $h_j$ to $o$ be $w_j^{[2]}$. Suppose we use the sigmoid function as the activation function for $h_1, h_2, h_3$ and $o$, the loss function: $l = \frac{1}{m} \sum_{i=1}^{m} (o^{(i)} - y^{(i)})^2$, where $o^{(i)}$ is the result of the output neuron for example $i.$