'미분'에 해당되는 글 2건


자연로그! 너 죽고 나 죽자! - 고등 수학을 초등학생처럼 배워보기~


지난 글에서 내가 문돌이라는 것을 무기 삼아 겨우 자연상수 설명 조금하고 자연로그는 그저 그런게 있는갑다 하고
그냥 넘어가버렸다. 하지만 역시…뒤처리가 안된 것 마냥 여전히 찜찜하기 그지없다. 그래서 한 번 더 자연로그를
이해하는데 도전해보기로 하였다. 과연 잘 설명이 될 지는 모르겠으나 이미 언급한 바와 같이 이러한 과정 하나하나가
분명 앞으로 나아가는 길이라 믿는다.


문돌이 혹은 수포자의 한계


어떤 수학 공식을 풀이 한다는 것, 왜 그런 공식이 도출 되었나 하는 것은 곧 수학의 입장에서는 검증을 하는 것, 다시
말해 ‘증명’을 하는 것이다. 그런데 아이러니컬 하게도 증명을 하게 되면 처음의 단순했던 식이 매우 복잡해진다.
이것은 문돌이나 수포자(이하 우리들…-.-)의 수와 연산에 대한 알레르기에 불을 붙이는 격이다. 하지만 이 과정을 
거치지 않고는 ‘이해’라는 한 단어에 접근할 수 없다.


그렇다면 어떻게 해야 이 알레르기를 극복할 수 있을까…최근 여러가지 수학 공식을 정리하면서 개인적으로 터득한
것을 정리해보고자 한다. ‘개인적’인, 지극히 ‘개인적인’ 방법이며 이 방법이 누구에게나 통한다고 장담할 수는 없다.


  1. 너무나 당연한 이야기부터 해볼까? 적어도 각 연산자의 또는 수학 기호의 의미는 알아야 한다. 굳이 그 성질이나 활용까지 이해하지는 못하더라도 적어도 개념은 알아야 한다. 예를 들어 우리들의 가장 큰 적 중 하나인 적분을 생각해보자. ∫(인테그랄, integral)이라는 기호가 정확히 뭔진 모르겠지만 어떤 범위 내에서 어떤 값들을 무한히 더해가는 것이라는 것 정도는 알아야 한다.
  2. ‘치환’에 유의해야 한다. 다른 말로 하면 가장 처음에 주어지는 ‘등식(=)’을 유심히 봐야 한다. 나는 최근까지 그 의미를 몰랐다. f(𝒙) = a𝒙 + b라는 것이 증명이 진행되어감에 따라 a𝒙 + b 대신 f(𝒙)를 사용해도 된다는 의미인지를 까맣게 몰랐다. 그래서 도대체 f(𝒙)라는 것은 어떤 의미일까을 계속 궁금해 했다. 이밖에도 길어질 수 있는 공식을 간단하게 표현하기 위해 치환을 자주 한다. 간단하게는 한 개의 변수에서부터 복잡하게는 어떤 수식을 하나의 문자로 바꾸어 쓰는 것이다. 이 것을 놓치게 되면 증명에 마지막에 가서 우리는 ‘음…도대체 이 문자는 언제부터 여기에 있었지?’하는 지극히 근혜스러운 고민을 하게 되고 만다.
  3. 2번과 같은 맥락에서 수학 공식을 풀이할 때는 단지 길어서 보기 힘든 공식을 ‘단순화’하기 위한 장치들을 많이 사용한다. 우리들은 이 부분을 이해하지 못한다. 심지어는 이렇게 축약된 부분을 다시 길게 늘여놔야 더 잘 이해하는 경우도 있다. 대체로 이런 장치들은 치환에 의해 이루어지므로 2번과 잘 연결해서 생각해야 한다.
  4. 마지막 방법도 매우 당연한 이야기다. 바로 끈기있게 보고 또 봐야 한다는 것이다. 길고 긴 증명의 과정을 따라가다보면 돌연 어느 단계에서 ‘왜 이 공식의 좌변과 우변이 같은 것이지?’라는 의문이 드는 그런 단계가 있다. 마치 몇만 광년은 워프한 듯한 지극히 아득한 느낌으로 양 변의 공식이 동일하다는 것을 이해하지 못하는 순간…아는 사람만 알 것이다. 인터스텔라급 괴리감이다…-.- 이 과정에서 1번과 2번의 자세가 필요하다.


