본문 바로가기
개발/DNN

Learning(학습)이란?

by ▶ Carpe diem ◀ 2023. 9. 18.

Learning(학습)

앞에서 간단히 언급했던 것처럼, 학습은 퍼셉트론(Perceptron)에서 각 데이터가 처리된 후 예상 결과와 비교한 출력의 오류 정도에 따라 연결 가중치를 변경하여 출력의 오류를 최소화하는 과정입니다.

학습되는 과정은 아래와 같습니다.

  • 입력은 입력에서 출력 레이어로 전파됩니다.
    (Forward Pass)

  • 네트워크 오류가 계산됩니다.

  • 오류는 출력 레이어에서 입력 레이어로 전파됩니다.
    (Backward Pass)

 

출력의 오류를 최소화하기 위해 찾는 값을 파라미터(parameter)라고 합니다.

 

Parameter(파라미터)

파라미터는 아래와 같이 Weight, Bais가 있습니다.

  • Weight(가중치)
  • Bias(편향)

앞선 장에서 예를 들었던 키를 통해 체중을 예측하기 위한 식(y = px + q)에서 파라미터를 알아보면 다음과 같이 p, q가 파라미터가 됩니다.

파라미터의 예

DNN을 학습할 때 파라미터의 개수가 많으면 학습하는데 그만큼 많은 노력이 들어가기 때문에, 파라미터의 개수 또한 DNN을 이야기할 때 중요한 요소입니다. 위 그림과 같은 구조를 가지는 DNN(DNN이라 부르기 적합하지는 않지만)은 47개의 파라미터를 가지고 있습니다. 파라미터 개수를 구하는 방법은 아래와 같습니다.

$$ 47 = (12 \times 3 + 3) + (3 \times 2 + 2) $$

위 수식을 조금 더 자세히 알아보면 다음과 같습니다.

 

앞에서 학습의 개념에 대해 살펴보았습니다. 이번에는 비용 함수와 연결해서 학습이 어떻게 진행되는지 예를 들어 알아보겠습니다.

2023.09.17 - [분류 전체보기] - Cost Function(비용 함수)

 

Cost Function(비용 함수)

Cost Function(비용 함수) 이란? Cost Function(비용 함수) : 수학에서는 모델의 매개변수를 사용하여 표현된 총 오차입니다. Neural Network의 학습은 Cost Function(비용 함수)를 최적화하는 것이 핵심입니다.

wide-shallow.tistory.com

 

4 x 3 픽셀 이미지를 읽어 0, 1을 구분하는 DNN이 아래와 같이 있고, DNN을 훈련하기 위한 데이터 흑백 이미지 64장이 있습니다.

Handwritten digit identification neural network

 

Squared error

각 훈련 데이터에 대한 squared error 를 구하면 아래와 같습니다.

 

출력과 정답(answer)과의 squared error

$$ C_k = \frac{1}{2}\{(t_1[k]-a_{1}^{3}[k])^{2} + (t_2[k]-a_{2}^{3}[k])^{2}\}\qquad     (k = 1, 2, ..., 64) $$

 

Cost function (Sum of squared error)

Squared error의 합을 구하면 아래와 같습니다.

 

훈련데이터 1 ~ 64 장의 squared error의 합

$$ C_{T} = C_{1} + C_{2} + ... + C_{64} $$

 

이제 신경망의 비용 함수가 최소값이 되도록 파라미터(가중치와 편향)를 설정해야 합니다. 앞에서 살펴봤던 것처럼 파라미터의 개수는 47개임으로 비용 함수가 최소값이 되는 47개의 파라미터를 설정해야 합니다.

$$ \frac{\partial C_{T}}{\partial w_{11}^{2}} = 0,\quad \frac{\partial C_{T}}{\partial w_{12}^{2}} = 0, ... , \frac{\partial C_{T}}{\partial b_{1}^{2}}=0, ... $$

$$ \frac{\partial C_{T}}{\partial w_{11}^{3}} = 0,\quad \frac{\partial C_{T}}{\partial w_{12}^{3}} = 0, ... , \frac{\partial C_{T}}{\partial b_{1}^{3}}=0, ... $$

 

47개의 파라미터값을 설정하기 위해 우리는 gradient descent method(경사 하강법)를 사용할 수 있습니다.

 

 

다음에는 gradient descent method 에 대해 조금 더 알아보고, 파리미터를 어떻게 계산할 수 있는지 더 자세히 알아보겠습니다.

'개발 > DNN' 카테고리의 다른 글

Backpropagation(역전파)  (0) 2023.10.08
Gradient Descent Method(경사하강법)  (0) 2023.09.19
Cost Function(비용 함수)  (0) 2023.09.17
Activation Function  (0) 2023.09.06
Perceptron  (0) 2023.09.02