Gradient-Descent, 경사 하강법
비전에 대비하여 생각해보겠습니다.
어떠한 영상을 판단할 때, 특정 기준을 이용하여 영상 내의 특징점들을 획득한 후, 이를 이용해 영상의 종류를 판단할 수 있다고 생각해 봅시다. 그렇다면 어떻게 이 특징점들을 표준화 시킬 수 있을까요? 아래와 같은 과정을 통해서 생각해봅시다.
1. 1차 방정식 y = mx + b를 데이터들 안의 적절한 곳에 위치시킨다.
2. 우리는 여기서 비용함수를 구할 수 있게 된다. 비용함수의 정의는 다음과 같다.
(여기서 오차를 제곱하는 이유는 오차가 음수가 되는 경우에는 계산에 문제가 생기기 때문이다. 그렇기 때문에 제곱을 해줌으로써 무조건 양수로 만들어 에러 계산에 이용한다.)
N : 데이터 샘플들 갯수
Yi : 데이터 샘플 중 i 번째의 y 값
MXi + B : 1차 직선의 방정식의 i에서 y값
Error : 비용(오차)
위 함수에서의 미지수는 m과 b이며, 이 미지수를 조절해서 비용(Error)값이 최소가 되도록 만들어 나간다.
이 때, m과 b가 인공 신경망의 가중치 w1, w2가 되는 것이다.
Error를 최소로 만드는 가중치 값들을 찾아가는 과정이 바로 '학습' 이다.
3. 그렇다면 Error가 최소가 되는 지점을 어떻게 찾을 수 있을까?
비용함수는 2차식으로 나타나게 되는데, 이를 이용하여 Error가 최소가 되는 지점에 도달
4. 세로축이 Error값이며, 이 Error값을 최소로 만드는 가중치 w가 우리가 지향하는 값이다.
5. 2차함수를 편미분 하였을 때, 그 값이 0이 된다는 것은 기울기가 0이라는 것을 의미하며, 2차함수 그래프에서 기울기가 0이 되는 지점은 Error가 최소가 되는 지점이 되게 된다.
아래 그림을 보며 차례대로 진행해보자.
여기서 B0는 w1, B1는 w2와 같으며, E(B0,B2)는 비용함수 Error(w1,w2)와 같음.
(1) 먼저 그래프는 B0 가중치(x축)의 변화에 따른 비용함수 값(y축)의 변화를 나타낸다.
(2) 이 때, 초기 가중치값 B0에 대해 편미분을 실시(오른쪽 가장 위)하고 이 때 결과 값은 당연히 0이 아니게 된다.(기울기가 크기 때문)
(3) 그러면 우리는 위에 적혀진 공식에 따라 다음 B0값을 결정해준다.
B0 = B0 - a*(ටE(B0,B1)/ටB0), 여기서 a는 학습률이며, 이 값이 클수록 학습의 속도는 빨라지지만 정밀도는 떨어진다. 반대로 이 값이 작으면 학습 속도는 느리지만 정밀도는 높아진다.
(4) 다음 B0에서도 편미분 값을 확인하고 0에 수렴하지 않는다면 다시 다음 B0값을 구해준다.
(5) 이렇게 편미분 값이 0에 수렴하는 곳을 찾으면 그 때의 가중치가 비용함수 값을 최소로 하는 가중치라고 판단하게 되는 것이다.
6. 하지만 아래 그림과 같이 데이터에 따라 정확한 데이터 취득에 불리한 경우도 있다.
출처 : http://hamait.tistory.com/747
이 글은 학습을 목적으로 정리한 글로, 문제될 시 즉시 내리겠습니다.
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기