본문 바로가기

AI 프로그래밍

오차 역전파와 활성화 함수(Sigmoid, ReLU)

- 2023.03.27


오차 역전파

 

오차 역전파 (Back Propagation)

: 다층 퍼셉트론에서의 최적화 과정

  • 계산 결과와 정답의 오차에 관여하는 값들의 가중치를 수정하여 오차가 작아지는 방향으로 수정하는 방법
  • 역방향(출력층에서 입력층 방향)으로 오차를 전파

 

 

동작 원리

 

: 동일 입력층에 대해 원하는 값이 출력되도록 각 계층의 가중치를 조정하는 방법

 

  1. 기존에 설정했던 가중치를 이용해서 net  / out 계산
  2. 가중치에서 전체 오차를 가중치로 편미분한 값을 빼기
  3. 모든 가중치를 2번 과정 실시
  4. 위 과정을 학습 횟수만큼 반복

 

사용 이유

 

  1. 미분을 효율적으로 계산할 수 있음
  2. 수치미분을 사용하지 않고 행렬로 표현되는 수식으로 계산하기 때문에 빠른 계산이 가능해짐
  3. 계산적 편의성

 


 

활성화 함수

 

활성화 함수 (Activation Function)

: 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달하는데 쓰이는 함수

  • 비선형 함수를 사용하는 이유는 딥러닝 모델의 레이어 층을 깊게 가져갈 수 있기 때문임
  • 입력 신호의 총합을 출력신호로 변환하는 함수
  • 인공신경망의 은닉층에 사용되는 함수

 

Sigmoid 함수

 

: 일정 값을 기준으로 0인지 1인지 구분함으로써 분류하는 방식

 

  • 음수 값을 0에 가깝게 표현해 입력 값이 최종 레이어에 미치는 영향이 적어짐
  • 내부 히든층의 깊이가 깊으면 오차율을 계산하기 어려움
  • x의 절댓값이 커질수록 미분 값이 소실될 가능성이 있음
  • 중심이 0이 아닌 것 때문에 학습이 느려질 수 있음

 

ReLU (Rectified Linear Unit, 정류된 선형 함수)

 

: 0보다 작은 값이 나온 경우 0을 반환하고, 0보다 큰 값이 나온 경우 그 값을 그대로 반환하는 함수

 

  • 내부 중간층에 ReLU를 적용하고, 출력층에서만 sigmoid 함수를 적용하면 이전에 비해 정확도 증가
  • Sigmoid 함수보다 학습이 빠름 · 연산 비용이 적음 · 구현이 매우 간단