본문 바로가기
Programming/MachineLearning

딥러닝 오차 역전파 10분만에 이해하기

by 하하호호 2021. 12. 15.
반응형

딥러닝 오차 역전파

 

딥러닝은 학습데이터를 가지고 예측결과를

추론하는 알고리즘이다. 입력값은 기울기

a와 절편 b값이다. 

 

딥러닝은 실제데이터와 차이는 부분을 오차로

규정하고, 가중치와 절편을 임의로 조정하면서

오차가 가장작은 부분, 오차 그래프에서 미분이

0이 되는 지점까지 학습을 수행하고 결과를

도출한다.

 

문제는 퍼셉트론이 다층으로 쌓이면서 가중치와

바이어스의 수정값도 복잡해진다는 것이다.

층이 많아지면서 출력층에서 은닉층, 그리고

입력층으로 가중치+바이어스 수정값을 조정

하는데 이를 역으로 방향이 간다고 해서 

오차 역전파(back propagation)라 부른다.

 

오차 역전파가 수행되는 도식은 다음과 같다.

 

1. 환경 변수 지정

입력값, 타깃 결과값, 학습률, 데이터셋을 

먼저 정의한다.

 

2. 신경망 실행

초기값을 입력해서 입력층, 은닉층, 결과층을

거쳐 결과값을 출력해낸다.

 

3. 결과비교

실제값과 예측값을 비교한다. 당연히 오차가

발생하는 것을 확인하게 된다.

 

4. 역전파 실행

오차를 줄이기 위해 출력층, 은닉층 순서로

가중치와 바이어스를 수정한다.

 

5. 결과 출력

오차가 가장 줄어드는 방향으로 가중치, 

바이어스를 수정하고 결과를 출력해낸다.

다중 퍼셉트론에서 오차 역전파 수행과정

 

활성화 함수 Activation Function

 

가중치를 수정하는 과정은 미분을 사용한다.

오차 그래프를 확인하면 2차 함수의 형태를

가지고 있다. 오차가 가장 줄어드는 부분은

그래프의 가장 밑부분, 즉 미분이 0이 되는

지점이다.

 

딥러닝은 반복적인 가중치 조정으로 미분이

0이 되는 지점을 찾아간다. 이를 경사 하강법

(GradientDecent) 이다.

 

 

딥러닝 머신러닝 인공지능 경사 하강법 10분만에 이해하기 쫄지마 딥러닝

딥러닝 경사 하강법? 이전 글에서 살펴본 선형회귀에서 오차를 줄여나가면서 예측값을 수정한다고 했다. 선형회귀에서 a값과 b값을 조정하면서 오차를 줄여나가게 되는데, 만약 기울기 a를 너무

incomeplus.tistory.com

 

다중 퍼셉트론의 문제는 퍼셉트론이 중첩되기

시작하면서 활성화 함수로 사용된 시그모이드

함수 때문이다.

 

시그모이드 함수는 0과 1을 판별하는 함수기

때문에, 시그모이드 함수가 계속 중첩된다면

기울기가 점점 0에 수렴하게 되고, 가중치를

수정하기에 충분한 기울기가 없어지는 현상,

기울기 소실(vanishing gradient) 문제가

발생하게 된다.

 

이 문제를 해결하는 방법은 시그모이드 함수가

아닌 다른 활성화 함수를 사용하는 방법밖에

없다.

 

그 중 제프리 힌튼 교수가 제안한 활성화 함수인

렐루(ReLU)는 시그모이드 함수를 대체해서

가장 많이 사용되는 활성화 함수가 된다.

 

렐루(ReLU)는 x가 0보다 작을 때는 모든 값을

0으로 처리하고, 0보다 큰 값은 x를 그대로 사용하는

간단한 로직을 통해 기울기 소실 문제를 해결한다.

 

렐루 활성화 함수 그래프

 

 

더 나아가서

기울기 소실 문제를 해결 했으니 다중 퍼셉트론의

환경에서 오차를 줄여나가는 것은 해결이 되었다.

여기서 또다른 문제점이 발생하는데 바로 속도의

문제다.

 

출력값과 실제값을 비교해서 오차가 발생하면,

가중치를 조정해야 하는데, 이 층이 많아지기

시작하면서 계산 속도가 현저히 떨어지는 현상이

발생하기 시작한다.

 

확률적 경사 하강법(Stochastic Gradient Descent, SGD)

SGD는 전체 데이터를 사용하지 않는다.

랜덤하게 추출된 일부 데이터를 이용해서

가중치를 업데이트 하게 되고, 최적화 과정을

진행한다.

 

모멘텀(Momentum)

가중치를 조정함에 있어서 +가 되고 -가 되는

과정이 반복되면 지그재그 형태의 수정값이

발생하게 되고 이 또한 속도 저하의 주범이 된다.

 

모멘텀은 같은 바향으로 일정한 비율만

수정되게 하는 방법이다. 즉 지그재그가 아닌

가중치 수정값이 일정방향으로 광성의 효과를

기대할 수 있게 한다.

 

속도는 비약적으로 빨라지기 시작하고,

결과값은 점점 정확도를 올려가기 시작한다.

 

아담(Adam)

모멘텀, 알엠에스프롭을 합친 고급 경사하강법이다.

정확도와 보폭의 크기를 개선하였고, 가장 최근에

개발된 방법이다. 현재 가장 많이 사용되고 있는

고급 경사 하강법이다. 

더 읽을거리

 

 

딥러닝 핵심 개념 신경망 10분만에 이해하기

인간의 신경망 작동 인간의 뇌는 약 1000억개의 뉴런으로 구성된다. 뉴런 사이에는 시냅스라는 연결부위가 존재한다. 신경 말단에서 자극을 받으면 시냅스에서 화학물질이 분비되고, 전위 변화

incomeplus.tistory.com

 

 

 

딥러닝 로지스틱 회귀 알고리즘 10분만에 이해하기

선형회귀분석과 다르게, 참과 거짓만을 분별해야 하는 모델이 필요하다. 우리는 이때 로지스틱 회귀 분석 알고리즘을 이용하게 된다. 로지스틱 회귀 분석 참, 거짓을 구분하는 알고리즘이 로지

incomeplus.tistory.com

 

 

딥러닝 머신러닝 차이, 머신러닝 딥러닝

머신러닝 딥러닝 차이 알파고가 대한민국을 초토화 시킨지 5년이 지났다. 실생활에도 인공지능이 많이 들어 왔고, 무수히 쌓여가는 데이터들을 기반으로 한 새로운 사업들이 계속 등장하고 있

incomeplus.tistory.com

 

 

딥러닝의 층 구조 딥러닝을 배워보자

더보기 딥러닝 기본 구조 신경망 딥러닝의 구조는 크게 3부분으로 나뉘어져 있다. 1. 입력 부분 2. 분석 부분 3. 출력 부분 마지막으로 모델을 만들고 난 후, 컴파일을 하는 부분으로 구성된다. 층

incomeplus.tistory.com

 

반응형

댓글