이제 데이터 공부 안하는 블로그

역전파(EBack Propagation), 경사하강법, 손실함수 본문

딥러닝

역전파(EBack Propagation), 경사하강법, 손실함수

공사노비 2021. 8. 11. 13:29

* 제가 공부하기 위해 만든 자료입니다. 혹시 틀린 부분이 있다면 댓글로 알려주시면 수정하겠습니다.

 

 

역전파 BackPropagation 

우리의 목표는 최적의 신경망 모델을 만드는 것이다. 최적의 신경망 모델이란 우리가 원하는 타겟값과 결과값의 오차가 제일 적게 나오는 모델을 말한다. 오차를 최소한으로 만들기 위해서 신경망의 가중치를 적절하게 조절해야하는데 BackPropagation (역전파) 통해서 가중치를 조절할 있다. BackPropagation(역전파)란 타겟값과 출력값의 오차를 최소화하기 위해 출력층에서 입력층 방향으로 가중치를 갱신하는 알고리즘이다. 역전파라는 이름을 가진 이유는  출력층에서 시작해서 입력층 방향으로, 역방향으로 거슬러 올라가면서 가중치를 조절하기 때문이다.

 

가중치를 조절하는 방법은 다음과 같다

1 | 임의의 초기 가중치(W)를 준 뒤 결과를 계산한다.

2 | 계산 결과와 우리가 원하는 값 사이의 오차를 구한다.

3 | 경사 하강법을 이용해 바로 앞 가중치를 오차가 작아지는 방향으로 업데이트한다.

4 | 위 과정을 더이상 오차가 줄어들지 않을 때까지 반복한다.

위의 1~3 과정을 한 번 진행하는 것을 epoch 또는 literation 이라고 한다.

 

 

 

 

오차의 기울기(미분값)를 계산해서 오차가 제일 낮은 방향을 찾는다. 그 방향으로 얼마나 이동할지 그 보폭(learnign rete 학습률)을 정해준다. 오차가 낮은 방향으로 정해진 보폭(학습률)을 곱해서 가중치를 업데이트한다. 이 과정을 한 번하는 것은 epoch혹은 iteration이라고 하는데 가장 경사가 낮은 지점(오차가 제일 낮은 지점)을 찾을 때까지 그 과정을 계속 반복한다. 

 

다시 요약해서, Back Propagation(역전파)는 역방향(출력층에서 입력층 방향)으로 거슬러 올라가면서 오차의 기울기(미분값)을 계산해서 가중치를 업데이트 해나가는 과정이다.

 

 

 

경사하강법 Gradient Descent

오차함수의 낮은 지점을 찾아가는 최적화 방법이다. 오차함수를 현재 위치에서 미분해서 낮은 쪽 방향을 찾는다.

 

 

 

 

 

손실 함수 Loss function

손실 함수는 머신러닝 모델의 출력값과 타겟값(우리가 원하는 출력값) 사이의 차이를 수치화해주는 함수이다.  오차가 클수록 손실 함수의 값이 크고, 오차가 작을수록 손실 함수의 값이 작아진다. 손실 함수의 값을 최소화 하는 W, b를 찾아가는것이 머신러닝 모델 학습 목표이다. 일반적으로 손실함수로는 MSE(평균제곱오차) CEE(교차 엔트로피 오차)를 사용한다. 

 

 

손실함수의 종류

  • Binary Crossentropy : 예측 클래스가 이진분류인 경우 사용한다. 
  • Categorical Crossentropy : 예측 클래스가 2개 이상인 경우 사용되며, 데이터 label이 원핫인코딩의 형태로 되어있을 때 사용한다.
  • Sparse Categorical Crossentropy :  동일하게 예측 클래스가 2개 이상인 경우 사용되며, 타겟 변수가 원핫인코딩의 형태가 아닌 정수로 되어있을 때 사용된다.
  • MeanSquaredError : 예측한 값과 실제 사이의 평균 제곱 오차를 계산해준다. 오차가 클수록 손실함수가 . 회귀 모델을 훈련시킬 사용한다.