엔지니어가 되고 싶은 공돌이

07. 경사 하강법 및 오차함수 본문

Artificial Intelligence/Basic Neural Network

07. 경사 하강법 및 오차함수

Geca 2019. 12. 30. 02:18

1. 경사 하강법

- 오차를 바탕으로 가중치를 업데이트하는 대표적인 방법 중 하나

- 인공신경망이 폭발적으로 발전하게 되는 계기가 됨 

- 복잡한 함수(오차)에서 한 스텝 한 스텝 천천히 내려오며 함수의 최저점(오차를 최소화)을 찾는 기법.

  이때 우리는 이 함수에 대한 이해가 없을 수 있다.

- 정확한 해답을 못 찾을 수 도 있다.

- y가 오차함수라면 y를 최소화 할 수 있는 x값을 찾는 것이 목표.

- 양의 기울기라면 x값을 감소시키고, 음의 기울기라면 x값을 증가시킨다.

- 스탭의 간견을 적절하게 조절해나가서 오버슈팅이 나지 않도록 한다.

- x 변수 하나만 보여주는 예제지만 실제문제를 해결할 때는 여러 변수를 구해야 한다.

  변수가 여러개이면 최저점과 하강 지점은 여러개가 될 수 있고 잘못된 하강지점에 빠질 수 있다.

  그러므로 각각 다른 출발점에서 시작해 여러 번 학습하는 방법을 취할 수 도 있다.

  다른 출발점이라는 말은 가중치의 초기 값을 다르게 준다는 것을 의미.

 


2. 여러 가지 오차함수

- 결과 함수를 바탕으로 오차 함수를 만든다.

 

1. (목표값 - 실제값)

: 전체 노드의 오차를 구하기 위해 합을 구할 때 양의 오차와 음의 오차의 합으로 오차가 상쇄될 수 있다.

2. |목표값 - 실제값|

- 오차간에 상쇄가 없지만 최저점 근처에 가면 기울기가 연속적이지 않으므로 경사하강법이 잘 동작하지 않을 수 있다.

3. (목표값 - 실제값)2

- 오차함수가 부드럽고 연속적이므로 경사하강법이 잘 동작한다.

 

오차함수는 매우 다양하게 존재하고, 만들 수 있으며, 경우에 따라 어떤 것은 잘 동작할 수 있고, 잘 동작하지 않을 수 도 있다.


3. 오차함수 미분법

경사하강법을 사용하려면 오차함수의 기울기를 구해야 한다.

'Artificial Intelligence > Basic Neural Network' 카테고리의 다른 글

09. 간단한 정리  (0) 2020.01.20
08. 데이터  (0) 2020.01.19
06. 역전파(back propagation)  (0) 2019.12.30
05. 가중치 학습  (0) 2019.12.29
04. 순전파(forward propagation)  (0) 2019.12.29
Comments