'기울기'에 해당되는 글 2건

머신러닝을 위한 기초 수학 #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

블로그 이미지

마즈다

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

머신러닝을 위한 기초 수학

웬만하면 가급적 수학적인 지식은 상식적인 차원에서 알고 넘어가고자 했으나 아무래도 무리인 것 같다.
일단 기본적으로 필요한 수학적 지식을 그 때 그 때 정리하고 넘어가도록 하자. 오늘은 지난 글에서 정리한
두 개의 함수 중 선형회귀분석의 가설함수를 이해하는데 필요한 수학적 지식인 기울기와 절편에 대해 정리를 
해보고자 한다.


이 글은 어디까지나 나와 같이 수학적 지식이 모자라는 사람을 위한 것이며 따라서 수학적 증명같은 것은
없다 오로지 직관이 있을 뿐…-.-


직선의 기울기

기울기는 우리가 흔히 아는 바와 같이 직선이 얼마나 기울어져있는가 하는 정도이다. 일상 생활에서는 일반적으로
각도로 표시를 하지만 여기서는 수학적 계산이 필요하므로 수학적인 부분만 살펴보자. 아래 그림을 보자


높이를 조절할 수 있는 유아용 미끄럼틀을 생각해보자. 직관적으로 보아 A 미끄럼틀이 B 미끄럼들보다 가파르다.
즉 기울기가 크다. 역으로 B는 A 보단 완만하다. 조금 더 수학적으로 살펴보면 기울기가 클 경우에는 아래 평면인
x의 길이보다 높이인 y이가 크고 반대로 기울기가 작을 경우에는 x의 길이가 y의 길이보다 크다. 즉, 기울기라는
것은 수평의 선 x와 높이 y의 관게에 의해서 결정되며 이 관계에 의하면 바로 위에 본 것처럼 y가 커지면 기울기도
커지고 y가 작아지면 기울기는 작아지는 관계다. 즉 기울기를 m이라고 하면 이 기울기는 다음과 같이 수학적으로
표현할 수 있다.


x는 분모이고 y는 분자이기 때문에 x가 작아질수록 혹은 y가 커질수록 기울기 m은 커지고 그 반대가 되면 기울기는
작아진다. 여기서 또 한가지! 아무리 수포자라도 양 변에 같은 값을 곱하면 여전히 양 변의 값은 같다는 것 정도는
알 것이다…-.- 양 변에 분자인 x를 곱하면 수식은 다음과 같이 바뀐다.


어렴풋이, 하지만 쉽게 잊혀지지 않을만큼 기억나는 1차 방정식의 공식이다. 이제 그림도 수학적으로 바꿔보자.
미끄럼틀이 아닌 x축과 y축으로 이루어진 평면 좌표가 있을 때 이 좌표상의 한 직선(파란색 직선)의 기울기는
y의 변동량을 x의 변동량으로 나눈 값 즉, (y2 - y1) / (x2 - x1)이 되는 것이다.

절편

위에 설명한 기본 1차함수의 경우 x가 0이면 곧 값도 0이된다. 즉, 이 직선은 좌표 평면에서 항상 x축과 y축이
만나는 원점을 지나는 직선이 되는 것이다. 하지만 때로는 원점을 지나지 않는 직선도 있을 것이다. 


현실의 예를 들어보자. 마침 최근 넷마블의 100억 인센티브가 이슈이니 회사의 총 이익과 직원의 총 급여의 관계를 
그래프로 나타낸다고 생각해보자. 총 급여는 기본급 + 인센티브다. 회사의 총 이익을 x, 직원의 총 급여를 y로 본다면
x가 증가함에 따라 직원의 총 급여는 증가할 것이다. 하지만 회사의 이익이 0이 되더라도 직원의 총 급여는 0이 되지 
않는다. 회사가 공식적으로 파산을하지 않는 한 기본급은 지급을 해야 하므로 매출이 0이더라도 y축은 0이 아닌
기본급을 표시하는 위치에 있을 것이다. 그러다가 이익이 -로 돌아서면 어느 순간 직원의 급여를 지급하지 못하게
되어 결국은 x축인 직원의 총 급여도 0이 될 것이다.


이렇게 평면 좌표상의 어떤 직선이 원점을 지나지 않는 경우 이 직선이 y축과 만나는 점을 y절편, x축과 만나는 점을
x절편이라고 한다. 


이 것은 다시 말하면 기본적인 1차 방정식에서 x에 0을 대입했을 때의 y의 값은 y절편, y에 0을 대입했을 때의 
x의 값은 x 절편으로 볼 수 있는 것이다. 그래서 1차 방정식은 다음과 같이 확장된다.


절편은 다른 의미로 같은 기울기의 직선이 상하 또는 좌우로 얼마나 움직였는지를 나타내주기도 한다.


선형회귀분석 가설함수 복습

우선 선형회귀분석의 가설함수를 다시 한 번 보자.


이전에 알아본 내용과 오늘 학습한 내용으로 알 수 있듯이 서로 관계가 있는 두 변수 x(총 이익)와 y(총 급여)를 
분석해보고 이 두 변수 사이의 관계를 밝혀내기 위한 기법이 선형회귀분석이다. 학습을 위해 만들어낸 데이터가
아닌 현실의 데이터라면 웬만해서는 완전한 직선으로 나타나는 경우는 거의 없을 것이다. 따라서 그러한 현실
데이터를 가장 근접하게 표현해줄 수 있는 직선 즉, 1차 방정식을 찾아내는 것이 바로 선형회귀분석의 목적이다.


우리가 학교에서 수학을 배울 때는 x 또는 y의 값을 구하는 것이 보통이었다. 하지만 현실의 상황을 분석하는
경우 x와 y는 이미 알고 있는 데이터들이다. 이런 상황에서 x와 y가 만나는 많은 점들 중 가장 많은 수와 근접한
직선을 찾아내는 것이 목적인 바 결국 이 것은 직선의 기울기를 알아내는 것이라 할 수 있다. 결국 위의 공식에서
x와 y는 이미 우리가 알고 있는 값이고 우리가 찾아야 할 것은 W인 것이다.


한편 단순히 기울기만을 가지고 찾는다는 것은 불가능한 것이 기울기가 같은 직선은 무수히 많기 때문에 단순히
기울기만 같다고 해서 데이터를 가장 잘 표현해준다고 할 수는 없는 것이다. 직선을 위나 아래로 움직이면서
x와 y가 만나는 점들과 가장 오차가 적은 위치를 찾아야 할 것이다. 이 것이 바로 공식의 b에 해당하는 값이고
한쪽으로 치우쳤다는 의미에서 편향이라는 용어로도 사용된다.


마지막으로 정리하자면 선형회귀분석을 학습시킨다는 의미는 x 변수들과 y 변수들의 어느정도 비율로 관련이 
있는지(기울기)를 알아내고 그렇게 알아낸 기울기의 직선과 실제 데이터와의 오차를 절편을 이용해서 보정하는 
작업이라 할 수 있겠다.

블로그 이미지

마즈다

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