오차역전파
- 수치미분 vs 연쇄법칙 + 미분공식(오차 역전파 해당)
- 수치미분은 단순하고 구현하기 쉽지만, 계산 시간이 오래 걸린다는 것이 단점입니다.
- 그래서 가중치 매개변수의 기울기를 효율적으로 계산하는 오차역전파에 대해 배워보고자 합니다.
- 순전파를 통해 도출된 오차를 순전파의 역방향으로 가면서 오차를 줄일 수 있는 매개변수를 찾아가며 갱신하는 방법
- 실제값과 예측값의 거리(차이) = 손실함수의 값을 통해, 역으로 편미분을 통해 손실이 적어지는 최적의 매개변수를 구하는 것
알고리즘의 이해
1. 학습할 신경망을 구성/선택
2. 가중치 랜덤 초기화
3. 순전파를 통해 출력층에 도달, 출력값 확인
4. 비용함수를 계산
5. 비용함수를 최소화하는 가중치를 찾는다
6. 역전파를 통해 입력층으로 돌아오면서 비용함수를 최소화하는 가중치로 업데이트
7. 어떤 중기준충족 혹은 비용함수최소화를 기준으로 반복한다.
계산 그래프 : 순전파
오차 역전파를 계산 그래프로, 직관적으로 이해하기 쉽게 설명하고자 합니다.
위의 그래프를 보면 사과(2개) 가격(100원) 을 통해 200원이 나온 것을 알 수 있습니다. 그래서 최종적으로 지불해야 되는 가격을 알 수 있게 됩니다.
계산 그래프 : 역전파
이 예에서 역전파를 살펴보자면 맨 윗줄에서 오른쪽에서 인쪽으로 1 -> 1.1 -> 2.2 순으로 미분 값을 전달합니다. 즉 사과가 1원 오르면 최종 금액은 2.2원 오른다는 의미입니다. 사과에 대해서만 구했지만 소비세나, 개수도 미분 값을 (200, 110)임을 알 수 있습니다.
연쇄법칙이란
합성함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있습니다.
위의 식을 간단하게, 계산그래프로 아래와 같이 나타낼 수 있습니다.
Affine층과 역전파
위는 Affine층의 역전파 과정을 나타낸 계산 그래프 입니다. 계산을 위해 벡터 혹은 행렬 등의 차원 변환등이 이루어집니다.
위와 같은 과정이지만, 데이터를 묶어서 배치처리한다는 것이 다른점입니다. 이러한 과정을 실제 손으로 계산하여 보자면
아래와 같습니다.
- Affine에서 역전파 과정에서 곱셈노드의 경우, 각 곱셈으로 들어온 노드의 순수 값을 알기 위해서 다른 노드로 나눈다.
위의 사진은 affine층의 역전파 과정(단일, 배치)을 나타낸 것입니다. 왼쪽의 경우 하나의 데이터로만 역전파하는 과정이 있지만, 오른쪽의 경우 X = [[1,1],[2,3]]으로 나타내어, 하나의 데이터가 아닌 배치처리(묶음)을 통해 두개의 데이터를 나타냅니다. 그래서 B라는 벡터 또한, [7,8,9]에서 차원을 늘려 [[7,8,9],[7,8,9]]로 계산하는 모습을 볼 수 있습니다.
Repeat 노드 : 벡터를 행렬로 변환합니다. 같은 값의 벡터를 행렬로 차원을 늘리는 것입니다.
Sum 노드 : 행렬(다차원)을 벡터(한차원)으로 변환합니다. 세로줄의 벡터를 합쳐 하나의 벡터로 만들어 한줄을 만드는 것입니다. (텐서에 대한 형태를 Sum노드로 처리)
Repeat와 Sum의 노드 역전파 과정에서는 상호 관계입니다.
Simoid와 Relu (feat Vanishing Gradient)
시그모이드는 미분을 하면 결국 사칙연산으로 역전파를 구할 수 있게됩니다. 순전파로 구한 y로, y(1-y)를 하면 되는 것입니다.
위의 사진은 해당 증명입니다.
함수 미분의 방법뿐만 아니라, 계산그래프를 통해서도 증명해보는 과정을 나타내고 있습니다.
시그모이드 함수는 기울기 소실이라는 문제가 존재합니다. 이러한 문제는 0과 1사이로만 결과값이 나오는 것에서 발생합니다
은닉층이 깊어질 수록, 미분되어지는 과정에서 너무나 작게되어 학습이 제대로 이루어지지 않는 다는 것입니다. 그래서 해결방법으로 나온 것이 다른 활성함수를 사용하자는 것이였습니다. 그래서 Relu라는 활성함수를 사용하게 되었습니다.
활성함수 Relu는 시그모이드와 다르게 오른쪽 그래프와 같이 0이하일 경우 0만을 0초과일 경우 해당하는 숫자 그대로 결과로 나오는 함수 입니다.
'딥러닝' 카테고리의 다른 글
밑바닥부터 시작하는 딥러닝(활성화함수, 인공신경망, MNIST) (0) | 2021.10.21 |
---|---|
퍼셉트론과 인공신경망 (0) | 2021.09.23 |