logo

차별 함수란? 📂머신러닝

차별 함수란?

정의

모든 $y \in \mathbb{R}^{n}$ 과 $\theta \in \mathbb{R}$ 와 어떤 $\mu \in M \left( I_{n} \right)$ 에 대해 $$ \int_{I_{n}} \sigma \left( y^{T} x + \theta \right) d \mu (x) = 0 \implies \mu =0 $$ 를 만족하는 함수 $\sigma : \mathbb{R} \to \mathbb{R}$ 를 차별적 함수discriminatory function라 한다.


  • $I_{n} := [0,1]^{n}$ 는 $n$차원 유닛 큐브로써, $n$ 개의 단위폐구간 $[0,1]$ 에 데카르트 곱을 취한 것이다.
  • $M \left( I_{n} \right)$ 는 $I_{n} := [0,1]^{n}$ 에서 정의되는 부호 유한 정칙 보렐 측도의 집합이다.
  • $y^{T}$ 는 $y$ 의 전치행렬로써, $y^{T} x$ 는 $x$ 와 $y$ 의 내적 $\left< x, y \right>$ 와 같다.

정의에 대한 설명

수식으로 차별적 함수를 이해하려면 대우법으로 시작하는 게 좋다. $$ \mu \ne 0 \implies \int_{I_{n}} \sigma \left( y^{T} x + \theta \right) d \mu (x) \ne 0 $$ 쉽게 말해, 측도 $\mu$ 가 진짜 모든 값을 $0$ 으로 보내는 정도로 가혹하지만 않다면 $\sigma$ 에 뭘 집어넣든 르벡적분 했을 때 $I_{n}$ 의 부분공간 중에서는 $0$ 이 아닌 것으로 제대로 측정되는 곳이 있어야한다는 것이다. 측도론의 거의 어디서나라는 개념을 생각해보면 단순히 함수값이 $0$ 이 아닌 것만으론 부족한 것을 납득할 수 있을 것이다.

더 쉽게 말해, $\sigma$ 란 위의 성질을 모든 $y \in \mathbb{R}^{n}$, $\theta \in \mathbb{R}$ 에 대해 만족함으로써 ‘기다, 아니다’를 구분할 수 있는 실질적인 함수의 역할을 하게 된다. ‘차별적’이라는 단어는 부정적인 뉘앙스가 다소 있지만 이공계에서는 단순히 구별한다는 정도로 받아들이면 된다.

차별 함수는 인공신경망과 같은 분야를 이론적으로 지탱하는 보편 근사 정리 에서 등장하며, 당연히 최근 유행하는 딥러닝과도 관계가 있다. 수식에서 $x \in I_{n}$ 은 인풋 데이터, $y \in \mathbb{R}^{n}$ 은 가중치, $\theta \in \mathbb{R}$ 은 바이어스로 볼 수 있다. 그렇다면 $\sigma$ 는 다름아닌 활성화 함수로 볼 수 있을 것이다. 활성화 함수의 아이디어 자체가 역치의 모방이라는 점을 생각해보면 신호가 전달되느냐 전달되지 않느냐의 ‘차별’은 정확히 차별 함수의 개념과 상통한다.

정리

$\sigma$ 가 연속 차별 함수라고 하면 $$ S := \left\{ G(x) = \sum_{k=1}^{N} \alpha_{k} \sigma \left( y_{k}^{T} x+ \theta_{k} \right) : y_{k} \in \mathbb{R}^{n} \land \alpha_{k} , \theta_{k} \in \mathbb{R} \land N \in \mathbb{N} \right\} $$ 는 $C\left( I_{n} \right)$ 에서 균등 조밀하다. 달리 말하자면, 모든 $f \in C \left( I_{n} \right)$ 과 $\varepsilon > 0$ 에 대해 다음을 만족하는 $G \in S$ 가 존재한다. $$ \left\| G - f \right\| < \varepsilon $$

정리에 대한 설명

위의 정리를 쉬운 말로 풀어보자면, 우리가 원하는 어떤 $f$ 든 적절한 가중치와 바이어스를 찾아 차별 함수의 유한한 선형 결합으로 비슷하게 나타낼 수 있다는 것이다. 머신러닝의 맥락에서 $f$ 은 우리가 진정으로 찾고 싶은 함수, 그러니까 우리가 원하는 일을 하는 함수다. 그 함수는 사진을 인풋으로 받아서 개인지 고양이인지를 판별하거나 한국어 문자열을 받아서 영어로 돌려주거나, 더 어렵고 신기한 함수일 수 있다.

문제는 차별 함수의 정의에서 알 수 있듯 차별 함수가 실제로 어떻게 생겨먹은 함수인지 알기가 어렵다는 것이다. 본 포스트에서도 소개된 정의만 보고 설명을 읽지 않는다면, 아니 읽어봤더라도 측도론적인 지식이 없다면 너무 뜬구름 잡는 소리로 보일 수 있다. 다행스럽게도 우리가 익히 잘 아는 형태의 어떤 함수들은 차별 함수임을 증명할 수 있고, 그로써 인공신경망이 작동한다는 것이 수학적으로 보장할 수 있게 된다.

증명 1

한-바나흐 확장 정리의 따름 정리 2: $X$ 는 $\mathbb{C}$-벡터 공간이고 $Y \subset S $ 둘 다 $X$ 의 부분공간이라고 하자. 만약 $s \in S$ 가 $d (s, Y) = \delta > 0$ 면 다음을 만족하는 $x^{ \ast } \in X^{ \ast }$ 가 존재한다. $$ \left\| x^{ \ast } \right\| \le 1 $$ $$ \begin{align*} y^{ \ast } (s) =& y^{ \ast } (s) = \delta \qquad , s \in (S \setminus Y) \\ x^{ \ast } (y) =& y^{ \ast } (y) = 0 \qquad , y \in Y \end{align*} $$

$\overline{S} = C \left( I_{n} \right)$ 임을 보이면 된다. $\overline{S} \subsetneq C \left( I_{n} \right)$ 이라고 가정하면 클로져 $\overline{S}$ 가 전체 공간이 아니므로 한-바나흐 확장 정리에 따라 $$ L \left( C \left( I_{n} \right) \right) = L \left( \overline{S} \right) = \left\{ 0 \right\} $$ 인 $L \ne 0$ 유계 선형 범함수 $L \in \left( C \left( I_{n} \right) \right)^{ \ast }$ 가 존재한다. 리즈 표현 정리에 따라 $L$ 은 어떤 $\mu \in M \left( I_{n} \right)$ 와 모든 $h \in C \left( I_{n} \right)$ 에 대해 $$ L (h) = \int_{I_{n}} h(x) d \mu (x) $$ 와 같이 나타낼 수 있다. 특히 그 중에서 $h(x) = \sigma \left( y^{T} x + \theta \right)$ 는 모든 $y, \theta$ 에 대해 $\overline{S}$ 에 속하므로 $L$ 의 성질에 따라 $$ L (h) = \int_{I_{n}} \sigma \left( y^{T} x + \theta \right) d \mu (x) = 0 $$ 이다. 전제에서 $\sigma$ 는 차별적이므로 $\mu = 0$ 인데, 그러면 $L$ 의 리즈 표현에 따라 $L = 0$ 이어야하므로 $0 \ne L$ 과 모순이다. 따라서 $\overline{S} = C\left( I_{n} \right)$ 이 성립해야한다.


  1. G. Cybenko. (1989). Approximation by Superpositions of a Sigmoidal Function p4. ↩︎