왜 딥러닝에서는 활성화 함수를 한 가지만 사용해서 학습하는 걸까?
여러 종류의 활성화 함수를 섞어서 쓰면 더 좋은 성능이 나오지 않을까?
딥러닝 강의를 들으며 공부하던 중, 위와 같은 의문이 들었습니다.
인간의 경우에는, 학습과정에서 여러 활성화 함수가 동원되어 복합적으로 학습을 진행하는데,
왜 딥러닝은 한 가지 활성화 함수만 사용하여 학습하는가 하는 의문인데,
오늘은 이 의문에 대한 답을 알아보겠습니다.
목차
1. 활성화 함수의 역할
2. 활성화 함수의 종류는 중요할까?
3. 활성화 함수를 1종류만 사용하는 결정적인 이유
4. 총 요약정리
1. 활성화 함수의 역할
위 그림은 뉴럴 네트워크(=신경망) 모델에서 이루어지는 수학적 계산 과정들을 손쉽게 볼 수 있는 그림입니다.
위 그림을 참고하면서 들어주세요!
활성화 함수를 1가지 종류만 사용하는 이유를 알기 위해서는,
일단 활성화 함수의 역할에 대해 알아야 합니다.
왜냐하면, 어떤 역할을 하는지 알아야, 왜 1가지 종류만 사용해서 학습하는지 이해할 수 있기 때문입니다.
활성화 함수의 역할은
신경망 층마다 입력되는 값들을 걸러주고, 산출되는 출력 값을 조절하는 역할을 수행하며,
"비 선형함수"이기에, 신경망을 수천 개씩 겹겹이 쌓는 의미를 가지게 해주는 중요한 역할을 맡고 있습니다.
활성화 함수의 역할 요약 :
1. 신경망 층에 "비 선형성"을 부여하여, 신경망을 겹겹이 쌓는 의미를 가지게 해 줌
2. 계산되는 여러 숫자들의 상한 범위를 조절하여, 학습 속도를 조절해 줌
활성화 함수의 역할을 알았으니, 이제는 활성화 함수의 종류는 중요한지 알아보겠습니다.
만약, 활성화 함수의 종류에 따른 형태가 학습에 크게 영향을 끼치는 요소라면,
여러 활성화 함수를 복합적으로 사용하는 것도 괜찮아 보이기 때문입니다.
2. 활성화 함수의 종류는 중요할까?
활성화 함수가 중요하다는 건 알겠지만, 과연 활성화 함수의 종류는 중요할까요?
현재 딥러닝은 무슨 대단한 알고리즘 or 지능 시스템이 아니라, 단지 그냥 거대한 수학 함수에 불가합니다.
사람의 몸에서 활성화 함수의 역할을 하는 "자극 역치"는 복잡한 신경학적 메커니즘의 역할을 수행하는 반면,
기계를 학습시키는 딥러닝에서의 "활성화 함수"는
단지 수학적 계산을 도와주고, 숫자의 범위를 한정 지어주는 역할에 불가합니다.
다시 말해서,
생물학적 역할을 수행하는 인간에게는 활성화 함수의 모양과 형태가 유의미한 의미를 가지지만,
딥러닝을 수행하는 기계에게는 어떤 활성화 함수냐는 그리 중요하지 않고,
단지 "비 선형성"과 "숫자의 범위 제한"이 중요한 것이죠.
------------------>
물론, 학습 상황에 걸맞은 적절한 활성화 함수를 정하는 건 중요합니다.
하지만 그건 학습 시간이나 계산 효율 때문이지,
그 활성화 함수가 좀 더 고차원적인 계산을 수행한다거나, 데이터와 인과적으로 관계가 있어서가 아닙니다.
하지만, 함수의 형태가 중요하지 않다는 점만으로는 의문이 명확하게는 해소되지는 않습니다.
다음으로, 1종류만 사용하는 결정적인 이유를 알아봅시다.
3. 활성화 함수를 1종류만 사용하는 결정적인 이유
인간이 학습할 때는, 여러 활성화 함수가 복합적으로 활용되어 학습하지만,
딥러닝 학습을 하는 기계에게는 활성화 함수가 단지 수학적 의미만을 내포합니다.
즉,
여러 활성화 함수를 사용한다고 해서 학습 메커니즘이 변화하지도 않고,
오히려 계산만 복잡해지고, 함수에 따라 달라지는 숫자 값들의 변화로 인해 학습이 원활하게 수행되지 않게 되는 것이죠.
예를 들어서,
아래와 같이, Relu 와 Tanh 함수를 모두 사용하여 딥러닝을 해본다고 가정해 봅시다.
Relu 함수의 출력 값이 Tanh 함수의 입력값으로 입력되고,
다시 Tanh 함수의 출력 값이Relu 함수의 입력값으로 입력되는 형태입니다.
이렇게 되면,
층을 지나칠 때마다, 함수의 종류가 달라져서 값들이 이리저리 크게 변하게 되는 문제가 생깁니다.
또한,
역전파 과정에서의 도함수 값을 활용하여, 매개변수를 업데이트하는 경사 하강 법도 제대로 이뤄지지 않게 됩니다.
결과적으로,
1종류의 활성화 함수를 사용할 때보다 학습 효율은 떨어지고,
계산 과정은 훨씬 복합해져서 오히려 학습 성능은 떨어지게 되는 것이죠.
4. 활성화 함수를 1종류만 사용하는 이유 - 총 요약정리 :
1. 활성화 함수는 딥러닝 내에서 중요한 역할을 수행함
2. 하지만, 인간과 학습 메커니즘과는 다르게 함수의 종류에 따른 모양의 차이가 학습에 그리 큰 영향을 미치지는 않음
(주로 Relu를 사용하는 이유 또한 계산이 빨라 학습 시간을 단축할 수 있기 때문)
3. 또한, 여러 종류를 사용하면 오히려 계산 과정이 복잡해지고, 학습 과정이 원활하게 수행되지 않아서, 오히려 딥러닝 모델의 성능이 떨어지게 됨
'인공지능 정보' 카테고리의 다른 글
"딥러닝"의 본질 (Nature of Deep learning) (0) | 2022.07.02 |
---|---|
죽음을 두려워한다는 인공지능? - 대중을 기만하는 잘못된 오해 바로잡기 (0) | 2022.06.22 |
[도서 추천] 딥러닝의 기본부터 최신 개념까지 쉽게 설명해놓은 책 (1) | 2022.06.18 |
함수(fuction) 와 1차 함수(linear fuction) (0) | 2022.06.01 |
[Deep Learning] Reason for learning using only one type of activation function (0) | 2022.05.20 |
머신 러닝(Machine Learning)의 3가지 학습 방식 (0) | 2022.04.17 |
딥러닝과 머신러닝의 차이점 구별하기 (0) | 2022.04.15 |