역전파 알고리즘 Backpropagation은
기본적으로 매개변수(가중치,편향)의 오차함수(error function)의 도함수를 계산하기 위한것.
즉 쉽게 요약하자면 신경망에서 학습과정에서 손실을 최소화하기 위해서 쓰임.
여기서 Neural Netwrok의 어려운 점은 필요한 모든 양에 직접 액세스 할 수 없음.
입력 레이어(Input Layer)에서 출력 레이어(OutPut Layer)에서 또 출력 레이어에서 입력 레이어로 직접 액세스할 수 없음.
그때문에 숨겨진 레이어(Hiddle Layer)에서 전환하여서 그 값을 계산하여야하는데, 이러한 레이어간 전환은 수학적인 미분 연쇄 법칙에 의존함.
이를 역전파 알고리즘이라고함
다르게 말해서, 역전파는 숨겨진 레이어를 통해 error를 전파하면서 각 레이어의 가중치를 조정하는 것이라고 이해할 수 있음.
혹자는 역전파 알고리즘 자체 multilayer nerual network의 학습 알고리즘 전반을 말하기도 하지만, 이는 사실이 아니라,
역전파는 도함수, 즉 기울기를 구하기 구하는데 쓰이는 것임
이는 경사하강법(Gradient Descent)과 같은 최적화 알고리즘과 결합되서 신경망 가중치를 업데이트하는데 사용됨
(경사 하강법은 1차 도함수를 이용하여 손실 함수(Loss function)를 최소화하는 함수)
아래는 회귀(regression)문제에 역전파와 최적화 알고리즘을 적용해서 학습 시키는 법을 다룸.
(여기서 회귀는 입력 변수와 연속적 출력 변수간의 관계를 모델링하는 문제임)
여기서 En은 평균 제곱오차임.
모델의 예측값 y_n과
실제값 t_n간의 차이를 측정함.
여기서 도함수를 구하면
(오차함수E_n에 대한 가중 wij의 기울기)
편미분 방정식의 연쇄법칙에 의거해서
b_n은 출력 뉴런의 활성화 함수(Activation)의 출력값
p_j는 히든 레이어의 뉴런의 출력값
이다.
활성화함수?->입력 신호의 총합을 출력신호로 변환하는 함수
(선형 결합의 도입-> 모델 출력 b_n을 입력 z_j와 p_j의 선형 결합으로 정의함)
여기서 σ(시그마)는 출력 뉴런의 오차, z_j는 입력 뉴런의 값이다.
여기까지가 주어진 데이터 포인트에 대한 오차함수의 기울기를 계산하는 방법이다.
즉
1.오차함수를 정의
2.개별 오차의 정의-> 예측값과 실제값 차이의 제곱
3. 오차함수의 기울기 계산
4. 선형 결합의 도입
5. 각 파라미터에 대한 기울기(y_n-t_n)z_j가 된 것이다.
여기까지가 '단일 레이어 또는 simple model에서의 기울기다. 여기서 역전파 알고리즘은 이를 '다층(Multilayer)' 신경망으로 확장한다.
각층의 파라미터에 대한 기울기를 효율적으로 계산하는 방법이 역전파 알고리즘인 것이다.
다층 신경망의 구조는
여러개의 hidden layer가 존재하는데 입력 레이어->Hidden Layer1->Hidden Layer2->....>Out Layer 순서다
뉴런 j의 입력 a_j에 대한 편미분
히든 레이어 j의 뉴런 입력 aij를 정의함
x_i는 입력 레이어의 뉴런 i 출력값임.
여기서
b는 출력 레이어 뉴런의 입력값임.
σ시그마는 결국
출력층에서 모델의 최종 출력과 실제 값과의 차이를 계산함.
그리고 이것을
hiddlayer에서 계산된 오류를 바탕으로 각 hiddlayer안에 있는 노드가 얼마나 오류에 기여했는지 체크하는것이
라고 할 수 있음
따라서
σ_j는 Hidden Layer의 각 노드가 OutLayer의 오류에 얼마나 기여했는지를 나타냄.
따라서
이 식의 의미도 자명해짐.
출력층의 가중치에 대한 오차함수의 편미분->즉 가중치 p_ij가 변할때 오차E_n이 어떻게 변하는지를 나타내는 기울기
여기에서 이제 경사 하강법을 사용해서, 가중치를 업데이트하면
이 된다.
η: 학습률(learning rate)은 학습률
학습률이 너무 작을 경우-> 학습이 매우 느리게 진행됨
학습률이 너무 클 경우->발산할 위험이 있음.
전체 과정을 요약하면 다음과 같다.
1. 순전파(Forward Pass)->입력 데이터를 통해서 예측값을 계산
2. 오차 계산
3. 역전파(Backward Pass)->Out Layer에서 Hidden Layer로 오차 전파, 매개변수 기울기 계산
4. 경사 하강법을 사용하여 가중치 업데이트
5. 반복
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.