This week is about the mysterious Neural Networks. The courses in this week just explain the basics about Neural Networks.
What is Neural Networks
It’s a technique to train our data based on how human brains works. A simple Neural Network has:
- input layer
- hidden layer
- output layer
We use Neural NetWorks to make classification and regression.
We use sigmoid function the map data from input layer to hidden layer then the output layer, the function is called activation function.
In Neural Network, we add bias unit, x0, a1 to do calculate.
With Neural Network, we build more complex hypothesis function.
To play with neural network, you can try google’s open source tensorflow
Handwritten Digital Classification
This week’s assignment is to do multi classification on handwritten recognize.
Do multi classification with one-vs-all logistic regression
For handwritens in 10 lables: 0~9, we do 10 regression regression to calculate 10 group of theta. And then make 10 predications base on these 10 group of theta, choose the lable with max hypothesis value(probaility value)
1. Cost function
1 | function [J, grad] = lrCostFunction(theta, X, y, lambda) |
2. OneVsAll
make 10 classifications
1 | function [all_theta] = oneVsAll(X, y, num_labels, lambda) |
3. PredictOneVsAll
1 | function p = predictOneVsAll(all_theta, X) |
The logistic has great accurracy, about 95% in this case, but neural network will have higher accuracy, about 97%.
Neural Forward Propagation algorithm
In the assignment, it build hypothesis function with 3 layers neural network.
The predications implementation
1 | function p = predict(Theta1, Theta2, X) |
My question is:
- how to train the Theta1, Theta2
- how to decide how many units in hidden layer
In the later course, I think NG will explain it. Next week, I will learn backpropagation algorithm.