딥 선형 네트워크에서의 비선형 계산
OpenAI는 부동소수점 산술을 사용하여 구현했을 때 딥 선형 네트워크가 수학적으로 선형이 아니며 비선형 계산을 수행하도록 훈련시킬 수 있음을 보여주었다. 컴퓨터가 숫자를 표현하는 방식을 활용하여 이러한 네트워크는 일반적으로 명시적인 비선형 활성화 함수가 필요한 비자명한 문제를 해결할 수 있다.
부동소수점 언더플로: 비선형성의 원천
이론 수학에서는 신경망의 연속적인 선형 레이어가 단일 선형 레이어와 동등하다. 그러나 컴퓨터는 유한 정밀도 표현을 사용하며, 구체적으로 IEEE float32 표준은 부호 비트, 8비트 지수, 23비트 분수로 구성된다.
언더플로로 인해 0 주변에서 비선형성이 나타난다. 가장 작은 일반적이지 않은 0이 아닌 수는 min ($1.0..0 imes 2^{-126}$)로 표시된다. 이 표현 가능한 값보다 작은 수는 0으로 매핑된다. 이로 인해 0 주변에 상당한 근사 오차가 발생하여 기본적인 수학 법칙이 실패한다:
- 분배 법칙 실패: $(a + b) imes c$는 $a imes c + b imes c$와 같지 않을 수 있다. 예를 들어, $a = 0.4 imes min$, $b = 0.5 imes min$, $c = 1/min$이면 첫 번째 식은 $0$이 된다($a+b$가 언더플로로 $0$이 되기 때문이며), 두 번째 식은 $0.9$가 된다.
- 결합 법칙 실패: $(a + b) + c$는 $(b + c) + a$와 같지 않을 수 있다. 만약 $a = 2.5 imes min$, $b = -1.6 imes min$, $c = 1 imes min$이면 첫 번째 식은 $min$이 되고, 두 번째 식은 $2.5 imes min$가 된다.
이러한 동작은 ftz=true로 디노멀을 비활성화하여 프리미티브를 구축하는 TensorFlow 같은 프레임워크에서 더욱 증폭된다. 즉, $1e-38$ 규모 근처의 비 행렬 곱 연산은 암시적인 비선형성을 갖는다.
Evolution Strategies를 사용한 비선형 선형 네트워크 훈련
현대 미분 라이브러리는 상징적 미분에 의존하기 때문에 이러한 미시적 비선형성에 '눈먼' 상태이다. 따라서 역전파를 사용하여 언더플로를 활용하도록 네트워크를 훈련시킬 수 없다.
이를 극복하기 위해 OpenAI는 상징적 미분 없이 기울기를 추정하기 위해 진화 전략(ES) 를 사용했다. float32의 비선형 범위 내에 머무를 수 있도록 활성화가 충분히 작게 유지되도록 함으로써, ES는 이러한 부동소수점 아티팩트를 계산적 비선형성으로 활용할 수 있는 매개변수를 찾을 수 있었다.
MNIST 성능 비교
MNIST 데이터셋에서 테스트했을 때, 표준 훈련과 부동소수점 비선형성을 활용한 ES 기반 훈련 간의 성능 차이가 유의미하게 나타났다.
| 훈련 방법 | 훈련 정확도 | 테스트 정확도 |
|---|---|---|
| 역전파 | 94% | 92% |
| 진화 전략(ES) | >99% | 96.7% |
이 성능 향상은 부동소수점 비선형성 때문에 각 층이 하위 수준 특징의 비선형 조합인 새로운 특징을 생성할 수 있기 때문이다. 이는 일반적으로 선형 네트워크에서는 불가능한 능력이다.
미래 시사점
OpenAI는 이 능력을 순환 신경망과 같은 다른 아키텍처로 확장하거나 번역 및 언어 모델링과 같은 복잡한 머신러닝 작업 향상에 적용할 수 있다고 제안한다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch