경사하강법(Gradient descent algorithm)과 역전파(Backpropagation)

이준우·2021년 10월 10일
0

이번에는 경사하강법에 대해 알아보자.

경사하강법
: 함수의 기울기를 반복 계산하면서 이 기울기에 따라 함숫값이 낮아지는 방향으로 이동하는 기본적인 딥러닝 학습 알고리즘

경사하강법은 순전파와 역전파를 번갈아 수행하는 과정을 반복하면서 신경망 파라미터들을 원하는 방향으로 바꾸어 나간다.

순전파(forward propagation)
: 입력 데이터에 대해 신경망 구조를 따라가면서 현재의 파라미터값들을 이용해 손실 함숫값을 계산하는 과정

역전파(backward propagation)
: 순전파의 계산 과정을 역순으로 거슬러가면서 손실 함숫값에 직간접적으로 영향을 미친 모든 성분에 대하여 손실 기울기를 계산하는 과정.


위의 그래프를 수식으로 표현하면 다음과 같다. 알파는 학습률(learning_rate)이다.왜 학습률을 곱해줘서 수식을 더 복잡하게 만드는 걸까?

위의 그림을 보면 왜 학습률에 제한을 두어 학습을 하는지 이해가 간다. 아주 간단한 것이라면 굳이 learning rate(학습률)를 두고 학습할 필요가 없다. 그렇지만 이런식으로 3차원 데이터라면?

뜬끔없다고 생각할지 모르겠지만 디스코 팡팡에서 손을 강하게 잡아도 조금씩 미끄러진다. 그러나 손을 놓는다면 어떤 일이 발생할까? 디스코 팡팡에서 튕겨져 나가서 사고가 날 수 있다. 이처럼 learning rate(학습률)도 동일한 역할을 한다. 하이퍼파라미터인 learning rate는 매우 중요하다.

하지만 경사하강법에는 문제점이 많다.

이런식으로 문제가 local minimum = 0 이 최저점에 도착하기 전에 발생하면 학습은 제대로 되지 않는다. 이런 문제를 해결하기 위해 adam algorithm이 있는데, 이는 다음에 설명하도록 하겠다.

편미분과 전미분에 대한 내용은 나중에 따로 설명하도록 하겠다. (쩝, 이거 수식으로 언제쓰지 ㅠㅠ..)

profile
꿈꾸는 CV

0개의 댓글