티스토리 뷰

▶딥러닝 역전파(Backpropagation)

1) 순전파(Forward propation)

순전파

순전파(forward propation)은 뉴럴 네트워크 모델의 입력층부터 출력층까지 순서대로 변수들을 계산하고 저장하는 것을 의미합니다.

입력받은 데이터를 각 가중치에 곱하여 출력을 뽑아내는 과정이라고 볼 수 있겠습니다.

 

2) 역전파(Back propagation)

역전파는 틀린 예측을 바로 잡기 위해 파라미터를 순차적으로 수정해 나가는 학습 알고리즘입니다.

a) 순전파의 반대 방향인 b) 역전파

역전파(back propagation)는 뉴럴 네트워크의 파라미터들에 대한 그래디언트(gradient)를 계산하는 방법을 의미합니다.

일반적으로 역전파(back propagation)은 뉴럴 네트워크의 각 층과 관련된 목적 함수(objective function)의 중간 변수들과 파라미터들의 그래디언트(gradient)를 출력층에서 입력층 순으로 계산하고 저장합니다.

순전파의 반대방향으로 전파시키는 방법으로 출력층(output layer)으로부터 입력층(input layer)까지 역으로 나갑니다.

역전파의 순서는 다음과 같습니다.

 

{ 가중치 업데이트 -> 활성화함수 적용 } 반복

 

  1. 주어진 입력값에 상관없이 임의의 초기 가중치를 준 뒤 은닉층을 거쳐 결과물 계산(순전파)
  2. 계산 결과와 실제 예측하고자 하는 값 사이의 오차를 구함(오차 함수)
  3. 계산식의 반대로 돌아가며(미분) 가중치를 업데이트(역전파)
  4. 1~3의 과정을 오차가 더이상 줄지 않을 때까지 반복(에폭)

(위 과정은 경사하강법과 활성화 함수의 적용으로 반복해서 진행됩니다.)

 

2-1) 경사하강법(Gradient Descent)

역전파를 진행할 때 오차함수의 값을 토대로 가중치를 업데이트하고 그 값에 활성화함수를 적용하는 과정을 반복합니다.

W는 가중치이며 위 그래프에서 기울기에 해당합니다.

 

위 그래프는 비용함수를 나타냅니다.

비용함수의 기울기가 아래로 향하는 방향으로 계속 이동하다보면 비용함수의 최저점에 도달하게 되는데

최저점을 찾는 것이 경사하강법의 목표입니다.

 

경사하강법은 딥러닝 알고리즘 학습시 사용되는 최적화(optimizer) 방법이며, 하강하는 여러 방법이 존재합니다.

 

경사하강법의 종류

1. GD(Gradient Descent)

모든 데이터를 사용하여 계산하는 방법으로 데이터셋 전체를 고려하여 손실함수를 계산합니다.

한번의 Epoch(에폭)에 모든 파라미터 업데이트를 단 한번만 수행합니다.

때문에 모델 학습시 많은 시간과 메모리가 필요하다는 단점이 있습니다.

 

2. SGD(Stochastic Gradient Descent)

확률적 경사 하강법으로 모든 데이터에 대해 가중치를 조절하는 것이 아닌 랜덤으로 일부를 추출해서 그에 대해 가중치를 조절하는 방법입니다.

그렇기 때문에 GD보다는 빠르고 적은 메모리를 사용합니다.

다만, 파라미터 값의 업데이트 폭이 불안정하기 때문에 정확도가 낮은 경우가 생기기도 합니다.

 

3. Momentum

관성을 사용하는 방법으로 local minima를 해결하기 위해 고안되었습니다.

운동량을 의미하며 매개변수의 이동에 속도를 부여하는 것을 의미합니다.

매개변수를 갱신할 때마다 기존 속도에 매개변수의 기울기 값을 추가하고 이 속도값을 다시 매개변수에 추가하여 매개변수를 이동시킵니다.

즉, 이전의 방향을 기억하여 관성처럼 추가적인 이동을 하기 때문에 local minima 문제를 해결할 확률을 높입니다.

 

4. Adagrad

Adaptive Gradient의 줄임말로 손실 함수 곡면의 변화에 따라 적용적으로 학습률을 정하는 알고리즘입니다.

손실 함수 경사가 가파를 때 큰 폭으로 이동하면 최적화 경로를 벗어나 최소 지점을 지날 수 있는데

Adagrad 기법은 많이 변화한 변수는 최적해에 근접했을거란 가정하에 작은 크기로 이동하면서 세밀하게 값을 조정합니다.

