Douglas' Space
인공신경망은 어떻게 학습할까? 본문
인공신경망을 이제는 ANN이라고 하겠습니다. ANN이 학습하는 것은 ANN이 저장하고 있는 가중치값, Wi를 수정해 가는 과정이라고 했습니다. 그렇다면 결국 어떻게 수정하는 가를 알면 학습이 무엇인지를 알 수 있을 것입니다. 그런데 학습하는 방법이 인공신경망의 종류, 다시말해 딥러닝 방법에 따라 다르게 수행됩니다. 그러나 공통적인 사실은 내가 원하고자 하는 목적을 달성하도록 가중치를 수정한다는 것은 공통적입니다. 특히 학습에는 지도학습, 비지도학습, 강화학습 이렇게 크게 3가지로 구분합니다.
지도학습이란 ANN에게 훈련을 위한 입력데이타에 대한 출력의 정답(이것을 label이라고 함)을 가르쳐 주고, ANN이 계산한 출력값과 비교하여 가중치를 변경하도록 합니다. 비지도학습은 정답을 가르쳐 주지 않고 정답을 ANN스스로 맞히도록 합니다. 강화학습도 대부분 정답을 가르쳐 주지 않지만 외부환경과 계속적인 상호작용을 통해 시행착오를 줄여 나가는 방법으로 가중치를 변경합니다. (이들중 대표적인 딥러닝 기법 들은 추후 계속해서 그 응용분야와 함께 소개하도록 하겠습니다. 사실 이것이 이 방을 개설한 목적이기도 합니다.)
ANN을 함수의 집합이라고 했습니다. 이것이 주는 의미는 이제 ANN이 수학적으로 모델링이 되었기 때문에 수학의 해를 푸는 것으로 모든 문제를 해결한다는 의미이기도 합니다. 개발자가 아닌 이상 모르셔도 상관은 없습니다. 그냥 개념 정도만 이해하시는 정도면 되니까요. 사실 개발자라 하더라도 Tensorflow, Pytoch 등과 같은 AI Framework이 알아서 다 수행해 주기 때문에 걱정할 것은 없습니다.
지도학습의 경우를 예로서 학습하는 방법을 소개하고자 합니다. 매우 단순합니다. ANN이 계산한 출력값(Yi)과 정답(Ai)의 차를 계산하는 함수를 먼저 만듭니다. 이 함수를 손실(Loss)함수 또는 목적(Objective)함수라고 하며, 이 함수는 아래와 같이 가중치 W들의 함수로 표현됩니다.
위의 손실함수는 입력데이타 m개에 대한 최소자승법으로 계산한 정답과 ANN출력값 과의 차이의 평균 값을 나타내는 함수입니다. 이 함수는 Wi의 2차방정식이므로 L을 Wi로 편미분을 수행하여 L이 최소가 되는 Wi를 찾으면 끝입니다. 이것이 바로 학습의 방법입니다.
위의 그림에서 loss 함수의 값이 최소가 되는 지점의 w값을 얻기 위해 w값을 조정하는 것이 경사를 따라 내려오기 때문에 경사하강법(gradient descent)이라고 합니다.
ANN이 합성함수의 집합체 이므로 입력을 받아 출력을 계산하기 위해 합성함수를 계산하는 것을 Forward Propagation(FP)이라하고, Wi들을 수정하기 위해 반대로 출력에서 부터 합성함수들을 Wi에 대해 편미분 하는 것을 Back Propagation(BP)이라고 합니다. 결국 학습은 FP와 BP를 번갈아 가면서 학습을 진행하게 됩니다. 학습이 완료가 되면 완료된 ANN모델을 가지고 FP를 수행하여 출력값을 예측하게 됩니다.
'Computing Tech. Diary > Artificial Intelligence' 카테고리의 다른 글
인공지능이 강하고 약한 것이 있다고 하는데 ... (0) | 2022.04.28 |
---|---|
인공신경망의 기본, MLP (0) | 2022.04.28 |
시스템으로서의 인공신경망 (0) | 2022.04.28 |
기억이란? (0) | 2022.04.28 |
피카소의 추상화 (0) | 2022.04.25 |