정의역과 치역 (Domain and Range)
쉽게 풀면
자판기를 떠올려 보세요. 버튼은 1번부터 5번까지 있고, 각 버튼을 누르면 정해진 음료가 나옵니다. 이때 "내가 누를 수 있는 버튼 전체"가 정의역이고, "실제로 나올 수 있는 음료 전체"가 치역입니다. 만약 5번 버튼이 고장 나서 4번 버튼과 똑같은 음료가 나온다면, 버튼(입력)은 5개이지만 실제로 나오는 음료(출력)의 종류는 4가지뿐일 수도 있습니다. 함수도 마찬가지로, 함수에 넣을 수 있는 x값의 범위가 정의역, 그 결과로 나오는 y값의 범위가 치역입니다.
왜 중요한가
정의역과 치역을 명확히 정하는 것은 함수가 어떤 입력에서 정의되고 어떤 범위의 출력을 내는지를 규정하는 일이므로, 수학적 모델이나 알고리즘을 엄밀하게 서술할 때 반드시 필요한 정보입니다. 특히 함수의 역함수가 존재하는지, 함수가 특정 구간에서 연속이거나 미분 가능한지를 논의하려면 먼저 정의역과 치역이 확정되어야 합니다. 그래서 수학뿐 아니라 통계학, 머신러닝 등 함수를 다루는 거의 모든 논문에서 개념 정의 단계에 등장하는 기초적인 표현입니다.
논문에서는 이렇게 쓰입니다
이 문장은 그 함수에 어떤 실수든 넣을 수 있지만(정의역이 실수 전체), 결과로 나오는 값은 항상 0에서 1 사이로만 나온다는(치역이 [0, 1] 구간) 뜻입니다. 출력값이 0과 1 사이로 제한되기 때문에 확률처럼 해석할 수 있다는 설명이 뒤따르는 것입니다.
통계학 논문에서는 확률변수가 현실에서 가질 수 있는 값의 범위를 정의역으로 명시함으로써, 수학적 모델이 실제 현상의 제약을 올바르게 반영하는지 보여줍니다.
머신러닝 연구에서는 모델이 기대하는 입력값의 범위(정의역)에 맞추어 데이터를 미리 조정하는 전처리 과정을 설명할 때 이런 표현이 사용됩니다.
조금 더 깊게 보면
실제로 정의역을 정할 때는 수식만으로는 계산이 되더라도 의미상 제외해야 하는 값들을 함께 고려해야 합니다. 예를 들어 분모가 0이 되는 값이나, 로그함수의 진수가 음수가 되는 값은 수학적으로 정의되지 않으므로 정의역에서 제외됩니다. 또한 치역을 구할 때는 함수의 증가·감소 구간을 나누어 각 구간에서 나올 수 있는 값의 범위를 따로 분석해야 하는 경우가 많으며, 이런 분석은 함수의 최댓값과 최솟값을 구하는 문제와도 밀접하게 연결됩니다.
주의할 점
치역과 공역(codomain)을 같은 것으로 혼동하기 쉽습니다. 공역은 "출력값이 나올 수 있다고 미리 정해둔 범위"이고, 치역은 그중에서 "실제로 나오는 값들만 모은 것"입니다. 예를 들어 함수의 공역을 실수 전체로 정해두어도, 실제 출력값이 항상 양수만 나온다면 치역은 양수 전체가 됩니다.