이러한 마음가짐으로 자연로그에 대해 다시 한 번 알아보고자 한다.


다시 미분으로


처음 회귀분석과 관련된 수학 내용을 정리할 때 미분을 한 번 정리했었고 그 때 주로 참고했던 자료가 바로 위키백과의
미분 항목이었다. 그런데 앞서 설명한 그 알레르기 때문에 그냥 내가 필요한 내용만을 보고 나머지는 현기증을 느끼며
피해갔던 것이 실수였다. 바로 그 미분을 설명하는 내용 중에 자연스럽게 자연로그가 도출되고 있었던 것이다.


지금부터 우리들의 입장에서 아주 지겨울 정도로 자세하게 하나 하나 되짚어볼 것이다.


단서가 된 항목은 바로 ‘지수 함수의 미분’이었다. 우선 미분에 대해 다시 한 번 짚어보자. 미분이란 어떤 연속적인 곡선
(엄밀하게는 맞는 표현이 아니지만 우선은 이렇게 표현하자)에 대해 특정 위치에서의 기울기를 구하는 것이라고 했다.
위키의 표현으로 말하자면 평균변화율을 구할 수 있을 때 이 평균 변화율의 극한이 바로 특정 위치의 기울기(를 갖는
접선)라고 할 수 있는 것이다. 최초 출발은 여기다. 아래 공식을 이해하도록 해보자.



사실 우리네 입장에서 공식만 가지고 이해하긴 어렵다. 이해할 수 있다면 이고생도 안한다…-.- 그러니 그래프를
보면서 차근차근 알아보자. 



일단 ∆는 라틴어 델타의 대문자로 주로 변화량을 의미한다. 즉 ∆ 𝒙라는 것은 얼마인지는 모르겠지만 𝒙의 변화량을 
의미한다. 즉 아래 그래프에서 보면 𝒙는 𝒙에서부터 𝒙 + ∆ 𝒙까지 변한 것이다. 이에 대해 𝒙에 대한 함수인 𝑓(𝒙)는 
𝑓(𝒙)에서부터 𝑓(𝒙 + ∆ 𝒙)까지 변했다. 이 내용을 𝒙를 기준으로 설명하면 바로 위의 공식이 나오는 것이다. 𝒙의 변화량
∆ 𝒙에 대한 𝑓(𝒙)의 변화량 ∆ 𝑓(𝒙)의 비율이란 바로 이런 의미이다.


그리고 이 평균 변화율에 대해 극한을 적용한 것이 바로 순간변화율(미분계수)이며 우리가 미분을 통해서 얻고자 하는
값인 것이다(극한에 대한 이해는 위키에 있는 아래 이미지를 참고하자).


By Brnbrnz - 자작, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=43249235


일단 이 순간 변화율 공식을 기억해두자.


지수 함수 미분하기


우선 아래 링크(위키피디아의 미분에 대한 문서)의 ‘지수 함수의 미분’을 같이 보면서 살펴보자


https://ko.wikipedia.org/wiki/미분


특정 조건만 만족하면 많은 함수들을 미분할 수 있다. 그리고 그 많은 예가 위키에 잘 설명이 되어있다. 여기서는 그 중
지수 함수에 대한 미분을 살펴볼 것이다. 이전에는 그냥 자연로그가 있어서 그걸 사용하기만 했는데 이 지수 함수의
미분 과정에서 자연로그가 톡 튀어나온다. 신기하게도…


먼저 수학 알레르기를 극복할 수 있는 방법을 상기하자. 그리고 위키에 설명된 지수 함수의 미분 내용의 첫 줄을 살펴
보자. 𝑓(𝒙) = b^ 𝒙라는 등식이 제일 처음 보인다. 그리고 이 함수의 도함수(순간변화율을 얻을 수 있는 함수)가
다음과 같이 표시되어있다.



