도서 : 신경망 첫걸음(한빛미디어)

지음 : 타리크라시드(송교석 옮김)

 

  • 인간에게는 쉽고 기계에게는 어려운
    1. 인간과 컴퓨터의 차이점 : 컴퓨터는 많은 연산을 매우 빠르게 할 수 있는 쉽게 말하면 계산기 같은 것이지만 인간은 그러한 빠른 계산을 보통은 하지 못한다. 그렇지만 인간은 어떠한 정보를 인지하고 올바른 것을 찾아내는 일을 쉽게 해낸다. 물론 컴퓨터는 그러한 일을 하지 못한다.
    2. 딥러닝은 이러한 컴퓨터의 단점을 장점으로 극복하고자 하는 것이다.
  • 간단한 예측자
    1. 킬로미터를 마일로 바꾸는 공식을 모른다고 가정했을 때, 두 단위의 관계가 선형이라는 것과 오차를 활용하여 정확한 공식을 알아내볼 수 있다.
    2. 마일 = 킬로미터 x c(상수)라는 선형적인 공식을 만들어서 c의 값에 임의의 값인 0.5를 넣는다면
    3. 100킬로미터는 50마일이라는 예측 값을 얻게 된다.
    4. 그러나 100킬로미터는 62.137마일이므로 오차는 12.137이 된다. -> 오차 = 실제 값 - 계산된 값
    5. 여기서 상수값을 조금 더 올려 0.6으로 계산을 해본다면 60마일이 나오므로 오차는 2.137이 된다.
    6. 여전히 오차가 발생했으므로 또다시 0.7을 넣어본다면 70마일, 즉, 오차가 -7.863이 되어버려 다시 c의 값을 줄여야하는 상황에 도달한다. -> 오버슈팅
    7. 여기서 0.6을 조금만 올려 0.61로 계산해보면 61마일, 오차는 1.137
    8. 이런식으로 오차를 비교해가며 임의의 값을 증가시키고, 증가량 또한 조절하면서 오차가 0이 되는 순간을 찾는다면 우리가 원하는 킬로미터를 마일로 바꾸는 공식을 컴퓨터의 계산만으로 찾아낼 수 있는 것이다. -> 이러한 과정을 반복이라고 한다.

 

    • 컴퓨터는 입력 -> 연산 -> 출력 시스템이며 인공 신경망도 마찬가지이다.
    • 어떤 것의 동작 원리를 정확히 파악할 수 없을 때 취할 수 있는 한 방식은 우리가 조정할 수 있는 매개변수 값을 포함하는 모델을 만들어보는 것이다.
    • 모델을 정교화해나가는 좋은 방법은 오차에 기초해 매개변수 값을 조정해나가는 것이다.
  • 분류는 예측과 그다지 다르지 않습니다
    1. 두 가지 부류의 곤충들을 분류하는 하나의 공식이 있다고 가정하자
    2. 애벌레와 무당벌레가 그 두 부류라면 애벌레는 날씬하고 길이가 길며, 무당벌레는 통통하고 길이가 짧다.
    3. 이를 그래프상에 길이(y), 폭(x)으로 나타내면 인간들의 눈으로는 분류된 것이 보이지만 컴퓨터는 하나의 공식으로 분류를 하게된다.
    4. 여기서는 간단히 직선공식의 기울기를 변화시키며 분류시킬 수 있다.
    5. 폭 1.0cm에 길이 3.0cm인 애벌레와 폭 3.0cm에 길이 1.0cm인 무당벌레가 있다고 하면 그래프에 두 개의 점을 찍게 된다.
    6. 여기서 y = Ax의 아주 간단한 직선공식으로 저 둘을 분류할 수 있을까?
    7. A를 0.25라고 한다면 두 벌레가 모두 같은 부류로 분류되므로 좋은 분류자가 될 수 없다.
    8. 여기서 이 공식에 무당벌레의 데이터를 넣어본다면 y = 0.25 * 3.0 = 0.75 인데 실제 길이는 1.0이므로 A는 너무 작은 수라는 것을 할 수 있다.
    9. 그렇지만 저 공식은 무당벌레의 길이를 맞추는 것이 아닌 분류를 하기 위한 것이므로 직선 아래에 값이 있기 위해서는 1.0보다 큰 값이 나와야 한다.
    10. 그래서 x = 3.0일 때, y = 1.1이 되는 것을 목표로 해보자
    11. 오차(E) = 목표값(1.1) - 실제 출력 값(0.75) = 0.35이므로 그래프를 확인해보면
    12. E와 A의 관계를 공식으로 나타낼 수 있을까? 우리는 A의 값을 또 다시 조금씩 증가, 혹은 감소시키며 원하는 목표값에 도달하고자 한다. 그러므로 y = Ax라는 이 공식을 y = (A + B)x 로 바꿀 수 있다.(B는 A의 변화량)
    13. 오차(E)의 공식을 이용하여 Ax - (A + B)x를 계산해보면 E = Bx라는 하나의 공식을 알아낼 수 있다. -> 따라서 B = E / x
    14. 아까 오차와 x값을 넣어보면 B = 0.1167이므로 0.1167만큼 A값을 증가시키면 된다.
    15. 새롭게 만들어진 y = 0.3667 * x 라는 공식에 두 번째 학습 데이터인 x = 1.0, y = 3.0을 대입하면 y = 0.3667이 되어 3.0과 매우 많은 차이가 나게 된다.
    16. 아까 전, 직선 아래에 무당벌레가 들어갔으므로 애벌레는 직선 위쪽에 위치해야 하므로 목표값을 2.9로 정하면 오차(E) = 2.5333이 된다.
    17. 그러나 이런식으로 학습을 한다면 너무 한 쪽에만 편향될 수 있으므로 여기서 변화량을 일부만 업데이트 하도록 하면 편향되는 것을 막을 수 있다.
    18. 이를 학습률(L)이라고 하고 B = L(E/x)로 나타낼 수 있다. 이렇게 하면 더 나은 결과를 얻을 수 있게 된다.

  • 오차를 제거하기 위해서 얼마만큼의 기울기를 조정해야 하는지 오차와 기울기 매개변수 간의 관계를 이해할 수 있다.
  • 그러나 이러한 조정과정은 이전의 학습 데이터는 무시하고 최종 학습 데이터에만 맞춰 업데이트되기때문에 학습률을 도입하여 정도를 조정한다.

+ Recent posts