'자연로그'에 해당되는 글 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는 여러 가지 성질의 초월함수들과 호환이 잘 돼서 쓰이는 겁니다


문돌이를 위한 자연상수 e와 자연로그의 이해

음…제목을 ‘이해’라고 달았지만…본인 스스로도 전혀 이해하고 있지 못한 이 슬픈 현실…ㅠ.ㅠ
일단 염두에 두어야 할 것은 자연상수 e의 존재 가치는 경험으로 얻을 수 밖에 없다는 것이다. 수많은 수학과 물리학 등
자연과학은 물론 공학에 이르기 까지 그 사용은 너무나 많다고들 한다. 하지만 문돌이의 처지에서 도대체 그 ‘많은’ 
것들이 대체 뭔가 하는데 이르면 그야말로 노답인 것이다. 그래서 오늘은 그저 딱 문돌이가 알면 도움이 될…까? 하는
선에서 자연상수 e와 그 자연상수 e를 밑으로 하는 자연로그에 대해 짚고 넘어가겠다.


자연상수 e에 대해

일단 네이피어에서 시작해 오트리드, 베르누이, 라이프니츠 그리고 오일러에 이르기까지 많은 수학자들이 자연상수 
e를 발견하고 사용을 했다. 하지만 마지막에 이 자연상수에 e라는 이름을 붙이고 체계적으로 정리한 사람은 바로
오일러(Euler)이다. 자연상수 e는 최초 발견자인 네이피어를 기리는 의미로 ‘네이피어 상수’라고도 하고 또 그냥
‘오일러의 수’라고도 하지만 가장 대표적인 이름은 오일러의 첫 이니셜을 딴 ‘자연상수 e’이다.


그런데 오늘 설명에서 가장 주목해야 할 사람은 네이피어도, 오일러도 아닌 바로 베르누이다.
베르누이는 복리식을 계산을 연구하다가 그 이자가 무한대의 횟수만큼 지급되는 경우를 계산해보았더니 그 수가
특별한 어떤 수에 가까워지는 것을 발견하였는데 이 수가 바로 자연상수 e였던 것이다.


원금 1원에 연 이율이 100%인 경우를 가정해보자. 1원을 저축하면 1년 후에는 원금 1원과 1원에 대한 이자(100%)
1원을 더해 2원을 받을 수 있다. 그렇다면 이자를 1년 꽉 채운 후 받지 말고 6개월 후에 한 번 그리고 1년 후에 한 번,
이렇게 나누어 받으면 어떨까? 그러면 연 이율이 100%니까 6개월후에 50% 이자를 받고 1년 후에 나머지 50%를
추가로 받게 되는 것이다. 그러면 6개월이 된 시점에서 원금 1월과 50%의 이자 0.5원이 생긴다. 그리고 또 6개월이
지나면 1원에 대한 이자 0.6원과 처음 6개월이 지난 시점에서 받은 이자 0.5원에 대한 이자 0.25원이 추가로 생긴다.
그러면 1년 후의 총 금액은 1 + 0.5 + 0.5 + 0.25 = 2.25로 1년에 1번 받을 때보다 0.25원을 더 많이 받게 된다.
바로 이런 식으로 이자를 받는 기간을 점점 짧게 자주 받을 경우를 계산해본 것이다. 아마도 주기가 짧아질수록 금액이
점점 더 커질 것을 예상했으리라


수식으로 보면 이렇다.


1년에 1번 이자 받기
1 + 1 * 1


1년에 2번 이자 받기
(1 + 1/2 * 1) + (1/2 * 1 + 1/2 * 1/2)
식을 간단하게 해보면
1 + 1/2 + 1/2 + 1/4


1년에 3번 이자 받기
(1 + (1/3 * 1)) + 
(1 + (1/3 * 1)) + (1/3 * 1 + 1/3 * 1/3) + 
(1 + (1/3 * 1)) + (1/3 * 1 + 1/3 * 1/3) + (1/3 * 1/3 + 1/3 * 1/3 * 1/3)
역시 식을 간단히 해보면
1 + 1/3 + 1/3 + 1/9 + 1/9 + 1/27


위 3개의 식을 다르게 표현해보면 다음과 같다(아무리 문돌이지만 아래 식을 풀어보면 위의 식과 같다는 정도는
알겠지…-.-)
1번 이자 받기 : 1 + 1 = (1 + 1/1)^1
2번 이자 받기 : (1 + 1/2) * (1 + 1/2) 
3번 이자 받기 : (1 + 1/3) * (1 + 1/3) * (1 + 1/3)