설명에 ∆ 𝒙를 ℎ로 표기한다고 했으니 다시 ℎ를 ∆ 𝒙로 돌려놓고 보면 다음과 같이 된다(편의상 순간변화율에서 극한을
제거하고 평균변화율만 보자).



그런데 제일 처음 등식에서 𝑓(𝒙) = b^ 𝒙라고 하였으니 𝑓(𝒙 + ∆ 𝒙) = b ^ (𝒙 + ∆ 𝒙)가 성립하고 따라서 위 식에서
b^ 𝒙를 𝑓(𝒙)로 b ^ (𝒙 + ∆ 𝒙)를 𝑓(𝒙 + ∆ 𝒙)로 바꾸어 놓으면 우리가 최초에 확인했던 평균변화율과 동일한 공식이
나온다. 이렇게 해서 지수 함수 𝑓(𝒙) = b^ 𝒙에 대한 도함수를 확인했다.


이후 내용은 이 도함수에 대한 풀이 과정이다. 비교적 어렵지 않은 내용이므로 조금만 검색을 하면서 보면 이해할 수 
있다. 그런데…'이때 상수 𝑘를'이라는 문장 바로 다음에 난데없이 자연로그가 튀어나왔다. 우변의 공식은 앞서 
진행된 풀이에 등장했던 공식이므로 당연한 등장인데 이 공식이 ln 𝑏와 같다고 하니 이 우변의 공식을 지지고 볶으면 
뭔가 자연로그에 대한 단서가 나온다는 것이렷다. 매번 이해도 못하는 자연로그를 가져다 쓰다가 처음으로 자연로그가
없는 상태에서 자연로그를 도출하게 되었다. 이제 본격적으로 어떻게 아래 공식이 자연로그가 되는지 확인해보자.



위의 등식에서 우측의 식이 어떻게 해서 자연로그로 이어지는 지를 분석해볼 것이다. 역시나 가장 먼저 할 일은
바로 ‘치환’이다. 우측 식에서 가장 복잡한 분자 𝑏^ℎ - 1을 𝑡라고 하자. 즉 𝑡 = 𝑏^ℎ - 1가 되는 것이다. 그런데 우리는
지금 지수에 대해서 알고자 하는 것이니 𝑏^ℎ를 기준으로 식을 바꾸어보면 𝑏^ℎ = 𝑡 + 1로 놓을 수 있다. 여기서 한 번
더! 분모가 ℎ이니 마지막에 바꾼 식을 ℎ에 대해 정리한다. 그러면 우리는 최초의 식에서 2개의 항을 다음과 같이
바꿔놓을 수 있다.



이 때 lim의 밑이 ℎ →0에서 𝑡 →0으로 바뀌었는데 이 것은 극한의 성질을 조금 이해해야 한다. 극한이란 
엄밀하게 말하면 정확한 어떤 수가 아닌 ‘어떤 수에 가장 근접하는 상태’라고 봐야 한다. 하지만 계산의 편의를 
위해 화살표 우측의 수라고 생각해도 무관하다. 그렇게 봤을 때 ℎ →0으로 무한히 가는 경우 

𝑏^ℎ - 1 = 𝑏^0 - 1 = 1 - 1 = 0

위 등식이 성립하므로 𝑏^ℎ - 1 = 𝑡라는 조건에 의해 결국 𝑡또한 0이 된다. 이 조건으로 인해 𝑏^ℎ - 1이 𝑡로 
치환된 식에서는 lim의 밑을 𝑡 →0로 놓을 수 있는 것이다.


원래의 식을 치환한 항들로 대체하면 다음과 같이 변경된 식이 나온다.



여기까지는 이해가 되었는가? 여기서 한가지만 더하자. 미지수가 분자와 분모에 모두 존재하니 아무래도 뭔가 더
복잡해 보인다. 그러니 미지수를 분모쪽으로 모두 몰아버리자. 이러한 방법도 식을 간단하기 위해 매우 자주 쓰이는
방법이다. 자~원래의 식의 결과를 변화시키지 않고 처리하려면? 1을 곱하면 된다. 다만 1을 어떻게 표현하는가가
관건이다. 결과부터 보자.



