"경사하강법"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
(새 문서: == 개요 == 경사법이라고도 한다. 딥러닝에서 어떻게 최적의 매개변수를 찾아낼 것인가. 그 고민의 해답이 경사법이었다. === 목표 === 목표...)
 
38번째 줄: 38번째 줄:
 
* <math>\eta</math>가 너무 크면 안정지점에 들어가지 못하고 이리저리 튀는 모습을 보여주게 된다.
 
* <math>\eta</math>가 너무 크면 안정지점에 들어가지 못하고 이리저리 튀는 모습을 보여주게 된다.
  
 +
=== 한계 ===
 +
연산량이 많아 속도가 느리다.
 +
 +
때문에 이어지는 게 [[오차역전파법]]
 
[[분류:딥러닝 이론]]
 
[[분류:딥러닝 이론]]

2021년 9월 9일 (목) 16:59 판

1 개요

경사법이라고도 한다. 딥러닝에서 어떻게 최적의 매개변수를 찾아낼 것인가. 그 고민의 해답이 경사법이었다.

1.1 목표

목표는 최종적으로 얻어지는 오차값을 통해 이 오차값을 만들어낸 이전 뉴런들로부터의 가중치를 조절하는 것이다. 즉, 해당 오차값에 많은 영향을 미친 뉴런의 가중치값을 크게 조절하고, 오차에 그닥 영향을 미치지 않은 가중치값은 거의 조절하지 않는 것. 해당 오차를 만들어낸 가중치를 조절해나간다면 점차 바른 가중치로 좋은 결과를 얻을 수 있을 것이다.

1.2 아이디어

한 층에서 다음층으로 넘어갈 때 다음층의 한 뉴런에 전달되는 값 는 이전 층의 뉴런의 배열 들로부터 온 것이다. 그리고 오차함수 또한 이전 층의 뉴런의 배열로부터 온 것이다. 오차함수에 크게 영향을 미쳤다는 의미는 크게 잘못된 가중치를 가졌다는 의미인데, 가중치를 변화시켜가면서 오차함수의 변화를 보고 오차함수가 작아지는 방향으로 가중치를 변화시키는 것이 필요하다. 그리고 사람의 개입 없이 자동으로.

그렇다면, 가중치 을 변화시킬 때 오차함수가 얼마나 변하는지 보고 이를 작게 하는 방향으로 을 변화시켜야 할텐데, 이는 해당 가중치가 변함에 따라 오차함수에 어떻게 영향을 미칠지 살펴봄으로써 정할 수 있을 것이다. 가중치가 미치는 영향은 다음과 같이 나타낼 수 있을 것이다. 형태로 해당 가중치가 조금 변할 때 얼마나 영향을 미칠지 알 수 있다.(이는 만큼 늘리면 오차함수가 만큼 늘어난다는 의미이다.

목표는 의 값을 줄이는 것이니, 가 +라 가정할 때 을 감소시키는 방향으로 움직여야 전체 의 값이 감소할 것이다.

따라서, 인공지능의 작동 후 를 얻었을 때 로 변형해 주면(는 학습률을 의미한다.) 학습에 따라 적절한 에 도달하게 될 것이다.(가중치의 영향이 클수록 더 크게 변하게끔.)

1.3 기울기 구현

def numerical_gradient(f, x):  # 함수 f의 x에 대한 기울기를 구한다.
# 일반적으로 f에 오차함수, x에 가중치 배열을 넣는다.
    d = 1e-4  # 미소변위 대신 쓰이는 값. 실제 미분은 구할 수 없는 경우가 많으니 수치미분으로 경사를 구한다. 이 정도가 좋다고 알려져있다.
    grad = np.zeros_like(x)  # 기울기를 담기 위해 받은 배열의 크기와 같은 크기의 배열을 준비한다.
    
    for i in range(x.size):  # 전체 갯수에 대해 순회한다.
        init = x[i]  # 처음 x값을 받아,
        po = init + d
        fx_p = f(po)  # 양수 미소변위의 함수값을 구하고,
        ne = init - d
        fx_n = f(ne)  # 음수 미소변위의 함수값을 구한다.
        
        grad[i] = (fx_p - fx_n) / (2 * d)  # 수치미분을 실행.
    return grad

1.4 학습률

와 같은 것들은 사람이 정해주어야 하는, 하이퍼파라미터라 하는데, 여러 후보값을 통해 구해보는 수밖에 없다.

  • 가 너무 작으면 의 최저점이 아닌, 언덕에서 머무르며 빠져나오지 않게 될 수 있고,(이렇게 되면 최선의 답이 아님에도 학습이 진행되지 않는다.)
  • 가 너무 크면 안정지점에 들어가지 못하고 이리저리 튀는 모습을 보여주게 된다.

1.5 한계

연산량이 많아 속도가 느리다.

때문에 이어지는 게 오차역전파법