1. 순방향 알고리즘(Forward Propagation)
: 주어진 입력 데이터를 기반으로 예측 값을 계산하는 과정
1) 특징
- 입력층 -> 은닉층 -> 출력층 순으로 계산 (간단하고 직관적인 과정)
- 예측, 학습 과정에서 사용 (빠른 예측 수행)
- 입력 데이터를 넣어 출력 값을 계산
- 선형 결합 및 활성화 함수 계산
- 모델의 예측 수행
2) 장점
- 병렬 처리 가능
- 입력 데이터와 각 층의 뉴런 간의 계산이 독립적으로 이루어지므로 GPU를 이용한 병렬 처리에 적합 - 학습의 기초 과정 제공
- 역전파 알고리즘을 수행하기 위한 필수 단계로 예측값을 기반으로 손실을 계산하여 신경망 학습에 기여 - 적용범위 넓음
- 단순한 분류(Classification)부터 복잡한 생성 모델까지 광범위한 문제에 적용가능
3) 단점
- 오차수정 불가
- 순방향 알고리즘 자체는 오차를 줄이거나 가중치를 조정하지 못함
- 순방향만으로는 신경망을 학습시킬 수 없음 - 모델 성능에 의존적
- 순방향 알고리즘의 출력은 신경망의 구조(레이어 수, 뉴런 수, 활성화 함수 등)와 초기화된 가중치에 따라 달라짐
- 비효율적인 모델 설계나 부적절한 초기화는 부정확한 예측을 초래할 수 있습니다. - 대규모 신경망에서 계산량이 증가
- 입력 데이터가 클수록, 또는 신경망의 층 수와 뉴런 수가 많을수록 계산량이 급격히 증가하여 추론속도에 영향을 줌 - 과적합 위험 존재
- 학습된 모델이 훈련 데이터에만 적합하게 설계되었을 경우, inference에서 부정확한 결과를 낼 수 있습니다. - 결과해석 어려움
- 입력 데이터와 가중치의 조합에 의해 도출되므로, 복잡한 모델에서는 출력 값이 왜 그렇게 나왔는지 해석하기 어려움
순방향 알고리즘은 학습 능력이 없고 모델 구조와 데이터 품질에 따라 성능이 좌우된다는 한계가 있다. 이를 보완하기 위해 역전파 알고리즘과 함께 사용하여 신경망의 학습과 최적화를 진행한다.
2. 역전파 알고리즘(Back Propagation)
: 순방향 계산 결과와 실제 값 간의 오차를 기반으로 그 오차값을 다시 Back하여 오차를 최소화하게 만드는 알고리즘
: 신경망의 출력 값과 실제 값 간의 차이를 나타내는 손실 함수(Loss Function)를 최소화하는 방향으로 가중치와 편향을 조정
1) 특징
- 출력층 -> 은닉층 -> 입력층
- 학습 과정에서만 사용
- 출력 오차를 계산하여 기울기를 통해 가중치를 수정
- 체인 룰을 활용한 기울기 계산
- 모델의 학습 및 성능 개선
- 활성화 함수의 미분 가능성을 전제로 하며, ReLU, Sigmoid, Tanh 등의 함수가 사용
2) 장점
- 복잡한 신경망에서도 학습이 가능
- 다양한 신경망 구조(Feedforward Neural Networks, CNN, RNN 등)에 적용 가능
- 여러 활성화 함수와 손실 함수에 유연하게 대처가능 - 오차를 층별로 나눠 효율적으로 가중치를 조정
- 대규모 네트워크에서도 상대적으로 빠르게 학습할 수 있음 - 자동화된 학습
3) 단점
- 학습이 느릴 수 있음(Vanishing Gradient Problem)
- 대규모 신경망의 경우, 역전파 과정에서 많은 계산이 필요
- 특히, GPU나 TPU가 없으면 계산 비용이 매우 높음 - 기울기 소실 문제
- 비선형 활성화 함수와 깊은 신경망 구조에서 기울기가 점점 작아지며 학습이 어려워질 수 있음
- 활성화 함수로 Sigmoid나 Tanh를 사용할 경우, 네트워크가 깊어질수록 기울기 값이 매우 작아져 가중치 업데이트가 거의 이루어지지 않음 - 초기화 민감성
- 가중치 초기화 방식에 따라 학습 결과와 속도가 크게 달라져 잘못된 초기화는 학습을 방해하거나 느리게 할 수 있음 - 많은 양의 데이터 필요
- 데이터가 부족하면 모델이 충분히 학습되지 않거나 과적합 문제가 발생할 수 있음 - 과적합 위험
- 학습 데이터를 과도하게 학습할 경우, 신경망이 일반화 성능을 잃고 테스트 데이터에 부정확한 예측을 할 수 있음
- 과적합을 방지하기 위헤 정규화 기법이나 Dropout 등을 병행해야 함
역전파 알고리즘은 ReLU 활성화 함수, 가중치 정규화, Adam 최적화 기법 등의 개선 기술과 함께 사용하는 것이 좋다.
3. Propagation의 주요 단계
1) 순방향 전파 (Forward Propagation): 입력 데이터를 신경망에 넣어 각 층을 통과시키면서 예측 값을 계산
2) 오차 계산 (Error Calculation): 예측 값과 실제 값간의 오차를 손실 함수로 계산
- 손실함수 종류: 평균제곱오차(MSE), 교차엔트로피(Cross-Entropy) 등
3) 역전파 (Backward Propagation)
- 오차의 기울기 계산
- 손실 함수의 결과를 기준으로 가중치와 편향에 대한 변화량을 계산.
- 체인 룰(Chain Rule)을 사용하여 각 층의 오차를 계산하며, 오차가 역으로 전파됨.
[Deep Learning 시리즈] Backpropagation, 역전파 알아보기
이번 포스팅에서는 저번 포스팅에 이어 에 대해서 알아보려고 한다. 앞서 설명했듯, 이 알고리즘으로 인해 에서의 학습이 가능하다는 것이 알려져, 암흑기에 있던 학계가 다시 관심을 받게 되었
evan-moon.github.io
- 가중치 및 편향 수정
- 경사하강법(Gradient Descent) 또는 그 변형 알고리즘(예: SGD, Adam)을 사용하여 가중치와 편향 업데이트
4) 반복: 위 과정을 정해진 에폭(Epoch) 동안 반복하여 최적의 가중치와 편향을 학습
순방향은 데이터 처리와 예측에, 역전파는 학습과 최적화에 상호보완하여 사용한다.
'DeepLearning > 딥러닝 기초' 카테고리의 다른 글
[딥러닝 기초] 경사하강법 Gradient Descent (4) | 2024.12.13 |
---|---|
[딥러닝 기초] 신경망의 기본 구조 (1) | 2024.12.12 |
[딥러닝 기초] 활성 함수(Activation Function) 정의 및 종류 (1) | 2024.12.05 |
[딥러닝 기초] 손실 함수(Loss function) 정의 및 유형 별 종류 (4) | 2024.12.04 |
[Anaconda] 가상환경에서 GPU Tensorflow 구축하기 (2) | 2024.11.28 |