절묘하지 않은가? 나만 그런가? 분자의 미지수를 없애기 위해 1이라는 수를 (1/𝑡) / (1/𝑡) 로 바꾸었다. 분모와
분자가 같기만 하면 1이니까. 그래서 분모는 조금 복잡해졌지만 분자는 𝑡 * (1/𝑡) = 1로 미지수를 없애고 
1이라는 아주 쉬운 수로 바뀌었다. 이런 너무도 당연해보이는 기법들이 우리들에게는 그토록 어려운 것이다…ㅠ.ㅠ
이렇게 정리된 식은 다음과 같다.



분모를 한 번 더 정리해보자. 로그의 성질에 의해 다음과 같이 바꿀 수 있다.



드디어 나왔다! 기억하시는가? 자연상수 e의 식을! 다시 한 번 보자.



극한이 변수 t에 대해 적용되므로 극한을 t에 대해서만 놓고보면 결국 자연상수 e가 튀어나온다. 
그리고 이제 정말 마지막 정리이다.



이후 진행은 위에 링크한 위키피디아의 ‘지수 함수의 미분’항목을 참고하면 되겠다. 특이한 것은 그 내용의 마지막에
보면 지금까지 진행된 식의 𝑏라는 상수가 자연상수 𝑒일 경우, 즉 자연상수 e가 밑이 되는 지수 함수는 미분을 해도 그
도함수가 처음 형태와 동일하다는 것이며 아마도 이 성질이 매우 유용한 것 같다


정리


자연상수 e가 처음 발견된 것은 수학자 네이피어가 로그를 계산하는 과정에서라고 한다. 결국 어찌보면 자연상수보다
자연로그가 더 먼저 발견되었다고 할 수 있겠다. 어쨌든 지수함수를 미분하다보니 자연로그가 자연스럽게 도출이 되는
과정을 보았다. 적어도 자연로그와 자연상수 𝑒가 밑도 끝도 없이 뿅! 하고 태어난 것은 아니라는 것은 알 수 있게 
되었다.


이렇게 까지 해도 여전히 이해가 안가는 부분은 남아있지만 그 것은 아마도 실제로 자연로그와 자연상수 𝑒가 얼마나
유용하게 사용되는지 그 실례를 많이 접하지 못해서이리라. 하지만 그 건 어디까지나 이과충과 공돌이의 영역이므로
우리는 이정도 선에서 만족해도 될 것 같다.


도대체 텐서플로우 공부해보자고 시작해서 이게 웬 난리인지 모르겠다…ㅠ.ㅠ
이제부터는 다시 본연의 텐서플로우로 돌아가야겠다.
남들은 다 얼굴 이미지 분석하고 막 그러고 있던데…ㅠ.ㅠ

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

  • 2018.01.24 04:43  댓글주소  수정/삭제  댓글쓰기

    자연상수 e를 많이 쓰는 이유는 간단히 생각해 여러므로 계산이 편하기 때문입니다.

    테일러 급수를 보면 자연상수와 삼각함수의 관계가 얼핏 보이고 이를
    오일러 등식을 이용해 보면 꽤 명확하게 알 수 있습니다.

    결국 자연상수 e는 여러 가지 성질의 초월함수들과 호환이 잘 돼서 쓰이는 겁니다

머신러닝을 위한 기초 수학 #2

지난 포스팅에서는 선형회귀분석의 가설 함수에 들어있는 개념인 기울기와 절편에 대해 알아보았다.
이번 포스팅에서는 비용함수와 관련하여 ∑ 연산과 제곱함수의 U자 형태 그래프로부터 경사하강법을 이용하여
비용의 최솟값을 찾아내는데 필요한 미분에 대해서 알아보도록 하자.


∑ 연산

∑는 특정 범위 내에 있는 일련의 수들의 합을 표시하는 기호이다. 이 기호를 이용한 수식의 각 항을 보면 아래
그림과 같다.