반대로 적게 변화한 변수들은 학습률을 크게 하여 빠르게 오차값을 줄이고자 하는 방법을 사용합니다.

 

5. RMSprop

Adagrad는 학습률이 작아지는 문제가 존재합니다.

이를 방지하기 위해 만들어진 옵티마이저로, 기울기를 단순히 누적하는 것이 아닌 가중이동평균을 사용하여 최근의 기울기에 더 높은 가중치를 두는 방식을 적용한 방법입니다.

다시말해, 변화량이 더 클수록 학습률이 작아져서 조기 종료되는 문제를 해결하기 위해 학습률 크기를 비율로 조절할 수 있도록 제안된 방법이 되겠습니다.

 

6. Adam(Adaptive Moment Estimation)

Adam은 Momentum과 RMSprop이 합쳐진 형태입니다.

진행하던 속도에 관성을 주고, 최근 경로의 곡면의 변화량에 따른 적응적 학습률을 갖는 알고리즘으로

매우 넓은 범위의 아키텍처를 가진 서로 다른 신경망에서 잘 작동한다는 것이 증명되었습니다.

 

2-2) 활성화 함수(Activation Function)

활성화 함수(Activation Functon)은 신경망의 출력을 결정하는 식입니다.

 

결론적으로는 선형함수를 활성화함수(선형함수)로 감싸주면 비선형 함수가 만들어집니다.

 

신경망에서는 뉴런(노드)에 연산 값을 계속 전달해주는 방식으로 가중치를 훈련하고 예측합니다.

각각의 함수는 네트워크의 각 뉴런에 연결되어 있으며 각 뉴런의 입력이 모델의 예측과 관련이 있는지 여부에 따라 활성화를 합니다.

활성화를 통해 신경망은 입력값에 필요한 정보를 학습합니다.

훈련 과정에서 계산량이 많고 역전파에서 사용해야 하므로 연산에 대한 효율성이 매우 중요합니다.

 

활성화 함수는 왜 사용하는 걸까? - 선형 분류기의 한계

기존의 퍼셉트론은 AND와 OR 문제는 해결할 수 있었지만, 선형 분류기라는 한계에 의해 XOR과 같은 non-linear한 문제는 해결할 수 없었습니다.

그리고 이를 해결하기 위해 나온 개념이 hidden layer입니다.

활성화 함수를 사용하면 입력값에 대한 출력값이 linear하게 나오지 않으므로 선형분류기를 비선형 시스템으로 만들 수 있습니다.

 

활성화 함수의 종류

1. Sigmoid

로지스틱으로도 불리는 S자 형태의 함수입니다.

입력값이 커질수록 1로 수렴하고, 작을수록 0에 수렴하는 특징이 있습니다.

sigmoid의 치명적인 단점은 역전파 시 Vanishing Gradient 문제가 발생한다는 것입니다.

 

* Vanishing Gradient

이렇게 시그모이드로 여러 layer를 쌓았다고 가정했을 때 출력층에서 멀어질수록 기울기가 거의 0인 몇몇 노드에 의해서 점점 역전파해갈수록, 즉 입력층 쪽으로 갈수록 대부분의 노드에서 기울기가 0이 되어 결국 gradient가 소실되고 맙니다.

결국 입력층 쪽 노드들은 기울기가 사라지므로 학습이 되지 않는 문제가 발생합니다.

 

정리

  • 장점: binary classification의 출력층 노드에서 0~1 사이의 값을 만들고 싶을 때 사용
  • 단점: vanishing gradient - input값이 너무 크거나 작아지면 기울기가 거의 0이 된다.

 

2. ReLU

Rectified Linear Unit 함수의 줄임말로 개선 선형 함수라고 부릅니다.

입력값 x가 0 이하일 때는 0으로 출력하고, x가 1이상일 때는 x값 자체로 출력하게 됩니다.

대부분의 경우 일반적으로 ReLU의 성능이 가장 좋기 때문에 주로 ReLU를 사용합니다.

단점은 입력값이 0 또는 음수일 때 gradient값은 0이 되며 이 경우 학습을 하지 못한다는 점입니다.

 

정리

  • 장점: 대부분의 경우에서 기울기가 0이 되는 것을 막아주기 때문에 학습이 아주 빠르게 잘 된다.

 

3. Softmax

다중 분류 문제를 해결하기 위해 많이 사용되는 함수입니다.

입력받은 값을 0에서 1사이 값으로 모두 정규화하여 출력값이 여러 개입니다.

따라서 출력값의 총합은 항상 1이 되는 특징을 가집니다.

 


 

 

728x90
LIST
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함