Putting it together
When training a neural network, the first thing you need to do is pick some network architecture.
Architectures mean connectivity pattern between the neurons
히든 레이어를 1개만 쓰는것이 일반 적이다.
많은 히든 레이러를 쓰고 싶으면 같은 수의 neuron으로 구성하는 것이 일반 적이다.
Hidden Layer가 많을 수록 잘 동작 할 수도 있지만 Computation Cost가 높기 때문에 신중히 선택해야 한다.
위코드는 For-loop
를 사용했지만 Advanced
를 하게 되면 vectorization
을 통해서 for-loop
을 쓰지 않고Backpropagation
을 수행 할 수 있다.
그 다음 partial derivative가 정상적으로 동작하는지 알기 위해서 gradient checking 코드를 이용해서 확인 해야 한다.
$J(\theta)$가 non-convex function
이라서 global minimum
이 아닌 local minimum
에 머물 지라도 practical problem에서는 그렇게 문제는 되지 않는다고 한다.
수업 초기에 보여주었던 그래프를 통해서 Gradient Descent
Alogirhtm이 어떻게 $\theta$값을 최소화하는지 알아 보도록 하겠다.
해당 그래프는 아래와 같다.
Backpropagation
은 non-linear function
을 classification
하기 위한 하나의 좋은 algorithm이다.
'MOOC > Machine Learning (python)' 카테고리의 다른 글
Programming Exercise 4: Neural Networks Learning (0) | 2017.01.02 |
---|---|
Autonomous Driving Example (0) | 2016.10.12 |
Random Initialization (0) | 2016.09.19 |
Gradient Checking (0) | 2016.08.04 |
Neural Networks Learning: Implementation note unrolling (0) | 2016.07.22 |