1. Explanation :
    Correct, we generally say that the output of a neuron is a = g(Wx + b) where g is the activation function (sigmoid, tanh, ReLU, ...).





  1. Explanation :
    Correct, remember that a np.dot(a, b) has shape (number of rows of a, number of columns of b). The sizes match because :
    
    "number of columns of a = 150 = number of rows of b"





  1. Explanation :
    A is correct





  1. Explanation :





  1. Explanation :
    Indeed! In numpy the "*" operator indicates element-wise multiplication. It is different from "np.dot()". If you would try "c = np.dot(a,b)" you would get c.shape = (4, 2).





  1. Explanation :
    Yes! This is broadcasting. b (column vector) is copied 3 times so that it can be summed to each column of a.





  1. Explanation :
    x = img.reshape((32*32*3,1))





  1. Explanation :
     this is the logistic loss or cross entropy loss