주어진 데이터 속에 있는 구조를 특정 수식으로 모델화하는 것이 머신러닝의 출발점, 즉 '머신러닝 모델의 3단계'에서 1단계라는 것을 확인하였습니다.

이후, 수식에 포함되는 파라미터를 조정하여 주어진 데이터에 적합하게 맞춰 가는 단계를 수행할 차례입니다.


1. 텐서플로를 이용한 파라미터 최적화

'머신러닝의 개념'에서 이용한 평균 기온 예측의 예를 사용하여 그 다음 단계에 대한 진행 방법을 설명하도록 하겠습니다.

텐서플로의 구조를 이해하는 포인트가 되기 때문에 수식을 사용하여 정확하게 설명하겠지만, 세세한 내용을 모두 이해할 필요는 없습니다.

실제로 여기서 수행하는 계산은 텐서플로가 자동적으로 수행하기 때문에, 각각의 수식이 어떠한 의미를 가지고 있는지를 파악하는 것이 좋습니다.


이 예에서는 파라미터의 좋고 나쁨을 평가하는 기준으로 오차 함수 E를 준비했습니다(식 1-1). '머신러닝 모델의 3단계'에서 2단계에 해당하는 부분입니다. 

식 1-1에 포함되는 파라미터 𝑤₀ ~ 𝑤₄의 값을 변경하면 오차 함수 E의 값도 변화하므로 이는 파라미터 𝑤₀ ~ 𝑤₄의 함수라고 볼 수 있습니다.

<수식 1-1. 파라미터 𝑤₀ ~ 𝑤₄에 대한 함수와 오차함수 E>


식 1-1에 포함된 𝑦𝑛은 𝑛월(𝑛 = 1 ~ 12)의 기온을 식1-1의 상단 식으로 예측한 결과를 나타냅니다.

즉, 식 1-1의 상단 수식에 𝑥 = 𝑛을 대입한 것이 𝑦𝑛 입니다.


<수식 1-2. 시그마를 이용하여 간단히 표현>


수열의 합을 나타내는 기호 시그마(∑)로 다시 쓴 부분에서는 임의의 𝑛에 대해 𝑛⁰ = 1이 되는 관계를 이용합니다.

수식 1-2를 식 1-1에 대입하면 아래의 식이 얻어집니다.


<수식 1-3. 수식1-2를 수식1-1에 대입한 것>


수식 1-3에는 다양한 기호가 포함되어 있는데, 미지의 파라미터는 𝑤₀ ~ 𝑤₄뿐이라는 점에 주의하시기 바랍니다.

수열의 합을 나타내는 기호 시그마(∑)에 포함되는 𝑚과 𝑛은 루프를 돌리기 위한 로컬 변수로 볼 수 있으며, 𝑡𝑛은 그림 1-3에 주어진 월별 평균 기온의 구체적인 관측값이 됩니다.


이렇게 해서 오차 함수 E의 구체적인 모양을 알게 되었으므로 다음은 3단계로서 수식 1-3의 값을 최소로 하는 𝑤₀ ~ 𝑤₄를 결정합니다.

기호가 많아 복잡하게 보이지만, 𝑤₀ ~ 𝑤₄의 함수로 보면 2차 함수에 불과합니다. 

구체적으로는 수식 1-3을 𝑤₀ ~ 𝑤₄각각으로 편미분한 값을 0으로 하는 다음과 같은 연립방정식을 푸는 것입니다.

*편미분이란, 복수의 변수를 갖는 함수에 대해 특정한 하나의 변수로 미분하는 것을 말합니다. 
변수가 하나인 함수 𝑦 = 𝑓(𝑥)의 최대값 / 최소값을 구할 때 미분계수를 0으로 하는 다음 방정식을 풀었는데, 본질에서는 이와 같은 것입니다.


<수식 1-4. 점 𝑥에서의 기울기>


1변수 함수 𝑓(𝑥)의 경우 그 미분계수는 점 𝑥에서 그래프의 기울기를 나타냅니다. 𝑓(𝑥)가 최대/최소가 되는 점에서는 그래프의 기울기가 0이 되므로 수식 1-4가 성립합니다.

다만, 엄밀하게는 그림 1-1과 같이 최대, 최소, 극대, 극소, 정류점(변곡점) 등 몇 군데서 수식 1-4가 성립합니다.

이를테면 𝑓(𝑥)가 최솟값만을 갖는 함수라고 알고 있다면 수식 1-4로 결정되는 𝑥가 𝑓(𝑥)를 최소로 하는 값이라고 단언할 수 있습니다.


<그림 1-1. 그래프의 기울기가 0이 되는 지점>


한편, E(𝑤₀, 𝑤₁, 𝑤₂, 𝑤₃, 𝑤₄)와 같은 다변수 함수의 경우는 어떻게 될까요? 여기서는 간단히 설명하기 위해 다음 2변수 함수의 경우를 생각해보도록 하겠습니다.


<수식 1-5. 2변수 함수 예시>


수식 1-5와 같은 경우 편미분은 다음과 같이 간단히 계산할 수 있습니다.


<수식 1-6. 수식 1-5를 편미분한 결과>


또한, 이를 나열한 벡터를 다음 기호로 나타내며 함수 ℎ(𝑥₁, 𝑥₂)의 '기울기 벡터(Gradient Vector)'라고 합니다.

1변수 함수의 미분계수는 그래프의 기울기라는 의미가 있는데, 이와 마찬가지로 기울기 벡터에도 도형에서의 의미가 있습니다.

먼저, (𝑥₁, 𝑥₂)를 좌표로 하는 평면을 생각하고, 𝑦 = ℎ(𝑥₁, 𝑥₂)의 그래프를 그리면 그림 1-2와 같이 절구 모양의 도형이 그려집니다.

기울기 벡터 ∇ℎ(𝑥₁, 𝑥₂)는 절구 벽면을 올라가는 방향과 일치하고, 그 크기 ||∇ℎ(𝑥₁, 𝑥₂)|| 는 벽을 오르는 기울기와 일치합니다.

절구 벽면의 기울기가 클수록 기울기 벡터도 길어지는 것입니다.


<그림 1-2. 2변수 함수의 기울기 벡터>


따라서 임의의 점 (𝑥₁, 𝑥₂)에서 출발해서 기울기 벡터와 반대 방향으로 나아가면 절구의 벽면을 내려감과 동시에 기울기 벡터의 크기는 점점 작아집니다.

이 예의 경우, 최종적으로 원점 (0, 0)에 도달했을 때 ℎ(𝑥₁, 𝑥₂)는 최소가 되고, 기울기 벡터의 크기도 0이 됩니다.

즉, ℎ(𝑥₁, 𝑥₂)를 최소로 하는 (𝑥₁, 𝑥₂)는 ∇ℎ(𝑥₁, 𝑥₂) = 0라는 조건으로 정해집니다.












+ Recent posts