Deep Learning 은 기본적으로 Machine Learning 의 Classification 에서 Logistic Regression 의 연장선으로 이해할 수 있다.
Input data 를 모델에 사용하게 되면 설정해준 각 layer 의 node 마다 weight 를 곱한 뒤 계산할 수 있는 term 이 생기고 결과적으로 가장 작은 오차를 안겨줄 수 있는 weight 에 대한 정보를 업데이트 하는 과정이다.
input data --> hidden layer (product weight) --> output
이 순서의 작업을 이용하게 되는데 이 때, 앞서와 같이 error 를 줄여가는 과정을 동일하게 작업한다.
하지만 이 과정에서 hidden layer 가 error 를 줄여줄 수 있는 weight 을 갱신하여 나가는데, 이 때 우리는 error 를 참고하여 어떤 layer 에서 error 의 크기가 큰지 또는 작은지 와 같은 문제를 확인할 수 있어야 한다.
따라서, 이 과정을 위해 Back-propagation algorithm 을 통해 확인할 수 있다.
아래의 코드는 심장병 환자에 대한 classification 문제를 (Deep) Neural Networks 를 통하여 분석하였고, 비교 대상으로는 ensemble method 의 기본적인 방법인 randomforest classifier 를 사용하였다.
아쉽게도, 약간의 차이로 DNN 은 Random Forest 보다 성능이 떨어졌다.
여기서 알 수 있는 것은 DNN 의 경우 사용에 매우 조심해야한다. depth 가 깊고 node 를 매우 늘릴 수 있다면 train set 에서 엄청난 성능을 보여줄 수 있는데, 여기서 우리가 늘 우려했던 overfitting 에 대한 무서움을 알 수 있다. training set 에서 accuracy 가 1을 보여줄 수 있더라도 test set 에서는 언제라도 0.5 이하의 값을 보여줄 수 있기 때문이다.
'DeepLearning' 카테고리의 다른 글
VGGNet (0) | 2021.12.23 |
---|---|
AlexNet (0) | 2021.12.23 |
Why Convolutions ? (0) | 2021.12.23 |
LeNet-5 (Basic CNN) (0) | 2021.12.23 |
Convolutional Neural Networks (0) | 2021.12.23 |