활성화 함수
활성화 함수, 인공지능에 관심이 있으시다면 한 번쯤 들어 보셨을 것입니다. 그러면 이런 궁금증도 가지셨을 수 있다 생각합니다. ‘활성화 함수를 여러 개 사용하면 활성 함수 각각의 단점을 보완할 수 있어서 좋을 것 같은데’.
간단한 웹서핑으로도 잘못 접근하셨다는 것을 직감하셨을 것입니다.
그런데 저는 여기서 궁금증 하나가 더 발생했습니다. ‘그러면 활성화 함수를 발전시키는 연구는 어떤 방향성을 가지고 진행되어야 하는가’
오늘은 연구 사례를 보며 이 궁금증을 해결해 보도록 합시다.
인공지능은 인공적으로 지능을 구현하는 것이 지향점이죠. 그리고 기반 알고리즘인 인공신경망을 사용하는 인공지능이 보편적입니다. 인공신경망은 인간 스스로가 학습 시 사용하는 뇌의 메커니즘인 신경망을 모방한 ‘학습’ 메커니즘으로 뉴런과 같은 기본 구조인 ‘퍼셉트론’이 있습니다. 여기서 활성화 함수가 등장합니다. ‘Activation function’이라 하는 것이 활성화 함수인데, 뉴런의 동작 원리와 유사하게 ‘input’이라고 되어 있는 곳에서 타 뉴런의 출력을 받아들이고, 시냅스를 담당하는 ‘weights’에서 가중치를 조정해서 내적을 통해 출력 값이 스칼라가 되고, 이 값이 활성화 함수에서 역치를 초과하면 그림상의 제로제이를 출력하게 되는 것입니다.
역치에 따라 역치를 넘지 못하는 신호는 전달되지 않는 것이 가장 기초적인 전제가 되는 것인데, 간단한 예가 지금 보고 계신 그래프입니다. 그래프 상의 역치 기준이 0이라면 이 함수와 같은 불연속 함수가 이상적인 활성화 함수가 되는 것입니다.
하지만 실용적으로는 이와 같은 함수를 활용하지 못합니다. 왜냐하면 자연계의 신호는 '불연속'적일 수 없기 때문입니다. 향후 가중치를 수정할 때 미분을 활용해야 해서, 불연속 함수 활용이 불가능 하다는 이유도 있습니다. 그래서 이론적으로 가장 널리 언급되는 ‘시그모이드’가 존재하는 것입니다. 하지만 이것도 정작 실용 인공신경망 알고리즘에서는 '시그모이드'가 많은 한계를 드러냈습니다. 간단히 말씀드리면, 이 'x'를 양의 무한대, 음의 무한대로 보내면 기울기의 값 때문에 인공지능 모델 학습에 있어서 중요한 '가중치 수정'이 어려워진다는 점이 한계입니다.
그래서 ReLU 등 다른 활성화 함수가 제안되었습니다. 그런데 종류 별로 일장일단이 있습니다. 이 때문에 이런 궁금증이 든 것인데요. 이는 모델의 복잡성 증가, 안정성, 효율성 문제 등으로 불가능하다고 합니다. 그러면 활성화 함수 연구는 그냥 “단순히 여러 개의 활성화 함수를 융합해서 하나로 만드는 것인가?”라는 궁금증이 생기게 되었습니다. 그래서 이 궁금증도 자연히 생기게 된 것입니다.
궁금증의 결론을 먼저 말씀드리면 예상하셨듯이 단순히 여러 함수를 합치는 것이 연구의 방향성은 아니었습니다. 사례를 보여드리며 설명 드리겠습니다.
활성화 함수는 단순히 기존 함수들을 조합하는 것을 넘은 두가지 정도의 연구 접근 방식이 있습니다. 아예 다른 접근 방식으로 연구하거나, 기존 활성화 함수의 특정 단점에 대해 보완해 나아가는 방식이 있습니다. 먼저 아예 다른 접근을 한 방향성을 지닌 연구를 살펴보겠습니다. 파라미터화된 활성화 함수와 진동하는 활성화 함수를 대표적인 사례로 들 수 있겠습니다. 파라미터화된 활성화 함수는 최근 연구에서 주목받고 있는 접근 방식입니다. 이 방식의 핵심 아이디어는 활성화 함수 자체에 학습 가능한 파라미터를 도입하는 것입니다. 예를 들어, ‘Parametric’에서의 P를 따온 PReLU는 기존 ReLU의 변형으로, 음수 입력에 대해 작은 기울기를 갖는 직선을 사용합니다. 이 기울기는 화면의 수식에서 보이듯이 학습 과정에서 조정됩니다.
이러한 접근 방식의 장점은 각 뉴런이 자신의 입력 데이터에 가장 적합한 활성화 함수의 형태를 학습할 수 있다는 것입니다. 모델이 다양한 데이터셋, 더 복잡한 패턴에서 더 잘 적응할 수 있게 할 수 있다는 것이죠.
다음으로 진동하는 활성화 함수를 말씀드리자면, 이 또한 최근 연구에서 주목받고 있습니다. 진동하는 함수들은 단조 증가하는 전통적인 활성화 함수와는 달리, 입력 값에 따라 출력이 증가하거나 감소할 수 있습니다. 예시로는, 사인 활성화 함수가 있습니다. 사인 함수의 특징인 주기적으로 진동한다는 특징을 똑같이 가지고 있어, 복잡한 주기적 패턴을 학습하는 데 유용할 수 있습니다.
또 다른 예시로는, 이와 같이 정의되는 NCU(Non-Monotonic Cubic Unit)가 있습니다. 3차 다항식의 형태로, 비단조적 곡선을 생성할 수 있습니다.
이러한 활성화 함수의 장점은 단일 뉴런이 XOR 문제와 같은 복잡한 논리를 학습할 수 있게 한다는 것입니다. 시그모이드나 ReLU와 같은 전통적인 함수로는 어려운 일입니다.
다음으로, 기존 활성화 함수의 단점을 보완하는 방향성을 지닌 연구를 살펴보겠습니다.
앞서 말씀드린 시그모이드의 기울기 소실 문제를 해결한 연구를 먼저 살펴보면, 여러가지 함수가 제안되었습니다. 대표적인 함수로는 ReLU가 있습니다. 지금 보고 계신 수식이 ReLU 수식인데, ReLU는 양수 입력에 대해 항상 1의 기울기를 가지므로, 깊은 신경망에서도 기울기가 소실되지 않고 효과적으로 학습할 수 있습니다. 그러나 ReLU는 음수 입력에 대해 항상 0을 출력하는 ‘죽은 뉴런’ 문제가 존재합니다. 이를 해결하기 위해 Leaky ReLU가 제안되었습니다. 보고 계신 것이 Leaky ReLU의 수식인데, 이 함수는 음수 입력에 대해 작은 기울기를 가지므로, 모든 뉴런이 학습에 참여할 수 있게 됩니다.
다음으로는 음수 입력 처리를 개선하는 연구를 살펴보겠습니다. ELU(Exponential Linear Unit)는 ReLU의 장점을 유지하면서도 음수 입력에 대해 부드러운 곡선을 띄어서 ReLU의 ‘죽은 뉴런’ 문제를 완화하고, 동시에 출력의 평균을 0에 가깝게 만들어 학습을 안정화 시켰습니다.
앞서 살펴본 사례에 더해 Swish나 GELU와 같은 최신 연구도 곁들여서 활성화 함수의 연구 방향성을 총정리 해보았습니다. 학습 가능한 파라미터 도입, 비단조 함수 탐구, 계산 효율성 개선, 특정 분야 특화 최적화, 그리고 깊이 있는 이론적 분석으로 단순히 기존의 함수를 합치는 것을 넘어서 신경망의 표현력과 학습 능력을 극대화하는 동시에, 다양한 응용 분야에 최적화된 방법을 제공하는 것을 목표로 하고 있었습니다.