본문 바로가기
딥러닝

딥러닝 이해 시작(6) - 신경망과 오차역전파

by pumkinni 2022. 6. 13.

딥러닝 이해 시작(6) - 신경망과 오차역전파

신경망의 구조, 퍼셉트론, 오차역전파에 대해 알아보기


신경망의 기본 구조

 여러 층의 퍼셉트론을 서로 연결시키고 복잡하게 조합하여 주어진 입력 값에 대한 판단을 하게 하는 것

  • 퍼셉트론 : 입력 값과 활성화 함수를 사용해 출력 값을 다음으로 넘기는 가장 작은 신경망 기본 단위
  • y = ax + b 에서 기울기 a는 퍼셉트론에서는 가중치를 의미하는 w(weight)로 표기
       ex) y = ax + b -> y = wx + b ( w는 가중치, b는 바이어스)
  • 가중 합(weighted sum) : 입력 값 x와 가중치 w의 곱을 모두 더한 다음 바이어스 b를 더한 값
  • 활성화 함수(activation function) : 가중합의 결과를 두고 1 또는 0을 출력한 후 다음으로 보낼때 0과 1을 판단하는 함수    ex) sigmoid함수, relu함수, softmax함수 등

퍼셉트론 구조

 

다층 퍼셉트론

 입력층과 출력층 사이에 은닉층이 숨어있는 형태

  • 가운데 숨어있는 은닉층으로 퍼셉트론이 각각 자신의 가중치 w와 바이어스 b값을 보냄
  • 이 은닉층에서 모인 값이 시그모이드 함수()를 이용해 최종 값으로 결과를 보냄
  • 노드(node) : 은닉층에 모이는 중간 정거장(n1과 n2로 표현)

퍼셉트론 내부

 

오차 역전파

 임의의 가중치를 선언하고 결과값을 이용해 오차를 구한 뒤 오차가 최소인 지점으로 이동시키는 방법 사용(경사하강법을 사용하여 가중치 구하기)

  • 오차 역전파 과정

오차 역전파 과정

  • 오차 수정 과정

퍼셉트론에서의 오차 수정

 

고급 경사 하강법

 한번 업데이트할 때마다 전체 데이터를 미분해야 하므로 계산량이 매우 많다는 경사 하강법의 단점을 보완한 방법

  • 확률적 경사 하강법(Stochastic Gradient Descent, SGD
    - 전체 데이터를 사용하는 것이 아니라, 랜덤하게 추출한 일부 데이터를 사용하므로 더 빨리 그리고 자주 업데이트를 하는 것이 가능해짐(속도 개선)
  • 모멘텀(momentum)
    - 경사 하강법과 마찬가지로 매번 기울기를 구하지만, 이를 통해 오차를 수정하기 전 바로 앞 수정 값과 방향 (+, -)을 참고하여 같은 방향으로 일정한 비율만 수정되게 하는 방법
    - 관성의 방향을 고려해 진동과 폭을 줄이는 효과를 가짐(정확도 개선) 
  • 아담(Adam)
    - 현재 가장 많이 쓰이는 방법으로 모멘텀과 RMSProp을 합친 방법(정확도와 보폭 크기 개선)