Broccoli's House

#3-(1) 학습 : 신경망 학습 본문

공부/딥러닝

#3-(1) 학습 : 신경망 학습

김콜리 2018. 2. 7. 21:30

※ 이 글의 내용은 O'REILLY의 <밑바닥부터 시작하는 딥러닝> 책을 기반으로 한다.




신경망 학습




  • 학습
 - 학습(Learning) : 신경망의 각 노드들은 입력에 가중치를 곱하여 편향을 더한 값을 활성화 함수를 거쳐 출력한다. 학습이란, 신경망 모델의 출력이 사용자가 원하는 값에 수렴하도록 수많은 노드들이 가지고 있는 각각의 가중치와 편향들을 자동으로 획득하는 것을 말한다. 즉, 사용자가 원하는 출력과 모델의 출력이 동일시되거나 수긍할만한 오차에 수렴하는 가중치와 편향을 알아서 찾아가는 것이 바로 머신러닝의 학습이다. 

 - 손실함수(cost function) : 손실 함수는 신경망이 학습할 수 있도록 해주는 지표이다. 사용자가 원하는 출력과 머신러닝 모델 출력 값의 차이 즉, 오차를 말한다. 일반적으로 이 손실 함수 값이 최소화되도록 하는 가중치와 편향을 찾는 것이 바로 학습(Learning)이다.




  • 데이터 주도 학습

 - 데이터(data) : 데이터는 숫자나 단어, 이미지 등의 형태로 된 의미 단위이다. 일반적으로 연구나 조사 등의 바탕이 되는 재료를 말하며, 데이터를 의미있게 정리하면 정보가 된다. 

 - 머신러닝(기계학습)이란 데이터에서 정답을 찾고 패턴을 발견하는 것이다. 따라서 데이터가 없으면 아무것도 시작되지 않는다. 보통 데이터에서 어떠한 패턴을 찾아야할 때 사람은 직관과 경험을 토대로 시행착오를 거친다. 그러나 머신러닝에서는 사람의 개입을 최소화하고 수집한 데이터로부터 패턴을 찾으려고 시도한다. 더욱이 딥러닝은 기존 머신러닝에서 사용하던 방법보다 사람의 개입을 더욱 최소화할 수 있는 중요한 특성을 지니고 있다.




 - 머신러닝의 학습 알고리즘들이 모든 것을 해결해 줄 수 는 없다. 이들은 모아진 데이터로부터 규칙을 찾아내는 역할을 하지만, 원본 데이터에서 중요한 데이터(특징 : feature)만을 뽑아 내는 것 등은 사람이 해야하는 일이다. 문제에 적합한 특징을 쓰지 않으면, 학습 알고리즘들을 이용하더라도 좋은 결과를 얻을 수 없다. 그러나 딥러닝(신경망)은 데이터를 있는 그대로 학습한다. 원본 데이터에 포함된 중요한 특징까지도 기계가 스스로 학습하는 것이다. 세부사항과 관계없이 신경망은 주어진 데이터를 온전히 학습하고, 주어진 문제의 패턴을 발견하려 시도한다. 즉, 신경망은 모든 문제를 주어진 데이터 그대로를 입력 데이터로 활용해 'end-to-end'로 학습할 수 있다.


 - End-to-End 학습 : end-to-end 학습 방식은 사람이 중간 과정을 만들 필요가 없는 학습을 말한다. 입력 데이터와 출력 데이터만을 이용해 컴퓨터가 알아서 특징(feature)을 만드는 시스템이라고 이해할 수 있다. 다만 end-to-end 학습이 제대로 이루어지려면 데이터가 많을 때만 가능하다. 데이터가 적을 경우에는 사람이 특징이나 규칙을 정해주는 것이 성능이 더 좋을 때가 많다.




  • 훈련 데이터와 시험 데이터

 - 머신러닝 문제에서는 일반적으로 데이터를 훈련 데이터(Training Data)와 시험 데이터(Test Data)로 나누어 학습과 평가를 수행한다. 

 - 훈련 데이터(Training Data) : 머신러닝 모델이 데이터에 따른 최적의 매개변수를 찾도록 학습시키기 위하여 입력해주는 데이터를 말한다. 지도 학습(Supervised Learning) 훈련 데이터의 경우 일반적으로 입력 객체에 대한 속성을 벡터 형태로 포함하고 있으며, 각각의 벡터에 대하여 원하는 결과가 무엇인지 표시되어 있다. 즉, 각 입력에 대한 출력이 존재하여 그것을 함께 모델에 넣어 학습시킨다.

 - 시험 데이터(Test Data) : 훈련 데이터로 학습이 완료된 머신러닝 모델의 성능을 평가하기 위한 데이터 세트이다. 일반화된 모델의 성능을 평가하기 위해서 훈련 데이터와 시험 데이터는 분리되어야 한다. 왜냐하면 동일한 데이터로 학습과 시험을 병행할 경우, 그 데이터를 모델이 모두 기억할 수가 있다. 이렇게 되면 학습한 데이터에 대해서는 거의 완벽한 출력을 제공하나, 그 범위 이외의 데이터에 대해서는 제대로 출력을 제공하지 못한다. 즉, 일반화가 되지 못한 모델인 것이다. 하나의 데이터 세트에만 지나치게 최적화된 이러한 상태를 과대적합(Overfitting)이라 한다. 이러한 과대적합을 방지하기 위하여 훈련 데이터와 시험 데이터를 사전에 미리 분리하는 것이다.  

Comments