페이지

2022년 7월 15일 금요일

1.1.5 그림 3개로 딥러닝의 작동 원리 이해하기

 이제 머신 러닝이 많은 입력과 타깃(target)의 샘플을 관찰하면서 입력(예:이미지)을 타깃(예:'고양이'레이블)에 매핑(mapping) 하는 것임을 알았습니다. 심층 신경망은 이런 입력-타깃 매핑을 간단한 데이터 변환기(층)를 많이 연결하여 수행한다는 것도 배웠습니다. 이런 데이터 변환은 샘플에 노출됨으로써 학습이 이루어집니다. 이제 어떻게 이런 학습이 일어나는지 자세히 살펴봅시다.

층에서 입력 데이터가 처리되는 상세 내용은 일련의 수수자로 이루어진 층의 가중치(weight)에 저장되어 있습니다. 기술적으로 말하면 어떤 층에서 일어나는 변환은 그 층의 가중치를 파라미터(parameter)(로 가지는 함수로 표현됩니다. (이따금 가중치를 그 층의 파라미터라고도 부릅니다.) 이런 맥락으로 보면 학습은 주어진 입력을 정확한 타깃에 매핑하기 위해 신경망의 모든 층에 있는 가중치 값을 찾는 것을 의미합니다. 하지만 어떤 심층 신경망은 수천만개의 파마미터를 가지기도 합니다. 이런 경우에 모든 파라미터의 정확한 값을 찾는 것은 어려운 일로 보입니다. 파라미터 하나의 값을 바꾸면 다른 모든 파라미터에 영향을 끼치기 때문입니다!

어떤 것을 조정하려면 먼저 관찰해야 합니다. 신경망의 출력을 제어하려면 출력이 기대하는 것보다 얼마나 벗어났는지를 측정해야 합니다. 이는 신경망의 손실 함수(loss function)또는 목적 함수(objective function)가 담당하는 일입니다. 신경망이 한 샘플에 대해 얼마나 잘 예측했는지 측정하기 위해 손실 함수가 신경망의 예측과 진짜 타깃(신경망의 출력으로 기대하는 값)의 차이를 점수로 계산합니다.

기본적인 딥러닝 방식은 이 점수를 피드백 신호로 사요ㅕㅇ하여 현재 심플의 손실 점수가 감소되는 방향으로 가중치 값을 조금씩 수정하는 것입니다. 이런 수정 과정은 딥러닝의 핵심 알고리즘인 역전파(Backpropagation)알고리즘을 구현한 옵티마이저(optimizer)가 담당합니다. 다음 장에서 역전파가 어떻게 작도하는지 상헤사게 설명하겠습니다.

초기에는 네트워크의 가중치가 랜덤한 겂으로 할당되므로 랜덤한 변환을 연속적으로 수행합니다. 자연스럽게 출려은 기대한 것과 멀어지고 손실 점수가 매우 높을 것입니다. 하지만 네트워크가 모든 샘플을 처리하면서 가중치가 조금씩 올바른 방향으로 조정되고 손실 점수가 감소합니다. 이름 훈련 반복(trainig loop) 이라고 하며, 충분한 횟수마큼 반복하면(일반적으로 ㅅ천 개의 샘플에서 수십 번 반복하면)손실 함수를 최소화하는 가중치 값을 산출합니다. 최소한의 손실을 내는 네트워크가 타깃에 가능한 가장 가까운 출력을 만드는 모델의 됩니다. 다시 한번 말하지만 이간단한 메커니즘이 화잗외면 마술 같은 결과를 만듭니다.

댓글 없음: