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(비용 함수)
4 x 3 픽셀 이미지를 읽어 0, 1을 구분하는 DNN이 아래와 같이 있고, DNN을 훈련하기 위한 데이터 흑백 이미지 64장이 있습니다.
Squared error
각 훈련 데이터에 대한 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의 합을 구하면 아래와 같습니다.
$$ 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 |