모두야

CH4) 신경망 학습 - (2) 본문

밑.시.딥/1권

CH4) 신경망 학습 - (2)

미미밍2 2021. 7. 23. 00:18
반응형

4.3 수치 미분

: 경사법에서는 기울기(경사) 값을 기준으로 나아갈 방향을 정한다.

 

미분이란?

x의 작은 변화(+h)가 함수 f(x)를 얼마나 변화시키냐를 의미한다.  

h ( 시간의 작은 변화 ) : 얼마나 작은 변화냐면, 시간은 0에 최대한 가깝게 lim 한다.

 

 

위의 식은 x+h와 x의 기울기에 불과하다.

따라서 진정한 접선과는 다르다. 오차가 발생할 것이다.

 

=> "" 차분 ""

중심 차분 (중앙 차분)

전방 차분

 

 

 

 

 

기울기가 가리키는 쪽 : 각 장소에서 함수의 출력 값을 가장 크게 줄이는 방향이다.

경사 하강법

기계 학습 : 학습 단계에서 최적의 매개변수를 찾아낸다.

신경망 : 학습 단계에서 최적의 매개변수 (가중치와 편향) 을 알아내야 한다. 

     "최적" - 손실 함수가 최솟값이 될 때의 매개변수 값

               - 일반적으로 데이터 범위가 너무 광대해서, 어디가 최솟값인지 알아내기 어렵다.

    "경사 하강법" -> "기울기" 를 이용하여 함수의 최솟값을 찾아 낸다.

경사법 : 현 위치에서 기울어진 방향으로 일정 거리만큼 이동하여, 마찬가지로 기울기를 구하고, 또 그 기울어진 방향으로 나아간다.

=> 함수의 값을 점차 줄인다.

  1. 경사 하강법 : 최솟값을 찾는다.
  2. 경사 상승법 : 최댓값을 찾는다.

n (에타) : 갱신 하는 양 = 학습률 !!!! : 한번의 학습으로 얼마만큼 학습 해야하는가 = 매개변수 값을 어마나 갱신하는라를 정하는 것

 

학습률 값은 0.01,0.001 등 특정 값으로 미리 정한다. 

값이 너무 크거나, 작으면 "좋은 최적의 값"으로 찾아가기 어렵다.

따라서, 학습률을 변경하며 올바르게 학습 되는지 살펴본다.

def gradient_descent(f,init_x, lr=0.01,step_num=100):
    x = init_x
    
    for i in range(step_num):
        grad = numerical_gradient(f,x)
        x -= lr*grad
    return x

f : 최적화 하려는 함수

init_x : 초깃값

lr : learning rate 학습률

grad = numerical_gradient(f,x) : 함수의 기울기

step_num : 함수의 기울기에 학습률을 곱한 값으로 갱신 처리하는 횟수

 

init_x : 초깃값 (-3,4)

 

하이퍼파라미터 : 학습률 처럼, 사람이 직접 설정해야하는 매개변수이다.여러 시험을 통해 가장 잘 학습하는 값을 찾는 과정이 필요하다.

 

<-> 신경망의 가중치와 편향의 경우, 훈련 데이터와 학습 알고리즘에 의해 '자동'으로 획득 되는 매개변수이다.

 

신경망에서의 기울기

= 가중치 매개변수에 대한 손실 함수의 기울기

 

4.5 학습 알고리즘 구현하기

경사 하강법으로 매개변수를 갱신하는 방법 = 신경망 학습이 이뤄지는 순서이다.

0. 전제
신경망에는 가중치, 편향이 있다.
이 가중치와 편향을 훈련 데이터에 맞게 조정하는 과정을 '학습'이라고 한다.

신경망 학습 4단계

1. 미니배치
훈련 데이터 중 일부를 무작위로 가져와 선별한다. 이를 "미니배치"라고 한다.
미니배치의 손실함수 값을 줄이는 것이 목표이다.

2. 기울기 산출 (수치미분 사용) -> 다음장에선 (오차역전파법)
미니배치의 손실 함수 값을 줄이기 위하여, 각 가중치 매개변수의 기울기를 구한다.
기울기는 손실 함수 값을 가장 작게 하는 방향으로 제시한다.

3. 매개변수 갱신
가중치 매개변수를 기울기 방향으로 아주 조금 갱신한다.

4. 반복
1~3단계를 반복한다.

1단계에서, 미니배치로 데이터를 무작위 선정하기 때문에 " 확률적 경사 하강법 ( SGD ) " 라고 부른다.

=> 확률적으로 무작위 골라낸 데이터에 대하여 수행하는 경사하강법

반응형

'밑.시.딥 > 1권' 카테고리의 다른 글

CH6) 학습 관련 기술들  (0) 2021.07.24
CH5) 오차역전파법  (0) 2021.07.24
CH4) 신경망 학습 - (1)  (0) 2021.07.15
CH3) 신경망 - (2)  (0) 2021.07.12
CH3) 신경망 - (1)  (0) 2021.07.08