이 것을 일반화 시켜보면 (1 + 1/x)^x의 형태가 나온다. 그리고 이자 받는 횟수를 무한히 증가시켜보면 결국 
최종 식은 다음과 같다.


그리고 이 식의 값은 대략 2.71828…정도라고 한다.


사실 이런 과정은 다 필요 없고 다음의 성질만 기억해두면 될 것 같다.


  1. 자연상수 e는 증가에 대한 개념으로부터 출발한다(그래서 일부러 위의 식을 적었다).
  2. 어떤 수(1보다는 크지만 1에 극히 가까운 수)가 무한히 증가하더라도 이 식의 결과는 무한히 증가하지 않고 특정 값 (2.71828…)에 수렴한다.
  3. 마치 원주율의 𝜋와 같이 e 또한 상수이며 어떤 계산의 편의를 위해 사용된다(다만 𝜋의 경우 ‘원’이라는 구체적 도형으로부터 도출된 것이지만 그에 비해 e는 매우 추상적이어서 문돌이들의 접근이 쉽지 않은 것 같다).

물론 미적분과 관련하여 더 중요한 의미가 있는 것 같지만 우린 문돌이니까 적절한 선에서 멈추자…-.-


자연로그에 대해

사실 로그까지 오면 더 난감해진다. 역시나 그저 문돌이 수준에서 정리를 하고 넘어가자.
일단 로그는 지수(거듭제곱)와 관련된다. 간단하게 예를들면 1초에 2마리씩 분열하는 박테리아가 있다. 이 박테리아는
10초 후에 몇마리가 되었을까? 1초에 2마리, 2초에 4마리 3초에 8마리 4초에 16마리…10초 후에는 1024마리가 
된다. 이 것을 식으로 나타내면 다음과 같을 것이다.

2^10 = x

이 것을 역으로 물어볼 수도 있다. 이 박테리아가 1024마리가 되기 위해서는 몇초가 필요한가? 이 것은 식으로 
나타내면 다음과 같다.

2^x = 1024

이 식을 x를 기준으로 표현한 것이 바로 로그(log, logarithm)이며 다음과 같이 표현할 수 있다.


이 때 2를 밑, 1024를 진수라고 한다.


이러한 로그에는 특수한 케이스가 존재하는데 그 중 하나가 바로 밑이 10인 상용로그이다. 우리가 10진법을 주로
사용하기 때문에 매우 쉽고 유용하게 접근할 수 있다. 이러한 상용로그는 밑을 표시하지 않고 간단히 log100처럼
사용한다. 즉, 다음 두 식은 같은 것이다.


다른 하나가 바로 자연상수 e를 밑으로 하는 자연로그인데 아직 완전히 이해하지 못한 e를 밑으로 하는 만큼
자연로그 역시 아직은 그 가치를 잘 모르겠다…ㅠ.ㅠ 역시나 미적분과 밀접한 관련이 있다는 것만 어렴풋이 알 수
있을 뿐…


이 자연로그는 역시 밑을 생략하고 쓰기도 하는데 이미 사용 로그에서 log100과 같이 표현을 했기 때문에 같이
쓰지는 못하고 자연(nature)의 n을 따와서 ln으로 표시한다. 즉 아래의 두 식은 동일한 식이다.


그런데 고등 수학으로 가면 상용로그를 거의 안쓰기 대문에 log7.398…이 자연로그를 의미하는 경우가 더 많다고
한다.


정리

앞서 로지스틱 회귀에 대한 내용을 정리할 때도 말했지만 굳이 이런 부분까지 알아야 할까 하는 의문이 없진 않다.
이미 모든 것이 API화 되어있어 그 API만 호출하면 원하는 결과를 쉽게 출력할 수 있는데…하지만 비록 완벽하지는
못하다 할지라도 이러한 내용을 찾아가고 정리하는 과정에서 전체적인 흐름을 이해하는데 도움이 된 것 또한 분명하다.
텐서플로우를, 인공지능을 공부하는 내내 아마도 이런 어려운 수학들과 씨름을 하게 되겠지만 그 힘든 과정이 왠지
즐거울 것만 같은 묘한 느낌이 든다…^^ 


스스로도 이해하지 못하는 내용을 정리하다보니 정확하지 않은 지식을 남들에게 보여주어 피해를 입해는 것은 아닐까 
하는 두려움도 있으나 일단 이렇게라도 정리를 해두어야 나중에 더 깊이 공부할 때 도움이 될 것 같아 우선은 남겨둔다.
언젠가는 보다 정확한 지식을 기반으로 더 쉽게 정리해보겠다!!!

블로그 이미지

마즈다

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

댓글을 달아 주세요