이번 글에서는 신경망을 구성하는 각 뉴런 모델에서 임계값을 넘었을 때 출력을 처리하는 함수, 즉 활성화 함수(Activation Function)에 대해서 살펴보겠습니다.
이전의 글에서 잠시 소개했던 뉴런의 구조를 생각해 보시죠. 신호 입력을 받은 후 뉴런에서는 그 값들을 합하여 출력을 만들어낸다고 되어 있습니다.
바로 여기서 "값들을 합한다." 라는 부분이 활성화 함수의 개념이 됩니다. AI 또는 딥러닝을 다루는 많은 책에서 활성화 함수를 소개, 설명하고 있습니다.
활성화 함수로 사용되는 함수로는 옛날부터 사용되어온 계단 함수, 시그모이드 함수에서 최근 많이 사용되는 Relu 함수까지 다양하게 존재하고 있습니다.
그런데 왜 이런 활성화 함수를 사용하는 것일까요? 왜 활성화 함수를 사용해야만 하는 것일까요? 이 질문에 대해서는 대부분의 책이 대답을 해 주지 않습니다.
잘 생각해보면 활성화 함수를 사용하는 이유는 아주 간단한 것이지만 그래서인지 이에 관련된 설명은 없고 그냥 당연히 사용하는 것으로 받아들이고 있습니다.
아래의 그림을 보시죠.

피부, 눈과 같은 감각기관이 어떤 자극을 받아 신호를 발생시키면 그 신호는 축삭을 통해 이동하고, 축삭의 말단에 있는 시냅스를 거쳐 다음 뉴런으로 전달됩니다.
이 때 전달되는 모든 신호를 아주 미세한 신호부터 강한 신호까지 모두 다음 뉴런으로 전달을 할까요?
그렇게 되면 너무 비 효율적이겠죠.
어느 정도 우리의 몸에서 반응을 일으킬 필요가 있는 수준까지만 전달하고 그 수준에 미치지 못하는 신호는 무시하는 것이 효율적이고 편할 것입니다.
우리가 받아들이는 자극에 지나치게 민감하다면 생활 자체가 불편해지겠죠.
그래서 뉴런은 특정 수준 이상의 신호만을 다음 뉴런으로 전달합니다.
이런 뉴런에서의 신호 흐름을 모델링하여 각 뉴런 노드에 제한을 걸어둔 것이 바로 활성화 함수인 것입니다.
활성화 함수에서 적용한 공식에 따라 조건을 만족하는 경우에만 다음 노드로 신호를 전달하기 위한 것입니다.
이제 활성화 함수가 무엇인지, 왜 필요한 것인지를 아셨을 것입니다.
그렇다면 활성화 함수는 왜 같은 것을 사용하지 않고 저렇게 다양하게 존재할까요?
아직 우리는 우리의 뇌와 신경들이 어떻게 동작하고 서로 어우러지는지 정확하게 알지 못합니다.
뇌과학을 전공하신 분들은 조금 더 깊게 알고 계시겠지만 어떤 규칙을 가지고 어떤 성향을 따라서 동작하는지는 아직 다 밝혀지지 않았습니다.
따라서 우리가 원하는 큰 조건을 두고 해당 조건에 따라 움직이는 다양한 함수를 찾아서 가장 효율적으로, 원하는 방향으로 정확하게 움직이는 함수를 계속 연구하는 것입니다.
각 활성화 함수의 형태나 공식들은 이후 각 모델의 실습 등 더욱 깊게 다루는 글에서 살펴보도록 하겠습니다.
지금까지 딥러닝 등의 신경망을 기반으로 하는 모델을 공부하기 위한 가장 기초가 되는 개념들을 살펴보았습니다.
다음 글부터는 요즘 많이 활용되는 모델부터 하나씩, 조금 더 깊게 다루어 보겠습니다.
'AI 기반 기술' 카테고리의 다른 글
데이터 과학을 위한 통계 : 탐색적 데이터 분석(1) (0) | 2019.11.14 |
---|---|
데이터 과학을 위한 통계: 시작하면서 (0) | 2019.11.14 |
AI와 데이터과학을 공부하려면 어떤 지식들이 필요할까? (0) | 2019.09.04 |
다층 퍼셉트론과 Back Propagation 학습 알고리즘 (0) | 2019.09.04 |
하나의 층을 가진 신경망, 단층 퍼셉트론 (3) | 2019.09.04 |