변수와 상수는 수학뿐만 아니라 프로그래밍에서도 필수적으로 사용하는 개념이다. 먼저 변수는 값이 고정되지 않아 다양한 값이 들어갈 수 있는 반면 상수는 값이 고정되어 한 번 정의되면 변하지 않는다.
변수는 우리가 일상생활에서 비교했을 때 상자에 비유할 수 있다. x라는 상자가 있고 그 상자 안에 3이나 1.5 혹은 -1과 같이 다양한 값들을 넣을 수 있다. 반면에 상수는 값이 변하지 않는데 위의 이미지에서는 10이라는 값과 a라는 값이 각 상자 안에 고정되어 있어 변하지 않는다.
위의 이미지에서 a는 숫자가 아니므로 변수라고 생각할 수 있는 분들도 있을 것이다. 하지만 실제로는 1이나 4와 같은 고정된 수를 가지고 있을 뿐이지, 표현상 a라는 가면을 쓰고 있어서 본모습을 감추고 있는 것이라 생각하면 된다.
그럼 이제 변수와 상수가 무엇인지에 대해 간단하게 살펴보았으니, 예를 들어 구체적으로 한 번 알아보자. x에 대한 1차 함수 y = ax + b가 있다고 가정해 보자. 이 1차 함수는 x가 변할 때, y가 어떻게 달라지는를 알아보는 함수이다. 즉, x와 y의 관계를 나타내는 수식인 것인데, 이 식에서 x는 다양한 값으로 변할 수 있는 변수에 해당하고, a와 b는 변하지 않고 일정한 값을 가지는 상수에 해당한다.
또 다른 예시로 원의 반지름이 바뀔 때 원의 면적이 어떻게 달라지는지 알아보자. 원의 반지금름 r, 원주율을 𝝅라고 할 때, 원의 면적은 𝝅r²으로 표현할 수 있다.이때 원주율 𝝅은 바뀌지 않는 상수에 해당하고, 반지름 r은 값이 바뀔 수 있는 변수에 해당한다.
결론적으로, 변수는 값의 변화에 주목하며 관심 깊게 살펴봐야 할 대상이고 상수는 값이 변하지 않기 때문에 관심을 덜 두어도 되는 대상이라고 생각할 수 있다.
인공지능에서 변수와 상수는 아래와 같은 상황에서 사용될 수 있다.
인공지능에서 사용하는 모델 중 하나인 신경망에서는 '가중치(w)'라는 것이 있는데, 컴퓨터가 이러한 가중치(w)를 스스로 학습하며 결정하게 된다.
컴퓨터가 가중치(w)를 학습할 때는 가중치가 '변수'의 역할을 하는데, 학습이 끝나고 해당 가중치를 학습 모델에 활용할 때는 '상수'의 역할을 한다. 이처럼 '변수'와 '상수'는 문제 상황을 바라보는 관점에 따라 달라질 수 있으며, 결국 우리가 어떤 것에 관심을 두느냐에 따라 해당하는 역할이 달라지는 것을 알 수 있다.