본문 바로가기
Dev Study/『인공지능을 위한 수학』

1-1 변수와 상수

by 미티치 2020. 2. 1.

개발을 처음 배울 때 '변수' 와 '상수'에 대해서 배웁니다. 이 두 가지 개념은 기초 수학을 배울 때에도 배웁니다. 
단지 변수 = 변하는 값, 상수 = 고정된 값 이라고만 배웠는데, 다시 책장을 넘기다 보니 이 개념을 왜 배우는지에 대해 다시 생각해보게 되었습니다. 


예를 들기 위해 한 가지 상황을 예로 들겠습니다. 나는 초등학생입니다. 아침에 냉장고에 귤이 5개가 있는 것을 보고 학교에 갔습니다. 귤을 먹을 생각에 하교길에 신나게 뛰어왔는데 냉장고를 열어보니 2개가 남아있습니다. 얄미운 형이 그새 귤을 먹어버렸구나 라고 생각합니다. "엄마 내 귤 어디갔어?!" 라고 묻자 수학선생님으로 빙의된 엄마는 이때다 싶어 문제를 냅니다. 초등학교 수학익힘책은 맨날 문제를 이런식으로 냅니다.

Q. 냉장고에 귤 5개가 있었고, □개를 형이 먹어버렸습니다. 냉장고에 남아있는 귤의 개수가 2개이면, 형은 귤을 몇 개를 먹어버렸나요?

이 문제의 풀이에는 다음과 같은 수식이 있을 것이고, 여기서 구해야하는 수는 '네모' 입니다.
=> 5 - □ = 2

자, 그럼 이제 중학생이 되었습니다. 수학익힘책에 나온 저 문제는, 중학수학에는 다음과 같은 수식으로 가면만 쓰게 됩니다. 좀 더 '수학스럽게' 가면만 쓰는 것이지, 사실 본질은 같습니다.

Q. 5 - x = 2 일때, x 의 값은 몇인가?

우리는 이 문제에서 x 가 3이라는 것을 알고 있습니다. 중학 수학을 열심히 공부했다면 수식에서 x를 우변으로 넘기고, 2를 좌변으로 넘겨서 5-2 = x라는 문제풀이도 가능합니다. 그렇지만 이런 과정들을 아직 안배웠다고 가정하고, 우리는 어떻게 x 값을 구했습니까?
이 x가 3인지를 알기 위해서, 초등학생 때는 x에 1을 넣어보고 2도 넣어보고 그 다음 3을 넣어봤는데 답이 나오니까 x가 3인줄 알았던 것입니다. 여기서 잠시나마 x는 1도 되었다가, 2도 되었다가 100도 될 수 있습니다.

이런 개념이 바로 '변수'입니다. 

초등학생인 내가 5개의 귤에서 냉장고에 남아있는 귤의 개수가 2개가 되려면 형이 몇 개의 귤을 먹어 치워야만하는지를 알게 되는 과정에서! 5와 2는 이미 정해져있는 숫자이고, 형이 몇 개를 (쳐)먹었는지 추론해야하는 이 값을 '변수'라고 이름 붙인 것입니다. 

그럼 여기서 정해져있는 값이라는 이 개념이 '상수'겠지요.

다시 돌아가서 변수의 정의를 보겠습니다. 변수(variable)란 값이 고정되지 않아 다양한 값이 들어갈 수 있는 수를 뜻합니다. 상수(constant) 는 값이 고정되어 변하지 않는 수를 뜻합니다. 


자 그럼 형이 먹은 귤의 개수를 구하던 어린 나는 성장을 했습니다. 
고등학생이 되어서 원의 넓이를 구해야 합니다. 원의 넓이를 구하는 공식은 πr² 입니다. (여기서 이 공식이 왜 이렇게 되냐고 물으시면 자세하게 설명할 순 없지만, 어쨌든 오랜기간동안 원의 넓이를 구하던 수학자들이 원의 넓이를 구하다보니 이런 규칙이 있구나! 라고 만들어준 소중한 공식입니다.)

아무튼 "원의 넓이 = πr²" 에서, 반지름을 뜻하는 r은 1도 되었다가 2도 되었다가 36도 되었다가 1000도 될 수 있습니다. 하지만 π는 r이 어떻게 변하든간에 묵묵히 자기 자리를 지키고 있는 '상수' (고정값) 입니다. 
그럼 이 공식이 의미하는 바에 대해서 다시 생각해봅시다. 

반지름 r은 어떤 값이든 될 수 있습니다. 이 값이 변하면 원의 넓이는 영향을 받습니다. 하지만 r이 특정 숫자로 고정되었다고 가정한다면, 원의 넓이 또한 변하지 않고 그대로입니다. 
반면에 원의 넓이에 영향을 주는 π는, 3.14로 이미 '고정되어 있는 값'입니다. (이 값이 변하면 원의 넓이는 변하겠지만, 이 값이 변하면 제대로 된 원의 넓이는 구할 수가 없겠죠?)

이 내용을 좀 더 풀어서 해석해보면, π는 어짜피 이미 고정되어 있는 값이니까 우리가 신경 안써도 되는 값입니다. 이미 정해져있고, 우리가 주목해야할 값은 반지름 r입니다. 변할 수 있는 값이기 때문입니다.

따라서 변수와 상수에 대해서 다른 정의를 내릴 수 있겠네요.

변수는 값의 변화에 주목해서 우리가 좀 더 신경써야 하는 값이라면, 
상수는 이미 고정되어 있기 때문에 우리가 관심을 덜 두어도 되는 대상이라고 생각하면 되겠습니다.

 


그럼 이 변수와 상수에 대해서 왜 이렇게 장황하게 정의를 내렸을까요? 심심해서? 맞습니다 아닙니다.

첫번째로, 이 개념은 프로그래밍을 할 때에도 사용되는 개념이기 때문입니다.

정수인 반지름의 값을 입력하면 이 원의 넓이를 뱉어주는 프로그램을 만든다고 가정했을 때, 이 프로그램에 함수는 다음과 같을겁니다. ( 파라미터 체크나 return 값의 범위에 대한 고려는 안한 짧은 예시입니다ㅠㅠ ) 

double GetAreaOfCircle ( int nParam )
{
	int nPi = 3.14;
	return nPi*nParam*nParam;
}

이 함수에서 반지름에 해당하는 nParam은 변수, 그리고 3.14로 이미 고정되어 있는 값인 지역변수 nPi는 상수의 개념입니다. 

 

두번째로, 인공지능에서 사용하는 모델 중의 하나인 '신경망(neural network)'에서는 '가중치(ω)'라는 개념이 있는데, 컴퓨터가 이러한 가중치를 스스로 학습하며 결정하게 됩니다.
재미있는 것은 이렇게 컴퓨터가 이 가중치(ω)를 학습할 때는 가중치가 '변수'의 역할을 하는데, 학습이 다 끝나고 해당 가중치를 학습 모델로 활용할 때는 '상수'의 역할을 한다는 것 입니다.

이처럼 '변수'와 '상수'는 문제 상황을 바라보는 관점에 따라 달라질 수 있으며, 결국 우리가 어떤 것에 관심을 두느냐ㅑ에 따라 해당하는 역할이 달라지는 것을 알 수 있습니다.

 

 

 

'Dev Study > 『인공지능을 위한 수학』' 카테고리의 다른 글

1-3. 함수의 개념  (0) 2020.02.09

댓글