이 시리즈는 R로 딥러닝을 구현하고 설명하는 것에 목표를 둔 글입니다. 신경망 챕터에 이어서 3번째 순서입니다. 이전 글과 내용이 이어집니다. 이전 글들은 이곳에서 찾아 보실 수 있습니다.

소개

이번 글에서는 신경망 분류 모델이 어떻게 학습하는지 그 과정에 대해서 알아보겠습니다. 여기서 학습이라는 것은 모델이 더 분류를 잘할 수 있게 만드는 것을 의미합니다. 모델의 학습 과정은 각 층의 가중치값이 최적값을 찾는 계산을 하는 것을 의미합니다. 이 학습 과정에서 최적값을 찾는데 필요한 지표가 손실 함수입니다. 따라서 이번 글에서는 손실 함수의 결괏 값을 최소화하는 방법과 모델이 어떻게 학습을 진행해 나가는지 전체적인 과정을 살펴보고 직접학습과정을 구현해 볼 것입니다.

용어소개

데이터 특징: 데이터에서 추출할 수 있는 기준입니다. 예를 들면 물품판매 데이터에서 고객 정보(나이, 성별 등)가 될 수 있습니다.

오버피팅: 어떤 모델이 하나의 데이터 셋에만 지나치게 최적화된 상태를 말합니다. 즉 최적화된 데이터 셋을 제외한 다른 데이터 셋에 대해서는 모델의 분류나 예측 능력이 떨어지는 상태를 의미합니다.

손실 함수(비용함수): 신경망 모델에서 사용하는 학습의 지표로서, 모델이 훈련데이터를 잘 처리하지 못하는지(모델의 성능이 얼마나 나쁜지)를 값으로 판단합니다.

데이터 주도 학습

신경망 모델의 학습 방법을 알기 전에 학습 과정에서 기존의 머신러닝 모델들과는 어떠한 차이가 있는지부터 알아보겠습니다. 기존의 머신러닝 모델의 경우 모델이 분류를 하기 위해서는 사람이 데이터에서 특징을 추출해주는 작업이 필수적이였습니다. 예를 들어 고객 데이터에서 고객의 나이, 성별 등의 정보를 데이터에서 따로 추출해야 한다는 의미입니다. 물론 어느 특징의 고객들이 구분되는지는 모델이 자체적으로 수행하지만 이 작업을 위해서는 데이터 내에서 고객의 특징들을 따로 분리해야하는 작업이 필요합니다. 그렇기 때문에 사람의 개입이 필수적이라는 것입니다.

그러나 신경망 모델의 경우에는 사람의 개입이 필요하지 않습니다. 왜냐하면, 사람의 개입으로 데이터의 특징을 찾는 작업조차 모델이 스스로 학습하기 때문입니다. 이를 종단간 기계학습이라 말합니다. R의 기본데이터인 iris 데이터를 예로 들어보면, 기존의 머신러닝 모델은 꽃잎과 꽃받침의 높이와 넓이를 바탕으로 붓꽃의 종류를 구분하게 됩니다. 여기서 꽃잎과 꽃받침의 높이와 넓이가 특징이 되며, 이 부분은 사람의 개입으로 만들어집니다.

신경망 모델에서 분류를 할 경우 우리는 각 숫자가 꽃잎의 높이인지 넓이인지 아니면 꽃받침의 높이인지 넓이 따위 등을 데이터에 명시할 필요가 없습니다. 단지 일련의 숫자들을 입력하면 신경망 모델은 그 숫자들 사이에서 스스로 특징을 찾고 패턴이나 규칙을 발견해 붓꽃의 종류를 분류해 낼 것입니다. 이런 점에서 신경망 모델은 사람의 개입이 필요없습니다.