시그마 기호를 기준으로 밑에는 변화하는 값을 표현할 문자(보통 i나 k를 사용)와 그 시작값을 등호로 연결하여
표시한다. 위 그림과 같이 i = 1이라고 표시하면 i라는 기호는 1부터 시작인 것이다. i = 10이라고 한다면
당연히 i가 10부터 시작된다는 의미이다. 다음으로 기호 위에는 밑에 표시한 기호의 마지막 값을 표시한다. 
이 때는 기호는 생략하고 값만 표시한다. 위 이미지와 같이 문자를 표시하게 되면 임의의 수를 의미하는 것이고
숫자를 표시하면 정확히 그 숫자까지 이다. 간단하게 몇가지 예를 보자.


A는 i가 1부터 50번 째까지 일반항에 해당하는 값들을 더하고 B는 50번 째부터 100번 째까지, 그리고 C는 
100번 째부터 임의 수 m까지 더하는 것이다.


마지막으로 가장 중요한 일반항이며 시그마 기호의 오른쪽에 표시한다. 이 일반항은 보통 i에 대한 식으로 
표현되며 i 자체가 될 수도 있다. 만일 i가 1부터 100번 째까지 더해지는 시그마의 일반항이 i 자체일 경우에는
1부터 100까지의 자연수를 더하라는 의미인 것이다. 아래 몇가지 예를 보자


위 각각의 식을 설명하다면 다음과 같다.

A : 1 + 2 + 3 + 4 + … + 47 + 48 + 49 + 50
B : (a^50) + (a^51) + (a^52) + … + (a^98) + (a^99) + (a^100)
C : (a + 100) + (a + 101) + (a + 102) + … + (a + m -2) + (a + m - 1) + (a + m)
D와 E는 같은 의미로 1번 째 a부터 50번 째 a까지를 모두 더하라는 의미이다.


선형회귀분석의 비용함수 복습


지난 포스팅에서 보았던 비용함수의 수식이다. 우선 앞부분만 떼어놓고 보자면 지난 번 포스팅에도 언급했지만
평균을 의미한다는 것을 알 수 있다. 시그마 기호의 밑이 i = 1이고 위가 m이니 i가 1부터 임의의 수 m까지
변하는 동안 어떤 일반항을 모두 더한 후 다시 m으로 나눈 것이니 바로 평균이 된다. 그리고 여기에서의 일반항은
역시 이미 설명한 바가 있지만 y에 대한 예측값 - 실제 y값 즉, 실제값에 대한 예측값의 오차를 제곱한 것이다.


그리고 이 제곱의 역할로 전체 그래프는 U자형 그래프가 나오는데 지난 시간까지 진행하면서 아직도 이해를 못한
부분이 바로 어떻게 이 U자형의 기울기 중 가장 낮은 지점인 0(제곱 함수이니 0보다 작을 수는 없다)에 접근하는가 
하는 것이다. 이 것을 알기 위해 필요한 것이 바로 미분법이다.


함수의 미분

위에 보았던 비용함수는 반복해서 말하지만 오차에 대한 함수이다. 따라서 값이 가장 작을수록 바람직하다.
다시 말해 전체 수식 중 H(x(i)) - y(i)가 0에 가까울수록 이 함수는 가장 작은 값을 갖게 되는 것이다.
이 것은 U자형 그래프의 가장 오목한 곳이며 바로 y축의 값이 0이되는 지점이다.

참고 : H(x(i))는 선형회귀분석 가설함수의 결과이다. 즉 예측 값인 y이다.


사람의 눈으로는 쉽게 이 지점을 발견할 수 있지만 우리는 컴퓨터에게 이 지점을 찾도록 해야 하며 그러기 위해서는
수학적으로 그 지점을 찾아낼 수 있도록 컴퓨터에게 알려주어야 한다. 그 방법 중에 하나가 바로 기울기를 이용
하는 것이다. 그래프를 봤을 때 x축이 0인 지점에서는 경사가 이루어진 부분이 없으므로 기울기가 0이다. 바로
이 기울기가 0인 지점을 찾으면 되는 것이다. 게다가 우리는 이미 기울기를 어떻게 구해야 하는지도 알고있다.


