본문 바로가기

DeepLearning

Neural Network - DeepLearning

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 이하의 값을 보여줄 수 있기 때문이다.

 

Neural_Networks.pdf
0.96MB
Neural Network.ipynb
0.98MB

'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