그런데…
우리가 기울기라 할 때에는 전체 그래프의 어느 지점에서 어떤 범위의 값을 취하더라도 항상 동일한 값이
나와야 한다. 아래 2개의 그래프를 보면서 살펴보자


왼쪽의 직선 그래프를 보면 x1과 x3은 시작점이 서로 다르다. 더군다나 x2 - x1의 값은 x4 - x3의 값보다 작다.
하지만 x1 ~ x2 위치에서 측정한 기울기는 x3 ~ x4 위치에서 측정한 기울기와 동일하다. 하지만 곡선으로 된
그래프의 경우에는 사정이 다르다. 측정하는 지점에 따라 기울기가 다르다. 오른쪽 그래프를 보게 되면 x와 x1의
위치는 다르지만 x ~ x’의 간격과 x1 ~ x’1의 간격은 동일하다. 그러나 직관적으로 보아도 기울기는 정 반대로
표현될 수 있다. x ~ x’에서의 기울기는 x가 증가함에 따라 y는 감소하는 -값의 기울기를 갖는 반면 x1 ~ x’1
에서의 기울기는 x가 증가함에 따라 y도 증가하는 +값의 기울기를 갖는다. 더 어려운 것은 x2 ~ x’2인데 이
범위에서는 양의 값의 기울기와 음의 값의 기울기가 동시에 보인다.


그렇다면 이번에는 x ~ x’ 사이를 반으로 갈라보면 어떨까. 이 그래프는 곡선이기 때문에 나누어진 각각은 다시
서로 다른 기울기 값을 갖게 될 것이다.


이렇게 곡선에서는 그래프 전체를 일관되게 표현해줄 기울기가 존재하지 않는다. 역으로 말하면 무수히 많은 
기울기가 존재한다. 그럼에도 불구하고 우리는 이 곡선의 그래프에서 기울기가 0인 지점 즉, 그래프에서 최소의
값(혹은 다른 상황이라면 최댓값이 될 수도 있다)을 찾아내야 하는 것이다.


그래서 사용하는 것이 바로 미분(微分)이다. 한자의 뜻 그대로 말하자면 아주 작게 나눈다는 것이다. 앞서
설명한 바와 같이 곡선에서는 무수히 많은 기울기가 존재하는데 이는 곧 x의 변화량이 달라질 때마다 각각의
시점에서의 기울기가 다르다는 말이다. 이러한 이유로 특정 지점에서 x의 변화량이 가장 작을 때의 기울기를
구하는 것이 바로 미분이다.


하지만 여기에서도 문제는 발생을 한다. 우리의 좌표계를 실수(實數)계로 놓고 보면 최소값은 무한히 생길 수
있다. 그렇다고 0이되면 안된다. 기울기라는 것이 변화량간의 관계이기 때문에 변화량이 0이라는 것은 하나의
점을 의미하는 것이고 점에 대한 기울기는 있을 수가 없기 때문이다. 여기서 다시 알아야 할 개념이 바로 극한이다.
극한이란 어떤 수가 되면 안되지만 그 수에 가장 가까운 수를 찾기 위한 일종의 편법이라고 할 수 있다(이 때 그
수에 가장 가까이 다가간다고 하는 것을 수렴이라는 용어로 표시한다).

극한 기호 : ∆𝑥는 x의 변화량을 의미하며 →0은 0으로 수렴함을 의미한다. 기호 lim은 limit를 의미한다.



By Brnbrnz - 자작, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=43249235


이와 같이 x의 변화량이 0으로 수렴할 때의 기울기를 찾아내는 것이 미분이고 이 미분을 이용하여 오차 함수의 
U자형 그래프로부터 최소값을 찾아낼 수 있는 것이다.
미분에 대한 추가적인 수학적 설명은 링크로 대신한다.


http://terms.naver.com/entry.nhn?docId=2073828&cid=47324&categoryId=47324

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요